Instalando o fail2ban no CentOS 7

15

Estou usando a resposta da @GarethTheRed para esta pergunta para instalar fail2ban em um servidor remoto do CentOS 7. Eu sou capaz de completar todos os passos até tail -f /var/log/fail2ban.log , ponto em que eu recebo resultados diferentes do que ele recebe em sua resposta.

Aqui estão os resultados que estou recebendo nesta etapa:

[[email protected] ~]# tail -f /var/log/fail2ban.log
2014-12-02 16:55:53,548 fail2ban.server.server[6667]: INFO    Changed logging target to /var/log/fail2ban.log for Fail2ban v0.9.0
2014-12-02 16:55:53,550 fail2ban.server.database[6667]: INFO    Connected to fail2ban persistent database '/var/lib/fail2ban/fail2ban.sqlite3'
2014-12-02 16:55:54,239 fail2ban.server.database[6667]: WARNING New database created. Version '2'  

Após a última linha, acabei de obter um cursor, mas nenhum prompt de comando, a menos que eu digite Ctrl-C .

Quando digito systemctl status fail2ban , ele me diz que fail2ban está ativo. Quando eu fizer logout do sistema e efetuar login novamente, sshd informará que houve muitas tentativas falhas de login desde meu último login. Portanto, deve haver fail2ban logs. Mas não consigo encontrá-los.

Alguém pode me mostrar como configurar isso de forma que fail2ban gere logs que eu possa rastrear?

    
por CodeMed 05.12.2014 / 01:01

1 resposta

32

Tente instalar o fail2ban de EPEL . É empacotado para o CentOS 7 e você receberá atualizações assim que forem lançadas. Instalar o rpm form outro repo pode funcionar (neste caso, sim), mas não é a melhor maneira de fazer as coisas.

Primeiro, instale o repositório EPEL emitindo o seguinte (como root):

yum install epel-release

Os itens acima devem instalar o EPEL e dar acesso a muitos novos pacotes . Um desses pacotes é fail2ban , portanto, instale-o executando:

yum install fail2ban

Por padrão, não há jails configurados, portanto, para configurar uma% básicasshd jail:

Crie / edite o arquivo /etc/fail2ban/jail.local e adicione:

[sshd]
enabled = true

Comece com:

systemctl start fail2ban

Faça isso no momento da inicialização:

systemctl enable fail2ban

Costumava haver um bug conhecido onde o SELinux bloquearia fail2ban de acessar os arquivos de log precisava fazer o seu trabalho. Isto parece ser corrigido na versão mais recente do CentOS 7; você não precisa fazer as alterações abaixo.

Se você tiver esse problema, os sintomas são nada aparecendo nos logs e nada aparece como falha ou bloqueado na saída de fail2ban-client status sshd .

Para verificar o erro do SELinux, leia os diários com:

journalctl -lfu fail2ban

Assista a mensagens como:

SELinux is preventing /usr/bin/python2.7 from getattr access on the file .
       *****  Plugin catchall (100. confidence) suggests   **************************
       If you believe that python2.7 should be allowed getattr access on the  file by default.
       Then you should report this as a bug.
       You can generate a local policy module to allow this access.
       Do 
       allow this access for now by executing:
       # grep fail2ban-server /var/log/audit/audit.log | audit2allow -M mypol
       # semodule -i mypol.pp

Portanto, faça como sugerido e execute:

grep fail2ban-server /var/log/audit/audit.log | audit2allow -M mypol
semodule -i mypol.pp

Então, por segurança, reinicie o fail2ban :

systemctl restart fail2ban

Você pode até ter que repetir o processo acima até que mais nenhuma mensagem de erro apareça no log.

Se o seu servidor estiver na internet, monitore fail2ban-client status sshd . Em breve, ele começará a mostrar contagens falhadas e banidas se você detectar todos os problemas do SELinux.

Note que você terá que ficar de olho nas atualizações de políticas do SELinux. Se aparecer uma atualização do pacote selinux-policy , pode sobrescrever o que precede e talvez seja necessário executar novamente os comandos acima. Você saberá se esse é o caso, pois fail2ban parará de funcionar novamente!

    
por 05.12.2014 / 22:31