DenyHosts adalah alat keamanan pencegahan intrusi berbasis log untuk server SSH yang ditulis dengan Python. Ini dirancang untuk mencegah serangan brute-force pada server SSH dengan memantau upaya login yang tidak valid di log otentikasi dan memblokir alamat IP asal menggunakan /etc/hosts.deny dan sbin/iptables di server Linux. Dalam tutorial ini, Anda akan belajar cara menginstal DenyHosts, program python yang secara otomatis memblokir serangan ssh dengan menambahkan entri ke file /etc/hosts.deny.
Tutorial diuji pada instalasi server Ubuntu 17.04.
1. Pertama-tama mari kita instal perangkat lunaknya:
$ sudo apt-get install denyhosts
Code language: JavaScript (javascript)
2. Tambahkan alamat Anda ke hosts.allow untuk memastikan bahwa alamat tersebut tidak diblokir.
sudo pico /etc/hosts.allow
Contoh cara menambahkan lebih dari satu alamat:
sshd: 212.22.112.113 , 10.20.133.3 , 192.168.0.1 , 127.0.0.1
Code language: CSS (css)
3. Sekarang mari kita konfigurasikan file konfigurasi Denyhosts:
$ sudo pico /etc/denyhosts.conf
Make sure SECURE_LOG set as follows:
SECURE_LOG = /var/log/auth.log
HOSTS_DENY set as follows:
HOSTS_DENY = /etc/hosts.deny
Block only sshd:
BLOCK_SERVICE = sshd
Deny threshold limit for login attempts:
DENY_THRESHOLD_INVALID = 5
DENY_THRESHOLD_VALID = 10
DENY_THRESHOLD_ROOT = 1
DENY_THRESHOLD_RESTRICTED = 1
Block incoming connections using the Linux firewall IPTABLES:
IPTABLES = /sbin/iptables
Code language: PHP (php)
4. AKTIFKAN layanan DenyHosts:
$ sudo systemctl enable denyhosts.service
Anda akan melihat sesuatu seperti ini:
Menyinkronkan status Denyhosts.service dengan SysV init dengan /lib/systemd/systemd-sysv-install…Menjalankan /lib/systemd/systemd-sysv-install aktifkan Denyhosts
5. Mulai ulang layanan DenyHosts:
sudo /etc/init.d/denyhosts restart
6. Beberapa perintah untuk memeriksa apakah semuanya berfungsi dan untuk mencantumkan alamat yang ditambahkan ke daftar blokir:
$ sudo grep 'something' /var/log/denyhosts
$ sudo tail -f /var/log/denyhosts
$ sudo cat /etc/hosts.deny
sudo iptables -L INPUT -n -v | grep DROP
Code language: JavaScript (javascript)
Perhatian:
Harap diperhatikan bahwa DenyHosts dibatasi untuk koneksi yang menggunakan IPv4. Ini tidak bekerja dengan alamat IP berbasis IPv6. Opsi lainnya adalah menggunakan perintah iptables untuk melihat alamat IP yang diblokir:
Aktifkan dukungan sinkronisasi terpusat?
DenyHosts versi 2.0 dan di atasnya mendukung sinkronisasi terpusat, sehingga pelanggar berulang diblokir dari banyak komputer. Situs xmlrpc.denyhosts.net mengumpulkan statistik dari komputer yang menjalankan perangkat lunak. Sinkronisasi dinonaktifkan secara default. Untuk mengaktifkan sinkronisasi, masukkan:
$ sudo pico /etc/denyhosts.conf
Kemudian tambahkan:
SYNC_SERVER = http://xmlrpc.denyhosts.net:9911
Code language: JavaScript (javascript)
Dan mulai ulang:
$ sudo /etc/init.d/denyhosts restart