GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengamankan SSH dengan Fail2Ban

Melindungi server Anda dari serangan brute force adalah suatu keharusan. Pertanyaannya, bagaimana tepatnya? Beruntung bagi Anda, Fail2Ban sudah dekat untuk melindungi server Anda, tetapi konfigurasi default Fail2Ban memerlukan beberapa penyesuaian untuk keamanan yang optimal. Namun jangan khawatir, tutorial ini telah membantu Anda.

Dalam tutorial ini, Anda akan mempelajari cara menyiapkan Fail2Ban dan menangkal serangan brute force dengan mengamankan server SSH Anda.

Siap? Baca terus untuk mengoptimalkan keamanan server SSH Anda!

Prasyarat

Tutorial ini berisi petunjuk langkah demi langkah. Jika Anda ingin mengikuti, pastikan Anda memiliki yang berikut ini:

  • Server Ubuntu dan Debian – Tutorial ini menggunakan server yang menjalankan Ubuntu 18.04 LTS untuk menyiapkan Fail2Ban dan server Debian 10 untuk menguji konfigurasi pelarangan Fail2Ban.
  • Akses root atau hak sudo di server untuk menjalankan perintah sebagai pengguna super.
  • Fail2Ban diinstal di server Ubuntu atau Debian.

Menyiapkan Firewall Dasar

Fail2Ban melindungi server Anda dengan memantau log dan melarang alamat IP yang melakukan terlalu banyak upaya login dalam jangka waktu tertentu. Tetapi pertama-tama, Anda akan menyiapkan firewall dasar tempat Anda dapat menambahkan aturan untuk memblokir tindakan jahat di server Anda.

1. Pertama, jalankan service perintah di bawah ini untuk menghentikan Fail2Ban (fail2ban stop ) dari berlari. Hentikan Fail2Ban saat Anda membuat perubahan pada file konfigurasi sehingga Anda dapat menguji perubahan dan memastikannya berfungsi seperti yang diharapkan.

sudo service fail2ban stop

2. Jalankan apt install perintah untuk menginstal Sendmail dan IPTables-persistent . Sendmail adalah program yang digunakan Fail2Ban untuk memberi tahu Anda saat memblokir alamat IP. Sedangkan IPTables-persistent adalah program yang menyimpan pengaturan konfigurasi yang Anda ubah di /etc/sysconfig/iptables mengajukan.

Dengan menginstal program-program ini, pengaturan firewall Anda tetap utuh bahkan jika sesuatu yang tidak terduga terjadi, seperti pemadaman listrik.

sudo apt install sendmail iptables-persistent -y

Sekarang jalankan setiap iptables perintah di bawah ini untuk mengatur firewall Anda. Perintah-perintah ini tidak akan menghasilkan output apa pun tetapi menambahkan empat aturan ke firewall Anda. Aturan ini mengizinkan atau memblokir koneksi ke server Anda.

## First Rule - Accepts all traffic generated by the server (lo interface) 
sudo iptables -A INPUT -i lo -j ACCEPT
## Second Rule - Accepts all traffic that are part 
## of an established o related connection
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
## Third Rule - Allows SSH traffic on port 22
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
## Fourth Rule - Arops all other traffic
sudo iptables -A INPUT -j DROP

4. Jalankan iptables perintah di bawah ini untuk melihat ringkasan dari apa yang telah Anda siapkan di firewall Anda.

sudo iptables -S

Di bawah ini, disorot adalah aturan yang telah Anda tambahkan di firewall Anda.

5. Selanjutnya, jalankan perintah berikut untuk menyimpan aturan Anda di /etc/sysconfig/iptables-config file dan mulai layanan Fail2Ban. iptables-config file memegang semua aturan firewall permanen Anda.

Fail2Ban akan secara otomatis menambahkan beberapa aturan ke firewall Anda untuk melindungi server Anda.

sudo dpkg-reconfigure iptables-persistent
sudo service fail2ban start

6. Terakhir, jalankan kembali iptables perintah di bawah ini untuk melihat aturan firewall Anda.

sudo iptables -S

Yang ditunjukkan di bawah ini, disorot dengan warna merah adalah aturan baru yang telah ditambahkan Fail2Ban ke firewall Anda.

Menyesuaikan Konfigurasi Fail2Ban Lokal Anda

Sekarang setelah Anda menjalankan firewall dasar, saatnya untuk menyesuaikan file konfigurasi Fail2Ban lokal Anda untuk menambahkan lebih banyak kontrol dalam mengamankan server Anda. Tutorial ini menggunakan /etc/fail2ban/jail.conf file konfigurasi karena berisi semua opsi yang diperlukan untuk mengonfigurasi pengaturan global untuk aplikasi Fail2Ban.

Mungkin, Anda ingin membuat aturan khusus untuk server SSH Anda. Jika demikian, Anda akan membuat jail.local baru file (berdasarkan jail.conf file) dan letakkan aturan khusus SSH di jail.local mengajukan. Melakukannya memungkinkan Anda mengganti pengaturan di jail.conf file untuk server Anda.

1. Jalankan awk perintah di bawah ini untuk melakukan hal berikut:

  • Cetak konten ('{ printf "# "; print; }' ) dari /etc/fail2ban/jail.conf berkas.
  • Buat file bernama jail.local (berdasarkan jail.conf file), yang dapat digunakan untuk mengganti pengaturan default di jail.conf berkas.
  • Pipakan isi /etc/fail2ban/jail.conf file ke tee memerintah. Melakukannya akan menulis jail.conf konten file ke sistem file lokal Anda (/etc/fail2ban/jail.local ).
awk '{ printf "# "; print; }' /etc/fail2ban/jail.conf | sudo tee /etc/fail2ban/jail.local

2. Setelah Anda membuat jail.local file, jalankan ls perintah di bawah. Perintah tersebut mencantumkan konten direktori Fail2Ban server Anda (/etc/fail2ban ) untuk memverifikasi bahwa jail.local your Anda file dihasilkan dengan benar.

ls /etc/fail2ban

Jika Anda melihat jail.local baru file, seperti yang ditunjukkan di bawah ini, maka file lokal Anda dibuat dengan benar.

3. Buka /etc/fail2ban/jail.local file di editor teks pilihan Anda dan navigasikan ke [ssh] bagian.

Batalkan komentar pada [sshd] dan diaktifkan opsi dengan menghapus # simbol di depan opsi, seperti yang ditunjukkan di bawah ini untuk mengaktifkan SSH.

Dari titik ini hingga tutorial selanjutnya, hapus # simbol di depan bagian atau opsi untuk mengaktifkannya.

4. Gulir ke bawah, dan batalkan komentar pada [DEFAULT] bagian yang ditunjukkan di bawah ini. Bagian ini adalah tempat Anda mengonfigurasi pengaturan default untuk Fail2Ban. Pengaturan apa pun di bagian ini akan diterapkan ke semua jail yang dikelola Fail2Ban.

5. Selanjutnya, gulir ke bawah ke bantime bagian, dan atur bantime untuk 60 menit. Bantime opsi menetapkan jumlah waktu, dalam menit, bahwa alamat IP dilarang setelah upaya login yang gagal.

Pengaturan bantime default adalah 600 detik (10 menit). Anda dapat menyesuaikan setelan ini sesuai keinginan Anda, tetapi penting untuk diperhatikan bahwa semakin rendah setelan bantime, semakin banyak beban yang akan dialami server Anda.

6. Navigasikan ke findtime dan maxretry pilihan. Pertahankan waktu mencari apa adanya (10m ) dan turunkan maxretry ke 3 .

waktu mencari opsi menetapkan jumlah waktu, dalam menit, bahwa alamat IP dapat gagal masuk sebelum dilarang. Sedangkan maxretry opsi menetapkan jumlah upaya login yang gagal sebelum alamat IP dilarang.

Default findtime pengaturannya adalah 10 menit, dan maxretry adalah 5 menit. Akibatnya, alamat IP yang gagal login 5 kali dalam waktu 10 menit akan diblokir.

7. Gulir ke bawah, batalkan komentar dan konfigurasikan destemail , pengirim , dan mta pilihan:

  • destemail – Masukkan alamat email tempat Fail2Ban mengirimkan notifikasi.
  • pengirim – Setel bidang “Dari” di email yang dikirim Fail2Ban ke destemail .
  • mta – Pertahankan default (sendmail ) dengan adanya. mta opsi menyetel agen pengiriman email yang digunakan Fail2Ban untuk mengirim notifikasi.

8. Navigasikan ke tindakan opsi, seperti yang ditunjukkan di bawah ini, dan batalkan komentar pada action_mwl pilihan. Melakukannya memungkinkan Fail2Ban mengirim email logwatch kepada Anda. Anda dapat meninjau email logwatch untuk menyelidiki lebih lanjut potensi masalah keamanan di server Anda.

Simpan perubahan dan keluar dari editor teks.

9. Sekarang jalankan perintah di bawah ini untuk memulai ulang fail2ban melayani.

sudo service fail2ban stop
sudo service fail2ban start

10. Terakhir, jalankan perintah di bawah ini untuk memeriksa fail2ban layanan status . sudo service fail2ban status Jika layanan Fail2Ban berfungsi, Anda akan mendapatkan output seperti di bawah ini.

sudo service fail2ban status

Jika layanan Fail2Ban berfungsi, Anda akan mendapatkan output seperti di bawah ini.

Menguji Konfigurasi Pelarangan Anda

Anda baru saja mengonfigurasi Fail2Ban, jadi sekarang saatnya untuk menguji apakah konfigurasi pelarangan benar-benar berfungsi. Coba beberapa kali login SSH yang gagal ke server Fail2Ban Anda dari server sekunder dan lihat apakah server sekunder tersebut diblokir.

1. Masuk ke server sekunder Anda (Debian), dan jalankan perintah di bawah ini ke SSH ke server Fail2Ban Anda.

Demo ini menggunakan server Debian 10 dengan IP 134.122.20.103 hingga ssh ke fail2ban server yang memiliki IP 69.28.83.134 .

ssh [email protected]

2. Masukkan kata sandi acak saat diminta dan tekan Enter.

Pada percobaan pertama, server Fail2Ban akan menghentikan upaya login SSH dan mencetak Izin ditolak pesan, seperti yang ditunjukkan di bawah ini. Ulangi upaya login SSH sekitar dua hingga tiga kali lagi, dan server Fail2Ban pada akhirnya akan berhenti merespons upaya login SSH Anda.

Pada titik ini, Anda tidak akan mendapatkan Izin ditolak pesan lagi tapi layar kosong. Mendapatkan layar kosong menunjukkan bahwa server kedua Anda (Debian) telah dilarang dari server Fail2Ban.

Tapi mungkin Anda sudah memiliki daftar alamat IP untuk diblokir dari server Fail2Ban Anda. Jika sudah, buka jail.local file dan navigasikan ke [DEFAULT] bagian. Batalkan komentar pada ignoreip opsi dan atur alamat IP untuk diblokir, seperti yang ditunjukkan di bawah ini.

Alamat dapat berupa beberapa entri IPv4 atau IPv6 terpisah, atau dipisahkan dengan koma.

3. Di server Fail2Ban Anda (Ubuntu), jalankan kembali iptables perintah di bawah ini untuk melihat aturan firewall Anda.

sudo iptables -S

Perhatikan di bawah bahwa ada aturan baru yang menolak upaya login SSH dari 134.122.20.103 Alamat IP.

Anda juga akan menerima email dari Fail2Ban, setelah larangan berhasil, dengan file log terlampir jika Anda telah mengatur sendmail di server Fail2Ban Anda. Notifikasi email menunjukkan bahwa Fail2Ban telah berhasil menghentikan serangan brute force dan menyelamatkan server Anda dari potensi kerusakan.

Kesimpulan

Sepanjang tutorial ini, Anda telah belajar cara mengkonfigurasi Fail2Ban di server Ubuntu. Pada titik ini, Anda harus dibekali dengan pengetahuan untuk melindungi server SSH Anda dari serangan brute force.

Sekarang, mengapa tidak meningkatkan pengetahuan yang baru ditemukan ini? Mungkin mulai dengan memblokir IP di semua port dengan Fail2Ban di host buruh pelabuhan?


Linux
  1. Bagaimana Cara Ssh Ke Server Menggunakan Server Lain??

  2. Amankan Server Linux Anda Dengan Fail2Ban [Panduan Pemula]

  3. Cara Mengamankan Server PostgreSQL

  1. Cara Menggunakan Fail2ban untuk Mengamankan SSH di CentOS 7

  2. Cara Install SSH Server di Ubuntu / Debian dengan OpenSSH

  3. Cara Mengamankan Layanan SSH dengan Port Knocking

  1. Cara membuat server file pribadi dengan SSH di Linux

  2. Cara Melindungi Apache dan SSH Dengan Fail2Ban di CentOS 8

  3. Cara Mengamankan server Ubuntu Anda dengan CSF Firewall