Acabei de fazer login em um servidor GitLab e notei que havia 18.974 logins com falha desde a última vez em que verifiquei o servidor - quase 5 dias. Eu verifiquei os IPs e parece que quase todos eles eram da China e tentei obter acesso com SSH e Brute Force. Comecei a bloquear alguns IPs, mas então percebi que é uma enorme perda de tempo e uma idéia melhor seria bloquear todo o país.
Existe alguma maneira de bloquear toda a China ou qualquer outro país com iptables?
Encontrei alguns artigos na internet, mas quase todos são scripts de bash. Eu sou um novato no Linux, então eu realmente não entendo todos esses scripts. Acho o iptables realmente interessante e quero aprender mais sobre isso.
Alguma ideia ? Obrigado!
Respostas:
O uso do iptables para identificar automaticamente e, posteriormente, bloquear, bandidos do ssh pode ser feito usando o
recent
módulo. O seguinte segmento deve vir após a suaESTABLISHED,RELATED
linha genérica :Agora, o problema recente (no último ano ou dois) com a China é que eles se tornaram muito inteligentes e, muitas vezes, quando são bloqueados de um endereço IP, simplesmente mudam para outro na mesma sub-rede e continuam. Isso corre o risco de ficar sem entradas recentes da tabela padrão (acho que o padrão é 200). Monitoro isso e, em seguida, procuro o segmento IP real e bloqueio permanentemente o segmento inteiro. No meu caso, não me importo com danos colaterais, ou seja, bloquear alguém inocente:
Onde acima:
Você pode obter a lista completa de endereços IP para a China ou qualquer país, no formato iptables ou outro aqui . No entanto, a lista é surpreendentemente longa e bastante dinâmica. Eu mesmo decidi não bloquear a lista inteira.
fonte
Bloco China usando ipset
Você não pode adicionar manualmente alguns milhares de endereços IP às suas tabelas de ips, e até fazê-lo automaticamente é uma má idéia, pois pode causar muita carga de CPU (ou pelo menos eu li). Em vez disso, podemos usar o ipset, projetado para esse tipo de coisa. O ipset lida com grandes listas de endereços IP; você apenas cria uma lista e então diz ao iptables para usá-la em uma regra.
Nota; Presumo que a totalidade do seguinte seja feita como raiz. Ajuste de acordo se o seu sistema for baseado no sudo.
Em seguida, escrevi um pequeno script do Bash para fazer todo o trabalho, que você deve entender pelos comentários. Crie um arquivo:
Aqui está o que você deseja colar:
Salve o arquivo. Torne executável:
Isso ainda não fez nada, mas ocorrerá em um minuto quando executarmos o script. Primeiro, precisamos adicionar uma regra no iptables que se refira a essa nova lista de ipsets que o script acima define:
Adicione a seguinte linha:
Salve o arquivo. Para ficar claro, minhas iptables.firewall.rules agora estão assim:
No momento, nada mudou com o servidor porque nenhuma nova regra foi aplicada; para fazer isso, execute o script block-china.sh:
Isso deve mostrar alguma saída, pois extrai uma nova lista de IPs baseados em chinês e, depois de alguns segundos, ele será concluído e o levará de volta ao prompt de comando.
Para testar se funcionou, execute:
Agora você deve ver uma nova regra bloqueando a China - a saída deve ficar assim:
Quase pronto! Isso funciona e continuará a funcionar nas reinicializações. Mas, os endereços IP mudam e essa lista ficará obsoleta ao longo do tempo. Se você deseja obter e aplicar uma lista atualizada de IPs, basta executar o script block-china.sh novamente.
Também podemos configurar a máquina para fazer isso automaticamente através de um trabalho cron:
Adicione uma linha como esta:
Isso executará o /etc/block-china.sh às 5h todos os dias. O usuário que está executando o script precisará ser root ou ter privilégios de root.
fonte
fonte
wget http://www.ipdeny.com/ipblocks/data/aggregated/cn-aggregated.zone
Você pode instalar algo como fail2ban para bloquear os ips que tentam fazer login no servidor e falham.
fonte
Você pode usar o módulo geoip para iptables: https://linoxide.com/linux-how-to/block-ips-countries-geoip-addons/
fonte
Você usa a Lista de firewalls do IP2Location para gerar tabelas de ip para a China.
O arquivo está no seguinte formato. Execute-o no shell e você deverá bloquear todos os endereços IP da China.
fonte