Como proteger o ejabberd dos ataques de força bruta?

2

Escreve isso nos logs:

=INFO REPORT==== 2012-03-14 17:48:54 ===
I(<0.467.0>:ejabberd_listener:281) : (#Port<0.4384>) Accepted connection {{10,254,239,2},51986} -> {{10,254,239,1},5222}

=INFO REPORT==== 2012-03-14 17:48:54 ===
I(<0.1308.0>:ejabberd_c2s:784) : ({socket_state,tls,{tlssock,#Port<0.4384>,#Port<0.4386>},<0.1307.0>}) Failed authentication for USERNAME

=INFO REPORT==== 2012-03-14 17:48:54 ===
I(<0.1308.0>:ejabberd_c2s:649) : ({socket_state,tls,{tlssock,#Port<0.4384>,#Port<0.4386>},<0.1307.0>}) Failed authentication for USERNAME

Não escreve IP com falha.
E as seqüências "Conexão aceita" e "Autenticação com falha" podem até não ficar por perto (como acho que em servidores com carga pesada) para poder usar o fail2ban.
O que fazer? E como os servidores de jabber (usando o ejabberd) estão protegidos?

    
por Sergey 14.03.2012 / 18:37

3 respostas

2

Você pode usar o iptables para limitar o número de tentativas de conexão por minuto que um endereço IP pode tentar. Como esses são ataques automáticos na maioria das vezes, o script é movido para encontrar outro destino, uma vez bloqueado.

Este exemplo é para a porta tcp 22 (ssh) e permitirá 3 tentativas de conexão por minuto antes de descartar pacotes daquele endereço IP.

iptables -A INPUT -p tcp --dport 22 --syn -m limit --limit 1/m --limit-burst 3 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 --syn -j DROP
    
por 14.03.2012 / 18:42
0

O fail2ban forneceria uma camada lógica adicional útil sobre o iptables. Um pedido no site do ejabberd sugeriu uma possível abordagem para poder usar o fail2ban, usando log_modsession . Está incluído nos módulos ejabberd .

Para registrar as tentativas de autenticação com falha, o núcleo do ejabberd precisa ser corrigido. Felizmente, log_modsession é fornecido com esse patch, então você só precisa aplicá-lo e recompilar o ejabberd.

    
por 15.10.2012 / 17:17
0

Outra maneira é usar a mesma abordagem usada pelo fail2ban, já que eles usam a biblioteca monitor de alteração de arquivos (fam), acho que podemos criar um daemon customizado que monitore o arquivo de log ejabberd e produza um formato compatível com fail2ban, e existem ligações python e perl para isso.

Às vezes, ajustar as fontes de outro programa para atender às suas necessidades adiciona um trabalho adicional de download / patch / compile para que você não possa se beneficiar das atualizações de segurança da sua distro, você precisa fazer isso. envie seu patch para os autores responsáveis pelo ejabberd e espere pela resposta se acharem que valioso e toda a comunidade poderia se beneficiar.

Mas IMHO eu iria com o daemon personalizado.

    
por 23.04.2014 / 16:26