Ngăn chặn các cuộc tấn công SSH


9

Tôi đang cố gắng thiết lập các quy tắc iptables để chỉ cho phép 3 lần thử IP mỗi phút để kết nối với servir thông qua SSH và bỏ tất cả các kết nối sau để ngăn chặn các cuộc tấn công SSH; nhưng có vẻ như tôi đang làm gì đó sai!

-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

Cảm ơn

Câu trả lời:


10

Tôi nghĩ bạn tốt hơn nên sử dụng fail2ban, bởi vì các quy tắc ipfilter của bạn cũng chặn các kết nối hợp pháp. fail2bansẽ chỉ chặn IP sau khi kết nối không thành công.

Tiếp theo, một thực tế phổ biến là cấm IP khi họ cố gắng kết nối với cổng 22 và liên kết máy chủ ssh của bạn với một cổng khác. Sau đó, bạn chỉ phải đối mặt với một vài kết nối bất hợp pháp mỗi tuần nếu máy tính của bạn không phải là mục tiêu nổi tiếng.

Đối với câu hỏi chính xác mà bạn đã hỏi:

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

1
Vì máy chủ là một vps cấp thấp, tôi đang cố gắng giữ mức tiêu thụ tài nguyên ở mức tối thiểu trong khi vẫn duy trì nó an toàn nhất có thể. Tôi đã thay đổi cổng máy chủ ssh. Tôi có nên giữ các quy tắc đó (ở trên) cho cổng mới và cấm quy tắc mặc định (22) không?
MGP

Fail2ban trên thực tế là giải pháp tốt nhất, ngay cả đối với VPS thấp
MGP

7

Bạn có thể thực hiện những gì bạn muốn với 2 quy tắc sau

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

Lưu ý rằng việc sử dụng -Athêm quy tắc vào cuối chuỗi có thể không phù hợp với cách xử lý quy tắc iptables, do đó, nếu có DROP chung hoặc quy tắc cho phép trước khi bạn đạt được thì chúng sẽ không bao giờ được thực hiện.

Phải nói rằng bạn cũng có thể thấy fail2ban là một cách tốt hơn để thực hiện loại khối này.


Khi tôi cố gắng thêm các quy tắc đó, tôi nhận được một thông báo lỗi: iptables: Không có chuỗi / mục tiêu / kết hợp theo tên đó.
MGP

Upvote cho fail2ban.
Michael B

4

Bạn có thể muốn thử mô-đun LIMIT.

iptables -A INPUT -p tcp --dport 22 -m limit --limit 3/minute -j ACCEPT
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.