답변:
버전 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
). <IP>
주어진 jail 의 단일 IP 주소에 대한 블록 만 제거하려는 경우 <JAIL>
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
하고 마지막 행 (with RETURN
)을 유지해야합니다. 카운트 다운의 이유는 아래 @roaima의 의견을 참조하십시오.
echo {5..1}
발생합니다 5 4 3 2 1
.
모든 IP를 금지 해제하는 가장 좋은 방법은 금지 시간을 1 초로 설정하는 것입니다. 그러면 모든 IP가 즉시 해제됩니다.
fail2ban-client set JailName bantime 1
그런 다음 적절한 금지 시간을 다시 설정할 수 있습니다.
fail2ban이 금지 해제를 수행하도록하는 것이 좋습니다. iptables를 수동으로 편집하지 마십시오.
fail2ban-client status
최신 fail2ban-client
(0.10) 이 unban -all
명령을 사용합니다. 교도소는 또한 개별적으로 "재시작"될 수있어 효과적으로 금지를 해제합니다.
이전 버전을 사용하는 경우이 트릭은 자동 임시 금지에 대해 작동 할 수 있습니다. 금지가 포함 된 감옥을 삭제 한 다음 fail2ban을 다시 시작하여 (현재 비어있는) 감옥을 다시 작성하십시오.
$ fail2ban-client stop sshd
Jail stopped
$ systemctl restart fail2ban
iptable 설정을 파일로 저장
$ iptables-save > iptables.conf
Than than config를 iptables로 다시로드하려는 편집기로 편집하십시오.
$ iptables-restore < iptables.conf
iptables에 구성을 저장하는 것을 잊지 마십시오. 재부팅시 선택됩니다.
$ service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
여기에 전체 one2ban 감옥을 적절한 방법으로 금지시키는 간단한 oneliner가 있습니다.
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 명령은 jail 이름 앞에 "f2b-"접두사를 사용하고 실제 jail 이름은 "fail2ban-client"
이것은 ssh jail에 대한 모든 IP 주소를 금지 해제하는 데 사용하는 스크립트입니다 (sshd occourence를 필요한 jail의 이름으로 대체하십시오 ... 예 : 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