jueves, 28 de abril de 2011

Compartir Modem 3G y Mini Server DHCP


Ahora lo que vamos a hacer es la misma funcion que la de un router, un router no es mas que un dispositivo que uno 2 o mas redes (en este caso 2). Por un lado tendremos una red interna (LAN) por ejemplo con direccion 192.168.0.0/24 que colgara de la interfaz de red eth0 (la tarjeta de red ethernet) a la que daremos acceso a internet por la interfaz ppp0 (la que nos ha creado el modem-usb-3g).
Lo primero configurar la interfaz eth0 con direccion ip estatica. Podeis hacerlo desde el NetworkManager o editando el siguiente fichero :
# vim /etc/networks
(yo uso el editor vim, ud's usen el que mas le guste)
Y dejamos el fichero de la siguiente manera :
auto lo
iface lo inet loopback


auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255

reiniciamos la red para que se apliquen los cambios
# /etc/init.d/network restart


Reenvio de paquetes
El siguiente paso es activar el reenvio de paquetes. Esto lo que hace es permitir todo el trafico que no esta destinado solamente a las interfaces locales, pudiendo asi enrutar trafico con destino a internet. Lo activamos de la siguiente manera :
echo 1 > /proc/sys/net/ipv4/ip_forward
No olvidemos que tenemos que estar con todos los privilegios (root). Si qucieran que sea permanente el cambio editen el fichero /etc/sysctl.conf y buscar la linea net.ipv4.ip_forward=0 y cambiarlo por net.ipv4.ip_forward=1 o ejecutar un script al inicio con la linea de arriba.

NAT
El paso siguiente seria activar el NAT. El NAT lo que hace es enmascarar el trafico de la LAN con direccion-ip-origen 192.168.0.x a direccion-ip-origen ip_publica. Esto se hace con iptables :
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE
Con esta linea le decimos que haga NAT en la interfaz ppp0. Las reglas de iptables se guardan en RAM tambien asique luego os dejo un pequeño script para activar todo sencillamente.

Server DHCP
Podemos montar un server DHCP rapidamente para que aplique las configuraciones de red a los equipos que vamos a conectar, tambien podemos hacerlo manualmente, pero para el que le interese aquí dejo como hacerlo.
Instalamos el paquete dnsmasq :
Código:
sudo aptitude install dnsmasq
Editamos el fichero de configuracion en /etc/dnsmasq.conf y añadimos estas lineas al final :
listen-address=192.168.0.1 -> direccion ip interfaz eth0
bind-interfaces
dhcp-range=192.168.0.2,192.168.0.50,24h -> rango que vamos a asignar a los clientes

reiniciamos dnsmasq :
sudo /etc/init.d/dnsmasq restart
Y solo nos quedaria conectar los hosts que soporte la linea de nuestro Modem
----------------------------------------------------------------------------
Para finalizar dejo un pequeño script todo por comandos y nos olvidarnos de toda la configuracion manual, solo copiemos el siguiente script y lo guardamos en /etc/init.d/nat.sh:
#!/bin/sh
echo "Aplicando reglas..."

# Reenvio de paquetes
echo 1 > /proc/sys/net/ipv4/ip_forward

# Borramos reglas anteriores de iptables
iptables -F
iptables -X
iptables -Z
iptables -t nat -F

#Activando NAT en ppp0
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE

ifconfig eth0 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255 up
#Iniciamos DHCP Server en /etc/dnsmasq.conf
/etc/init.d/dnsmasq restart

echo "listo!!!"

Entramos a un terminal, nos pomenos en root y ejecutamos el archivo aguardado, y listo, eso es todo.
Espero que le se util. Saludos.