Como configurar un gateway simple con Linux Debian

Cuando una empresa cuenta con una conexión de banda ancha hacia Internet y se busca compartir dicha conexión entre las diferentes oficinas, muchas veces se piensa que es necesario comprar un equipo de firewall dedicado, lo cual es un error. En este articulo demostraremos que con el minimo de inversion y utilizando Linux Debian podemos ofrecer a nuestra red mejores servicios que al adquirir un equipo de firewall.

La adquisición de dicho hardware puede ser demasiado costosa para muchas empresas guatemaltecas, en cambio al utilizar una maquina dedicada con un Linux Debian instalado y sirviendo como gateway para la LAN, nos ofrece muchos beneficios al compararlo contra un equipo de firewall dedicado. Para empezar, es mucho mas flexible y además nos permite ofrecer muchos servicios extras a nuestras red.

Para correr una gateway (pasarela) con Debian es necesario una maquina con dos tarjetas de red, y que la tarjeta externa pueda rutear correctamente hacia el ISP. (ver articulo)

En esta oportunidad, tomaremos la interfaz de red eth0 para que sirva directamente a la red interna, esta tarjeta que tendrá una dirección IP clase C mas o menos así­: 192.168.1.1, la cual sera la que utilizaremos como default gateway para nuestras maquinas internas. Esto nos deja la eth1 para la dirección externa de la maquina.

Para que dicha maquina funcione como un gateway y rutee los paquetes desde nuestra LAN hacia el mundo exterior y de regreso, necesitamos que tenga habilitado el bit de IP forwarding, además de las reglas necesarias para que pueda enrutar paquetes. Esto se hace ví­a iptables.

Básicamente necesitamos tener tres juegos de reglas:

  • Denegar las conexiones entrantes en eth1 (la interfaz de red externa)
  • Permitir los paquetes salientes desde nuestra LAN, ví­a eth0
  • Permitir que las conexiones establecidas regrese.



Con este fin creamos el siguiente script:

archivo: 00-firewall
#Publicado bajo licencia GPL by www.guatewireless.org
#!/bin/sh

PATH=/usr/sbin:/sbin:/bin:/usr/bin

#
# borrando todas las reglas existentes.
#
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X

# Siempre acepte el trafico desde loopback
iptables -A INPUT -i lo -j ACCEPT

# Permitir conexiones establecidas, y las que no vengan desde fuera.
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -i ! eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Permitir conexiones salientes desde adentro de la LAN.
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

# Enmascarar.
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

# No forward de afuera hacia adentro.
iptables -A FORWARD -i eth1 -o eth1 -j REJECT

# Habilite ruteo.
echo 1 > /proc/sys/net/ipv4/ip_forward


Es necesario que este script corra al arrancar el sistema y tan pronto como las interfaces de red se levanten. Para este propósito se puede guardar en el directorio /etc/network/if-up.d/. Todo lo que se encuentre en ese directorio es ejecutado cuando una interfase se levanta, siempre y cuando el archivo sea ejecutable.

Debido a que los contenidos del directorio son ejecutados en orden, nombraremos el script 00-firewall.

Esto nos proveerá con un gateway básico. Ahora cualquier maquina dentro de la LAN deberá ser capaz de accesar Internet, mientras el gateway se mantiene seguro.

Ahora debemos pensar en agregar servicios extras para nuestra LAN, desde el gateway claro. Existen un par de cosas interesantes que se pueden agregar para hacernos la vida mas fácil, por ejemplo en lugar de asignar una dirección IP fija a cada maquina dentro de la LAN, podemos utilizar una asignación dinámica utilizando DHCP.

Así­ mismo podemos instalar un servidor de nombres local, con esto podremos reconocer nuestras maquinas en la red interna.

Un excelente paquete para eso es dnsmasq. El cual se puede instalar ví­a apt-get y se configura ví­a un simple archivo /etc/dnsmasq.conf.

Una vez este paquete de software este corriendo, podremos observar que las maquinas cliente pueden buscar cualquier host en la red que este incluido en el archivo /etc/hosts dentro del servidor. Con lo anterior podremos nombrar con aliases las maquinas de la red y serán resueltas fácilmente.

Por ejemplo, al instalar un servidor proxy en el gateway podemos crearle un nombre:

archivo: /etc/hosts
#
127.0.0.1       localhost

#
# Maquinas locales.
#
192.168.1.1   gateway   gateway.guatewireless.net   proxy   proxy.guatewireless.net


Esto nos asignara el nuevo nombre proxy para la maquina anteriormente conocida como prince, digo gateway.-


“..that’s all folks…”

Popularity: 15% [?]


Otros articulos de interes:

  1. Instalando Java en Linux Debian sarge/etch/lenny/sid
  2. Creando un repositorio de paquetes de Debian
  3. ¿Cómo establecer los repositorios en Debian o Ubuntu?
  4. ¿Cómo funcionan los repositorios en Debian o Ubuntu?
  5. ¿Cómo crear archivos indice en Debian o Ubuntu?
  6. Como encontrar informacion basica del hardware desde Linux
  7. Agregar codecs para ver peliculas o videos *.wmv sobre Linux Debian
  8. SSH: acceso seguro con iptables
  9. Samba – Configuracion de los puertos del Firewall Iptables
  10. Mini howto para crear listas de correo con MAILMAN en Debian

Etiquetado como: , , , , , , , , , ,

14 Comentarios

  1. Hola.

    quiero agradecer tu articulo y molestarte con una pregunta en relacion a este parrafo de tu articulo “Como configurar un gateway simple con Linux Debian” :

    “Ahora cualquier maquina dentro de la LAN deberá ser capaz de accesar Internet, mientras el gateway se mantiene seguro.”

    ya accesan a internet pero me perdi de la parte o no la entendi, de como restringir el acceso a paginas, sitios o dominios, ejemplo el que mas me estan pegando rapidshare, youtube, etc.

    saludos desde mexicali

    • @Ever: El articulo no habla de como restringir sitios de internet. Pero para dicho proposito puedes utilizar cualquier filtro de contenido web. Yo te puedo recomendar Dansguardian.

  2. gracias por este articulo

    pero me deja una duda, como bloqueo paginas a los usuario, por ejemplo rapidshare, youtube, porno, etc.

    saludos desde mexicali

  3. El gateway realiza NAT entre los equipos de la LAN y el router del ISP. Para realizar con control de navegacion deberian primero montar un Proxy (podria ser squid sobre el mismo gateway Debian) y luego algun soft de filtrado (como Dansguardian).
    Saludos.-

  4. Hice todo el proceso para un gateway simple…

    Desde la maquina cliente hago ping al gateway y este responde pero no hay salida a internet.

    El script 00-firewall está identico.

    Tengo la duda de si puede ser que en los clientes la ip es estatica y depronto tengo errores…que DNS debo especificar en los clientes ?.

    Saludos desde Colombia

    • mmm… tu problema puede no ser de DNS. El gateway si tiene salida a internet?
      El dns tiene que ser el de tu proveedor o bien podrias probar con el de opendns.org.

      Solo revisate si el gateway de los clientes es la ip correcta.

      • SAludos, tengo el mismo problema de Knox, hice todo tal cual como esta escrito aqui pero no logro que los clientes tengan salida a Internet… en el Gateway si tengo internet, no asi en los clientes, estan configurados bien (o al menos eso creo).

        Mi configuracion de eth1 es la siguiente:

        iface eth1 inet static
        address 192.168.1.1
        netmask 255.255.255.0

        • Si le pusiste a los clientes que el gateway es 192.168.1.1? y tus clientes tienen direccion algo como 192.168.1.34?

          • Si hermano, asi mismo es.

            Puedo hacer ping perfectamente a cualquier pagina web o a cualquier IP dentro de la LAN, pero no puedo navegar desde el navegador.

          • Leyendo mi comentario me di cuenta que quizas no esta muy claro… lo que quise decir fue que desde la consola puedo hacer ping a cualquier pagina web externa (google, facebook, etc…), el ping puedo hacerlo usando el ip o el nombre de dominio (si esta resolviendo DNS)…

            Pero cuando intento acceder a ese sitio web desde el navegador no me lo permite, se queda en “sitio web encontrado…” y hasta ahi llega…. por cierto, si puedo usar tranquilamente el messenger.

            Cabe destacar que ya revise la configuracion del navegador, y probe con varios y nada. El problema sale a la luz solo cuando intento usar mi servidor Debian como Gateway, porque si conecto el cliente directo al router ahi si navego perfecto…

  5. Que tal Buen día
    Primero, felicitarte y darte gracias por este tema que esta muy interesante.
    Fijate que tengo una duda, ya tengo montado mi gateway de esta manera pero me gustaria agregarle 2 tarjetas mas de red de tal manera de poder tener 2 subredes distintas y enrutarlas hacia dos isp’s distintos:

    eth0 = 192.168.0.1 puerta de entrada de Lan y sale por eth1
    eth1 = 192.168.2.254 Puerta de salida ISP1
    eth2 = 192.168.1.1 Puerta de entrada LAN2 y sale por eth3
    eth3 = 192.168.3.254 Puerta de salida ISP2

    Es posible hacer esto?

    Saludos y gracias de antemano.

  6. Excelente post.

    Estoy instalando un servidor debian lenny que fungirá como controlador de dominio, ¿si lo utilizo como proxy a través de un squid por ejemplo, no presentará inconvenientes con la comunicación de la red?

    Gracias de antemano…

Por favor, escriba un comentario

Por favor tome en cuenta lo siguiente:
Los comentarios son moderados, por lo cual puede tardar en ser publicados. No hay necesidad de repetir su comentario.
Su correo electronico nunca sera revelado.

Terminos de busqueda


  • gateway linux
  • gateway debian
  • configurar gateway ubuntu
  • debian gateway
  • configurar gateway linux
  • gateway ubuntu
  • linux gateway
  • El Gateway del Proveedor de Servicios no fue encontrado
  • ip forwarding linux
  • como se configura un gateway
  • configurar gateway debian
  • gateway en linux
  • agregar gateway linux
  • configurar ubuntu como gateway
  • ver gateway en linux
  • cambiar gateway en linux
  • iptables debian lenny
  • default gateway linux
  • configurar gateway en debian
  • how to gateway en linux
  • ubuntu como gateway
  • CONFIGURACION DE GATEWAY
  • nat con linux debian
  • activar en debian ip forward
  • network optimization for gateway debian
  • servidor devian proveedor de internet en lan
  • como veo el gateway en ubuntu
  • firewall debian lenny
  • gateway de correo con linux
  • iptables con 2 proveedores
  • internet con 2 proveedores en el mismo servidor linux
  • iptables 2 tarjetas NIC debian
  • gateway en ubuntu 10
  • ipforward lenny
  • configurar salida a internet de debian lenny
  • habilitar bit de forwarding
  • instalar el gateway centos
  • hacer nat de nuestra conexion de internet a nuestra red LAN interna script
  • habilitar eth1 en lenny
  • habilitar ping en debian
  • iptables default gw
  • iptables instalar servidor de correo dentro de una lan
  • proxy o un Gateway NAT-windos 7
  • servidor ubuntu gateway
  • ubuntu default gateway
  • ubuntu gateway ip forewarding lan
  • ver default gateway linux
  • ver el gateway en linux
  • ver gateway linux
  • ver gateway ubuntu
  • verificar el gateway linux
  • verificar forward linux
  • por q el dns y el Gateway no puede ser el mismo
  • pasos para realizar una conexion con gateway entre un servidor y un cliente con firewall en windows server
  • iptables servidor de correo dentro de LAN
  • lenny ip forwarding
  • linux como gateway
  • linux como pasarela a otros servidores
  • linux eth0 eth1 controlar navegacion internet
  • modificar gateway en ubuntu