Red Hat Training

A Red Hat training course is available for RHEL 8

45.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

  1. Cree una tabla llamada nat con la familia de direcciones ip:

    # nft add table ip nat
  2. Añade las cadenas prerouting y postrouting 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 \; }
    Nota

    Pase la opción -- al comando nft para evitar que el shell interprete el valor de prioridad negativo como una opción del comando nft.

  3. Añade una regla a la cadena prerouting que redirige los paquetes entrantes en el puerto 443 al mismo puerto en 192.0.2.1:

    # nft add rule ip nat prerouting tcp dport 443 dnat to 192.0.2.1
  4. Añade una regla a la cadena postrouting para enmascarar el tráfico saliente:

    # nft add rule ip daddr 192.0.2.1 masquerade
  5. 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