Como faço para bloquear um endereço IP no Ubuntu?

2

Eu configurei a máquina Ubuntu como roteador. Etapas da configuração do NAT são dadas abaixo:

        #iptables -F
        #iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
        #iptables-save > /etc/network/iptables

Em seguida, manteve a localização deste arquivo em rc.local

#vi /etc/rc.local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.  
#  
/sbin/iptables-restore < /etc/network/iptables 
# In order to enable or disable this script just change the execution  
# bits.  
#  
# By default this script does nothing.
exit 0

#reboot

Funciona, agora eu quero bloquear um endereço IP. Para fazer isso, executei o seguinte comando:

#iptables -A INPUT -s   69.171.229.11 -j DROP    
#iptables-save >  /etc/network/iptables    
#reboot

Mas isso não funciona.

vi /etc/network/iptables agora está assim:

 # Generated by iptables-save v1.4.4 on Tue Feb 14 11:21:16 2012
*nat
:PREROUTING ACCEPT [870:97719]
:POSTROUTING ACCEPT [283:23151]
:OUTPUT ACCEPT [461:28753]
-A POSTROUTING -o eth0 -j MASQUERADE   COMMIT
 # Completed on Tue Feb 14 11:21:16 2012
 # Generated by iptables-save v1.4.4 on Tue Feb 14 11:21:16 2012
*filter
:INPUT ACCEPT [4914:3254723]
:FORWARD ACCEPT [2382:1222521]
:OUTPUT ACCEPT [4010:410041]
-A INPUT -s 98.137.149.56/32 -j DROP 
COMMIT
 # Completed on Tue Feb 14 11:21:16 2012

O que estou perdendo para bloquear um endereço IP?

    
por Jerry 14.02.2012 / 09:19

3 respostas

4

Se você quiser bloquear um IP de usar a regra MASQUERADE, é necessário colocar essa regra na cadeia FORWARD , não na cadeia INPUT .

iptables -I FORWARD -s 69.171.229.11 -j DROP
    
por 14.02.2012 / 16:46
0

Acho que a sequência não está correta.

O que você está fazendo com o append é colocá-lo na parte inferior da cadeia. IPtables pára após o primeiro jogo. Portanto, pode ser que a regra seja correspondida antes de atingir a regra de bloqueio. Certifique-se de que a regra de bloqueio esteja no topo. Você pode usar a opção -I para inseri-lo em um ponto específico da sua cadeia.

    
por 14.02.2012 / 09:41
0

iptables-save não faz com que suas regras de iptables sejam persistentes, então elas serão perdidas após a reinicialização. Em vez disso, o que ele faz é imprimir sua configuração atual do iptables para STDOUT (veja manpages para o iptables- salvar ). Então, após a sua reinicialização, seus iptables devem estar vazios.

Você provavelmente deseja restaurar suas regras desse arquivo após uma reinicialização. Para fazer isso, use

iptables-restore < /etc/network/iptables

Veja manpages para o iptables-restore sobre isso.

Como mencionado por Patrick, a regra

iptables -A INPUT -s 69.171.229.11 -j DROP

só impedirá que os pacotes sejam enviados para o próprio roteador - eles ainda serão encaminhados se forem endereçados corretamente. Para evitar isso, adicione a regra

iptables -A FORWARD -s 69.171.229.11 -j DROP

O FORWARD é aplicado aos pacotes que o roteador deseja encaminhar, enquanto o INPUT é aplicado aos pacotes endereçados ao próprio roteador.

    
por 15.02.2012 / 11:23