IPtables: não redirecionar IPs específicos

1

Estou tentando redirecionar todo o tráfego da web para um computador usando:

iptables -t nat -A PREROUTING -p tcp  –destination-port 80 -j REDIRECT –to-port 1000

Funciona, mas eu gostaria de adicionar uma regra para não redirecionar o tráfego para um destino específico ip (ex: facebook.com)

Não foi possível encontrar no google. Agradeço antecipadamente!

    
por Thomas Sxt 31.01.2017 / 15:13

1 resposta

1

Observo que o IP de destino do exemplo que você fornece não é, na verdade, um endereço IP (que é o que o iptables oferece), mas um nome de domínio totalmente qualificado. No entanto, suponhamos que você tenha realmente citado um endereço IP e suponhamos que ele seja 198.51.100.1 (de acordo com nossas conselhos sobre exemplos de endereços IP ).

Com apenas um endereço para isenção, você pode adicioná-lo à regra como uma isenção explícita:

iptables -t nat -A PREROUTING -p tcp --dport 80 \! -d 198.51.100.1 -j REDIRECT --to-port 1000

Observe o uso da barra invertida para proteger a negação ( ! ) do shell. Se você tivesse mais endereços para isentar, seria mais simples escrever regras explícitas que correspondam a esses endereços e concluir o processamento com um destino de dispositivo inofensivo. Em seguida, deixe uma regra pega-tudo no final para lidar com todo o resto:

iptables -t nat -A PREROUTING -p tcp --dport 80 -d 192.0.2.0/24 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -d 198.51.100.0/24 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -d 203.0.113.0/24 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 1000

Note que, como sempre, a ordem é importante nas regras do iptables. Onde estes vêm em sua cadeia é importante, e você precisa ter um cuidado para acertar.

Editar : você pergunta o que acontecerá com os pacotes que correspondem às regras com ACCEPT destinos, ou seja, os pacotes isentos. Quando eles corresponderem a ACCEPT , eles ficarão fora da cadeia PREROUTING nat, e nenhum processamento adicional acontecerá a eles nessa cadeia . Seu destino final será determinado por regras e políticas nas outras cadeias pelas quais eles passarão.

    
por 31.01.2017 / 15:26