Cortafuegos con Dialup en FreeBSD
Anterior |  |

# 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...)

Anterior | Inicio |
Las Reglas del Cortafuegos |  |

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>.