Nat en Slackware
Autores: krao y KeeNaN
Tabla de contenido
...::: Introduccion
...::: Requerimientos
...::: Cargar modulos, /etc/rc.modules
...::: Configuracion del servidor como gaterway
...::: Configuracion de los clientes
...::: Verificar tu sistema de RED, /etc/rc.d/rc.inet2
...::: Crear reglas iptables para tu NAT, /etc/rc.d/rc.firewall
...::: Ultimas palabras
...::: Introduccion :::...
� Por que alguien queria hacer NAT ? simple, no todos tienen el
suciente dinero para tener un enlace a internet por cada maquina
q tenga, NAT nos da una rapida solucion, para poder salir con una
sola direccion IP a internet, compartiendo esta a distintos nodos
dentro de la LAN. Lo que hace es traducir el origen del paquete o
el destino de este, aceptando el primer bloque del stream, despues
de esto todos los paquetes restantes automaticamente tendran el mismo
destino que el primero.
Requerimientos :::...
...::: Un pc con slackware instalado :)
...::: Kernel con los modulos creados para iptables
...::: Iptables
...::: Dos enlaces ( Internet , LAN )
...::: Cargar modulos :::...
En Slackware los modulos se cargan en el script de inicio llamado
/etc/rc.d/rc.modules. Para poder hacer NAT nescesitas que algunos modulos
se carguen. Entonces las siguientes lineas tienen que ser agregadas a tu
script (rc.modules);
# Cargando los modulos para IPTABLES
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_nat
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_nat_irc
...::: Configuracion del servidor como gaterway :::...
Para este fin tambien usaremos el script rc.modules para que nos cargue
el modulo respectivo de nuestra tarjeta de red. Si no sabemos cual es
podemos recurrir al comando lsmod, el cual nos muestra los modulos que
se encuentran actualmente cargados. Entre los modulos que nos mostrara
se encuentra el modulo de nuestra tarjeta de red que ser� levantando al inico
de nuestro sistema gracias a Hotplug.
Una vez editado y guardado el rc.modules debemos editar el archivo rc.inet1,
el cual contiene la configuracion de nuestras interfaces de red. Lo escencial
aqui es asignarle una ip y mascara de red lo que se indica en las variables
IPADDR y NETMASK como se muestra en el siguiente ejemplo:
IPADDR="192.168.0.1"
NETMASK="255.255.255.0"
Configuracion de los clientes :::...
A continuacion les describire la configuracion de los clientes,
tanto para el caso si estos son Linux o Windows.
Configuracion del cliente Linux :::...
Para la configuracion del cliente debemos hacer lo mismo que hicismos
en el script rc.inet1, pero con la peque�a diferencia que debemos
indicarle la ip del gaterway, que en este caso seria la ip de la
tarjeta de red de nuestro server. Ejemplo:
IPADDR="192.168.0.2"
NETMASK="255.255.255.0"
GATEWAY="192.168.0.1"
Como haz de notar, le configure con la misma mascara de red, le configure
su respectiva ip y ademas le indique la ip de nuestro gaterway, la cual
es 192.168.0.1 que use en la configuracion de la t de red en nuestro server.
Configuracion del cliente en Windows:::...
Aqu� simplemente hemos de tener nuestra tarjeta de red devidamente
instalada en el sistema, lo cual se peude verificar en
Proiedades de "MI PC" -> Administrador de dispositivos.
Luego debemos entrar en propiedades de "Entorno de red", en la pesta�a "Configuracion"
debemos tener los protoclos NetBEUI y TCP/IP instalados. Luego seleccionamos el
protocolo TCP/IP de nuestra tarjeta de red y hacemos click en el botoncito de mas abajo
que dice "Propiedades", luego se nos abrira una ventana llamada "Propiedades de
TCP/IP", en donde elegimos la pesta�a llama "Direccion IP" y marcamos la opcion
"Espesificar una direccion IP", donde obviamente pondremos la direccion IP que tendra
nuestra tarjeta de red, que puede ser 192.168.0.2, y luego nuestra mascara de subred
que sera 255.255.255.0. Luego de esto nos vamos a la pesta�a llama "Puerta de enlace"
en donde tecleamos la ip de la tarjeta de red de nuestro servidor Linux y luego le
damos click al boton Agregar. Para concluir debemos ir a la pestana llamada "Configuracion DNS" y
seleccionamos la opcion Activar DNS, es aqui donde escribimos un nombre para el campo "Host", el
cual puede ser win98 ( ingenioso he? ) y luego en el campo inferior a "Orden de busqueda del servidor DNS"
tecleamos el dns primario de nuestro ISP, que en mi caso es 206.137.97.254 ( Entel :|) y luego click
en el boton "Agregar" y luego en "Aceptar" y "Aceptar" . Luego de eso todo estara listo en nuestro
cliente, solo nos falta reiniciar ( es windows :| ) y nuestro cliente estara en condiciones de
funcionar perfectamente.
NOTA: Por si alguien tiene dudas cabe mencionar que la mascara de red o subred
SIEMPRE debe ser la misma para todas las maquinas, en el caso de este documento
es 255.255.255.0 para aquellos que lo notaron :D .
...::: Verificar tu sistema de red :::...
Ademas de cargar los modulos deves verificar tu sistema de red que es
manejado por el scripts de inicio /etc/rc.d/rc.inet2. En lo que tenemos que
poner atencion con en las siguientes lineas de tu script:
# Extracto de rc.inet2
IPV4_FORWARD=1
if [ -f /proc/sys/net/ipv4/ip_forward ]; then
if [ "$IPV4_FORWARD" = "1" ]; then
echo "Activando IPv4 packet forwarding."
echo 1 > /proc/sys/net/ipv4/ip_forward
# Para IP dinamica agrega las siguientes dos lineas
echo "Activando DinamicAddr."
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
else
echo "Disabling IPv4 packet forwarding."
echo 0 > /proc/sys/net/ipv4/ip_forward
fi
fi
Y ademas en este mismo scripts deven existir las siguientes lineas:
# Extracto de rc.inet2
if [ -x /etc/rc.d/rc.firewall ]; then
/etc/rc.d/rc.firewall start
fi
...::: Crear reglas iptables :::...
Por ultimo aqui tienes un scripts basico que cargara las reglas de
iptables para tu NAT, estas lineas deven ir en el scripts de inicio
/etc/rc.d/rc.firewall que cargara ahora en adelante todas las reglas de
iptables que quieras agregar. Este archivo debe tener permisos de ejecucion
(chmod +x) para que pueda ser llamado desde el script de inicio de tu
sistema de red, rc.inet2,
#!/bin/sh
# Este es tu /etc/rc.d/rc.firewall
IPTABLES=/usr/sbin/iptables
# INTIF tu red interna (la que conecta a tus clientes)
INTIF="eth0"
# EXTIF por donde sale a internet tu red
EXTIF="ppp0"
echo "Cargando rc.firewall"
# Dengegamos todo entrada por defecto
$IPTABLES -P INPUT DROP
$IPTABLES -F INPUT
# Todo puede salir
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -F OUTPUT
$IPTABLES -P FORWARD DROP
$IPTABLES -F FORWARD
$IPTABLES -t nat -F
echo ".......habilitando el redireccionamiento hacia fuera en $INTIF"
$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state
ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
$IPTABLES -A FORWARD -j LOG
echo ".......habilitando SNAT (MASQUERADE) funcionalidad en $EXTIF"
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
#
# Ademas agregamos unas pequenas reglas de filtrado ;p
#
# LOCALHOST
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT
#
# Dejamos entrar solo lo que esta relacionando y establecido con nostros
$IPTABLES -A INPUT -i $EXTIF -p ALL -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -i $INTIF -p ALL -m state --state RELATED,ESTABLISHED -j ACCEPT
Ultimas palabras :::...
Bueno solo me queda decir que ojala estos pasos les hallan servido ademas
acepto cualquier aporte (sugerencia, comentario, critica, etc) a este
documento.