Gateway

 man route
 man ipchains (o main iptables, según el kernel)

Para configurar un router, iproxy o gateway para una red local "casa" (dominio local), primero debemos tener ordenadores con IPs que no se usan en internet, como son las del rango 192.168.*.*

Puede usar las IP locales de este ejemplo. Además de ello necesita saber las IP de servidores de nombres de su ISP (Internet Service Provider). No use las IP del ISP de este ejemplo

Si tenemos un kernel 2.4.x, podemos hacer un ip-masquerade con iptables. La configuración es:

  1. /etc/resolv.conf (cliente)
 nameserver 195.235.113.3 # DNS 1º de su proveedor
 nameserver 195.235.96.90 # DNS 2º de su proveedor
 nameserver 192.168.1.10  # router en red local conectado por modem
  1. /etc/resolv.conf (router)
 domain casa
 search casa
 nameserver 195.235.113.3
 nameserver 195.235.96.90
 nameserver 127.0.0.1   # el router es un DNS (named debe estar activo)

Además, ambos se deben conocer a través sus respectivos /etc/hosts

 127.0.0.1       localhost.localdomain   localhost  # comentario
 192.168.1.10    torre.casa      otronombre # bla
 192.168.1.20    negro.casa      unnombre   # bla,bla

y de /etc/networks. En este último sería:

 unnombre.casa        192.168.1.20    unnombre # un comentario
 otronombre.casa      192.168.1.10    otronombre # otro comentario

y /etc/hosts.allow:

 ALL: unnombre.casa
 ALL: 192.168.1.20

El /etc/network/interfaces del router:

 iface lo inet loopback
 auto lo eth0
 iface eth0 inet static
         address 192.168.1.10
         netmask 255.255.255.0
 up route add 192.168.1.20 eth0 // true
 up route add -net 192.168.1.10 netmask 255.255.255.0 gw 192.168.1.10 dev eth0 //true
 # actualizar cambios con  -->  /etc/init.d/networking restart

y el del el cliente:

 iface lo inet loopback
 iface eth0 inet static
    address 192.168.1.20
    netmask 255.255.255.0
    gateway 192.168.1.10
    broadcast 192.168.1.255

Obviaremos las cuestiones referentes al kernel. Partiendo del 2.4.19 precompilado, me funciona teniendo cargados estos módulos con modprobe: (aunque sólo el iptable_nat es necesario)

#  lsmod | grep ip
 ipt_MASQUERADE          1176   1  (autoclean)
 iptable_filter          1672   1
 iptable_mangle          2100   0  (unused)
 iptable_nat            13080   1  [ipt_MASQUERADE]
 ip_conntrack           12988   1  [ipt_MASQUERADE iptable_nat]
 ip_tables              10328   6  [ipt_MASQUERADE iptable_filter iptable_mangle iptable_nat]
 ip_gre                  7616   0  (unused)
 ipip                    5764   0  (unused)

Un script podría tener lo siguiente:

 echo 1 > /proc/sys/net/ipv4/ip_forward

Esto activa el "forwarding" o reenvío de paquetes en el kernel

 iptables --flush                       # limpiamos reglas de iptables
 iptables --table nat --flush

Ahora activamos NAT con enmascaramiento:

 iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
 iptables --append FORWARD --in-interface eth0 -j  ACCEPT

El cliente tiene que tener como gateway la IP del equipo con el modem (/etc/network/interfaces)


Nota: : Para kernels 2.0.x se usa ifwadm, y para los 2.2.x, ipchains. Woody deja instalarlos, pero con un kernel 2.4.19 no parecen funcionar correctamente.

Para cerrar el puerto 25:

iptables -A INPUT -p tcp --dport 25 -j DENY iptables -A FORWARD -p tcp --dport 25 -j DENY

 2) me gustaria poder abrir el 21 y redirigirlo a otra maquina?

Si puede redirigir con algo así:

 iptabls -t nat -A PREROUTING -p tcp --dport 21 -j DNAT --to /
 122.123.42.44:20

Forma de de controlar que los ordenadores que están conectados:

 $ cat /proc/net/ip_conntrack
 $ route

Eso es todo. Más información sobre enmascaramiento y filtrado, proxy, etc:

    1. Para el núcleo 2.4.x a (firewall, proxy y navegar http://www.cignux.org.ar/pisani12.htm
    2. PPP sobre RDSI con bandwidth on-demand http://bulmalug.net/body.phtml?nIdNoticia=1036
    3. Linux 2.4 NAT HOWTO http://netfilter.samba.org/unreliable-guides/NAT-HOWTO/index.htm
    4. Linux 2.4 NAT-COMO http://www.insflug.org/COMOs/NAT-COMO/NAT-COMO.html
    5. Proxy ARP with Linux http://www.sjdjweis.com/linux/proxyarp/
    6. Ip Masquerade http://ipmasq.cjb.net
    7. Proxy Squid http://www.squid-cache.org/
    8. http://bulmalug.net/body.phtml?nIdNoticia=441
    9. http://bulmalug.net/todos.phtml?id_autor=132