Desde hace algún tiempo (Julio del 2003) el software de filtrado de paquetes más eficiente de todos los que conozco (olé la imparcialidad) ha sido portado a FreeBSD. Activarlo, dependiendo de la versión instalada, puede resultar no tan obvio como se desea.
Configurando kernel
En FreeBSD 6.2 es necesaria una recompilación de kernel para activar pf, con lo que debemos configurarlo primero. Copiamos el kernel activo (podemos mirar cual es con un uname -a) en el nuevo:
# cd /usr/src/sys/i368/conf/
# cp GENERIC MYKERNEL
Y editamos MYKERNEL con nuestro editor favorito, agregando las siguientes opciones:
Aprovechamos para habilitar también ALTQ (gestor de colas) por si algún día hiciera falta.
Compilando kernel
Una vez configurado toca compilar, dependiendo del procesador utilizado los tiempos cambiarán notablemente. Si tienes una máquina antigua no te desesperes:
# config MYKERNEL
# cd ../compile/MYKERNEL
# time make depend
real 0m39.811s
user 0m27.356s
sys 0m6.668s
# time make
real 11m45.862s
user 10m26.758s
sys 0m43.905s
# time make install
real 0m29.533s
user 0m5.498s
sys 0m1.832s
Activando pf
El siguiente paso antes de reiniciar la máquina con el nuevo kernel es la activación de pf al inicio, para ello como siempre, tocamos rc.conf:
pf_enable="YES"# Enable PF (load module if required)pf_rules="/etc/pf.conf"# rules definition file for pfpf_flags=""# additional flags for pfctl startuppflog_enable="YES"# start pflogd(8)pflog_logfile="/var/log/pflog"# where pflogd should store the logfilepflog_flags=""# additional flags for pflogd startupgateway_enable="YES"# if NAT or forwarding is active
Una vez reiniciado el equipo tendremos funcionando el sistema de filtrado de paquetes, solo queda configurar las reglas en pf.conf(5)y familiarizarse con pfctl(8).
sysadminfreebsd