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

1

Aloha,

Estou tentando redirecionar todo o tráfego do meu roteador Wi-Fi para um servidor da Web local usando o iptables. Eu não tenho certeza se tenho o comando correto e também quero excluir o IP do roteador (172.16.0.1) da regra para evitar que eu me bloqueie 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

Ainda não testei acima, pois temo que não consiga acessar o roteador novamente lol. Como pode excluir 172.16.0.1 de ser redirecionado para 172.16.0.2?

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

Exemplo sobre o 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, recebe redirecionado para 172.16.0.2 (/index.html)
  • O usuário tenta acessar 172.16.0.1 e nenhuma direção ocorre:)

Tenha um ótimo dia e obrigado!

    
por D. Eight 29.01.2016 / 05:50

1 resposta

0

Como as regras do iptables são processadas na primeira regra, deve-se permitir todo o tráfego direcionado ao roteador.

iptables -t nat -I PREROUTING -i br0 -p tcp -d 172.16.0.1--dport 80 -j ACCEPT 

Em seguida, adicione as regras para redirecionar o tráfego.

iptables -t nat -A PREROUTING -d !172.16.0.1 -i br0 -p tcp --dport 80 -j DNAT --to-destination 172.16.0.2:80

Eu não acho que isso funcionará para https, já que não está se conectando a um servidor com ssl.

    
por 29.01.2016 / 06:44