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