Skip to content

emka.web.id

menulis pengetahuan – merekam peradaban

Menu
  • Home
  • Tutorial
  • Search
Menu

Cara Mengamankan Server Linux Anda dengan fail2ban

Posted on October 24, 2023

Dengan fail2ban, komputer Linux Anda secara otomatis memblokir alamat IP yang memiliki terlalu banyak kegagalan koneksi. Ini adalah keamanan yang mengatur dirinya sendiri! Kami akan menunjukkan cara menggunakannya.

Artikel Pekan Kesadaran Keamanan Siber ini dipersembahkan untuk Anda terkait dengan Incogni.

Apa itu fail2ban?

Fail2ban adalah utilitas yang secara otomatis akan memblokir alamat IP jika mencoba dan gagal menyambung ke server terlalu sering.

Ketika seseorang mencoba menyambung ke server Anda — baik itu server SSH, server web atau email, atau server Minecraft — mereka biasanya diminta memasukkan nama pengguna dan kata sandi sebelum mereka diizinkan mengakses. Manusia normal yang memasukkan (atau menebak) detail akun mereka secara fisik tidak akan dapat memasukkan lebih dari satu upaya paling cepat setiap beberapa detik. Ketika kredensial dimasukkan lebih cepat dan lebih sering dari itu, itu tandanya Anda mempunyai masalah — seseorang mungkin menjalankan serangan brute force dengan komputer lain untuk mencoba membobolnya.

Untuk mendeteksi serangan brute force, Anda perlu memantau permintaan koneksi yang gagal masuk ke akun. Setelah penyerang teridentifikasi, mereka harus dilarang melakukan upaya lebih lanjut.

Satu-satunya cara praktis untuk mencapai hal ini adalah dengan mengotomatiskan seluruh proses. Dengan sedikit konfigurasi sederhana, fail2ban akan mengelola pemantauan, pelarangan, dan pembatalan pelarangan untuk Anda.

fail2ban terintegrasi dengan firewalliptables Linux. Ini memberlakukan larangan terhadap alamat IP yang dicurigai dengan menambahkan aturan ke firewall. Agar penjelasan ini tidak berantakan, kami menggunakan iptables dengan kumpulan aturan yang kosong. Tentu saja, jika Anda mengkhawatirkan keamanan, Anda mungkin memiliki firewall yang dikonfigurasi dengan kumpulan aturan yang banyak. fail2ban hanya menambahkan dan menghapus aturannya sendiri — fungsi firewall reguler Anda tidak akan tersentuh.

Kami dapat melihat kumpulan aturan kosong kami menggunakan perintah ini:

sudo iptables -L

Instalasi fail2ban

Instalasi fail2ban mudah dilakukan di semua distribusi yang kami gunakan untuk meneliti artikel ini. Di Ubuntu 20.04, perintahnya adalah sebagai berikut:

sudo apt-get install fail2ban

Pada Fedora 32, ketik:

sudo dnf install fail2ban

Pada Manjaro 20.0.1, kami menggunakan pacman:

sudo pacman -Sy fail2ban

Configuring fail2ban

Instalasi fail2ban berisi file konfigurasi default yang disebut jail .conf. File ini ditimpa ketika fail2ban ditingkatkan, jadi kami akan kehilangan perubahan jika kami melakukan penyesuaian pada file ini.

Sebagai gantinya, kami akan menyalin file jail.conf ke file bernama jail.local. Dengan menempatkan perubahan konfigurasi kami di jail.local, perubahan tersebut akan bertahan selama peningkatan. Kedua file secara otomatis dibaca oleh fail2ban.

Ini adalah cara menyalin file:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Sekarang buka file di editor favorit Anda. Kami akan menggunakan gedit:

sudo gedit /etc/fail2ban/jail.local

Kami akan mencari dua bagian dalam file: [DEFAULT] dan [sshd]. Namun, berhati-hatilah untuk menemukan bagian sebenarnya. Label tersebut juga muncul di dekat bagian atas di bagian yang mendeskripsikannya, tapi bukan itu yang kami inginkan.

Anda akan menemukan bagian [DEFAULT] di sekitar baris 40. Ini adalah bagian panjang dengan banyak komentar dan penjelasan.

Gulir ke bawah hingga sekitar baris 90, dan Anda akan menemukan empat pengaturan berikut yang perlu Anda ketahui:

ignoreip: Daftar putih alamat IP yang tidak akan pernah dilarang. Mereka memiliki kartu Bebas Keluar Penjara permanen. Alamat IP localhost (127.0.0.1) ada dalam daftar secara default, bersama dengan IPv6 yang setara (::1). Jika ada alamat IP lain yang Anda tahu tidak boleh dilarang, tambahkan alamat tersebut ke daftar ini dan beri spasi di antara masing-masing alamat. bantime: Durasi pemblokiran alamat IP (“m” berarti menit). Jika Anda mengetikkan nilai tanpa “m” atau “h” (untuk jam), nilai tersebut akan dianggap sebagai detik. Nilai -1 akan memblokir alamat IP secara permanen. Berhati-hatilah untuk tidak mengunci diri Anda secara permanen. findtime: Jumlah waktu di mana terlalu banyak upaya koneksi yang gagal akan mengakibatkan alamat IP diblokir. maxretry: Nilai untuk “terlalu banyak upaya yang gagal”.

Jika koneksi dari alamat IP yang sama membuat upaya koneksi maxretry gagal dalam jangka waktu findtime, maka koneksi tersebut akan diblokir selama durasi bantime tersebut. Satu-satunya pengecualian adalah alamat IP dalam daftar abaikan.

fail2ban memasukkan alamat IP ke penjara selama jangka waktu tertentu. fail2ban mendukung banyak jail yang berbeda, dan masing-masing jail mewakili pengaturan yang berlaku untuk satu jenis koneksi. Ini memungkinkan Anda memiliki pengaturan berbeda untuk berbagai jenis koneksi. Atau Anda dapat meminta fail2ban memantau hanya sekumpulan jenis koneksi yang dipilih.

Anda mungkin sudah menebaknya dari nama bagian [DEFAULT], tetapi pengaturan yang kami lihat adalah defaultnya. Sekarang, mari kita lihat pengaturan untuk SSH jail.

Mengonfigurasi Jail

Jails memungkinkan Anda memindahkan jenis koneksi masuk dan keluar dari pemantauan fail2ban. Jika pengaturan default tidak cocok dengan yang ingin Anda terapkan ke jail, Anda dapat mengatur nilai spesifik untuk bantime, findtime, dan maxretry.

Gulir ke bawah hingga sekitar baris 280, dan Anda akan melihat bagian [sshd].

Di sinilah Anda dapat menetapkan nilai untuk jail koneksi SSH. Untuk memasukkan jail ini ke dalam pemantauan dan pelarangan, kita harus mengetikkan baris berikut:

enabled = true

Kami juga mengetikkan baris ini:

maxretry = 3

Pengaturan defaultnya adalah lima, tetapi kami ingin lebih berhati-hati dengan koneksi SSH. Kami menurunkannya menjadi tiga, lalu menyimpan dan menutup file.

Kami menambahkan jail ini ke pemantauan fail2ban, dan mengesampingkan salah satu pengaturan default. Sebuah jail dapat menggunakan kombinasi pengaturan default dan spesifik jail.

Mengaktifkan fail2ban

Sejauh ini, kami telah menginstal fail2ban dan mengonfigurasinya. Sekarang, kita harus mengaktifkannya untuk dijalankan sebagai layanan mulai otomatis. Kemudian, kita perlu mengujinya untuk memastikannya berfungsi seperti yang diharapkan.

Untuk mengaktifkan fail2ban sebagai layanan, kita menggunakan perintah systemctl:

sudo systemctl enable fail2ban

Kami juga menggunakannya untuk memulai layanan:

sudo systemctl start fail2ban

Kami dapat memeriksa status layanan menggunakan systemctl juga:

sudo systemctl status fail2ban.service

Semuanya terlihat baik – kami mendapat lampu hijau, jadi semuanya baik-baik saja.

Mari kita lihat apakah fail2ban setuju:

sudo fail2ban-client status

Ini mencerminkan apa yang kami siapkan. Kami telah mengaktifkan satu jail, bernama [sshd]. Jika kita menyertakan nama jail dengan perintah sebelumnya, kita dapat melihatnya lebih dalam:

sudo fail2ban-client status sshd

Ini mencantumkan jumlah kegagalan dan alamat IP yang diblokir. Tentu saja, semua statistiknya nol saat ini.

Di komputer lain, kami akan membuat permintaan koneksi SSH ke mesin pengujian kami dan dengan sengaja salah mengetikkan kata sandi. Anda mendapatkan tiga upaya untuk mendapatkan kata sandi yang benar pada setiap upaya koneksi.

Nilai maxretry akan terpicu setelah tiga upaya koneksi gagal, bukan tiga upaya kata sandi yang gagal. Jadi, kita harus mengetikkan kata sandi yang salah tiga kali untuk gagal dalam upaya koneksi satu kali. Nbsp

Kami kemudian akan membuat upaya koneksi lagi dan mengetikkan kata sandi yang salah sebanyak tiga kali lagi. Upaya kata sandi pertama yang salah pada permintaan koneksi ketiga akan memicu fail2ban.

Setelah kata sandi salah pertama pada permintaan koneksi ketiga, kami tidak mendapat respons dari mesin jarak jauh. Kami tidak mendapatkan penjelasan apa pun; kami baru saja bersikap dingin.

Anda harus menekan Ctrl+C untuk kembali ke command prompt. Jika kita mencoba sekali lagi, kita akan mendapatkan respon yang berbeda:

ssh dave@ubuntu20-04.local

Sebelumnya, pesan kesalahannya adalah “Izin ditolak.” Kali ini, koneksinya ditolak mentah-mentah. Kami adalah persona non grata. Kami telah diblokir.

Mari kita lihat kembali detail penjara [sshd]:

sudo fail2ban-client status sshd

Ada tiga kegagalan, dan satu alamat IP (192.168.4.25) diblokir.

Seperti yang kami sebutkan sebelumnya, fail2ban memberlakukan larangan oleh menambahkan aturan ke kumpulan aturan firewall. Mari kita lihat lagi kumpulan aturan (sebelumnya kosong):

sudo iptables -L

Sebuah aturan telah ditambahkan ke kebijakan INPUT, mengirimkan lalu lintas SSH ke rantai f2b-sshd. Aturan dalam rantai f2b-sshd menolak koneksi SSH dari 192.168.4.25. Kami tidak mengubah pengaturan default untuk bantime, jadi, dalam 10 menit, alamat IP tersebut tidak akan diblokir dan dapat membuat permintaan koneksi baru.

Jika Anda menetapkan durasi larangan yang lebih lama (misalnya beberapa jam), namun ingin mengizinkan alamat IP untuk membuat permintaan koneksi lain lebih cepat, Anda dapat membebaskannya lebih awal.

Kami mengetikkan yang berikut untuk melakukan ini:

sudo fail2ban-client set sshd unbanip 192.168.5.25

Di komputer jarak jauh kami, jika kami membuat permintaan koneksi SSH lain dan mengetikkan kata sandi yang benar, kami akan diizinkan untuk terhubung:

ssh dave@ubuntu20-04.local

Terbaru

  • Apa Itu Error Gagal Kirim Nilai RDM 3.1? Ini Pengertian dan Solusi Mengatasinya
  • Facebook Mulai Batasi Link Eksternal Cuma 2 Sebulan! Ini Trik Mengatasinya
  • Cara Nonton Tensura Season 4! Bakal Tayang April 2026 dengan Format 5 Cour
  • Belum Tahu? Inilah Trik Supaya Live TikTok Kalian Aman dan Banjir Cuan
  • Pixel 8 Dapatkan Mode Panorama Baru! Hasil Foto Lebih Luas & Lebih Kreatif
  • Apa Itu AppLocker? Ini Pengertian dan Cara Mengamankan Windows 11 Kalian dari Skrip Jahat
  • Cara Membuat Riwayat Copilot Kamu Tetap Bersih dan Rapi!
  • Game & Aplikasi Android Terbaik Saat Diskon Liburan Natal! Jangan Ketinggalan!
  • Apa Itu Game Prison Escape Journey? Ini Pengertian dan Cara Mainnya untuk Pemula
  • “Listrik Gratis” dari Solar Panel Cuma Mitos?! Ini Sisi Gelap PLTS
  • Samsung Galaxy Z-Fold: Uji Jatuh Bebas yang Mengguncang Keandalan Lipatannya
  • Google One 2026: Apa yang Akan Jadi Fitur Utama dan Harga yang Diharapkan?
  • Apa Itu Error 0x800704f8? Ini Pengertian dan Cara Mengatasinya
  • Android Akhirnya Dapat GPS Darurat di India! Setelah Hampir 10 Tahun
  • Apa Itu GetContact Premium? Ini Pengertian dan Cara Daftarnya
  • Android Maze Figure: Koleksi Baru Google yang Bikin Penggemar Bergairah!
  • Google Update Besar-besaran Desember 2025: Apa yang Akan Memengaruhi Pengalaman Anda?
  • Masih Pusing Hitung Gaji Manual? Waktunya Pakai Aplikasi HR
  • Apa Itu Dustruco? Ini Pengertian dan Cara Pasangnya di HP Kalian
  • Apa Itu Aplikasi Dooie Live? Ini Pengertian dan Cara Pakai Aplikasinya untuk Cari Jodoh
  • Apa Itu Battle Emote Jefri Nichol dan Om Telolet Om di MLBB? Ini Penjelasannya
  • Apa itu Game Luna Mobile dan Bagaimana Cara Menangnya?
  • Apa Itu Kompensasi Sistem Trail Mobile Legends? Ini Penjelasan dan Cara Klaim Hadiahnya
  • Apa Itu Update Google Pixel 2 Desember 2025? Ini Penjelasannya!
  • Ini Cara Reset Desil di Aplikasi Cek Bansos Biar Valid (Update Januari 2026)
  • Apa Itu EZNET Wireless dan Fiber Optic? Ini Perbedaan dan Pengertian Lengkapnya
  • Pengertian Rework Magic Wheel dan Rank Mythic Eternal: Apa itu Perubahan Sistem Baru Mobile Legends?
  • Apa Itu Diamond Combo? Pengertian Game Puzzle Viral yang Katanya Bisa Hasilkan Cuan
  • Apa Itu Showbox? Pengertian, Fungsi, dan Cara Menggunakannya di Android
  • Cara Mengatasi Fitur Monet Facebook Pro Tiba-tiba Hilang
  • Apa itu Cosmic Desktop: Pengertian dan Cara Pasangnya di Ubuntu 26.04?
  • Apa Itu Auvidea X242? Pengertian Carrier Board Jetson T5000 dengan Dual 10Gbe
  • Elementary OS 8.1 Resmi Rilis: Kini Pakai Wayland Secara Standar!
  • Apa Itu Raspberry Pi Imager? Pengertian dan Pembaruan Versi 2.0.3 yang Wajib Kalian Tahu
  • Performa Maksimal! Ini Cara Manual Update Ubuntu ke Linux Kernel 6.18 LTS
  • Jelang Natal 2025 Fireworks.AI Beri Update Baru di NVIDIA Nemotron 3? Ini Penjelasan Lengkapnya
  • Apa Itu Elestio VibeCoder? Ini Pengertian dan Penjelasan Lengkapnya
  • Apa Itu Elestio Get A Team? Ini Pengertian Karyawan AI Digital
  • Apa itu RunPod? Ini Pengertian dan Tutorial Cara Deploy Pod Pertamamu
  • Apa Itu Migrasi Pod di RunPod? Ini Pengertian dan Cara Kerjanya
  • Apa Itu Kerentanan WatchGuard CVE-2024-36193? Ini Penjelasannya
  • Gila! 574 Penjahat Siber Diciduk Interpol di Afrika, Kok Bisa Jaringannya Segede Ini?
  • Apa Itu Regulasi Drone Asing FAA? Ini Pengertian dan Implikasinya
  • Apa Itu Insiden Data Breach Nissan? Ini Kronologi dan Penjelasannya
  • Apa Itu Skandal Instacart? Pengertian Dark Pattern dan Refund 940 Miliar
Beli Morning Star Kursi Gaming/Kantor disini: https://s.shopee.co.id/805iTUOPRV
Beli Pemotong Rumput dengan Baterai IRONHOOF 588V Mesin Potong Rumput 88V disini https://s.shopee.co.id/70DBGTHtuJ

©2025 emka.web.id | Design: Newspaperly WordPress Theme