Fail2Ban falha ao iniciar no CentOS 7

0

Estou rodando o CentOS 7, totalmente atualizado, e estou tentando fazer com que o Fail2Ban funcione, mas estou com problemas.

Especificamente, estou tentando bloquear ataques SSH de força bruta. Tenho certeza que configurei tudo certo - habilitei a cadeia do sshd em jail.local , usando firewallcmd-ipset como a ação de proibição, definitivamente usando o Firewalld, não usando o SELinux.

Mas quando eu inicio o Fail2Ban, aqui está o que está em /var/log/fail2ban.log :

2017-06-21 06:11:44,186 fail2ban.server         [3357]: INFO    Changed logging target to /var/log/fail2ban.log for Fail2ban v0.9.6
2017-06-21 06:11:44,186 fail2ban.database       [3357]: INFO    Connected to fail2ban persistent database '/var/lib/fail2ban/fail2ban.sqlite3'
2017-06-21 06:11:44,188 fail2ban.jail           [3357]: INFO    Creating new jail 'sshd'
2017-06-21 06:11:44,206 fail2ban.jail           [3357]: INFO    Jail 'sshd' uses systemd {}
2017-06-21 06:11:44,230 fail2ban.jail           [3357]: INFO    Initiated 'systemd' backend
2017-06-21 06:11:44,232 fail2ban.filter         [3357]: INFO    Set maxRetry = 3
2017-06-21 06:11:44,232 fail2ban.filter         [3357]: INFO    Set jail log file encoding to UTF-8
2017-06-21 06:11:44,233 fail2ban.actions        [3357]: INFO    Set banTime = 86400
2017-06-21 06:11:44,233 fail2ban.filter         [3357]: INFO    Set findtime = 3600
2017-06-21 06:11:44,234 fail2ban.filter         [3357]: INFO    Set maxlines = 10
2017-06-21 06:11:44,320 fail2ban.filtersystemd  [3357]: INFO    Added journal match for: '_SYSTEMD_UNIT=sshd.service + _COMM=sshd'
2017-06-21 06:11:44,335 fail2ban.jail           [3357]: INFO    Jail 'sshd' started
2017-06-21 06:11:44,864 fail2ban.action         [3357]: ERROR   ipset create fail2ban-sshd hash:ip timeout 86400
firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p all -m multiport --dports 44 -m set --match-set fail2ban-sshd src -j REJECT --reject-with icmp-port-unreachable -- stdout: ''
2017-06-21 06:11:44,865 fail2ban.action         [3357]: ERROR   ipset create fail2ban-sshd hash:ip timeout 86400
firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p all -m multiport --dports 44 -m set --match-set fail2ban-sshd src -j REJECT --reject-with icmp-port-unreachable -- stderr: '\x1b[91mError: COMMAND_FAILED\x1b[00m\n'
2017-06-21 06:11:44,865 fail2ban.action         [3357]: ERROR   ipset create fail2ban-sshd hash:ip timeout 86400
firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p all -m multiport --dports 44 -m set --match-set fail2ban-sshd src -j REJECT --reject-with icmp-port-unreachable -- returned 13
2017-06-21 06:11:44,865 fail2ban.actions        [3357]: ERROR   Failed to start jail 'sshd' action 'firewallcmd-ipset': Error starting action

Como você notará, tudo funcionará perfeitamente até que firewall-cmd seja tentado. Os comandos que está tentando executar são:

ipset create fail2ban-sshd hash:ip timeout 86400

seguido por

firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p all -m multiport --dports 44 -m set --match-set fail2ban-sshd src -j REJECT --reject-with icmp-port-unreachable

Se eu tentar executá-las sozinho, o comando ipset funcionará bem, mas o firewall-cmd 1 retornará com Error: COMMAND_FAILED . Então, eu estou supondo que é um problema com o comando que o Fail2Ban está tentando enviar para firewall-cmd - mas eu não sei o suficiente sobre o Firewalld para consertá-lo.

(Ah, o SSH está na porta 44 porque descobri que ele reduz massivamente os ataques drive-by, então não vamos entrar nos prós e contras disso!

Além disso, systemctl status fail2ban mostra tudo para estar funcionando sem problemas, sem problemas relatados lá. Eu só notei isso quando eu entrei e vi que houve um monte de tentativas de login com falha, o que é raro com a mudança de porta e tudo mais.

Por fim, uname -r retorna 3.10.0-229.14.1.el7.centos.plus.x86_64 , então tenho certeza que não é o problema do OpenVZ que eu vi como uma causa disso em outro lugar.

    
por JoLoCo 21.06.2017 / 06:54

1 resposta

0

De faqforge.com: link

Centos 7 replaced the traditional IPTables Linux Kernel Firewall with the Firewalld service. There are still a lot of scripts available that require the use of IPTables. A common example is the software Fail2ban.

Portanto, tente parar o firewalld ( systemctl stop firewalld ) e instale o iptables ( yum install iptables-services ) e systemctl start iptables .

Em seguida, defina assim a transação no jail.local :

banaction = iptables-multiport
banaction_allports = iptables-allports

e, em seguida, reinicie.

    
por 21.06.2017 / 09:17