trucos-fw-montar: (0.02) Trucos al montar un cortafuegos de filtrado de paquetes DETERMINAR QUE PROGRAMA DE CORTAFUEGOS UTILIZAR (ipfwadm/ipchains/iptables) Si ejecutamos en un kernel que no corresponde el programa: ipfwadm -I -l -n -v (listar reglas de entrada) devuelve: "ipfwadm: cannot open file /proc/net/ip_input" ipchains -L input -n -v (listar cadenas de entrada) devuelve: "ipchains: cannot open file /proc/net/ip_fwnames" iptables -L INPUT -n -v (listar cadenas de entrada) devuelve: "iptables: can't initialize iptables: iptables who? (do you need to insmod?) Perhaps iptables or your kernel needs to be upgraded" CONCLUSIONES: 1) La existencia de /proc/net/ip_input indica que debe usarse ipfwadm (y supongo que indica también que se compiló con soporte para firewall) 2) La existencia de /proc/net/ip_fwnames ó /proc/net/ip_chains indica que debe usarse ipchains (y que se compiló con soporte para firewall) 3) No veo forma de detectar iptables y el soporte fw desde /proc/net :-( - Pero si probamos a montar el modulo con "insmod -p iptables" kernel 2.2 -> $? == 1 y salida: insmod: iptables: no module by that name found kernel 2.3 sin fw -> $? == 1 y salida: /lib/modules/2.3.25/net/iptables.o: unresolved symbol nf_unregister_hook /lib/modules/2.3.25/net/iptables.o: unresolved symbol nf_unregister_sockopt /lib/modules/2.3.25/net/iptables.o: unresolved symbol nf_register_hook /lib/modules/2.3.25/net/iptables.o: unresolved symbol nf_register_sockopt kernel 2.3 con fw -> $? == 0 y no hay salidas kernel 2.3 con fw y modulo ya montado -> $? == 0 y no hay salidas LUEGO Podemos utilizar: if insmod -p iptables; then X; fi ELIMINANDO el mensaje de error: if insmod -p iptables > /dev/null 2>&1 OTROS SISTEMAS: - En los kernel 2.4 existe /proc/net/packet y en los 2.0 y 2.2 no, pero no tiene relación con el soporte de firewall (comprobado) - Otro método es: "`uname -r`" que devuelve 2.3.XX ó 2.4.XX y usar grep para decidir si es 2.3 ó 2.4 pero no sabemos nada del soporte fw