Ubuntu에서 모든 fail2ban 금지를 삭제하려면 어떻게해야합니까? 모든 것을 시도했지만 이해하지 못했습니다.
모든 차단을 삭제하고 싶지만 IP 주소를 모릅니다.
댓글
- 금지는 일반적으로 방화벽을 통해 IP 주소에서 이루어 지므로 방화벽 규칙을 확인해야합니다.
- 예, 압니다. 하지만 IP 주소를 말하지 않고 모든 차단을 해제하고 싶습니다
- " 모든 것을 시도했습니다 " 아니요. '하지 않았습니다. 무엇을 시도 했습니까?
답변
업데이트 된 답변
0.10 버전부터. 0 fail2ban-client
에는 두 가지 방법으로 사용할 수있는 unban
명령이 있습니다.
unban --all unbans all IP addresses (in all jails and database) unban <IP> ... <IP> unbans <IP> (in all jails and database)
또한 이제 restart <JAIL>
, reload <JAIL>
및 reload
명령에도 --unban
옵션.
이전 답변
fail2ban은 iptables
를 사용하여 트래픽을 차단합니다. 현재 차단 된 IP 주소를 보려면
iptables -L -n
를 입력하고 fail2ban-something
, 여기서 something
는 fail2ban 감옥을 가리 킵니다. 예를 들어, Chain f2b-sshd
는 감옥을 가리 킵니다. sshd
). 주어진 감옥 <JAIL>
에 대한 단일 IP 주소 <IP>
에 대한 차단 만 제거하려는 경우 fail2ban은 자체 클라이언트를 제공합니다.
fail2ban-client set <JAIL> unbanip <IP>
또는 줄 번호를 사용할 수 있습니다. 먼저 줄 번호와 함께 iptables
규칙을 나열합니다.
iptables -L -n --line-numbers
다음으로 사용할 수 있습니다.
iptables -D fail2ban-somejail <linenumber>
테이블에서 한 줄을 제거합니다. 내가 아는 한 줄 번호 범위를 선택할 수있는 옵션이 없으므로이 명령을 for 루프로 래핑해야 할 것 같습니다.
for lin in {200..1}; do iptables -D fail2ban-somejail $lin done
여기서 200 번을 만들었습니다. --line-numbers
를 사용하여 명령의 자체 출력을 확인하고 마지막 줄 (RETURN
포함)이 유지되어야합니다. 카운트 다운 이유는 아래 @roaima의 댓글을 참조하세요.
댓글
- 당신이 저를 구했습니다. 감사합니다. 전체 명령을 추가하세요. 나는 당신의 명령에 fail2ban-client가 필요하다는 것을 알아야했기 때문입니다. (저는 멍청이이기 때문입니다)
답변
모든 IP 차단을 해제하는 가장 좋은 방법은 차단 시간을 1 초로 설정하는 것입니다. 그러면 모든 IP가 즉시 해제됩니다.
fail2ban-client set JailName bantime 1
그 후에 적절한 차단 시간을 다시 설정할 수 있습니다.
fail2ban이 차단 해제를 수행하도록하는 것이 좋습니다. iptables를 직접 수동으로 편집하지 마십시오.
코멘트
- 여기에서 유일한 정답입니다. Fail2ban은 독립적으로 삭제해야하는 자체 차단 데이터베이스를 유지합니다. . iptables 규칙 삭제에 대해 이야기하는 모든 답변은 fail2ban이 백업을 시작하는 순간 방금 삭제 한 규칙을 iptables에 다시 추가한다는 것을 무시합니다. 또한 모든 fail2ban 구성이 iptables를 사용하여 금지를 구현하는 것은 아닙니다.
-
fail2ban-client status
- 방금이 명령을 내리고 fail2ban이 감옥을 처리함에 따라 감옥의 IP 수가 0으로 감소하는 것을보고 있습니다. 정말 빠르게 진행되지만 ' 괜찮습니다. 감옥에 5 천 개가 넘는 항목이있었습니다. 좋은 답변입니다!
답변
최신 fail2ban-client
(0.10) 에는 unban -all
명령. 감옥은 개별적으로 “다시 시작”할 수도 있습니다. 밴을 삭제합니다.
이전 버전을 사용하는 경우이 트릭이 자동 임시 차단에 효과가있을 수 있습니다. 차단이 포함 된 감옥을 삭제 한 다음 fail2ban을 다시 시작하여 (현재 비어있는) 감옥이 다시 생성되도록합니다.
$ fail2ban-client stop sshd Jail stopped $ systemctl restart fail2ban
댓글
- -all 또는 —all? 아니면 –all?
Answer
-
서비스를 중지하면 추가 된 모든 규칙이 지워집니다. fail2ban으로
service fail2ban stop
-
다른 iptables 규칙이 없으면 플러시 할 수 있습니다.
iptables -F
주의 : 이렇게하면 iptables의 다른 모든 규칙이 삭제됩니다. .
댓글
- 멈췄다가 다시 시작하는 것만으로도 충분했습니다.
답변
iptable 구성을 파일에 저장
$ iptables-save > iptables.conf
원하는 편집기로 편집하십시오. 구성을 iptables로 다시로드하십시오.
$ iptables-restore < iptables.conf
구성을 iptables 안에 저장하는 것을 잊지 마십시오. 재부팅시 작동
$ service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
Answer
전체 차단을 해제하는 간단한 oneliner가 있습니다. fail2ban jail 올바른 방법 :
iptables -L f2b-recidive -n | grep -o "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}" | grep -v 0.0.0.0 | xargs -n 1 fail2ban-client set recidive unbanip
참고 : iptables 명령은 감옥 이름 앞에 “f2b-“접두사를 사용하고 “fail2ban-client”는 실제 감옥 이름
코멘트
- 0.10 이하의 fail2ban 버전에 대한 최상의 답변입니다. 하나의 매개 변수로 전체 감옥을 제거하는 fail2ban-purge와 같은 .bashrc에서 별칭을 추가로 만들 수 있습니다. 위의 단어를 $ 1로 바꾸고 별칭을 fail2ban-purge < JAIL_NAME >로 사용하세요.
답변
fail2ban
가 작동하는 방식으로 인해 가능한 해결책은 두 가지뿐입니다.
-
fail2ban
감옥을 포함하는 방화벽 구성 스크립트를 만들고 방화벽을 다시 시작합니다. - 차단을 해제하려는 IP를 차단하는 방화벽 규칙을 제거합니다. .
답변
이것은 ssh 감옥에 대한 모든 IP 주소를 차단 해제하는 데 사용하는 스크립트입니다 ( sshd occourence를 필요한 감옥 이름으로 바꾸면됩니다. 예 : mysqld-auth)
#!/bin/bash j=$(iptables -L f2b-sshd | grep -c "REJECT") for ((i=1;i<=j;i++)) do fail2ban-client set sshd unbanip $(fail2ban-client status sshd | grep "Banned IP list:" | cut -c23-) done
Answer
이 스크립트가 < 0.10.0 버전을 가진 사람에게 도움이 될 수 있습니다.
#!/bin/bash for JAIL in $(fail2ban-client status | grep "Jail list:" | awk "BEGIN {FS="\t"} {print $2}" | sed "s/, / /g") do for IP in $(fail2ban-client status ${JAIL} | grep "Banned IP list:" | awk "BEGIN {FS="\t"} {print $2}" | sed "s/ /\n/g") do fail2ban-client set ${JAIL} unbanip ${IP} done done unset JAIL IP exit 0