6.7.2. Reenvío de paquetes entrantes en un puerto local específico a un host diferente
Puede utilizar una regla de traducción de direcciones de red de destino (DNAT) para reenviar los paquetes entrantes en un puerto local a un host remoto. Esto permite a los usuarios de Internet acceder a un servicio que se ejecuta en un host con una dirección IP privada.
El procedimiento describe cómo reenviar los paquetes IPv4 entrantes en el puerto local 443
al mismo número de puerto en el sistema remoto con la dirección IP 192.0.2.1
.
Requisito previo
-
Usted está conectado como el usuario
root
en el sistema que debe reenviar los paquetes.
Procedimiento
Cree una tabla llamada
nat
con la familia de direccionesip
:# nft add table ip nat
Añade las cadenas
prerouting
ypostrouting
a la tabla:# nft -- add chain ip nat prerouting { type nat hook prerouting priority -100 \; } # nft add chain ip nat postrouting { type nat hook postrouting priority 100 \; }
NotaPase la opción
--
al comandonft
para evitar que el shell interprete el valor de prioridad negativo como una opción del comandonft
.Añade una regla a la cadena
prerouting
que redirige los paquetes entrantes en el puerto443
al mismo puerto en192.0.2.1
:# nft add rule ip nat prerouting tcp dport 443 dnat to 192.0.2.1
Añade una regla a la cadena
postrouting
para enmascarar el tráfico saliente:# nft add rule ip daddr 192.0.2.1 masquerade
Activar el reenvío de paquetes:
# echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/95-IPv4-forwarding.conf # sysctl -p /etc/sysctl.d/95-IPv4-forwarding.conf