Cara Melindungi Otentikasi Server SSH dengan Fail2ban Ubuntu 18.04

Halo yang disana. Selamat datang di tutorial kami tentang cara melindungi otentikasi server SSH dengan fail2ban di Ubuntu 18.04.

Fail2ban adalah alat pencegahan intrusi yang ditulis dalam bahasa pemrograman Python untuk melindungi server atau service apa pun yang memerlukan otentikasi dari serangan brute force. Fail2ban memindai log server/service untuk menemukan apa pun yang tidak normal dan melarang IP berbahaya apa pun yang terkait dengannya. Misalnya beberapa upaya login gagal SSH.

Ini mencapai ini dengan menyesuaikan aturan firewall untuk menolak upaya lebih lanjut oleh host jahat untuk mengautentikasi ke sistem atau service yang sama untuk jangka waktu tertentu. Itu juga dapat dikonfigurasi untuk mengirim notifikasi pada hal yang sama.

Sebanyak fail2ban mengurangi masalah berbahaya seperti brute-forcing, itu tidak mengurangi kerentanan terhadap risiko yang ditimbulkan ke server/service Anda oleh mekanisme otentikasi yang lemah. Oleh karena itu, pastikan Anda menerapkan mekanisme otentikasi yang baik untuk sistem/service Anda.

Instal Fail2Ban di Ubuntu 18.04

Fail2ban tersedia di repositori default Ubuntu 18.04 dan dapat diinstal dengan menjalankan perintah di bawah ini;

sudo apt update sudo apt install fail2ban -y

File konfigurasi untuk fail2ban terletak di bawah /etc/fail2bandirektori dengan jail.confmenjadi file konfigurasi utama.

Untuk mengonfigurasi fail2ban untuk melindungi service tertentu, copy jail.confke jail.localfile konfigurasi khusus. Modifikasi  *.conffile secara langsung tidak disarankan karena jika terjadi peningkatan, mereka akan ditimpa dan perubahan yang dibuat di dalamnya akan hilang.

Oleh karena itu, Anda dapat menyalin file konfigurasi utama, jail.confke jail.localdan membuat kustomisasi Anda sendiri atau Anda dapat membuat konfigurasi kustom baru dan hanya menentukan pengaturan yang ingin Anda timpa di file.conf.

vim /etc/fail2ban/jail.local

Namun Anda dapat menggunakan ini jail.confuntuk memandu Anda tentang pengaturan yang ingin Anda timpa.

Pengaturan Global Fail2ban

[DEFAULT]bagian dari file konfigurasi mendefinisikan pengaturan yang diterapkan ke semua service yang dilindungi oleh fail2ban. Di bagian ini, Anda mungkin ingin mengganti pengaturan seperti ignoreip, bantime, findtime, maxretry, destemail, sender, mta, actionpengaturan.

Untuk menyesuaikan jail.local, edit dan masukkan konten berikut

[DEFAULT] ignoreip = 192.168.43.149 bantime = 1440m findtime = 5m maxretry = 5 destemail = [email protected] sender = [email protected]<fq-hostname> mta = postfix

Parameter ini dijelaskan di bawah ini;

  • ignoreip– Ini digunakan untuk menentukan alamat IP yang dibebaskan dari larangan oleh fail2ban. Beberapa alamat IP dapat ditentukan menggunakan pemisah ruang. Fail2ban tidak melarang host apa pun secara default.
  • bantime– Mendefinisikan berapa lama sebuah host diblokir ketika gagal untuk mengotentikasi dengan benar ke server. Biasanya 10 menit secara default.
  • findtime– Mendefinisikan periode jendela waktu di mana sebuah host diblokir jika menghasilkan sejumlah percobaan ulang otentikasi yang ditentukan oleh maxretryparameter. Biasanya 10 menit secara default.
  • maxretry  – Menentukan jumlah maksimum kegagalan sebelum host diblokir. Standarnya adalah 3.
  • destemail – Ini menentukan alamat email untuk mengirim pemberitahuan jika Anda ingin diberi tahu setiap kali host dilarang.
  • sender – Parameter ini menentukan nilai bidang “Dari” dalam email yang dikirim.
  • mta – Menentukan agen transfer surat untuk pengiriman.

Konfigurasikan Pengaturan Penjara SSH

Untuk menentukan pengaturan yang hanya berlaku untuk service tertentu misalnya SSH, Anda perlu membuat bagian untuk service itu. Secara default, service SSH diaktifkan sementara semua service lainnya dinonaktifkan. Untuk memblokir upaya login yang gagal di server SSH, buat jail seperti yang ditunjukkan di bawah ini.

# SSH Jail to block multiple failed login attempts [ssh] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log

Parameter yang digunakan dijelaskan di bawah ini;

  • enabled : Opsi ini mengaktifkan perlindungan server SSH.
  • port : Mendefinisikan service yang diatur fail2ban untuk dipantau
  • filter: Mendefinisikan file konfigurasi yang terletak di  /etc/fail2ban/filter.d/direktori yang digunakan fail2ban untuk menemukan kecocokan dan dalam hal ini,./etc/fail2ban/filter.d/sshd.conf
  • logpath : Parameter ini menentukan file log service lokasi.

Memulai fail2ban

Setelah Anda selesai dengan konfigurasi, simpan file konfigurasi dan mulai dan aktifkan fail2ban untuk dijalankan pada boot sistem.

systemctl start fail2ban systemctl enable fail2ban

Seperti yang Anda lihat di TINDAKAN, fail2ban digunakan iptablesuntuk memblokir atau melarang IP sumber apa pun yang mungkin terlibat dalam upaya otentikasi yang mencurigakan.

... # Default banning action (e.g. iptables, iptables-new, # iptables-multiport, shorewall, etc) It is used to define # action_* variables. Can be overridden globally or per # section within jail.local file banaction = iptables-multiport banaction_allports = iptables-allports... 

Periksa Status Larangan

Fail2ban beroperasi dalam model client-server. Program server fail2ban-serverbertanggung jawab untuk memantau file log dan mengeluarkan perintah larangan/pembatalan sementara program fail2ban-clientmembaca file konfigurasi dan mengeluarkan perintah konfigurasi yang sesuai ke server.

Untuk memeriksa status pelarangan, jalankan perintah di bawah ini;

fail2ban-client status Status |- Number of jail:	1 `- Jail list:	sshd

Ini akan menunjukkan kepada Anda penjara yang telah diaktifkan. Pada kasus ini,sshd.

Banning juga bisa dilakukan secara manual menggunakan fail2ban-clientperintah. Misalnya, untuk melarang IP tertentu, jalankan perintah;

fail2ban-client set sshd banip 192.168.43.220 192.168.43.220

Jika Anda dapat memeriksa status jail sekarang, Anda akan menemukan daftar IP yang dilarang.

fail2ban-client status sshd Status for the jail: sshd |- Filter | |- Currently failed:	0 | |- Total failed:	1 | `- File list:	/var/log/auth.log `- Actions |- Currently banned:	1 |- Total banned:	1 `- Banned IP list:	192.168.43.220

Untuk membuka blokir IP,

fail2ban-client set sshd unbanip 192.168.43.220

Uji Pelarangan SSH

Sebelum Anda dapat menyimpulkan bahwa fail2ban benar-benar berfungsi, Anda perlu mengujinya. Oleh karena itu, berdasarkan pengaturan yang kami tentukan di atas, agar IP dilarang, ia harus mencoba setidaknya 5 upaya login yang gagal dalam lima menit. Oleh karena itu, Anda dapat mencoba login ssh yang gagal ke server Anda dan memeriksa status jail.

fail2ban-client status sshd Status for the jail: sshd |- Filter | |- Currently failed:	1 | |- Total failed:	7 | `- File list:	/var/log/auth.log `- Actions |- Currently banned:	1 |- Total banned:	2 `- Banned IP list:	192.168.43.69

Anda juga dapat memeriksa entri log fail2ban;

tail -f /var/log/fail2ban.log 2018-11-30 00:04:21,048 fail2ban.filter [4125]: INFO [ssh] Found 192.168.43.69 - 2018-11-30 00:00:25 2018-11-30 00:04:21,048 fail2ban.filter [4125]: INFO [ssh] Found 192.168.43.69 - 2018-11-30 00:00:27 2018-11-30 00:04:21,049 fail2ban.filter [4125]: INFO [ssh] Found 192.168.43.69 - 2018-11-30 00:01:21 2018-11-30 00:04:21,050 fail2ban.filter [4125]: INFO [ssh] Found 192.168.43.69 - 2018-11-30 00:01:26 2018-11-30 00:04:21,050 fail2ban.filter [4125]: INFO [ssh] Found 192.168.43.69 - 2018-11-30 00:01
:29 2018-11-30 00:04:21,051 fail2ban.filter [4125]: INFO [ssh] Found 192.168.43.69 - 2018-11-30 00:01:38 2018-11-30 00:04:21,052 fail2ban.filter [4125]: INFO [ssh] Found 192.168.43.69 - 2018-11-30 00:01:40 2018-11-30 00:04:21,358 fail2ban.actions [4125]: NOTICE [ssh] Ban 192.168.43.69

Setelah Anda diblokir dan coba ssh lagi,

ssh [email protected] ssh: connect to host 192.168.43.154 port 22: Connection refused

Nah, dari output di atas, Anda dapat melihat bahwa fail2ban berfungsi dengan baik. Jangan ragu untuk menjelajahi lebih lanjut tentang alat yang indah ini. Itu saja yang diperlukan untuk melindungi server SSH Anda dengan Fail2ban. Dalam artikel kami berikutnya, kami akan melihat bagaimana melindungi service lain dengan cara yang sama. Terima kasih sudah membaca. Kami berharap ini informatif.

Tutorial lainnya

Instal dan Konfigurasikan Snort 3 NIDS di Ubuntu 20.04

Instal dan Konfigurasikan AIDE di Ubuntu 20.04

Instal dan Konfigurasi alat Pemantauan Keamanan Tripwire di CentOS 8