Usando o iptables para redirecionar todo o tráfego para o servidor local

3

Estou tentando redirecionar todo o tráfego do meu roteador Wi-Fi para um servidor da Web local usando o iptables. Não tenho certeza se obtive o comando correto e também desejo excluir o IP do roteador (172.16.0.1) da regra para evitar que eu fique impedido de acessar o roteador.

O que eu tenho até agora:

iptables -t nat -A PREROUTING -i br0 -p tcp --dport 80 -j DNAT --to 172.16.0.2:80
iptables -t nat -A PREROUTING -i br0 -p tcp --dport 443 -j DNAT --to 172.16.0.2:80

Eu testei acima e isso faz com que eu não consiga acessar o roteador novamente e o redirecionamento não está funcionando. O que estou fazendo errado, e como pode excluir 172.16.0.1 de ser redirecionado para 172.16.0.2?

Configuração: 172.16.0.2 é o IP para o servidor web 172.16.0.1 é o meu roteador (dd-wrt) sem conexão com a internet.

Exemplo do que estou tentando alcançar:

  • O usuário se conecta ao hotspot Wi-Fi, tentando acessar www.siteA.com, recebe redirecionado para 172.16.0.2 (/index.html)
  • O usuário se conecta ao hotspot Wi-Fi, tentando acessar www.siteB.com, é redirecionado para o 172.16.0.2 (/index.html)
  • O usuário tenta acessar 172.16.0.1 e nenhuma direção ocorre
por D. Eight 29.01.2016 / 06:42

1 resposta

4

Tudo o que você precisa é essa regra única:

iptables -t nat -I PREROUTING --src 0/0 --dst 172.16.0.2 

Isto irá inserir na cadeia PREROUTING (? = - I) da tabela nat (-t nat) a regra, que diz:

Qualquer pacote de entrada (-src 0/0) com o endereço de destino 172.16.0.2 (--dd 172.16.0.2).

Coisas para lembrar são: Redirecionar tráfego de entrada significa inserir regras na cadeia PREROUTING da tabela nat. O redirecionamento é feito apenas para a interface especificada. Mais no homem iptables, procure por palavra-chave REDIRECT.

--append PREROUTING  --source 172.16.0.1 --jump RETURN

RETURN significa parar de atravessar essa cadeia e continuar na próxima regra na cadeia anterior (chamada). Se o fim de uma cadeia interna for atingido ou uma regra em uma cadeia interna com RETURN de destino for correspondida, o destino especificado pela política de cadeia determinará o destino do pacote.

    
por 29.01.2016 / 08:31