Olá,
Estou tentando redirecionar todo o tráfego do meu roteador wifi para um servidor local usando iptables. Não tenho certeza se acertei o comando e também quero excluir o IP do roteador (172.16.0.1) da regra para evitar que eu me bloqueie de acesso ao roteador.
O que eu descobri 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 isso faça com que eu não consiga acessar o roteador novamente haha. Como excluir 172.16.0.1 de ser redirecionado para 172.16.0.2?
Configuração: 172.16.0.2 é o IP do servidor web 172.16.0.1 é meu roteador (dd-wrt) sem conexão com a internet.
Exemplo do que estou tentando alcançar:
- O usuário se conecta ao hotspot wifi, tentando acessar www.siteA.com, é redirecionado para 172.16.0.2 (/index.html)
- O usuário se conecta ao hotspot wifi, tentando acessar www.siteB.com, é 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!
Responder1
Como as regras do iptables são processadas em ordem, a primeira regra deve ser 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
Não acho que isso funcione para https, pois não está se conectando a um servidor com SSL.