Beberapa IP sedang membuka ribuan koneksi server saya. Saya memiliki server Ubuntu 14. Saya memeriksa total koneksi menggunakan perintah berikut:
netstat -an | grep tcp | awk '{print $ 5}' | cut -f 1 -d: | sortir | uniq -c | semacam -n
Lalu saya menggunakan aturan iptables berikut untuk memblokir IP pelakunya.
iptables -Saya INPUT 1 -s xxxx -j DROP
Ini berfungsi dengan baik dan memblokir alamat IP. Namun, saya tidak bisa online 24/7 untuk memantau server. Saya ingin tahu apakah ada skrip Shell yang dapat saya gunakan untuk melakukannya secara otomatis? Sebagai contoh, jika suatu IP membuka lebih dari X jumlah koneksi kapan saja, itu harus secara otomatis dilarang oleh aturan iptables di atas.
command-line
scripts
iptables
connection
pengguna3404047
sumber
sumber
Jawaban:
Pertama-tama, jangan menemukan kembali kemudi. Itulah tepatnya
denyhosts
untuk:Sejauh yang saya tahu,
denyhosts
hanya untukssh
koneksi tetapi ada jugafail2ban
yang berurusan dengan hampir semua hal:Keduanya tersedia di repositori:
Anda juga bisa membuat skrip ini, jika mau. Sesuatu seperti:
The
awk
akan mengekstrak IP dan menghitung mereka dan hanya mencetak orang-orang yang muncul lebih darimax
kali (di sini,-vmax=100
, mengubahnya sesuai). IP kemudian diumpankan ke loop sementara yang menjalankaniptables
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
sumber
fail2ban
bukan hanya untuk ssh. Ini juga berfungsi dengan baik untuk port 80. Lihat, misalnya di sini , di sini dan di sini .Opsi alternatif yang mungkin adalah mengidentifikasi dan menangani masalah alamat IP semua dalam aturan iptables yang ditetapkan, menggunakan
recent
modul. Tantangan dengan metode ini adalah batas hitcount default 20, jadi kita harus menyimpang dari default atau membuat penghitung carry level yang lebih tinggi untuk mencapai titik pemicu hitcount yang lebih tinggi.Contoh di bawah ini dari set aturan iptables saya, dan akan mencekal alamat ip hanya selama 1 hari jika itu membuat 80 koneksi TCP baru pada port 80 dalam waktu kurang dari 12 menit. Setelah masuk daftar orang jahat, setiap upaya untuk terhubung akan mengatur ulang penghitung 1 hari menjadi 0. Metode ini bisa mencapai maksimum 400 hit sebelum ekspansi ke carry lain akan diperlukan (dan saya telah menguji rantai carry lain). Perhatikan bahwa kode yang diposting memiliki infrastruktur yang hanya digunakan untuk melarang waktu yang lama pada beberapa pemicu waktu yang lebih singkat. Saat ini, saya sudah mengatur untuk hanya melarang untuk waktu yang lama pada pemicu pertama.
sumber