3.284 cursos gratis
6.263.460 alumnos
Publica tu curso gratis
Busca cursos gratis:
Estás aquí: mailxmail > Cursos de Informática > Internet > Comparte Internet con FreeBSD > NAT a Nivel Interfase

Comparte Internet con FreeBSD

Autor: Raul Andres Fernandez Gomez
Curso: 5/5 5/5 (1 opinión) |2894 alumnos|Fecha publicación: 19/11/2004

Capítulo 4:

 NAT a Nivel Interfase

Si deseamos usar NAT en alguna interface (ed0, tun0, etc.) el procedimiento es algo mas largo.
Primeramente debemos compilar nuestro FreeBSD para que soporte firewall, en este caso ipfw (IP Firewall). La verdad es que las ultimas versiones de FreeBSD (>=4.x) ya traen un modulo compilado para el uso de ipfw, pero por desgracia no viene activado con IPDIVERT, así que la única solución será compilar un nuevo kernel. Para ello deberéis compilar un kernel con las siguientes opciones:

options IPFIREWALL
options IPDIVERT

Una vez compilado el kernel con estas opciones, haremos uso del programa natd y de unas reglas que ahora pondremos:

/sbin/ipfw -f flush
/sbin/ipfw add divert natd all from any to any via <interface>  
(Cambiad <interface> por el interface que tengáis para salir a internet, ed0, tun0, etc.)
/sbin/ipfw add pass all from any to any

Y ahora pondremos en marcha el natd:

natd -interface <interface>   (Cambiad <interface> por el interface que tengáis para salir a internet, ed0, tun0, etc.)

Y eso es todo. Las reglas obviamente activan el 'divert' para el interface que le indiquemos, y el programa natd será el encargado de estar a la escucha en el interface indicado para ir 'traduciendo' la información que le llega desde internet y desde los ordenadores clientes.

Todo esto es únicamente lo que necesitamos para hacer este tipo de NAT, pero como podemos ver, el tener que teclear todas estas reglas y demás cada vez que iniciemos nuestro FreeBSD lo hacen una tarea pesada. Para hacerlo mas cómodo usaremos los scripts de inicio. Primeramente tocaremos el archivo

/etc/rc.conf:

firewall_enable="YES"
firewall_type="/etc/firewall.rules"
firewall_logging="YES"
firewall_script="/etc/rc.firewall"
natd_enable="YES"
natd_interface="ed0"

Intenta colocar las líneas con este orden, a mi me ha funcionado bien. Quizá lo mas importante a comentar sea la segunda línea, que especifica el archivo donde estarán ubicadas las anteriores reglas que habíamos tecleado a mano, y la ultima línea que especifica el interface del programa natd. Cambia ed0 por el que te corresponda. Las restantes activan el firewall y el programa natd

Una vez hechos estos cambios en /etc/rc.conf crearemos el archivo /etc/firewall.rules para poner las anteriores reglas del ipfw. Quedaría algo así:

-f flush
add divert natd all from any to any via <interface>  
(Cambiad <interface> por el interface que tenga para salir a internet, ed0, tun0, etc.)
add pass all from any to any

Y guardamos el archivo.
Ahora cada vez que reiniciemos nuestro FreeBSD todo será automático y no nos tendremos que preocupar de activar natd ni agregar ninguna regla ipfw

Antes de acabar este apartado me gustaría comentar una cosa para todos aquellos que esten usando modem con PPP (interface tun0) y esten probando este procedimiento.
Ya que nosotros usamos PPP para conectar a internet, no podemos hacer uso de estos scripts de inicio para que todo sea automático. La IP de internet solo
la tenemos después de ejecutar PPP y por lo tanto las reglas de ipfw y la activación de natd *SOLO* funcionarán si ya hemos arrancado PPP y disponemos de una IP previamente.

Soluciones?

Para empezar modificar ligeramente nuestro /etc/rc.conf y colocar solo las opciones siguientes:

firewall_enable="YES"
firewall_type="open"
firewall_logging="YES"
firewall_script="/etc/rc.firewall"

Y ahora nos hacemos la pregunta .. como activamos las reglas ipfw automaticamente? Una de las opciones seria hacer uso del archivo ppp.linkup. Este archivo esta destinado a ejecutar lo que nosotros queramos justamente después de establecerse la conexión PPP. Por lo tanto nos viene muy bien.
Solo necesitamos crear el archivo /etc/ppp/ppp.linkup y poner lo siguiente:

inet:

 !bg /sbin/ipfw -f flush
 !bg /sbin/ipfw add divert natd all from any to any via tun0
 !bg /sbin/ipfw add pass all from any to any
 !bg natd -interface tun0

Asegurense sobre todo de respetar los espacios, enters, enters dobles, y sangrado. Es decir, debería de estar el archivo tal como este texto, sino posiblemente dará algún error de script failed. También asegurarse de substituir inet: por la etiqueta que use nuestro /etc/ppp/ppp.conf para conectar a internet. Y finalmente el interface tun0 si te diera el caso de usar otro.

Y creo que eso es todo ahora tras ejecutar PPP y establecerse la conexión, el archivo que hemos creado (/etc/ppp/ppp.linkup) se encargará de establecer las reglas ipfw

Capítulo anterior - NAT a Nivel de Aplicación
Recibe nuestras novedades
Al presionar "Recibir" estás dándote de alta y aceptas las condiciones legales de mailxmail

Hay 1 opinión. Opina sobre este curso.


Cursos similares a Comparte Internet con FreeBSD


Cursos Valoración Alumnos Vídeo
Outlook Express
En la actualidad uno de los servicios más utilizados por los usuarios de Internet, es el envio de correo electrónico. Outlook Express, es un gestor de correo, co... [22/03/04]
 4,24/5 14.749  
DSSS Comunicaciones en banda base utilizando el espectro ensanchado
Las comunicaciones en espectro ensanchado en la actualidad tienen bastantes aplicaciones entre las que se incluyen la telefonía celular y redes locales de datos, entre ot... [12/11/04]
 3,92/5 1.383  
Google AdWords. Atraer clientes con marketing online
Atraer al cliente tiene, en el marketing online y a google como su más poderosa herramienta, las mejores posibilidades para una empresa. Las empresas, ca... [31/07/09]
 1,50/5 541
Curso con video
Curso con video


Publicar en   del.icio.us    digg    meneame

¿Qué es mailxmail.com?|ISSN: 1699-4914|Recomiéndanos|Ayuda
Condiciones legales de mailxmail