iptables: múltiplas exclusões no encaminhamento de porta

5

Eu tenho uma configuração existente do iptables que faz o encaminhamento de porta. Neste cenário de encaminhamento de porta, há algumas instâncias em que não desejo que ele seja encaminhado para a porta. Então, por exemplo, eu tenho isso definido:

iptables -A PREROUTING -t nat -i eth0 '!' -s 10.200.0.0/16 -p tcp --dport 80 -j DNAT --to 10.200.30.11

Isso impedirá que 10.200 / 16 acesse esta regra. Acontece que preciso adicionar várias exclusões. No entanto, não parece haver uma maneira de fazer isso:

iptables -A PREROUTING -t nat -i eth0 '!' -s 10.200.0.0/16,192.168.0.0/16 -p tcp --dport 8080 -j DNAT --to 10.200.30.11:80
iptables v1.4.8: ! not allowed with multiple source or destination IP addresses

Eu vou assumir que eu tenho que abordar isso de forma diferente, mas eu não sei como. Alguma sugestão?

    
por jagauthier 02.04.2013 / 20:47

2 respostas

7

Você pode usar uma das seguintes variantes:

O primeiro é o ipset com o tipo de conjunto "hash: net".

O segundo é uma cadeia de regras iptables com -j RETURN para cada rede para ignorar a verificação e a ação padrão desejada como a última regra da cadeia.

O terceiro é marcar o pacote com algum flag de bit usando -j MARK e flag correspondente jogando (com --set-mark , --set-xmark , etc.), e então fazer a ação desejada se a verificação de marca for satisfeita ( -m mark e --mark ). Essa é a variante mais genérica, porque a marcação pode ser definida em uma tabela e marcada em outra. OTOH a marca bitmask é limitada a 32 bits, o que pode não ser suficiente para regras complexas.

    
por 02.04.2013 / 21:23
0

Se os seus IPs forem ordenados em sequência, por exemplo:

1.1.1.5,1.1.1.6,1.1.1.7...,

você pode usar --src-range e especificar os primeiros e últimos IPs da sequência. Por exemplo, se eu precisar fechar a porta 8020 para todos os IPs, mas 1.1.1 [5-8], eu preciso adicionar essa regra do iptables:

-A INPUT -p tcp -m iprange ! --src-range 1.1.1.5-1.1.1.8 -m tcp --dport 8020 -j DROP

Não se esqueça de usar -m iprange com --src-range .

    
por 13.10.2017 / 02:07

Tags