iptables para uma sub-rede / 16 com uma exceção / 24

1

simplesmente, quero usar essas regras:

iptables -I FORWARD -i br0.105 -d 192.168.0.0/16 -j DROP
iptables -I FORWARD -s 192.168.0.0/16 -i br0.105 -j DROP

mas com exceção da sub-rede 192.168.99.0/24.

Existe uma maneira de especificar isso nas linhas acima? Prefiro não adicionar uma regra de exceção com -j accept para o .99 -subnet, pois há outras regras que se referem a essa sub-rede específica.

    
por Jarmund 07.05.2013 / 12:51

3 respostas

2

Use uma nova corrente. Existem várias maneiras de fazer isso, minha preferência seria:

iptables -N DROP_BAD_HOSTS
iptables -A DROP_BAD_HOSTS -s 192.168.99.0/24 -j RETURN
iptables -A DROP_BAD_HOSTS -i br0.105 -d 192.168.0.0/16 -j DROP
iptables -A DROP_BAD_HOSTS -s 192.168.0.0/16 -i br0.105 -j DROP
iptables -A FORWARD -j DROP_BAD_HOSTS

Observe que a primeira regra faz um RETURN se a fonte for a / 24 que você deseja excluir.

Outro método é esse, mas é menos flexível porque você não pode adicionar outro intervalo a ser excluído no futuro:

iptables -N DROP_BAD_HOSTS
iptables -A DROP_BAD_HOSTS -i br0.105 -d 192.168.0.0/16 -j DROP
iptables -A DROP_BAD_HOSTS -s 192.168.0.0/16 -i br0.105 -j DROP
iptables -A FORWARD ! -s 192.168.99.0/24 -j DROP_BAD_HOSTS
    
por 10.05.2013 / 02:33
1

as there are other rules that apply as well

Quais são as outras regras? Aplica-se à sub-rede 0,99 ou aplica-se a 192.168.0.0/16?

Se ele se aplicar apenas à sub-rede 0,99, você só precisa movê-lo acima dessas duas regras.

    
por 07.05.2013 / 12:55
0

Crie uma nova cadeia:

iptables -N subnet1

Direcione a rede de exceção para a nova cadeia:

iptables -I FORWARD -i br0.105 -d 192.168.99.0/24 -j subnet1

Aplique outras regras ao tráfego nessa cadeia:

iptables -I subnet1 ... -j DROP/ACCEPT
    
por 07.05.2013 / 13:24