E aí, esse é meu primeiro tutorial após assumir a moderação da sessão de Infraestrutura, bom, vou estar aqui ensinando o basicão pra vocês.
O que vou ensinar?
Limitar conexões simultâneas vinda de um único/same IP.
Identificar o IP ataquente (noob).
Matar conexões TCP com TCP Kill.
Usar o Cutter para matar conexões em qualquer porta ou interface de rede.
Bloquear qualquer IP pelo IPTables.
Salvar e Restaurar regras no IPTables.
Parar/Ligar IPTables.
Para iniciar é necessário estarmos conectados com o usuário "root". Essas primeiras regras limita o numero de conexões em uma porta vindo de um mesmo IP, prevenindo um possível "attack" mitigando o mesmo.
iptables -I INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 10 -j DROP
Tais regras acima verificam conexões vindas de tal IP, e se o pacote enviado pelo IP for muito alto a conexão é cancelada.
Bom, e como identifico o IP atacante?
netstat -ntu | awk '{print $5}' | cut - -f1 | sort | uniq -c | sort -n
Esse comando mostra o IP com mais conexões em seu servidor.
Exemplo:
1 127.0.0.1
1 Address
1 servers)
132 201.119.167.193
O IP 201.119.167.193 fez 132 conexões em seu servidor, possivelmente pode ser o atacante.
Como faz pra desconectar clientes das minhas interfaces de internet? Simples! Tal façanha pode ser feita utilizando o utilitário TCPKill.
apt-get install dsniff
Depois
tcpkill host xxx.xxx.xxx.xxx
onde xxx.xxx.xxx.xxx.xxx é o IP a ser desconectado.
Como eu bloqueio IP's utilizando o IPTables no Linux? Fácil, só usar essa regrinha aqui.
iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP
Algumas façanhas podem ser feitas, por exemplo, bloquear um IP de acessar tal porta, como mostra no comando abaixo.
iptables -A INPUT -s 163.235.144.110 -p tcp --destination-port 25 -j DROP
Bom, e agora? como salvo tudo isso que eu fiz para que não seja perdido no próximo server restart? fácil.
iptables-save > /etc/iptables.up.rules
iptables-restore < /etc/iptables.up.rules
Antes de reiniciar, execute o comando de -save, após o shutdown utilize o comando de -restore.
Ligar e desligar o IP Tables.
service iptables stop
service iptables start
Basicão pra vocês, pode ser útil.
Em breve, tutoriais mais avançados sobre segurança.