B.5. Permitir peticiones DHCP a través de iptables

En realidad esta es una tarea bastante sencilla, una vez sabes cómo trabaja DHCP. Sin embargo debes ser algo cuidadoso acerca de lo que dejas pasar por tu cortafuegos y lo que no. Para empezar, debes saber que DHCP trabaja sobre el protocolo UDP. Por éllo es lo primero que debes mirar. Además, debes chequear a qué interfaz le enviamos peticiones y cuál las responde. Por ejemplo, si es la interfaz eth0 la que está configurada para trabajar a través de DHCP, no debes permitir peticiones DHCP en eth1. Para que la regla sea más específica, sólo permitiremos los puertos UDP realmente empleados por DHCP, que deberían ser los puertos 67 y 68. Estos serán los criterios que emplearemos para comparar paquetes y permitir (o no) su paso. Así pues, la regla quedará poco más o menos así:

$IPTABLES  -I INPUT -i $LAN_IFACE -p udp --dport 67:68 --sport \
     67:68 -j ACCEPT
   

Ten en cuenta que de esta forma se permite todo el tráfico hacia y desde los puertos UDP 67 y 68, aunque ésto no tiene por qué ser un gran problema, puesto que sólo permite peticiones desde servidores efectuando la conexión desde los mismos puertos (67 y 68). Si te preocupa esta confianza casi ciega, la regla se puede hacer más restrictiva, por supuesto, pero debería bastar para aceptar todas las peticiones y actualizaciones DHCP sin abrir un agujero demasiado grande en el cortafuegos.