Configuración de red · 8 min read · Oct 28, 2025

Puerta de enlace NAT, Iptables, Reenvío de puertos, Configuración de DNS y DHCP - Servidor Ubuntu 8.10

Puerta de enlace NAT, Iptables, Reenvío de puertos, Configuración de DNS y DHCP - Servidor Ubuntu 8.10

Así que eres demasiado pobre para permitirte otro enrutador caro y quieres hacerlo tú mismo. ¡Has encontrado el tutorial correcto! Este tutorial te mostrará cómo configurar un enrutador Ubuntu 8.10 con NAT, reenvío de puertos, un servidor DNS y un servidor DHCP.

¿Por qué Ubuntu preguntas?

No solo es Ubuntu un gran sistema operativo, también es muy flexible y lo suficientemente potente como para permitirte empezar a funcionar en poco tiempo. Nota: Reinicia tu computadora después de cada paso. Esto asegurará que todo esté funcionando correctamente.

Algunas de las cosas básicas que vamos a necesitar son…

DHCP – dhcp3-server
DNS – bind9
iptables – incluido /w ubuntu

Primero lo primero

Vas a necesitar 2 tarjetas de red. Toma tu primera tarjeta de red y conecta tu conexión WAN a ella. Deberías saber qué tarjeta de red es, eth0, eth1, etc… Si no sabes cuál es, prueba y error, amigo.

Digamos que tu tarjeta WAN va a ser eth0 ( si es eth1, simplemente haz todo igual pero ajusta tu configuración en consecuencia). Queremos localizar el archivo /etc/network/interfaces. Haz un VI en el archivo como

sudo vi /etc/network/interfaces

Deberías ver en el archivo ( si no tienes nada configurado aún):

# Este archivo describe las interfaces de red disponibles en tu sistema
# y cómo activarlas. Para más información, consulta interfaces(5).
# La interfaz de red de loopback
auto lo
iface lo inet loopback

Vamos a añadir esto al archivo. Como nota al margen, si no sabes cómo usar VI, usa nano o aprende VI.

auto eth0
iface eth0 inet dhcp

El código auto eth0 le dice a eth0 que inicie al arrancar, similar a ejecutar

sudo ifconfig eth0 up

El código iface eth0 inet dhcp le dice a la interfaz eth0 que busque un servidor DHCP y obtenga su información de allí. Esto es importante si estás conectado a un módem por cable, ya que querrás obtener una IP pública de tu ISP.

El siguiente paso es configurar tu tarjeta de red eth1. Esta será tu tarjeta “LAN”.

Si recuerdas, nuestra configuración de /etc/network/interfaces se veía así:

# Este archivo describe las interfaces de red disponibles en tu sistema
# y cómo activarlas. Para más información, consulta interfaces(5).
# La interfaz de red de loopback
auto lo
iface lo inet loopback
# La interfaz de red primaria
auto eth0
iface eth0 inet dhcp

Vamos a hacer VI en el archivo interfaces nuevamente y agregar algunas líneas más:

sudo vi /etc/network/interfaces

Agrega estas líneas al final del archivo.

auto eth1
iface eth1 inet static
        address         172.17.207.121
        netmask         255.255.255.0
        broadcast       172.17.207.255
        network         172.17.207.0

Esto simplemente te da una dirección IP estática para tu servidor en tu tarjeta LAN.

Tu archivo ahora debería verse así.

# Este archivo describe las interfaces de red disponibles en tu sistema
# y cómo activarlas. Para más información, consulta interfaces(5).
# La interfaz de red de loopback
auto lo
iface lo inet loopback
# La interfaz de red primaria
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet static
        address         172.17.207.121
        netmask         255.255.255.0
        broadcast       172.17.207.255
        network         172.17.207.0

Ahora, antes de que se nos olvide, editemos tu archivo /etc/hosts.

sudo vi /etc/hosts

Haz que el archivo se vea como el mío, aunque si llamas a tu servidor userve o myserver puedes cambiarlo.

También nota el nombre de dominio asus.local, es una buena idea usar el tuyo como mydomain.local, pero puedes usar lo que tengo para fines de aprendizaje.

Usamos .local porque es fácil de recordar y no es público, así que no interferiremos con nada.

127.0.0.1       localhost server.localhost
172.17.207.121  server.asus.local server asus.local

Ahora que tenemos nuestras interfaces configuradas, vamos a instalar y configurar un servidor DHCP. Para instalar el servidor DHCP ejecuta el comando

sudo apt-get install dhcp3-server

Vamos a editar el archivo dhcpd.conf. Comienza ejecutando el comando

sudo vi /etc/dhcp3/dhcpd.conf

Ahora, si hay algo en ese archivo, ELIMÍNALO.

Copia y pega esto en tu archivo, luego escribe y sal.

ddns-update-style none;
option domain-name "whatever.local"; //cambia esto a algo que quieras.local como mydomain.local
option domain-name-servers 172.17.207.121, 24.92.226.41; //también podrías querer cambiar ese segundo servidor DNS al servidor DNS local de tu ISP
option routers 172.17.207.121;
default-lease-time 42300;
max-lease-time 84600;
authoritative;
log-facility local7;
subnet 172.17.0.0 netmask 255.255.255.0 {
        range 172.17.207.1 172.17.207.100; //puedes expandir el rango simplemente cambiando .100 a .254 o algo así
}

Ahora ejecuta el comando

sudo /etc/init.d/dhcp3-server start

Esto iniciará tu servidor DHCP y podemos etiquetar esta parte como HECHO.

Pasando a… DNS

Bind es el paquete DNS que vamos a usar. Para instalar esto, simplemente ejecutamos

sudo apt-get install bind9

Esto descargará e instalará nuestro servidor bind.

Comienza ejecutando el comando

vi /etc/bind/named.conf

Luego elimina todo en el archivo y busca mis comentarios, generalmente indicados por //.

// Este es el archivo de configuración principal para el servidor DNS BIND llamado. // Por favor, lee /usr/share/doc/bind9/README.Debian.gz para obtener información sobre la // estructura de los archivos de configuración de BIND en Debian, *ANTES* de que personalices // este archivo de configuración. // Si solo estás agregando zonas, por favor hazlo en /etc/bind/named.conf.local include "/etc/bind/named.conf.options"; // prime el servidor con conocimiento de los servidores raíz zone "." { type hint; file "/etc/bind/db.root"; }; // ser autoritativo para las zonas de reenvío y reversa de localhost, y para // zonas de difusión según RFC 1912 zone "asus.local" { //cambia asus.local a lo que hayas nombrado tu dominio como mydomain.local type master; file "/etc/bind/zones/asus.local.db"; //este archivo o carpeta no existe así que necesitaremos crearlo }; zone "207.17.172.in-addr.arpa" { type master; file "/etc/bind/zones/rev.207.17.172.in-addr.arpa";//este archivo no existe así que también necesitaremos crearlo }; zone "localhost" { type master; file "/etc/bind/db.local"; }; zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; }; zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; }; zone "255.in-addr.arpa" { type master; file "/etc/bind/db.255"; }; include "/etc/bind/named.conf.local";

Antes de que podamos crear los dos archivos asus.local.db y rev.207.17.172.in-addr.arpa, necesitamos editar otro archivo. Así que

sudo vi /etc/bind/named.conf.options

Elimina todo en el archivo y usa esto…

options {
        directory "/var/cache/bind";
        // Si hay un firewall entre tú y los servidores de nombres que quieres
        // hablar, es posible que necesites arreglar el firewall para permitir múltiples
        // puertos para hablar.  Consulta http://www.kb.cert.org/vuls/id/800113
        // Si tu ISP proporcionó una o más direcciones IP para servidores de nombres
        // estables, probablemente quieras usarlos como reenvíos.
        // Descomenta el siguiente bloque, e inserta las direcciones reemplazando
        // el marcador de posición de ceros.
         forwarders {
          24.92.226.41; //muy importante, cambia esto a los servidores DNS de tu ISP LOCAL
      24.92.224.40;
         };
        auth-nxdomain no;    # conforme a RFC1035
        listen-on-v6 { any; };
};

Presta atención a los comentarios, te dicen que CAMBIES nuestra dirección(es) de reenvío a los DNS de tu ISP LOCAL.

A continuación, dirígete a tu directorio bind:

cd /etc/bind/
sudo mkdir zones
cd zones
sudo vi asus.local.db

(O usa el nombre de tu dominio como mydomain.local.db.)

Una vez que estés en el archivo asus.local.db o mydomain.local.db (cualquiera que hayas llamado), copia y pega esto, haciendo los cambios apropiados a tu nombre de dominio.

$ORIGIN .
$TTL 4000 ;
asus.local.     IN SOA  server.asus.local. admin.asus.local. (
2007031001      ; serial
28800           ; refresh
3600            ; retry
604800          ; expire
38400           ; min
)
                NS      server.asus.local.
$ORIGIN asus.local.
                IN      A       172.17.207.121
www             IN      A       172.17.207.121 //un ejemplo
server          IN      A       172.17.207.121 //un ejemplo
macpro          IN      A       172.17.207.4   //un ejemplo

Si haces un nslookup macpro, obtendrás 172.17.207.4 como respuesta, así que cambia los nombres de dominio y las IP según tu configuración.

A continuación, vamos a vi el archivo rev.207.17.172.in-addr.arpa que aún no existe. Pero existirá una vez que lo guardemos. Así que asumiendo que aún estás en la carpeta zones:

vi rev.207.17.172.in-addr.arpa

Copia y pega lo que tengo aquí, haciendo los cambios apropiados.

$ORIGIN .
$TTL 28800      ; 8 horas
207.17.172.IN-ADDR.ARPA IN SOA server.asus.local. admin.asus.local. (
                                2008110601 ; serial
                                28800      ; refresh (8 horas)
                                7200       ; retry (2 horas)
                                604800     ; expire (1 semana)
                                86400      ; minimum (1 día)
                                )
                        NS      server.asus.local.
$ORIGIN 207.17.172.IN-ADDR.ARPA.
4                     PTR    macpro.asus.local.

Así que ahora, si hiciste una búsqueda inversa en 172.17.207.4, obtendrías macpro.asus.local.

Ahora ejecuta el comando para iniciar named:

sudo /etc/init.d/named start

Si no se inicia, verifica los registros en /var/logs.

Por último pero no menos importante, IPTABLES

Primero lo primero, necesitamos editar sysctl.conf en la carpeta /etc/, así que:

sudo vi /etc/sysctl.conf

Descomenta la línea 28. Eso significa eliminar el # que está delante de ella. La línea debería ser net.ipv4.ip_forward=1

A continuación, vamos a vi sobre rc.local:

sudo vi /etc/rc.local

Agrega estas dos líneas al final del archivo:

/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables --table nat -A POSTROUTING -o eth0 -j MASQUERADE

Esto configurará tu puerta de enlace usando iptables. Puedes usar iptables para hacer esto más seguro que esta configuración básica.

Para reenviar puertos, puedes agregar algo como esto al final del archivo rc.local.

/sbin/iptables -t nat -A PREROUTING -p tcp -i eth0 -d jgibbs.dyndns.org --dport 3389 -j DNAT --to 172.17.207.4:3389

La larga línea anterior reenviará todo el tráfico entrante en el puerto 3389 a la IP 172.17.207.4, así que puedo acceder a mi escritorio remoto en mi caja de Windows desde fuera de mi red.

Puedes hacer esto con cualquier puerto que desees.

¡REINICIA!

Además, informa cualquier problema y arreglaré este tutorial con actualizaciones. Gracias, Jeremy usuario gibbsj.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.