Para evitar ataques de força bruta contra o ssh, adicionei algumas regras do iptables (abaixo). A pergunta é: como posso listar os endereços IP bloqueados?
(1)
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j DROP
iptables -L INPUT -v -n
mostra todos bloqueados ipRespostas:
Uma opção seria registrar qualquer um dos seus pacotes descartados com uma regra como:
Insira isso imediatamente antes da
DROP
regra. Em seguida, você pode grep o arquivo syslog para qualquer coisa com "FW_DROPPED" e a lista de IPs estará lá. As entradas no arquivo de log são mais ou menos assim:Portanto, recortar o que segue "SRC =" mostrará os IPs descartados. Classifique isso, eliminando duplicatas, e você terá sua lista.
Eu achei o Tutorial do Iptables a documentação mais útil para o iptables / netfilter.
fonte
Você pode encontrar detalhes em / proc / net / ipt_recent / SSH.
Este artigo tem mais informações.
fonte
Olhe para a
/proc/net/ipt_recent/YOURNAME
onde YOURNAME é o nome que você usou com a opção --name em sua regra do iptables.
fonte
/proc/net/xt_recent/[list-name]
Aqui está um liner simples:
fonte
O que faço, por exemplo, para falsificação de endereços de entrada, é definir a cadeia
SPOOF_REJECT
:em seguida, para enviar pacotes a essa cadeia se eles forem falsificados:
Você pode fazer algo assim para cada categoria de pacotes que você soltar ou rejeitar para obter uma linha no syslog, e depois periodicamente grep, cortar, classificar, para obter apenas os endereços IP dessas linhas de log.
O benefício de usar cadeias individuais para cada categoria é que sua configuração fica mais direta e fica mais fácil ler sua
iptables
configuração. À medida que você adiciona mais e mais regras, ficará feliz por ter usado cadeias individuais para ações diferentes específicas.fonte
"A questão é: como posso listar os endereços IP bloqueados?"
Crie uma cadeia BANNED:
Crie uma cadeia de log:
Adicione salto à cadeia proibida na cadeia INPUT antes da maioria das outras regras
Agora adicione ipaddresses à cadeia banida:
Você também pode usá-lo como um banco de dados com as opções de comentários, para saber quando e por que etc. o rebanho é importante quando o iptables está sendo atualizado com frequência por muitos processos - parece que o iptables não possui nenhum bloqueio embutido.
Para visualizar os endereços e regras banidos na cadeia banida:
Para visualizar apenas os endereços IP exclusivos classificados:
Eu tenho vários daemons em execução nos meus servidores, verificando os arquivos syslog e weblogs; portanto, se alguma coisa desagradável estiver sendo tentada por alguém, o endereço deles será banido automaticamente por alguns dias, dependendo do tipo, gravidade e número de ataques anteriores. As informações são registradas em um banco de dados mysql e expiram periodicamente. Os endereços também são distribuídos para todas as outras máquinas no cluster através da replicação mysql, para que eles também sejam protegidos e sincronizados. Meu software também consulta o proprietário da rede e envia uma reclamação ao ISP.
Após 10 anos de trabalho, espero disponibilizá-lo para que todos possam usar em breve. Atualmente, tenho cerca de 1,5 milhão de históricos de endereços IP e centenas de milhares de ataques de email e ssh relatados, ajudando a limpar a rede. Se mais o usarem, espero que tenha mais impacto.
fonte