Pasang Fail2ban Supaya Server Lebih Aman
|Satu lagi catatan terkait keamanan server yang akan saya tuliskan. Tutorialnya sudah banyak tersebar di internet, namun belum banyak yang membahasnya dalam bahasa indonesia.
Tujuan
Nah tentunya pemasangan fail2ban itu sendiri memiliki tujuan dan maksud tertentu. Tapi mungkin sebagian dari kita untuk urusan security atau keamanan server masih sering abai.
Fail2ban adalah solusi perangkat lunak yang bertujuan untuk menjaga keamanan server dengan mengidentifikasi dan menghalangi serangan bruteforce atau serangan berulang yang mencurigakan, serta memblokir akses dari sumber yang mencurigakan. Fungsinya mencakup:
- Mencegah serangan bruteforce: Fail2ban mengenali pola serangan yang mencoba mengakses server dengan berbagai kombinasi kata sandi atau informasi otentikasi lainnya. Misalnya, saat ada serangan yang berusaha masuk ke server SSH dengan mencoba kombinasi kata sandi berulang kali, Fail2ban akan secara otomatis memblokir alamat IP yang mencoba serangan tersebut untuk sementara waktu.
- Mengurangi risiko: Dengan menangkal alamat IP yang mencurigakan, Fail2ban membantu mengurangi risiko serangan yang berpotensi berhasil terhadap server, sehingga meningkatkan keamanan sistem secara keseluruhan.
- Pelaporan dan pemantauan: Fail2ban mampu melacak aktivitas mencurigakan dan memberikan laporan terkait serangan yang terdeteksi. Fitur ini memungkinkan administrator sistem memahami pola serangan dan mengambil langkah pencegahan yang sesuai.
- Konfigurasi yang fleksibel: Fail2ban dapat dikonfigurasi sesuai kebutuhan, memungkinkan administrator sistem untuk menyesuaikan aturan deteksi dan tindakan blokir agar sesuai dengan lingkungan server mereka.
- Dukungan untuk berbagai layanan: Selain melindungi layanan SSH, Fail2ban juga dapat diterapkan untuk melindungi layanan lain seperti FTP, HTTP, MySql dan sebagainya. Kemampuannya yang serbaguna menjadikannya alat yang sangat berguna untuk meningkatkan keamanan server secara keseluruhan.
Installasi
Fail2ban support untuk beberapa Operating System Server, seperti berikut :
- Ubuntu dan turunannya seperti Linux Mint.
- Debian dan turunannya.
- CentOS dan turunannya seperti RHEL (Red Hat Enterprise Linux) dan Fedora.
- Arch Linux dan turunannya seperti Manjaro.
- openSUSE.
Sebagai contoh, saya akan melakukan installasi apda Ubuntu Server, denagn perintah sebagai berikut :
# Update Pakage Ubuntu Server
sudo apt update
sudo apt upgrade
# Installasi Fail2ban
sudo apt install fail2ban
Jika Fail2ban terinstal, selanjutnya dapat menyesuaikan konfigurasi sesuai dengan kebutuhan Anda. Konfigurasi utama Fail2ban terletak di dalam direktori /etc/fail2ban/
.
File konfigurasi utama adalah fail2ban.conf
dan jail.conf
. Namun, disarankan untuk tidak mengedit langsung file-file konfigurasi tersebut, melainkan membuat salinan baru dengan nama fail2ban.local
dan jail.local
, lalu melakukan perubahan pada salinan tersebut. Ini membantu menjaga integritas konfigurasi default jika diperlukan.
Sekarang mari kita buat sebuah konfigurasi baru apda file jail.local
# Konfigurasi untuk SSH
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 86400
# Konfigurasi untuk Mysql
[mysql]
enabled = true
port = mysql
filter = mysqld-auth
logpath = /var/log/mysql/error.log
maxretry = 3
bantime = 86400
Sekarang kita sudah memiliki sebuah konfigurasi perlindungan server untuk SSH dan Mysql. Yang nantinya jika ada percobaan sebanyak 3 kali dan gagal, maka ip address dari user yang melakukan percobaan tersebut akan di banned selama 24 Jam.
Memasitikan fail2ban sudah running :
# Status
servcie fail2ban status
fail2ban.service - Fail2Ban Service
Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2024-04-02 07:49:08 WIB; 7h ago
Docs: man:fail2ban(1)
Main PID: 1002041 (fail2ban-server)
Tasks: 9 (limit: 19136)
Memory: 14.5M
CPU: 1min 46.987s
CGroup: /system.slice/fail2ban.service
└─1002041 /usr/bin/python3 /usr/bin/fail2ban-server -xf start
Menjalankan service lain fail2ban
# Start
service fail2ban start
# Reload
service fail2ban reload
# Restart
service fail2ban restart
# Stop
service fail2ban stop
Cek status ip yang terbanned :
# SSH
sudo fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 3
| |- Total failed: 350
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 78
|- Total banned: 78
`- Banned IP list: 201.163.162.179 43.156.7.9 43.163.199.17 198.12.70.44 165.22.193.40 43.163.245.206 150.109.255.144
# MySql
sudo fail2ban-client status mysql
Status for the jail: mysql
|- Filter
| |- Currently failed: 0
| |- Total failed: 129
| `- File list: /var/log/mysql/error.log
`- Actions
|- Currently banned: 34
|- Total banned: 34
`- Banned IP list: 182.53.129.82 112.167.76.231 14.249.140.44 116.96.47.233 103.203.204.2 14.4.176.38 171.232.199.14 27.72.40.143
Membuka Ip Address yang terbanned :
# SAMPLE
sudo fail2ban-client set [JAIL_NAME] unbanip [IP_ADDRESS]
# SSH
sudo fail2ban-client set sshd unbanip 192.168.0.1
# MySql
sudo fail2ban-client set sshd mysql 192.168.0.1
Sangat mudah, dan cukup powerfull untuk setidaknya memberikan perlindungan bagis server kita. Selamat mencoba. 🙂