Pernahkah Anda masuk ke server Anda dan melihat pesan seperti ini?
Last failed login: Fri Dec 28 11:37:02 MST 2018 from 192.168.0.102 on ssh:notty
There were 942 failed login attempts since the last successful login.
Last login: Mon Dec 24 13:35:57 2018 from 192.168.0.101
Apa yang terjadi disini? Pesan ini memberitahu saya bahwa ketika saya keluar, ada 942 upaya gagal untuk mengakses server saya melalui SSH! Jenis pesan ini adalah indikator kuat bahwa server saya mungkin berada di bawah serangan "brute force".
Dalam jenis skenario ini, penyerang akan mencoba menebak kata sandi
secara acak berulang kali sampai mereka beruntung dengan kata sandi yang
benar. Ini adalah salah satu alasan mengapa menggunakan kata sandi yang aman sangat penting! Jangan takut, Fail2ban bisa menjadi alat yang fantastis untuk secara dinamis menggagalkan jenis serangan brute force ini.
Tutorial ini akan memandu Anda melalui menginstal dan mengkonfigurasi
Fail2ban untuk membantu melindungi sshd dari serangan brute force. Ayo gali!
Menginstal Fail2ban
Menginstal Fail2ban di Ubuntu Server 16.04 sederhana. Jalankan dua perintah berikut untuk menginstal program:
apt-get update
apt-get install fail2ban -y
Kami akan memulai layanan, sehingga sedang berjalan.
service fail2ban restart
Akhirnya, kami memeriksa untuk memastikan Fail2ban berjalan setelah restart:
service fail2ban status
Output akan menampilkan aktif (berjalan) yang menunjukkan layanan sudah habis dan kami siap untuk melanjutkan ke konfigurasi.
Mengkonfigurasi Fail2ban
Sekarang setelah Fail2ban diinstal dan dijalankan, kita dapat
menetapkan aturan khusus untuk layanan apa yang dilindungi, dan cara
menangani pelanggaran.
Pertama, buat file konfigurasi untuk Fail2ban. File ini tidak ada secara default, tetapi Fail2ban akan mencari file ini dan membaca kontennya jika ada:
touch /etc/fail2ban/jail.local
Sekarang kita akan membuka file konfigurasi untuk diedit. Kami menggunakan vi sebagai editor teks kami dalam contoh ini, tetapi jangan ragu untuk menggunakan nano atau editor teks apa pun yang paling nyaman bagi Anda. (Terkait: lihat tutorial bermanfaat kami jika Anda perlu memoles cara menggunakan nano .) Jalankan perintah berikut untuk membuka file untuk diedit:
nano /etc/fail2ban/jail.local
pastekan konten berikut, dan simpan file:
[DEFAULT] ignoreip = 127.0.0.1/8 ::1
bantime = 3600
findtime = 600
maxretry = 5
[sshd] enabled = true
Mari kita tinjau opsi yang baru saja kita atur. Pertama, kami memberi tahu Fail2ban untuk mengabaikan alamat IP 127.0.0.1 dan :: 1. Ini adalah masing-masing alamat IPv4 dan IPv6 untuk localhost . Untuk baris yang tersisa, penting untuk memahami Fail2ban membaca waktu sebagai detik dalam file konfigurasi. Aturan-aturan ini akan melarang alamat IP selama satu jam { bantime = 3600 }, jika mereka membuat 5 kesalahan { maxretry = 5 }, dalam 10 menit { findtime = 600 }. Akhirnya, kami mengaktifkan jail untuk sshd. Jangan ragu untuk menyesuaikan angka-angka ini sesuai dengan keinginan Anda, tetapi harap pertimbangkan hal-hal berikut:
Menetapkan larangan waktu -1 akan menghasilkan larangan permanen pada alamat IP tersebut. Anda mungkin perlu menghubungi dukungan Liquid Web jika Anda secara tidak sengaja memblokir diri Anda dari server Anda sendiri. Pertimbangkan opsi-opsi ini dengan cermat!
service fail2ban restart
Kami juga akan memeriksa ulang untuk memastikan Fail2ban berjalan setelah restart: service fail2ban status
Penggunaan Fail2ban
Pada titik ini, Anda telah berhasil menginstal dan mengkonfigurasi Fail2ban, selamat!
Untuk sisa tutorial ini, kami akan menunjukkan kepada Anda bagaimana
menggunakan untuk menggunakan program dan cara mengelola blok IP.
Jalankan perintah berikut untuk memeriksa status Fail2ban:
fail2ban-client status
Contoh output menunjukkan jumlah penjara yang saat ini dikonfigurasi. Saat ini kami hanya membuat penjara untuk sshd :
Status
|- Number of jail: 1
`- Jail list: sshd
Anda juga dapat memilih status terperinci dari masing-masing penjara. Perintah ini akan memeriksa status penjara sshd yang baru saja kita konfigurasi:
fail2ban-client status sshd
Contoh output menunjukkan tidak ada IP yang diblokir, terlihat bagus!
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 0
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 0
|- Total banned: 0
`- Banned IP list:
Sekarang, misalnya, saya akan gagal lima upaya untuk SSH ke server saya. Setelah upaya kelima gagal, IP saya akan diblokir secara otomatis! Berikut ini menunjukkan output dari workstation saya ketika saya mencoba SSH ke server setelah upaya kelima gagal:
ssh: connect to host 192.168.0.101 port 22: Connection refused
Pesan " koneksi ditolak " menunjukkan bahwa firewall server sekarang memblokir kami.
Kembali ke server, mari kita periksa lagi status penjara SSH dengan menjalankan:
fail2ban-client status sshd
Keluaran menunjukkan bahwa IP saya memang telah diblokir! Melihat statusnya, kita dapat melihat alamat IP workstation saya telah ditambahkan ke " Daftar IP yang dilarang ".
Status for the jail: sshd
|- Filter
| |- Currently failed: 1
| |- Total failed: 1
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 1
|- Total banned: 1
`- Banned IP list: 192.168.0.102
Terakhir, kami akan menunjukkan cara menghapus IP yang terlarang. Ini berguna jika Anda memiliki klien yang secara tidak sengaja memblokir diri dari upaya kata sandi yang salah. Sintaks untuk perintah ini adalah sebagai berikut:
fail2ban-client set unbanip
Sebagai contoh, perintah ini akan menghapus 192.168.0.102 dari sshd jail.
fail2ban-client set sshd unbanip 192.168.0.102
Mari kita periksa pekerjaan kita dan pastikan alamat IP saya berhasil diblokir:
fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 1
| |- Total failed: 6
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 0
|- Total banned: 1
`- Banned IP list:
Itu membungkusnya untuk tutorial ini!
Kami hanya membahas melindungi sshd dalam tutorial ini, tetapi Fail2ban
dapat digunakan untuk membantu melindungi semua jenis layanan lain
seperti httpd. Kami mendorong Anda untuk membaca lebih lanjut dan melihat kemampuannya! Ingatlah bahwa meskipun Fail2ban mengagumkan, ini bukan pengganti untuk sekumpulan aturan firewall yang kuat. Namun, ketika dikonfigurasi dengan benar, Fail2ban adalah alat yang hebat untuk membantu semakin memperketat keamanan server Anda . Selamat bersenang-senang dan senang memblokir IP!