Páginas

miércoles, 18 de noviembre de 2009

Conexion a Internet compartida IP WAN dinamica

Tendremos una conexión a Internet compartida y un cortafuegos utilizando un switch DLINK 4 puertos Ethernet.

Para este ensayo los componentes de hardware a utilizar:

- Un portatil con GNU-Linux Debian Lenny con dos interfaces de red. Una alámbrica que la denominaremos como la nombra el sistema: "eth0" y otra interface de nombre "wlan0" inalámbrica, la 3945ABG Intel Centrino, un swicth dlink con 4 puertos Ethernet, dos claves CAT 5E UTP conectores RJ45.

- Un segundo de sobremesa con Ubuntu Jaunty instalado y una interfaz de red Ethernet eth0.

Lo primero es desactivar el cortafuegos si lo tenemos activado. Puede ser necesario instalar los paquetes net-tools, ifrename y Nmap en ambos pc's.

Configuración de tarjetas de interfaz de red en Debian:
Configuramos la tarjeta NIC LAN con una IP estática del tipo A para nuestro esquema de red privada. No asignaremos la dirección LAN con DHCP.

Configuraremos la interfaz WAN con la información proporcionada por nuestro ISP. Tendremos direcciones IP local estáticas y una dirección PUBLICA dinámica. No nos conectamos a internet todavía.

Para entrar en el router debemos estar en la misma red. Conectamos las dos terminales RJ45 a las tarjetas eth0 del portatil y eth0 del sobremesa y al switch local dlink. Nos ponemos en la misma red:

# ifconfig eth0 192.168.1.2 netmask 255.255.255.0 eth0

Entramos en el router con ip por defecto 192.168.1.1, user=admin, passw=admin.

Ahora, clic en la pestaña SETUP y acto seguido en MANAGEMENT IP. Cambiamos la IP a 10.0.0.1 netmask 255.255.255.0, aplicar para guardar los cambios. La nueva IP del router es 10.0.0.1.

Editamos el archivo interfaces con vim, ¿porque vi?, porque respeta el formato, para que quede así:
# vim interfaces
## /etc/network/interfaces

# The loopback network interface
auto lo
iface lo inet loopback

# lan interface
auto eth0
iface eth0 inet static
address 10.0.0.2
netmask 255.255.255.0
gateway 10.0.0.1
network 10.0.0.0
broadcast 10.0.0.255

# wan interface
auto wlan0
iface wlan0 inet dhcp

Para añadir los servidores DNS de nuestro ISP a /etc/resolv.conf (para las direcciones DHCP WAN no se sigue el mismo procedimiento):
#vim /etc/resolv.conf
nameserver 80.58.61.250
nameserver 80.58.61.254

Ahora, fijamos los nombres de las interfaces con ifrename:
Primero buscamos las direcciones MAC de nuestras interfaces con ifconfig
$ ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:21:9b:e2:ff:44
......
wlan0 Link encap:Ethernet HWaddr 00:1f:dd:fd:a0:3c

En este momento introducimos nuestros nombres de interfaces y direcciones MAC en /etc/iftab. Si no existe el archivo iftab deberá crearlo.

# vim /etc/iftab
## /etc/iftab
eth0 mac 00:21:9b:e2:ff:44
wlan0 mac 00:1f:dd:fd:a0:3c

En el pc de sobremesa, con el que queremos compartir la conexión a Internet, la configuración de la tarjeta eth0 alámbrica tendrá IP 10.0.0.3 estática y los dns de su proveedor de acceso a Internet (ISP). Fíjese que el gateway es la direccion IP local asignada al primer ordenador, (el portatil):
ipaddress 10.0.0.3
netmask 255.255.255.0
gateway 10.0.0.2
network 10.0.0.0
broadcast 10.0.0.255

Ahora añadimos los servidores DNS de nuestro ISP a /etc/resolv.conf (para las direcciones DHCP WAN no se sigue el mismo procedimiento):
#vim /etc/resolv.conf
nameserver 80.58.61.250
nameserver 80.58.61.254

Añadiremos estos parámetros del kernel al archivo /etc/sysctl.conf necesarios para la conexión a Internet compartida.
#vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.accept_source_route = 0

Llamaremos /usr/local/bin/fw_nat al siguiente guión copielo y hágalo ejecutable en rw para root con chmod 0700.

#############Inicio del guion###################
#!/bin/sh
##/usr/local/bin/fw_nat
#iptables firewall script for sharing
#broadband Internet, with no public services

#define variables
ipt="/sbin/iptables"
mod="/sbin/modprobe"
LAN_IFACE="eth0"
WAN_IFACE="wlan0"

#basic set of kernel modules
$mod ip_tables
$mod ip_conntrack
$mod iptable_filter
$mod iptable_nat
$mod iptable_mangle
$mod ipt_LOG
$mod ipt_limit
$mod ipt_state
$mod ipt_MASQUERADE

#add these for IRC and FTP
$mod ip_nat_ftp
$mod ip_nat_irc
$mod ip_conntrack_ftp
$mod ip_conntrack_irc

# Flush all active rules and delete all custom chains
$ipt -F
$ipt -t nat -F
$ipt -t mangle -F
$ipt -X
$ipt -t nat -X
$ipt -t mangle -X

#Set default policies
$ipt -P INPUT DROP
$ipt -P FORWARD DROP
$ipt -P OUTPUT ACCEPT
$ipt -t nat -P OUTPUT ACCEPT
$ipt -t nat -P PREROUTING ACCEPT 43303031443230333138303133

$ipt -t nat -P POSTROUTING ACCEPT
$ipt -t mangle -P PREROUTING ACCEPT
$ipt -t mangle -P POSTROUTING ACCEPT

#this line is necessary for the loopback interface
#and internal socket-based services to work correctly
$ipt -A INPUT -i lo -j ACCEPT

#Enable IP masquerading
$ipt -t nat -A POSTROUTING -o $WAN_IFACE -j MASQUERADE

#Enable unrestricted outgoing traffic, incoming
#is restricted to locally-initiated sessions only
$ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$ipt -A FORWARD -i $WAN_IFACE -o $LAN_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
$ipt -A FORWARD -i $LAN_IFACE -o $WAN_IFACE -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# Accept important ICMP messages
$ipt -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
$ipt -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
$ipt -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT

#Reject connection attempts not initiated from inside the LAN
$ipt -A INPUT -p tcp --syn -j DROP
#############final del guion########################

Los nuevos parámetros sysctl debe abrirlos, para ello teclee desde el terminal:
# /sbin/sysctl -p

Ejecute firewall_nat
# /usr/local/bin/fw_nat

Conecte la interfaz WAN a su router de banda ancha:
# /sbin/ifup wlan0
# iwconfig wlan0 essid "WLAN_AB"
# iwconfig wlan0 essid "WLAN_AB" key 43303031443230333183303433
# dhclient wlan0

Después de ejecutar dhclient wlan0, Verá algo como:
Internet Systems Consortium DHCP Client V3.1.1
Copyright 2004-2008 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/

Listening on LPF/wlan0/00:1f:dd:fd:a0:3c
Sending on LPF/wlan0/00:1f:dd:fd:a0:3c
Sending on Socket/fallback
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 8
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 11
DHCPOFFER from 10.185.228.9
DHCPREQUEST on wlan0 to 255.255.255.255 port 67
DHCPACK from 10.185.228.9
bound to 192.168.1.34 -- renewal in 122773 seconds.

Ya tiene que poder enviar ping desde y hacia las ip's 10.0.0.3 y 10.0.0.2 y navegar por Internet en cualquiera de los dos ordenadores.

Probado el 28 octubre 2009.

Bibliografía: Redes en Linux. Guia de Referencia. Carla Schroder.
Guia de Administracion de Redes con Linux. Olaf Kirch & Terry Dawson.

No hay comentarios:

Publicar un comentario