localhost에서 ssh를 차단하도록 fall2ban을 구성하려고 합니다. Fail2ban은 방화벽이 있는 CentOS 7(Linux 3.10.0-229.4.2.el7.x86_64 x86_64)에 설치됩니다. Jail.conf를jail.local에 복사했고,jail.local에서 다음 매개변수를 변경했습니다.
banaction = firewallcmd-new
[sshd]
enabled = true
maxretry = 5
port = ssh
logpath = /var/log/secure
action = firewallcmd-ipset
결과가 없습니다. 어떤 아이디어가 있나요?
일부 로그 정보:
2ban.filter [2489]: INFO Added logfile = /var/log/secure
2015-06-23 07:21:33,439 fail2ban.filter [2489]: INFO Set maxRetry = 3
2015-06-23 07:21:33,440 fail2ban.filter [2489]: INFO Set jail log file encoding to UTF-8
2015-06-23 07:21:33,441 fail2ban.actions [2489]: INFO Set banTime = 86400
2015-06-23 07:21:33,442 fail2ban.filter [2489]: INFO Set findtime = 600
2015-06-23 07:21:33,442 fail2ban.filter [2489]: INFO Set maxlines = 10
2015-06-23 07:21:33,501 fail2ban.server [2489]: INFO Jail sshd is not a JournalFilter instance
2015-06-23 07:21:33,599 fail2ban.jail [2489]: INFO Jail 'sshd' started
SELinux는 비활성화됩니다.
action.d/firewallcmd-ipset.conf 파일
[INCLUDES]
before = iptables-common.conf
[Definition]
actionstart = ipset create fail2ban-<name> hash:ip timeout <bantime>
firewall-cmd --direct --add-rule ipv4 filter <chain> 0 -p <protocol> -m multiport --dports <port> -m set --match-set fail2ban-<name> src -j <blocktype>
actionstop = firewall-cmd --direct --remove-rule ipv4 filter <chain> 0 -p <protocol> -m multiport --dports <port> -m set --match-set fail2ban-<name> src -j <blocktype>
ipset flush fail2ban-<name>
ipset destroy fail2ban-<name>
actionban = ipset add fail2ban-<name> <ip> timeout <bantime> -exist
actionunban = ipset del fail2ban-<name> <ip> -exist
[Init]
# Option: chain
# Notes specifies the iptables chain to which the fail2ban rules should be
# added
# Values: [ STRING ]
#
chain = INPUT_direct
# Option: bantime
# Notes: specifies the bantime in seconds (handled internally rather than by fail2ban)
# Values: [ NUM ] Default: 600
bantime = 600
# DEV NOTES:
#
# Author: Edgar Hoch and Daniel Black
# firewallcmd-new / iptables-ipset-proto6 combined for maximium goodness
답변1
무슨 일이 일어나고 있는지 이해할 만큼 정보가 충분하지 않기 때문에 여기서 추측하고 있습니다. 하지만 나는 다음과 같은 것을 시도할 것입니다:
fail2ban-regex --print-all-missed /var/log/secure /etc/fail2ban/filter.d/sshd.conf
무언가를 찾았는지, 어떤 줄이 누락되었는지 확인하세요. 나는 /var/log/secure가 sshd가 실패한 로그인을 인쇄하는 곳이라고 가정합니다. 내 데비안 기반 시스템에서는 /var/log/auth.log입니다.
나는 또한 감옥에서 금지 시간과 찾기 시간을 가졌습니다.
bantime = 86400
findtime = 86400
살펴봐야 할 시간 창을 알려주지 않았기 때문에 아무것도 얻지 못했을 수도 있습니다.