Chạy trên máy chủ Ubuntu 14.04.
Vì vậy, tôi đã cấu hình fail2ban chính xác để xử lý /var/log/auth.log
các lần thử đăng nhập SSH.
Sau 3 lần thất bại, tôi thấy điều này trong nhật ký fail2ban:
2014-11-19 15:22:56,822 fail2ban.actions: WARNING [ssh] Ban BANNED_IP_ADDY
iptables -L
cho thấy chuỗi này:
Chain fail2ban-ssh (1 references)
target prot opt source destination
REJECT all -- BANNED_IP_ADDY anywhere reject-with icmp-port-unreachable
RETURN all -- anywhere anywhere
Tuy nhiên, từ IP đó tôi vẫn có thể đăng nhập qua SSH mà không gặp vấn đề gì.
Câu chuyện tương tự áp dụng cho tất cả các nhà tù fail2ban của tôi. Ví dụ như Apache, tôi có thể thấy fail2ban phát hiện chính xác nhật ký và tuyên bố nó cấm IP. IP kết thúc trong một chuỗi iptables nhưng IP không thực sự được DỰ ÁN.
Tôi có cảm giác trong những trường hợp này là vì SSH không có trên cổng tiêu chuẩn. Đó là trên một cổng khác.
Vì vậy, nếu tôi buộc quy tắc tù ssh sử dụng cổng mới:
[ssh]
enabled = true
port = 32323
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
Sau đó tôi thấy lỗi này:
2014-11-19 15:30:06,775 fail2ban.actions.action: ERROR iptables -D INPUT -p tcp -m multiport --dports 32323 -j fail2ban-ssh
iptables -F fail2ban-ssh
iptables -X fail2ban-ssh returned 400
2014-11-19 15:30:06,778 fail2ban.actions.action: ERROR iptables -N fail2ban-ssh
iptables -A fail2ban-ssh -j RETURN
iptables -I INPUT -p tcp -m multiport --dports 32323 -j fail2ban-ssh returned 400
2014-11-19 15:30:06,779 fail2ban.actions.action: ERROR iptables -n -L INPUT | grep -q 'fail2ban-ssh[ \t]' returned 100
2014-11-19 15:30:06,780 fail2ban.actions.action: CRITICAL Unable to restore environment
Nếu tôi để nó như
port = ssh
Sau đó, nó được đưa vào iptables đúng cách nhưng chuỗi không hoạt động với REJECT
lưu lượng truy cập (như đã đề cập ở trên).
CẬP NHẬT:
Nếu tôi thay đổi:
banaction = iptables-multiport
Đến:
banaction = iptables-allports
Sau đó, nó xuất hiện để làm việc. Tác động của sự thay đổi này là gì?
Có vẻ như việc fail2ban
cấm IP vì SSH với điều này, allports
nó đã cấm MỌI cổng cho IP đó. Cố ý bị cấm do đăng nhập ssh nhiều lần không thành công. Cũng bị cấm trên mọi dịch vụ khác.
/etc/fail2ban/actions.d
, nó có một tập tin tương ứng với từng hành động cấm đó. Bên trong bạn sẽ thấy những lệnh nào được sử dụng để cấm, unban, bắt đầu và dừng fail2ban. Bạn có thể thử chạy các lệnh actionban bằng tay và xem điều gì sẽ xảy ra. Tôi
iptables -L -n -v
(sắp xếp lại địa chỉ IP khi cần thiết). Cụ thể, lưu ý -v
, cái sẽ cung cấp bộ đếm byte và gói cho mỗi chuỗi và quy tắc, giúp dễ dàng gỡ lỗi.