Como faço para redirecionar o adaptador para o host local, alterando as portas

3

Estou usando um servidor Ubuntu 16.

Estou tentando usar o iptables para encaminhar uma porta de um adaptador de rede e uma porta específica para uma porta específica em / 127.0.0.1. Parece a ferramenta correta.

Por meio de um exemplo, vamos imaginar que eu quero que o adaptador ens192 redirecione o tráfego de entrada na porta 8443 para 127.0.0.1:443. Eu não quero que o 443 do ens192 chegue a 127.0.0.1:443 ... ele deve estar fechado.

Eu fiz as seguintes chamadas (como sudo su, por conveniência) em uma nova instalação:

# sysctl -w net.ipv4.ip_forward=1  # permits port-forwarding
# sysctl -w net.ipv4.conf.ens192.route_localnet=1  # permits routing adapter 2 localhost
# iptables -P INPUT DROP
# iptables -t nat -A PREROUTING -i ens192 -p tcp --dport 8443 -j DNAT \
--to-destination 127.0.0.1:443
# iptables -t nat -A POSTROUTING -o ens192 -j MASQUERADE

No entanto, isso não funciona ... navegando para [ip]: 8443 não produz os resultados desejados ... o tempo limite do navegador.

Eu validei que o servidor está funcionando corretamente na porta desejada.

Suponho que a solicitação TCP do navegador mude dentro do servidor para aparecer como se contatasse 127.0.0.1:443. Então, ao responder, o endereço IP traduz de volta para o endereço / porta de ens192, ao sair. Ou ... não?

    
por Joseph Van Riper 17.02.2017 / 20:39

1 resposta

0

Parece que o problema é que você adicionou as regras ao tráfego NAT, mas não permitiu que ele passasse. A regra a seguir é uma maneira rápida de permitir todo o tráfego que você está usando:

iptables -A INPUT -m conntrack --ctstate DNAT -j ACCEPT

Veja se essa regra faz o que você deseja. Se ainda assim não funcionar, tente alterar a política da cadeia INPUT de volta para ACCEPT temporariamente, apenas para descobrir se o firewall é o problema ou não.

    
por 23.02.2017 / 03:20