3.205 cursos gratis
6.236.160 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) |2892 alumnos|Fecha publicación: 19/11/2004
Capítulos del curso

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.

Descarga el PDF gratis

Cursos similares a Comparte Internet con FreeBSD


Cursos Valoración Alumnos Vídeo
La cibernética
La Cibernética se presenta como un nuevo paradigma científico, y como tal capaz de abordar y brindar solución global a la compleja problemática actual. Los protagonist... [09/03/06]
1/5 1.469  
Cómo enseñar con un curso en Internet
El uso de Internet como parte de los programas educativos es ya una nueva, y muy eficaz, herramienta pedagógica, por las grandes posibilidades de difusión que ofrece y po... [27/10/08]
5/5 576  
Primeros pasos con XML y XSL
XML es el acrónimo del inglés eXtensible Markup Language cuyo objetivo principal es conseguir una página web más semántica. Inicialmente nace como sucesor del HTML, separ... [10/09/04]
 4,25/5 6.786  


Publicar en   del.icio.us    digg    meneame

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