Iptables falsificando de 2 sub-redes

3

Eu tenho pacotes de 2 sub-redes indo para o meu firewall eth1:

10.111.12.0/24 e 10.10.100.0/24

Eu configurei as regras do iptables assim:

 iptables -A INPUT -i eth1 ! -s 10.111.12.0/24 -j DROP
 iptables -A INPUT -i eth1 ! -s 10.10.100.0/24 -j DROP

Mas - a primeira regra não permite verificar a segunda porque 10.10.100.0/24 NÃO é 10.111.12.0/24 e está correspondendo à primeira regra. Como consertar isso?

    
por Kriss 18.12.2013 / 00:01

2 respostas

2

A maneira mais fácil de fazer isso é marcar os pacotes permitidos e depois descartar todos os pacotes que não estão marcados:

iptables -t mangle -A PREROUTING -i eth1 -s 10.111.12.0/24 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -i eth1 -s 10.10.100.0/24 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -i eth1 -m mark ! --mark 1 -j DROP

Você deve considerar que pode haver outros pacotes que você precisa / deseja passar.

    
por 18.12.2013 / 00:20
4

Uma cadeia seria um método útil aqui. Uma cadeia age um pouco como uma sub-rotina ou função. O RETURN apenas significa que o controle para esse pacote será retornado à cadeia anterior e as regras continuarão sendo avaliadas.

# create a new chain
iptables -t filter -N in_validnet

# all incoming packets on eth1 are evaluated by the chain
iptables -t filter -A INPUT -i eth1 -j in_validnet

# packets from these networks are returned for further evaluation
iptables -A in_validnet -s 10.111.12.0/24 -j RETURN
iptables -A in_validnet -s 10.10.100.0/24 -j RETURN

# everything else gets dropped
iptables -A in_validnet -j DROP
    
por 18.12.2013 / 00:53

Tags