6. Preguntas

6.1. ?Por qué utiliza natd(8) y ipfw(8) cuando podría usar los filtros incluídos en ppp(8)?
6.2. Me aparecen mensajes como “limit 100 reached on entry 2800” y después de eso ya no me aparecen más entradas indicando tráfico rechazado en mis logs. ?Funciona mi cortafuegos?
6.3. Supongamos que estoy usando direcciones privadas internas, por ejemplo el rango 192.168.0.0. ?Puedo añadir una regla al cortafuegos mediante un comando como $fwcmd add deny all from any to 192.168.0.0:255.255.0.0 via tun0 para prevenir intentos de acceso desde el exterior para conectar con máquinas de mi red?.
6.4. Debo de haber hecho algo mal. He seguido las instrucciones al pie de la letra y no tengo acceso a Internet.

6.1. ?Por qué utiliza natd(8) y ipfw(8) cuando podría usar los filtros incluídos en ppp(8)?

Seré honesto y diré que no hay una razón clara por la que use ipfw y natd en lugar de los filtros que incorpora ppp. Tras hablarlo con mucha gente el consenso parece ser que ipfw es mucho más potente y configurable que el filtrado de ppp pero lo que se gana en funcionalidad lo pierde en facilidad de personalización. Una de las razones por las que prefiero usar esas aplicaciones es que creo má conveniente ejecutar un cortafuegos desde el kernel que desde una aplicación de entorno de usuario.

6.2. Me aparecen mensajes como “limit 100 reached on entry 2800” y después de eso ya no me aparecen más entradas indicando tráfico rechazado en mis logs. ?Funciona mi cortafuegos?

Esto significa simplemente que se ha alcanzado el máximo de entradas que pueden incluírse en el log cuando una determinada regla se ha cumplido. Esa regla sigue funcionando pero no enviaría más entradas al log hasta que el contador vuelva a cero. Puede poner a cero ese contador mediante ipfw resetlog. Además es posible elevar el límite de entradas a introducir en el log incluyendo la “option” IPFIREWALL_VERBOSE_LIMIT en el fichero de de configuración del kernel. Por otra parte puede modificar ese valor (sin modificar su kernel y en consecuencia sin reiniciar la máquina) mediante el valor de sysctl(8) net.inet.ip.fw.verbose_limit.

6.3. Supongamos que estoy usando direcciones privadas internas, por ejemplo el rango 192.168.0.0. ?Puedo añadir una regla al cortafuegos mediante un comando como $fwcmd add deny all from any to 192.168.0.0:255.255.0.0 via tun0 para prevenir intentos de acceso desde el exterior para conectar con máquinas de mi red?.

La respuesta corta es no. La razón es que natd efectúa la traducción de direcciones para cualquier cosa que sea redirigida a través del dispositivo tun0. Eso significa que todos los paquetes entrantes hablarán exclusivamente con la IP asignada dinámicamente y no con la red interna. Hay que tener en cuenta sin embargo que es posible añadir una regla como $fwcmd add deny all from 192.168.0.4:255.255.0.0 to any via tun0, que evitaría que una de las máquinas de esa red enviara tráfico al exterior a través del cortafuegos.

6.4. Debo de haber hecho algo mal. He seguido las instrucciones al pie de la letra y no tengo acceso a Internet.

Estamos asumiendo que está usando userland-ppp, en consecuencia el conjunto de reglas que aquí se proponen operan en el interfaz tun0, que corresponde a la primera conexión efectuada mediante ppp(8) (más conocido como user-ppp). Las conexiones efectuadas más tarde recibirán nombres como tun1, tun2 y así sucesivamente.

Hay que tener también presente que pppd(8) en cambio utiliza el interfaz ppp0, de modo que si se inicia la conexión con pppd(8) hay que sustituír tun0 por ppp0. A continuación se muestra una forma muy limpia de modificar las reglas del cortafuegos. Conservaremos un fichero con las reglas originales con el nombre de fwrules_tun0.

	    % cd /etc/firewall
	    /etc/firewall% su
	    Password:
	    /etc/firewall# mv fwrules fwrules_tun0
	    /etc/firewall# cat fwrules_tun0 | sed s/tun0/ppp0/g > fwrules
	 

Para saber exactamente si está usando ppp(8) o pppd(8) examine la salida de ifconfig(8) una vez que establezca la conexión. V.g., en una conexión hecha mediante pppd(8) debería encontrarse con algo muy similar a lo siguiente (se muestran sólo las líneas relevantes):

	    % ifconfig
	    (eliminado...)
	    ppp0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1524
                    inet xxx.xxx.xxx.xxx --> xxx.xxx.xxx.xxx netmask 0xff000000
	    (eliminado...)
	   

Si por el contrario la conexión fué establecida mediante ppp(8) (user-ppp) ésto es más o menos lo que se encontraría:

	    % ifconfig
	    (eliminado...)
	    ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
	    (skipped...)
	    tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1524
	            (IPv6 stuff skipped...)
                    inet xxx.xxx.xxx.xxx --> xxx.xxx.xxx.xxx netmask 0xffffff00
                    Opened by PID xxxxx
            (eliminado...)

Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Si tiene dudas sobre FreeBSD consulte la documentación antes de escribir a la lista <questions@FreeBSD.org>.
Envíe sus preguntas sobre la documentación a <doc@FreeBSD.org>.