Pertama-tama, jangan menemukan kembali kemudi. Itulah tepatnya denyhosts
untuk:
DenyHosts is a python program that automatically blocks ssh attacks by
adding entries to /etc/hosts.deny. DenyHosts will also inform Linux
administrators about offending hosts, attacked users and suspicious
logins.
Sejauh yang saya tahu, denyhosts
hanya untuk ssh
koneksi tetapi ada juga
fail2ban
yang berurusan dengan hampir semua hal:
Fail2Ban consists of a client, server and configuration files to limit
brute force authentication attempts.
The server program fail2ban-server is responsible for monitoring log
files and issuing ban/unban commands. It gets configured through a
simple protocol by fail2ban-client, which can also read configuration
files and issue corresponding configuration commands to the server.
Keduanya tersedia di repositori:
sudo apt-get install denyhosts fail2ban
Anda juga bisa membuat skrip ini, jika mau. Sesuatu seperti:
#!/usr/bin/env sh
netstat -an |
awk -vmax=100 '/tcp/{split($5,a,":"); if(a[1] > 0 && a[1]!="0.0.0.0"){c[a[1]]++}}
END{for(ip in c){if(c[ip]>max){print ip}}}' |
while read ip; do iptables -I INPUT 1 -s "$ip" -j DROP; done
The awk
akan mengekstrak IP dan menghitung mereka dan hanya mencetak orang-orang yang muncul lebih dari max
kali (di sini, -vmax=100
, mengubahnya sesuai). IP kemudian diumpankan ke loop sementara yang menjalankan iptables
aturan yang relevan .
Untuk menjalankan ini 24/7, saya akan membuat cronjob yang menjalankan perintah di atas setiap menit atau lebih. Tambahkan baris ini ke/etc/crontab
* * * * * root /path/to/script.sh