sexta-feira, 8 de fevereiro de 2013

Como bloquear um IP no Linux usando iptables


Nesta semana, um de nossos parceiros estava recebendo um flood bastante sério em seu servidor de e-mails (IMAP). Determinado endereço IP estava realizando tal ataque.
Jun 12 12:59:03 server dovecot: pop3-login: Disconnected (auth failed, 1 attempts): user=<loan>, method=PLAIN, rip=189.1.**.**, lip=93.104.**.**
Jun 12 12:59:06 server dovecot: pop3-login: Disconnected (auth failed, 1 attempts): user=<loan>, method=PLAIN, rip=189.1.**.**, lip=93.104.**.**
Analizando as mensagens de erro, descobrimos se tratar do IP 189.1.**.** . Para resolver o problema, fizemos o bloqueio do endereço IP que estava originando o ataque, usando o firewall iptables.
Nos exemplos a seguir, substitua sempre o IP 1.2.3.4 pelo IP que deseja bloquear!
Para realizar um simples bloqueio ao IP que causou o ataque:
  • iptables -I INPUT -s 1.2.3.4 -j DROP
Pronto! O IP problemático já estará bloqueado e o servidor não receberá mais nenhum dado dele.
Opções mais avançadas do iptables para realizar bloqueios:
Caso seu servidor tenha mais de uma placa de rede, você pode bloquear apenas em uma placa específica (aonde eth1 é a interface que receberá o bloqueio).
  • iptables -I INPUT -i eth1 -s 1.2.3.4 -j DROP
Como bloquear um range inteiro (subnet) de 254 IPs ? Digamos: 189.1.50.1  até 189.1.50.254 ? Troque o último bloco do IP por “0″ e adicione /24 ao final:
  • iptables -A INPUT -s 189.1.50.0/24 -j DROP
Como bloquear uma sub-rede ainda maior? Por exemplo, 189.1.1.1 até 189.1.254.254 ? Substitua os dois ultimos blocos por “0″ e agora adicione /16 ao final:
  • iptables -A INPUT -s 189.1.0.0/16 -j DROP
Como gerar um log a cada bloqueio realizado com o iptables ?
  • iptables  -A INPUT -s 189.1.50.0/24 -j LOG –log-prefix “IP BLOQUEADO:”
Como exibir todos os IPs bloqueados no sistema?
  • iptables -L -v
Como verificar se determinado IP está ou não bloqueado ?
  • iptables -L -v | grep 1.2.3.4
Como desbloquear um IP ?
  • Digite: iptables -L INPUT -n –line-numbers | grep 1.2.3.4
  • Exemplo de resultado:num   pkts bytes target     prot opt in     out     source               destination
    1        0     0 DROP       0    –  *      *       200.19.18.5        0.0.0.0/0
    2        0     0 DROP       0    –  *      *       201.19.18.100       0.0.0.0/0
    3        0     0 DROP       0    –  *      *       189.19.29.2        0.0.0.0/0
  • Supondo que queremos desbloquear o IP 201.19.18.100 , que está na linha 2:
  • iptables -D INPUT 2
Como salvar as configurações do iptables, para terem efeito após um reboot ?
  •  service iptables save
    less /etc/sysconfig/iptables

Nenhum comentário:

Postar um comentário

Precisamos da Sua Opnião