Recomendamos enfaticamente que você automatize o processo de banimento com fail2ban , que funciona perfeitamente em uma configuração padrão e pode ser personalizado ainda mais se você quiser monitorar mais serviços.
Quando combinado com iptables-persistent , ele preservará as regras nas reinicializações, o que é útil.
Aqui está uma visão geral básica do que eu faço com qualquer servidor Ubuntu:
Instalar e configurar o fail2ban
sudo aptitude install fail2ban && sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local && sudo nano /etc/fail2ban/jail.local
Isso instala e copia o arquivo de configuração para um novo arquivo para suas personalizações. Essa é uma prática recomendada, pois impede que suas edições sejam sobrescritas se o pacote for atualizado.
Minha preferência pessoal é estender o tempo de proibição e encontrar o horário dos padrões. O tempo de bloqueio é por quanto tempo um invasor é banido, e encontrar tempo é a janela do tempo em que suas tentativas são contadas, no caso de eles classificarem ataques de limite. Encontre e edite bantime = 21600 (aumentada para seis horas, o valor do tempo está em segundos) e também findtime = 3600 (máximo de 3 tentativas de ataque por hora).
Liberar regras Iptables existentes e definir novos padrões
Este é um one-liner que deve ser usado em um servidor da Web típico com portas de entrada que atendem apenas na porta 22 (SSH) da porta 80 (HTTP) e na porta 443 (HTTPS). Este tutorial da DigitalOcean é uma boa referência para criar ou personalizar o meu. Tenha cuidado com o Iptables e defina as regras DROP, se você errar a ordem, ficará permanentemente bloqueado! Dito isto, esta frase é o que eu uso e é seguro, testado e funcionando perfeitamente :
sudo iptables -P INPUT ACCEPT && sudo iptables -F && sudo iptables -A INPUT -i lo -j ACCEPT && sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT && sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT && sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT && sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT && sudo iptables -A INPUT -j LOG && sudo iptables -A FORWARD -j LOG && sudo ip6tables -A INPUT -j LOG && sudo ip6tables -A FORWARD -j LOG && sudo iptables -A INPUT -j DROP
Fazer alterações persistentes nas reinicializações
A última etapa é instalar e configurar o pacote iptables-persistent , que automatizará o salvamento e a restauração das regras nas reinicializações.
sudo aptitude install iptables-persistent && sudo service iptables-persistent start
Ele solicitará a confirmação das regras IPV4 e IPV6, e você deverá usar a tecla tab para selecionar 'yes' para cada e salvar. Ele será iniciado automaticamente ao reinicializar, para que você não precise se preocupar em configurá-lo ainda mais.
Uma coisa a observar sobre tornar as regras persistentes é que você precisa informar manualmente o processo sobre quaisquer novas regras adicionadas ou editadas (como se você tivesse adicionado ou removido HTTPS na porta 443, por exemplo). Para fazer isso, execute sudo service iptables-persistent save , que atualizará o conjunto atual de regras em vigor. Acho que o comando foi alterado para "netfilter-persistent" nas versões posteriores a 14.04, então use sudo service netfilter-persistent save se o primeiro não funcionar.
Resumo
Agora, o fail2ban monitorará os ataques ao SSH e adicionará e subtrairá os endereços IP automaticamente, de acordo com os parâmetros definidos por você. O Iptables irá ignorar todo o tráfego de entrada para as portas que você não abriu e essas regras irão persistir durante as reinicializações, então não há muito mais o que você precisa fazer. Aproveite o tempo livre extra, eu acho!
Invertendo todas as etapas acima se você quiser desfazer todas as alterações
Se por algum motivo você não quiser continuar usando esse método, poderá desfazer tudo rapidamente. Isso não é recomendado, mas é a sua máquina, então aqui está como:
- Limpe todas as regras do Iptables e aceite todo o tráfego em todas as portas
sudo iptables -P INPUT ACCEPT && sudo iptables -F(você deve fazer isso para remover a regra DROP no final ou será bloqueado) - Remova os pacotes instalados anteriormente e suas configurações
sudo aptitude purge fail2ban iptables-persistent(ou talveznetfilter-persistent, dependendo da sua versão do servidor Ubuntu). Depois de um reinício, você deve estar de volta ao que era antes - menos quaisquer configurações personalizadas do Iptables que você precisará adicionar manualmente novamente como está fazendo atualmente.