Una parte fundamental de la seguridad de nuestro sistema recae en el cortafuegos. Si bien hay gente que confía los accesos a su PC a la gestión del cortafuegos de su router, yo soy de los que opinan que en este caso «mejor que zozobre». En este artículo empezaremos aprendiendo las bases del sistema de seguridad conta intrusos de Linux y acabaremos conociendo el cortafuegos de KDE.
Los cortafuegos en los sistemas GNU/Linux se gestionan a través de iptables. El paquete iptables es muy probable que venga ya instalado «de serie» en tu sistema, si no fuese así, como en el caso de Arch, estará disponible en los repos. Para ampliar información: http://www.pello.info/filez/firewall/iptables.html.
IPTABLES
La forma más KISS de gestionar el cortafuegos es escribiendo directamente reglas a través de los comandos de iptables. Más adelante ampliaremos un poco este apartado al ver los scripts para que os quede un poco más claro. De momento podeis practicar, viendo el estado de una tabla vacía y un comando básico para incluir una regla.
Ver reglas activas
# sudo iptables –nvL
Nos mostrará algo como esto. En principio, todos los paquetes estarán aceptados para entrar, salir y traspasar.
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Añadir una regla (permitir entrar paquetes con destino a la interfaz eth0 en el protocolo TCP y los puertos de http (80))
sudo iptables -A INPUT -i eth0 -p tcp -dport http -j ACCEPT
Con esto, si miramos de nuevo el estado de iptables ya veríamos esta regla aplicada. No me extenderé más, ya que está abundantemente documentado numerosos sitios web.
Los front-ends de consola pretenden proporcionar una gestión más comoda de iptables a través de terminal. Destacaré UFW y Arno’s, aunque hay también otros como Firehold, Firetable, Vuurmuur …
UFW
Uncomplicated Firewall es la herramienta de configuración de firewall por defecto en Ubuntu. Desarrollado para facilitar la configuración del firewall Iptables. Proporciona una manera fácil de crear un firewall basado en host IPv4 o IPv6. UFW de forma predeterminada está deshabilitado. Yo particularmente no lo veo muy útil ya que si bien simplifica en cierto modo los comandos de iptables, considero que puestos a aprender comandos es mejor aprender los de iptables. Mas info aquí: http://doc.ubuntu-es.org/UFW
El script de Arno
Una forma de configurar el cortafuegos un poco más gráfica. Tiene funcionalidades muy completas que iremos instalando a medida que la aplicación nos va haciendo preguntas. Podéis encontrar más información en este post aunque teniendo en cuenta que ya es bastante antiguo y habrán cambiado algunas cosas. Se vería como algo así
Scripts personalizados
Una opción que usé en Arch era gestionar el cortafuegos a través de un script bash. Os dejo un paste con abundantes explicaciones, que os puede servir de base de partida para estudiar o montar vuestro propio script. A mi me resultaba bastante cómoda esta forma.
Posteriormente hice mis pinitos en programación bash, escribiendo un script para gestionar el script anterior y otras funciones de iptables de una manera más cómoda. Creo que es fácilmente entendible.
Conociendo el cortafuegos de KDE , la interfaz gráfica
En KDE tenemos el módulo de control para UFW, de manera que podemos configurar el cortafuegos de forma gráfica desde el panel de Preferencias.
Creado para Kubuntu 10.10 viene instalado de serie algunas otras distros, en otras esta en los repos comunitarios, y al menos en Debian, solo nos queda la opción de compilarno nosotros o instarnos el paquete desde fuera de los repositorios. En este post de SolydXK podemos encontrar los paquetes .deb de la última versión versión 0.43 tanto para 64 bit como 32 bit y que en mi Jessie funciona perfectamente. Necesitaremos intalar también como dependencia python-ufw. Si necesitáis instalar alguna versión anterior, tenéis las fuentes aquí y aquí . La interfaz es muy intuitiva y fácil de manejar.
Recomiendo investigar más en profundidad las funciones de iptables, pero como punto de partida una buena configuración sería permitir salir y traspasar a todo y denegar todo lo entrante. A partir de ahí habilitar la entrada de los paquetes que necesitemos (FTP, HTTP, SSH…) filtrando lo mejor que podamos por IP, interfaz y puerto.
ok