Ubuntu 14.04 서버에서 실행 중입니다.
따라서 /var/log/auth.log
SSH 로그인 시도 를 처리하도록 fail2ban을 올바르게 구성했습니다 .
세 번의 시도가 실패하면 fail2ban 로그에 다음과 같이 표시됩니다.
2014-11-19 15:22:56,822 fail2ban.actions: WARNING [ssh] Ban BANNED_IP_ADDY
iptables -L
이 체인을 보여줍니다.
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
그러나 그 IP에서 아무런 문제없이 SSH를 통해 여전히 로그인 할 수 있습니다.
같은 이야기가 내 fail2ban 감옥에 적용됩니다. 예를 들어 Apache는 fail2ban이 로그를 올바르게 감지하고 IP를 금지한다고 주장 할 수 있습니다. IP는 iptables 체인에 있지만 IP는 실제로 거부되지 않습니다.
이 경우 SSH가 표준 포트에 없기 때문에 느낌이 듭니다. 다른 포트에 있습니다.
ssh jail rule이 새로운 포트를 사용하도록 강요한다면 :
[ssh]
enabled = true
port = 32323
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
그런 다음이 오류가 나타납니다.
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
그대로두면
port = ssh
그런 다음 iptables에 올바르게 들어 가지 만 체인이 REJECT
위에서 언급 한 것처럼 트래픽으로 작동하지 않습니다 .
최신 정보:
내가 변경하면 :
banaction = iptables-multiport
에:
banaction = iptables-allports
그런 다음 작동하는 것 같습니다. 이 변화의 영향은 무엇입니까?
fail2ban
SSH로 인해 IP를 allports
차단하는 것은 해당 IP의 모든 포트를 차단 한 것으로 보입니다 . ssh 로그인이 반복되지 않아 의도적으로 금지되었습니다. 다른 모든 서비스도 금지되었습니다.
/etc/fail2ban/actions.d
. 각 금지 조치에 해당하는 파일이 있습니다. 내부에는 fail2ban을 금지, 금지 해제, 시작 및 중지하는 데 사용되는 명령이 표시됩니다. actionban 명령을 수동으로 실행하여 결과를 확인할 수 있습니다. I
iptables -L -n -v
(필요한 경우 수정 IP 주소) 의 전체 출력을 제공하십시오 . 특히, -v
각 체인 및 규칙에 바이트 및 패킷 카운터를 제공하여 디버깅을 용이하게하는을 참고하십시오 .