Mencegah serangan SSH

9

Saya mencoba menyiapkan aturan iptables untuk hanya mengizinkan 3 upaya dengan IP per menit untuk terhubung ke servir melalui SSH, dan memutuskan semua koneksi setelahnya untuk mencegah serangan SSH; tapi sepertinya saya melakukan sesuatu yang salah!

-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 3 --name DEFAULT --rsource -j DROP
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

Terima kasih

MGP
sumber

Jawaban:

10

Saya pikir Anda lebih baik harus menggunakan fail2ban, karena aturan ipfilter Anda juga memblokir koneksi yang sah. fail2banhanya akan memblokir IP setelah koneksi gagal.

Selanjutnya, praktik umum adalah untuk melarang IP ketika mereka mencoba untuk terhubung ke port 22, dan ikat server ssh Anda ke port lain. Anda kemudian menghadapi hanya beberapa koneksi tidak sah per minggu jika komputer Anda bukan target yang dikenal.

Untuk pertanyaan persisnya Anda bertanya:

iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
Gregory MOUSSAT
sumber
1
Karena server adalah vps low-end, saya mencoba untuk menjaga konsumsi sumber daya seminimal mungkin dengan tetap seaman mungkin. Saya sudah mengubah port server ssh. Haruskah saya menjaga aturan itu (di atas) ke port baru dan mencekal aturan default (22)?
MGP
Fail2ban sebenarnya adalah solusi terbaik, bahkan untuk VPS rendah
MGP
7

Anda dapat menerapkan apa yang Anda inginkan dengan 2 aturan berikut

iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set

iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 3 -j DROP

Perhatikan bahwa menggunakan -Ayang menambahkan aturan pada akhir rantai dapat gagal karena cara aturan iptables diproses yaitu agar jadi jika ada DROP umum atau aturan perbolehkan sebelum Anda tercapai maka aturan itu tidak akan pernah ditindaklanjuti.

Setelah mengatakan bahwa Anda juga mungkin menemukan fail2ban adalah cara yang lebih baik untuk mengimplementasikan blok semacam ini.

user9517
sumber
Ketika saya mencoba untuk menambahkan aturan-aturan itu, saya mendapatkan pesan kesalahan: iptables: Tidak ada rantai / target / cocok dengan nama itu.
MGP
Suara positif untuk fail2ban.
Michael B
4

Anda mungkin ingin mencoba modul LIMIT.

iptables -A INPUT -p tcp --dport 22 -m limit --limit 3/minute -j ACCEPT
Magellan
sumber