Cortafuegos Dinamico con FirewallD
firewalld provee un cortafuegos dinámico administrable con soporte para zonas de redes/cortafuego para definir el nivel de confianza de las redes conectadas o las interfaces. Tiene soporte para configuraciones de cortafuego para IPv4, IPv6 y para puentes de ethernet, posee una separacion de las configuraciones que están en ejecución y las configuraciones permanentes. También posee suporte una interface para servicios o aplicaciones para adicionar reglas directamente.
El modelo del sistema cortafuego anterior con system-config-firewall/lokkit era estatico y cada cambio requería un reinicio completo del cortafuego. Esto incluye descargar los modules de cortafuego del núcleo como netfilter y cargarlos nuevamente para cada nueva configuración. La descarga de los módulos estaba rompiendo el estado del cortafuego y estableciendo las conexiones nuevamente.
Por otro lado el demonio del cortafuego dinámico aplica los cambios sin reiniciar todo el cortafuego. Por ello no es necesario descargar y cargar todos los módulos de cortafuego del núcleo. Pero al usar el demonio del cortafuego requiere que todas las modificaciones del cortafuego se realicen por medio del demonio para asegurarse que el estado del demonio del cortafuego el cortafuego del núcleo estén en sincronía. El demonio del cortafuego no puede interpretar las reglas de cortafuego agregadas por los comandos de ip*tables y ebtables.
El demonio provee información acerca de la configuración actual del cortafuegos via D-BUS de igual forma acepta cambios por medio del D-BUS usando los métodos de autentifica del PolicyKit
El Demonio
Las aplicaciones, demonios y el usuario pueden solicitar establecer funciones del cortafuego por medio de D-BUS. Una función puede ser una de las características predefinidas del cortafuego como servicios, puertos y combinación de protocolos, re envíos de puertos/paquetes, enmascarado o bloqueo de icmp. Las características pueden ser habilitadas por cierta cantidad de tiempo o pueden deshabilitarse nuevamente.
Con la llamada interfaces directa otros servicios (como por ejemplo libvirt) pueden adicionar sus propias reglas usando argumentos y parámetros de iptables.
La ayuda del cortafuego netfilter, que son por ejemplo usadas en los servicios como amanda, ftp, samba y tftp, tambien son manegadas por el demonio siempre y cuando ellas sean parte de un servicio predefinido. Cargar ayudantes adicionales no es parte de la interfaces actual. Para algunos ayudantes la descarga es solo posible luego que todas las conexiones administradas por el modulo han sido cerradas. Por ello el registro de la información de la conexión es importante y se tiene que tomar en confederación.
Cortafuego Estatico (system-config-firewall/lokkit)
El modelo de cortafuego estático actual con system-config-firewall y lokkit se mantendrá disponible y configurable, pero no al mismo tiempo que el demonio. El usuario o el administrador puede decidir cual de las dos soluciones de cortafuego puede usar y habilitara los servicios correspondientes.
Se a planeado agregar una configuración de cortafuego para ser utilizada al momento de la instalación o en el primer inicio. La configuración de la otra solución permanecerá intacta y disponible para ser habilitada al cambiar al otro modelo.
El demonio del cortafuego es independiente de system-config-firewal, pero no debe ser usado al mismo tiempo.
Usando las reglas del cortafuego estático con los servicios de iptables y ip6tables
If you want to use your own static firewall rules with the iptables and ip6tables services, install iptables-services and disable firewalld and enable iptables and ip6tables:
yum install iptables-services systemctl mask firewalld.service systemctl enable iptables.service systemctl enable ip6tables.service
Use /etc/sysconfig/iptables y /etc/sysconfig/ip6tables para las reglas estáticas del cortafuego.
Nota: El paquete iptables y iptables-services no proveen reglas para el uso de los servicios en el cortafuego. Los servicios estab disponibles por compatibilidad y para las personas que desean utilizar sus propias reglas de cortafuego. Usted puede instalar y usar system-config-firewal para crear reglas con los servicios. Para poder usar system-config-firewall usted tiene que detener firewalld.
Luego de crear las reglas para usarlas con los servicios detenga firewalld e inicie los servicios de iptables y ip6tables:
systemctl stop firewalld.service systemctl start iptables.service systemctl start ip6tables.service
¿Que es una zona?
Una zona de red define el nivel de confianza de la conexión de red. Esto es una relación de uno a muchos, que significa que la conexión puede ser parte de una zona, pero una zona puede ser usada por muchas conexiones de red.
Servicios Predefinidos
Un servicio es una combinación de una entrada de protocolo y puerto. Opcionalmente el modulo de ayuda netfilter puede ser adicionado y también direcciones de destino IPv4 y IPv6
Puertos y Protocolos
Define los puertos tcp y upp, donde los puertos pueden ser únicos o un rango de puertos.
Bloques de ICMP
Mensajes seleccionados del Internet Control Message Protocol (ICMP). Estos mensajes son solicitudes de información o creados para responder a las solicitudes o condiciones de error.
Enmascarado
Las direciones de una red privada son asignadas y escondidas detrás de una dirección de IP publica. Esta es una forma de traducción de direcciones.
Reenvió de puertos
Un puerto puede ser asignado a otro puerto o a otro huésped.
¿Que zonas están disponibles?
Estas zonas son proveídas por firewalld y arregladas de acuerdo al nivel de confianza predefinido de las zonas de no es de confianza a es de confiaza:
drop
Cualquier paquete de entrada es abandonada, no hay respuesta. Solo conexiones de salida son posibles.
block
Cualquier conexión de entrada es rechazada con un mensaje icmp-host-prohibited para IPv4 y icmp6-adm-prohibited para IPv6. Solo conexiones iniciadas dentro de este sistema son posibles.
public
Para uso en areas publicas. Usted no confía de las otras computadoras en la red que quieran hacer daño a su computador. Solo conexiones seleccionadas son aceptadas.
external
Para el uso de redes externas con el enmascarado habilitado por los ruteadores. Usted no confia en las computadoras en la red pueden hacer daño a su computador. Solo conexiones de entrada seleccionadas son aceptadas.
dmz
Para computadores en una zona des militarizada que son de acceso publico con acceso limitado a su red interna. Solo conexiones seleccionadas son aceptadas.
work
Para el uso en áreas de trabajo. Usted confiá mayormente en que las computadores de la red no hagan daño a su computador. Solo coneciones de entrada seleccionadas son aceptadas.
home
Para uso en el área del hogar. Usted confiá en que las computadores de la red no representan peligro para su computador. Solo conexiones de entrada seleccionadas son aceptadas
internal
Para el uso de redes internas. Usted confiá que las computadores de la red no representa peligro para su computador. Solo conexiones de entrada seleccionadas son aceptadas.
trusted
Todas las conexiones son aceptas.
¿Que zona debo usar?
En una red inalambrica publica por ejemplo usted debe utilizar sin confianza, una red cacera alambrada puede ser de confianza. Seleccione la zona que se ajuste mayormente a la red que esta usando.
¿Como configurar o agregar zonas?
Para configurar o agregar zonas usted puede utilizar alguna de las interfaces de firewalld. Estas son la interfaces de configuración gráfica firewall-config, la herramienta de comandos firewall-cmd or la interface D-BUS. O usted puede crear o copiar el archivo de zona en el directorio de configuraciones. @PREFIX@/lib/firewalld/zones es usado como configuración por defecto y en caso de fallo y /etc/firewalld/zones es usado para las configuraciones creadas por el usuario y los archivos de configuración personalizados.
Como establecer o cambiar a una zona
La zona es almacenada en el ifcfg de la conexion con la opción ZONE=. Si la opción no existe o esta vacia, la zona por defecto es usada en firewalld.
Si la conexión es controlada por NetworkManager, usted tamnien puede utilizar nm-connection-editor para cambiar la zona.
- trabajo en progreso/work in progress **