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 로그인이 반복되지 않아 의도적으로 금지되었습니다. 다른 모든 서비스도 금지되었습니다.
답변
fail2ban 체인이 INPUT 및 OUTPUT 체인에 올바르게 연결되어 있지 않습니다. 질문을 편집하고 다음 결과를 제공하십시오.
iptables -n -L INPUT
iptables -n -L OUTPUT
그리고 모든 fail2ban 체인도 더 정확합니다.
답변
INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh