Firewalld 로그 파일 Setfail2ban-ssh의 오류 메시지가 존재하지 않습니다.

Firewalld 로그 파일 Setfail2ban-ssh의 오류 메시지가 존재하지 않습니다.

방화벽 로그 파일에 다음과 같은 오류 메시지가 반복됩니다.

2019-07-19 14:18:20 ERROR: COMMAND_FAILED: Direct: '/usr/sbin/iptables-restore -w -n' failed: iptables-restore v1.4.21: Set fail2ban-ssh doesn't exist.

Error occurred at line: 2
Try `iptables-restore -h' or 'iptables-restore --help' for more information.

나는 이 오류를 해결하기 위해 여기저기서 검색했지만 운이 없었습니다. Firewalld 및 Fail2ban과 함께 Centos7을 사용하고 있습니다.

문제가 정확히 어디에 있는지 모르겠습니다. 이것은 Fail2ban 또는 Firewalld와 관련이 있습니까?

systemctl status Firewalld -l을 실행하면 다음 오류 메시지가 표시됩니다.

firewalld[703]: WARNING: '/usr/sbin/iptables-restore --wait=2 -n' failed: iptables-restore v1.4.21: Set fail2ban-sshd doesn't exist.

                Error occurred at line: 2
                Try 'iptables-restore -h' or 'iptables-restore --help' for more information.
firewalld[703]: ERROR: COMMAND_FAILED

Fail2ban에 대한 Jail.local의 내용은 다음과 같습니다.

[DEFAULT]
ignoreip = 127.0.0.0/8
bantime  = 86400
findtime = 86400
maxretry = 5

# Override /etc/fail2ban/jail.d/00-firewalld.conf:
banaction = firewallcmd-ipset

[sshd]
enabled = true

[ssh]
enabled  = true
filter   = sshd
action   = %(action_)s
logpath  = /var/log/secure
maxretry = 5

다른 모든 구성은 시스템 기본값을 따릅니다.

다음과 같이 방화벽을 설치했습니다.

sudo yum install firewalld
sudo systemctl start firewalld
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --remove-service=smtp
sudo systemctl enable firewalld

마지막으로 다음 명령을 수행합니다.

# firewall-cmd --direct --get-all-rules

나는 다음과 같은 결과를 얻습니다.

ipv4 filter INPUT 0 -p tcp -m multiport --dports ssh -m set --match-set fail2ban-sshd src -j REJECT --reject-with icmp-port-unreachable
ipv4 filter INPUT 0 -p tcp -m multiport --dports 0:65535 -m set --match-set fail2ban-ssh src -j REJECT --reject-with icmp-port-unreachable

저는 서버보다는 개발에 더 관심이 많으므로 도움을 주셔서 감사합니다.

가능한 한 빨리 이 문제를 해결해야 합니다. 내 프로덕션 서버용입니다.

감사합니다!

답변1

/var/log/fail2ban.log나 그 위치를 확인했다면 아마도 다음과 같은 내용을 보게 될 것입니다.

2019-08-01 08:16:14,509 failure2ban.utils [11727]: #39-Lev. 3ef3cd40 -- 실행: ipset create f2b-apache-myadmin hash:ip 시간 제한 2160000 Firewall-cmd --direct --add-rule ipv4 필터 INPUT_direct 0 -p tcp -m multiport --dports http,https -m set --match -set f2b-apache-myadmin src -j REJECT --reject-with icmp-port-unreachable 2019-08-01 08:16:14,510 실패2ban.utils [11727]: 오류 3ef3cd40 -- stderr: "ipset v7.2: 구문 오류: '2160000'이 0-2147483" 범위를 벗어났습니다." 2019-08-01 08:16:14,510 실패2ban.utils [11727]: ERROR 3ef3cd40 -- stderr: "오류: COMMAND_FAILED: '/usr/sbin/iptables- 복원 -w -n' 실패: iptables-restore v1.8.2(레거시): f2b-apache-myadmin 설정이 존재하지 않습니다." 2019-08-01 08:16:14,510 실패2ban.utils [11727]: 오류 3ef3cd40 -- stderr: '' 2019-08-01 08:16:14,510 실패2ban.utils [11727]: 오류 3ef3cd40 -- stderr: '오류 다음 줄에서 발생함: 2' 2019-08-01 08:16:14,510 failure2ban.utils [11727]: ERROR 3ef3cd40 -- stderr: "자세한 내용을 보려면 `iptables-restore -h' 또는 'iptables-restore --help'를 시도하세요. ." 2019-08-01 08:16:14,510 실패2ban.utils [11727]: 오류 3ef3cd40 -- stderr: '' 2019-08-01 08:16:14,510 실패2ban.utils [11727]: 오류 3ef3cd40 -- 13 반환 2019- 08-01 08:16:14,510 실패2ban.actions [11727]: 오류 금지 감옥 'apache-catchall' 작업 'firewallcmd-ipset' info 'ActionInfo({'ip': '128.14.209.154', 'family'를 실행하지 못했습니다. : 'inet4', 'fid': 0x3f24b200>, 'raw-ticket': 0x3f24b7a0>})': 작업 시작 중 오류 발생 Jail('apache-myadmin')/firewallcmd-ipset 2019-08-01 08:16: 14,510 실패2ban.actions [11727]: 공지 사항 [apache-myadmin]

ipset의 최대 시간 제한은 2147483입니다.http://ipset.netfilter.org/ipset.man.html

timeout 모든 세트 유형은 세트를 생성하고 항목을 추가할 때 선택적 timeout 매개변수를 지원합니다. create 명령의 timeout 매개변수 값은 새 항목에 대한 기본 시간 초과 값(초)을 의미합니다. 시간 초과 지원이 포함된 세트가 생성된 경우 항목을 추가할 때 동일한 시간 초과 옵션을 사용하여 기본이 아닌 시간 초과 값을 지정할 수 있습니다. 0 시간 초과 값은 항목이 세트에 영구적으로 추가되었음을 의미합니다. -exist 옵션을 사용하여 요소를 다시 추가하면 이미 추가된 요소의 시간 초과 값을 변경할 수 있습니다. 가능한 최대 시간 초과 값은 2147483(초)입니다.

방화벽을 통해 ipset을 사용하고 있으므로 각 감옥에 대한jail.local 파일에서 금지 시간을 줄여야 하며 기본값은 최대 2147483초 또는 일 단위입니다. 그러면 당신은 괜찮을 것입니다!

답변2

이 질문이 몇 년 전이라는 것을 알고 있지만 Centos7을 실행하는 오래된 서버에서 이 문제가 발생했습니다. 결국 나는 문제의 범위를 /etc/firewalld/direct.xml에 걸린 잘못된 ipset 접두사로 좁혔습니다.

... --match-set fail2ban-sshd...

... 대신에 ...

...--match-set f2b-sshd

direct.xml에서 이 잘못된 접두어를 수정하면 오류가 해결되었습니다.

관련 정보