Como encaminhar porta de enp7s0 para localhost:80

Como encaminhar porta de enp7s0 para localhost:80

Estou muito confuso e não entendo totalmente iptables.

Eu tenho um servidor nginx escutando localhost:80e quero acessá-lo com o ip da minha NIC 192.168.29.167:80. eu estava seguindooceano digitaltutorial sobre como configurar as regras.

meu:

tipo Interface endereço
local lo 127.0.0.1
NIC lan enp7s0 192.168.29.167

Eu fiz,

iptables -A FORWARD -i lo -o enp7s0 -p tcp --syn --dport 80 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -i lo -o enp7s0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i enp7s0 -o lo -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1
iptables -t nat -A POSTROUTING -o eth1 -p tcp --dport 80 -d 127.0.0.1 -j SNAT --to-desitnation 127.0.0.1

Configurar as PREROUTINGregras POSTROUTINGe FORWARDnão fez nada. Não consigo acessar localhost:80pelo enp7s0.

(nota: eu tenho sudo sysctl -w net.ipv4.ip_forward=1)

Responder1

  1. Você tem um erro nas natregras: os nomes das suas interfaces parecem incorretos. É melhor usar com DNATbase no endereço de destino, não no nome da interface de entrada. Então, você precisa apenas de uma regra para conseguir o que deseja:
iptables -t nat -A PREROUTING --dst 192.168.29.167 -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1:80
  1. Esses pacotes não são encaminhados (transitados), mas serão recebidos. Você deve permitir esse tráfego na filter/INPUTcadeia, não no filter/FORWARD. Observe que após DNATa ação a interface de entrada não muda (portanto, você deve especificar enp7s0interface, não lo). Mas você pode permitir qualquer DNATconexão com uma única regra.
iptables -t filter -A INPUT -m conntrack --ctstate DNAT -j ACCEPT
  1. Execute o sysctl -w net.ipv4.conf.enp7s0.route_localnet=1para permitir o recebimento de pacotes externos, esses são endereçados ao arquivo 127.0.0.1.
  2. É melhor usar iptables-save -ccomandos para listar o conjunto completo de regras com contadores. Você deverá aumentar nat/PREROUTINGpelo menos os contadores de regras. Além disso, use o iptables-applypara aplicar novas regras. Verifique a documentação desses utilitários.
  3. Use o tcpdump -ni enp7s0 'tcp port 80'para solucionar problemas de tráfego externo.
  4. Para redirecionar o tráfego originado localmente você deve usar estas regras
  iptables -t nat -A OUTPUT -p tcp --dport 80 --dst 192.168.29.167 -j DNAT --to 127.0.0.1

Caso contrário, você não poderá se conectar ao seu nginx através do endereço 192.168.29.167 do próprio servidor.

informação relacionada