From Fedora Project Wiki
 
(11 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{lang|en|es|jp|ru|zh-cn|page=FirewallD}}
{{lang|en|es|jp|ru|zh-cn|page=FirewallD}}
= Cortafuegos Dinamico con FirewallD =
= FirewallD, el cortafuegos dinámico =


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.
Firewalld es un cortafuegos dinámico administrable, con soporte para zonas de redes para definir el nivel de confianza de las redes o interfaces que utilice para conectarse. Tiene soporte para configuraciones IPv4, IPv6 y puentes de ethernet. Además, firewalld mantiene de forma separada una configuración en ejecución y otra permanente. Así pues, firewalld también ofrece una interfaz para que las aplicaciones puedan añadir reglas al cortafuegos de una forma cómoda.


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.
El modelo de cortafuegos anterior (system-config-firewall/lokkit) era estático y cada cambio requería un reinicio completo del cortafuego. Esto suponía tener que descargar los módulos del cortafuegos del núcleo (ej: netfilter) y recargarlos de nuevo en cada configuración. Además, este reinicio suponía perder la información de estado de las conexiones establecidas.


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.
Por el contrario, firewalld no requiere reiniciar el servicio para aplicar una nueva configuración. Por lo tanto, no es necesario recargar los módulos del núcleo. El único inconveniente es que para que todo esto funcione correctamente, la configuración del cortafuegos debe realizarse a traves de firewalld y sus herramientas de configuración (firewall-cmd o firewall-config). Firewalld es capaz de añadir reglas utilizando la misma sintaxis que los comandos {ip,ip6,eb}tables (reglas directas).


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 servicio tambien ofrece información acerca de la configuración actual del cortafuegos por medio de DBus, y de igual forma también pueden añadirse nuevas reglas, utilizando PolicyKit para el proceso de autenticación.


== El Demonio ==
== El servicio ==


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.
Las aplicaciones, servicios y el usuario pueden solicitar establecer funciones del cortafuego por medio de DBus. Una función puede ser una de las características predefinidas  del cortafuego como servicios, puertos y combinación de protocolos, reenvío de puertos/paquetes, enmascarado o bloqueo de ICMP. Las características pueden ser habilitadas durante un periodo 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.
Otros servicios (como por ejemplo libvirt) pueden añadir sus propias reglas usando argumentos y parámetros de iptables. Estas reglas se conocen como reglas directas.


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.
La ayuda del cortafuego netfilter, que son por ejemplo usadas en los servicios como amanda, ftp, samba y tftp, también 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) ==
== Cortafuego Estatico (system-config-firewall/lokkit) ==
Line 58: Line 58:
Define los puertos tcp y upp, donde los puertos pueden ser únicos o un rango de puertos.
Define los puertos tcp y upp, donde los puertos pueden ser únicos o un rango de puertos.


=== Bloques de ICMP ===
=== Bloqueo 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.
Mensajes seleccionados del protocolo ICMP (Internet Control Message Protocol). Estos mensajes sirven para solicitar información de enrutado o para responder a las solicitudes de otras máquinas remotas o a determinadas situaciones de error.


=== Enmascarado ===
=== Enmascarado ===
Line 66: Line 66:
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.
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 ===
=== Reenvío de puertos ===


Un puerto puede ser asignado a otro puerto o a otro huésped.
Se puede configurar un puerto de forma que los paquetes que lleguen sean reenviados hacia otro puerto local o una máquina remota.


== ¿Que zonas están disponibles? ==
== ¿Que zonas están disponibles? ==
Line 101: Line 101:
Todas las conexiones son aceptas.
Todas las conexiones son aceptas.


== ¿Que zona debo usar? ==
== ¿Qué 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.
Si se trata de una red inalámbria podría utilizar la zona ''public''. En el caso de una red doméstica segura, tal vez le convenga más utilizar la zona ''trusted''. Elija la zona más apropiada en función de la red a la que se conecte.


== ¿Como configurar o agregar zonas? ==
== ¿Como configurar o agregar zonas? ==
Line 248: Line 248:
   firewall-cmd --zone=home --add-forward-port=port=22:proto=tcp:toaddr=127.0.0.2
   firewall-cmd --zone=home --add-forward-port=port=22:proto=tcp:toaddr=127.0.0.2


==== Permanent zone handling ====
==== Administrador de zona permanente ====


The permanent options are not affecting runtime directly. These options are only available after a reload or restart. To have runtime and permanent setting, you need to supply both.
Las opciones permanentes no afectan la ejecución directamente. Estas opciones solo se habilitan despues de recargar o reiniciar. Para tener la configuración de  ejecución y permanente, usted debe entregar ambas.
The '''--permanent''' option needs to be the first option for all permanent calls.


* Get a list of supported permanent services
La opción  '''--permanent''' tiene que estar adelante de cualquier opción permanente.
 
* Obtiene una lista de los servicios soportados permanentes
   firewall-cmd --permanent --get-services
   firewall-cmd --permanent --get-services


* Get a list of supported permanent icmptypes
* Obtiene una lista de los timpos ICMP soportados permanentes
   firewall-cmd --permanent --get-icmptypes
   firewall-cmd --permanent --get-icmptypes


* Get a list of supported permanent zones
* Obtiene una lista de los zonas soportados permanentes
   firewall-cmd --permanent --get-zones
   firewall-cmd --permanent --get-zones


* Enable a service in a zone
* habilita una zona permanente
   firewall-cmd --permanent [--zone=<zone>] --add-service=<service>
   firewall-cmd --permanent [--zone=<zone>] --add-service=<service>


This enables the service in the zone permanently. If the zone option is omitted, the default zone is used.
Esto habilita un servicio en una zona permanente. Si las zona es omitida, se utiliza la zona predefinida.


* Disable a service in a zone
* Deshabilita un servicio en la zona
   firewall-cmd --permanent [--zone=<zone>] --remove-service=<service>
   firewall-cmd --permanent [--zone=<zone>] --remove-service=<service>


* Query if a service is enabled in a zone
* Busca si un servicio esta habilitado para una zona
   firewall-cmd --permanent [--zone=<zone>] --query-service=<service>
   firewall-cmd --permanent [--zone=<zone>] --query-service=<service>


This command returns if it is enabled, there is no output.
Esta instruccion entrega si esta habilitada, no hay salida.


* '''Example:''' Enable service ipp-client permanently in the home zone
* '''Ejemplo:''' Habilita el servicio ipp-client permanentemente en una zona
   firewall-cmd --permanent --zone=home --add-service=ipp-client
   firewall-cmd --permanent --zone=home --add-service=ipp-client


* Enable a port and protocol combination permanently in a zone
* Habilita una combinación de puerto y protocolo en una zona
   firewall-cmd --permanent [--zone=<zone>] --add-port=<port>[-<port>]/<protocol>
   firewall-cmd --permanent [--zone=<zone>] --add-port=<port>[-<port>]/<protocol>


* Disable a port and protocol combination permanently in a zone
* Dehabilita una combinación de puerto y protocolo en una zona
   firewall-cmd --permanent [--zone=<zone>] --remove-port=<port>[-<port>]/<protocol>
   firewall-cmd --permanent [--zone=<zone>] --remove-port=<port>[-<port>]/<protocol>


* Query if a port and protocol combination is enabled permanently in a zone
* Busca una combinación de puerto y protocolo en una zona
   firewall-cmd --permanent [--zone=<zone>] --query-port=<port>[-<port>]/<protocol>
   firewall-cmd --permanent [--zone=<zone>] --query-port=<port>[-<port>]/<protocol>


This command returns if it is enabled, there is no output.
Esta instrucción entrega si esta habilitado. No hay salida.


* '''Example:''' Enable port 443/tcp for https permanently in the home zone
* '''Ejemplo:''' Habilita el puerto 443/tcp para https de forma permanente en la zona home
   firewall-cmd --permanent --zone=home --add-port=443/tcp
   firewall-cmd --permanent --zone=home --add-port=443/tcp


* Enable masquerading permanently in a zone
* Habilita enmascarado permanente en la zona
   firewall-cmd --permanent [--zone=<zone>] --add-masquerade
   firewall-cmd --permanent [--zone=<zone>] --add-masquerade


This enables masquerading for the zone. The addresses of a private network are mapped to and hidden behind a public IP address. This is a form of address translation and mostly used in routers. Masquerading is IPv4 only because of kernel limitations.
Esto habilita enmascarado para la zona. La dirección de la red privada es asignada y escondida detras de una dirección IP publica. Esta es una forma de traduccion de dirección usado en ruteadores. Enmascarado es usado solo en IPv4 por limitaciones en el nucleo.


* Disable masquerading permanently in a zone
* Habilita enmascarado permanente en la zona
   firewall-cmd --permanent [--zone=<zone>] --remove-masquerade
   firewall-cmd --permanent [--zone=<zone>] --remove-masquerade


* Query masquerading permanently in a zone
* Busca enmascarado permanente en la zona
   firewall-cmd --permanent [--zone=<zone>] --query-masquerade
   firewall-cmd --permanent [--zone=<zone>] --query-masquerade


This command returns if it is enabled, there is no output.
Esta instrucción entrega si esta habilitado. No hay salida.


* Enable ICMP blocks permanently in a zone
* Habilita bloqueos de  ICMP permanentemente en la zona
   firewall-cmd --permanent [--zone=<zone>] --add-icmp-block=<icmptype>
   firewall-cmd --permanent [--zone=<zone>] --add-icmp-block=<icmptype>


This enabled the block of a selected Internet Control Message Protocol (ICMP) message. ICMP messages are either information requests or created as a reply to information requests or in error conditions.
Esto habilita el bloque de los mensajes de nternet Control Message Protocol (ICMP). Los mensajes de ICMP son solicitudes de información o creados como respuesta a solicitudes o condiciones de error.  


* Disable ICMP blocks permanently in a zone
* Dehabilita bloqueos de  ICMP permanentemente en la zona
   firewall-cmd --permanent [--zone=<zone>] --remove-icmp-block=<icmptype>
   firewall-cmd --permanent [--zone=<zone>] --remove-icmp-block=<icmptype>


* Query ICMP blocks permanently in a zone
* Busca bloqueos de  ICMP permanentemente en la zona
   firewall-cmd --permanent [--zone=<zone>] --query-icmp-block=<icmptype>
   firewall-cmd --permanent [--zone=<zone>] --query-icmp-block=<icmptype>


This command returns if it is enabled, there is no output.
Esta instrucción entrega si esta habilitado. No hay salida.


* '''Example:''' Block echo-reply messages in the public zone:
* '''Ejemplo:''' Bloquea los mensajes de echo-reply en la zona publica:
   firewall-cmd --permanent --zone=public --add-icmp-block=echo-reply
   firewall-cmd --permanent --zone=public --add-icmp-block=echo-reply


* Enable port forwarding or port mapping permanently in a zone
* Habilitan re direccionamiento o reenvió de puertos permanentemente en la zona
   firewall-cmd --permanent [--zone=<zone>] --add-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }
   firewall-cmd --permanent [--zone=<zone>] --add-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }


The port is either mapped to the same port on another host or to another port on the same host or to another port on another host. The port can be a singe port <port> or a port range <port>-<port>. The protocol is either '''tcp''' or '''udp'''. toport is either port <port> or a port range <port>-<port>. toaddr is an IPv4 address. Port forwarding is IPv4 only because of kernel limitations.
El puerto es re direccionado o  reenviado al mismo puerto o otro huesped o otro puerto en el mismo huesped o otro puerto en otro huesped. El puerto puede ser simpel <port> o un rango de puertos <port>-<port>. El protocolo es '''tcp''' o '''udp''' toport es cualquier puerto <port> o cualquier rango de puertos <por>-<port> . toaddr es una dirección IPv4 debido a limitaciones en el núcleo.


* Disable port forwarding or port mapping permanently in a zone
* dishabilitan re direccionamiento o reenvió de puertos permanentemente en la zona
   firewall-cmd --permanent [--zone=<zone>] --remove-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }
   firewall-cmd --permanent [--zone=<zone>] --remove-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }


* Query port forwarding or port mapping permanently in a zone
* Busca re direccionamiento o reenvió de puertos permanentemente en la zona
   firewall-cmd --permanent [--zone=<zone>] --query-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }
   firewall-cmd --permanent [--zone=<zone>] --query-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }


This command returns if it is enabled, there is no output.
Esta instrucción entrega si esta habilitado. No hay salida.


* '''Example:''' Forward ssh to host 127.0.0.2 in the home zone
* '''Ejemplo:''' reenvia ssh al huesped 127.0.0.2 en la zona home
   firewall-cmd --permanent --zone=home --add-forward-port=port=22:proto=tcp:toaddr=127.0.0.2
   firewall-cmd --permanent --zone=home --add-forward-port=port=22:proto=tcp:toaddr=127.0.0.2


==== Direct options ====
==== Opciones Directas ====


The direct options are mostly for services and applications to be able to add custom rules.
Las opciones directas es mas para que las aplicaciones y servicios apliquen sus propias reglas.
The rules are not saved and have to get resubmitted after reload or restart. The arguments <args> of the passthrough option are the same as the corresponding iptables, ip6tables and ebtables arguments.
Las reglas no son almacenadas tienen que ser ingresadas nuevamente cuando se recarga o reinicial el cortafuego. Los argumentos <arg> de las opciones son las mismas a las correspondientes a los argumentos de iptables, ip6tables y ebtables.


The '''--direct''' option needs to be the first option for all direct options.
La opción '''--direct''' tiene que ser la primera opción para todas las opciones directas.  


* Pass a command through to the firewall. <args> can be all iptables, ip6tables and ebtables command line arguments
* Envia un comando al cortafuego. <args> puede ser todas las iptables, ip6tables y ebtables en los argumentos de la linea de comandos
   <nowiki>firewall-cmd --direct --passthrough { ipv4 | ipv6 | eb } <args></nowiki>
   <nowiki>firewall-cmd --direct --passthrough { ipv4 | ipv6 | eb } <args></nowiki>


* Add a new chain <chain> to a table <nowiki><table></nowiki>.
* Agrega una nueva cadena <chain> a la tabla <nowiki><table></nowiki>.
   <nowiki>firewall-cmd --direct --add-chain { ipv4 | ipv6 | eb } <table> <chain></nowiki>
   <nowiki>firewall-cmd --direct --add-chain { ipv4 | ipv6 | eb } <table> <chain></nowiki>


* Remove a chain with name <chain> from table <nowiki><table></nowiki>.
* Remueve una cadena con el nombre <chain> de la tabla <nowiki><table></nowiki>.
   <nowiki>firewall-cmd --direct --remove-chain { ipv4 | ipv6 | eb } <table> <chain></nowiki>
   <nowiki>firewall-cmd --direct --remove-chain { ipv4 | ipv6 | eb } <table> <chain></nowiki>


* Query if a chain with name <chain> exists in table <nowiki><table></nowiki>. Returns 0 if true, 1 otherwise.
* Busca si una cadena con el nombre <chain> existe en las tablas <nowiki><table></nowiki>. Regresa 0 si es verdad, 1 si es falso.
   <nowiki>firewall-cmd --direct --query-chain { ipv4 | ipv6 | eb } <table> <chain></nowiki>
   <nowiki>firewall-cmd --direct --query-chain { ipv4 | ipv6 | eb } <table> <chain></nowiki>


This command returns if it is enabled, there is no output.
Ese comando regresa si esta habilitado, no hay salida.


* Get all chains added to table <nowiki><table></nowiki> as a space separated list.
* Obtiene todas las cadenas adicionadas al la tabla <nowiki><table></nowiki> como una lista separadas por espacio.
   <nowiki>firewall-cmd --direct --get-chains { ipv4 | ipv6 | eb } <table></nowiki>
   <nowiki>firewall-cmd --direct --get-chains { ipv4 | ipv6 | eb } <table></nowiki>


* Add a rule with the arguments <args> to chain <chain> in table <nowiki><table></nowiki> with priority <priority>.
* Agrega una regla con los argumentos <args> a la cadena <chain> en la tabla <nowiki><table></nowiki> con la prioridad <priority>.
   <nowiki>firewall-cmd --direct --add-rule { ipv4 | ipv6 | eb } <table> <chain> <priority> <args></nowiki>
   <nowiki>firewall-cmd --direct --add-rule { ipv4 | ipv6 | eb } <table> <chain> <priority> <args></nowiki>


* Remove a rule with the arguments <args> from chain <chain> in table <nowiki><table></nowiki>.
* Remueve una regla con los argumentoss <args> de la cadena <chain> en la tabla <nowiki><table></nowiki>.
   <nowiki>firewall-cmd --direct --remove-rule { ipv4 | ipv6 | eb } <table> <chain> <args></nowiki>
   <nowiki>firewall-cmd --direct --remove-rule { ipv4 | ipv6 | eb } <table> <chain> <args></nowiki>


* Query if a rule with the arguments <args> exists in chain <chain> in table <nowiki><table></nowiki>. Returns 0 if true, 1 otherwise.
* Busca una regla con los argumentos <args> existen la cadena  <chain> en la tabla <nowiki><table></nowiki>. Regresa 0 si es cierto, 1 si es al contrario.
   <nowiki>firewall-cmd --direct --query-rule { ipv4 | ipv6 | eb } <table> <chain> <args></nowiki>
   <nowiki>firewall-cmd --direct --query-rule { ipv4 | ipv6 | eb } <table> <chain> <args></nowiki>


This command returns if it is enabled, there is no output.
Este comando retorna si esta habilitado, no hay salida.


* Get all rules added to chain <chain> in table <nowiki><table></nowiki> as a newline separated list of arguments.
* Obtiene todas las reglas agregadas a las cadena <chain> en la tabla <nowiki><table></nowiki> como una lista de argumentos separados por una nueva linea.
   <nowiki>firewall-cmd --direct --get-rules { ipv4 | ipv6 | eb } <table> <chain></nowiki>
   <nowiki>firewall-cmd --direct --get-rules { ipv4 | ipv6 | eb } <table> <chain></nowiki>


== The current firewalld features ==
== Caracteristicas actuales de firewalld ==


=== D-BUS Interface ===
=== Interface D-BUS ===


The D-BUS interface gives information about the firewall state and makes it possible to enable, disable and query firewall settings.
La interface D-BUS provee información acerca del estado del cortafuego y hace posible habilitarlo, deshabilitarlo y buscar la configuración del cortafuego.


=== Zones ===
=== Zonas ===


A network or firewall zone defines the trust level of the interface used for a connection. There are several pre-defined zones provided by firewalld. Zone configuration options and generic file information are described in the firewalld.zone(5) man page.
Una zona en una red o cortafuego define el nivel de confianza de la interfase utilizada en la conexión. Existen varias zonas pre definidas entregadas por firewalld. Las opciones de configuración y la información de las zonas son descritas en la paginas del manual firewalld.zone(5).


=== Services ===
=== Servicios ===


A service can be a list of local ports and destinations and additionally also a list of firewall helper modules automatically loaded if a service is enabled. The use of predefined services makes it easier for the user to enable and disable access to a service. Service configuration options and generic file information are described in the firewalld.service(5) man page.
Un servicio puede ser una lista de puertos los puertos locales y destinos adicionalmente también puede ser una lista de módulos de ayuda que se cargan automáticamente  si un un servicio es habilitado. El uso de los servicios predefinidos hace mucho mas fácil para el usuario habilitar y deshabilitar el acceso al servicio. Las opciones de configuración y la información de los servicios son descritas en la pagina de manual firewalld.service(5).


=== ICMP types ===
=== Tipos ICMP ===


The Internet Control Message Protocol (ICMP) is used to exchange information and also error messages in the Internet Protocol (IP). ICMP types can be used in firewalld to limit the exchange of these messages. ICMP type configuration options and generic file information are described in the firewalld.icmptype(5) man page.
El Internet Control Message Protocol (ICMP) es usado para intercambiar información y mensajes de error en el protocolo de Internet (IP). Los tipos ICMP puede ser usados en firewalld para limitar el intercambio de este tipo de mensajes. Las opciones de configuracion y la información del los tipos ICMP son descritos en la pagina del manual firewalld.icmptype(5).


=== Direct interface ===
=== Interface directa ===


The direct interface is mainly used by services or applications to add specific firewall rules. The rules are not permanent and need to get applied after receiving the start, restart or reload message from firewalld using D-BUS.
La interface directa es usada por los servicios o aplicaciones para especificar reglas del contrafuego. Las reglas no son permanentes y necesitan ser aplicadas después de iniciar, reiniciar o recargar los mensages del firewalld usando D-BUS.


=== Runtime configuration ===
=== Configuración en ejecución ===


The runtime configuration is not permanent and will only be restored for a reload. After restart or stop of the service or a system reboot, these options will be gone.
La configuración en ejecución no es permanente y sera no reinstaurada al recargar. Después de reiniciar o iniciar el servicio o un reinicio del sistema, estas configuraciones se perderan.


=== Permanent configuration ===
=== Configuración permanente ===


The permanent configuration is stored in config files and will be restored with every machine boot or service reload or restart.
Las configuraciones permanentes se almacenan en los archivos de configuracion y seran restablecidas con cada reinicio del equipo o carga o reinicio del servicio.


=== Tray Applet ===
=== Tray Applet ===


The tray applet '''firewall-applet''' visualizes the firewall state and also problems with the firewall for the user. It can also be used to configure settings by calling '''firewall-config'''.
El tray applet '''firewall-applet''' visualiza el estado y los problemas con el cortafuego al usuario. El puede también ser utilizado para cambiar la configuración llamando '''firewall-config'''.
 
=== Herramienta de configuración gráfica ===


=== Graphical Configuration Tool ===
La herramienta de configuración '''firewall-config''' es la herramienta de configuración del demonio del cortafuego. Este soporta todas las características del cortafuego ademas de la interface directa, este es manejado por los servicios/aplicaciones que agregan las reglas.


The configuration tool '''firewall-config''' is the main configuration tool for the firewall daemon. It supports all features of the firewall besides the direct interface, this is handled by the service/application that added the rules.
=== Linea de comandos ===


=== Command Line client ===
'''firewall-cmd''' provee (la mayoria) las características de la herramienta grafica en la linea de comandos.


'''firewall-cmd''' provides (most of) the configuration features of the graphical tool for the command line.
=== Soporte para ebtables ===


=== Support for ebtables ===
El soporte a ebtables es requerida para soportar todas las necesidades del demonio libvirt y previene el acceso a problemas entre ip*tables y ebtables a nivel del netfilter del núcleo.
Todos estos comandos son acceso en las mismas estructuras por ello no pueden ser utilizados al mismo tiempo.


ebtables support is needed to fulfill all needs of the libvirt daemon and to prevent access problems between ip*tables and ebtables on kernel netfilter level. All these commands are accessing the same structures and therefore they should not be used at the same time.
=== Configuración Predeterminada/auto-fallo en /usr/lib/firewalld ===


=== Default/Fallback configuration in /usr/lib/firewalld ===
Este directorio contiene las configuraciones predefinisas y de fallos proveídas por firewalld para icmptyoes, los servicios y las zonas Los archivos proveídos con el paquete de firewalld no deben de ser cambiados y los cambios se perderán con las actualizaciones. Con las actualizaciones se pueden agregar icmptypes, servicios y zonas pueden ser entregadas o al crear nuevos archivos.


This directory contains the default and fallback configuration provided by firewalld for icmptypes, services and zones. The files provided with the firewalld package should not get changed and the changes are gone with an update of the firewalld package. Additional icmptypes, services and zones can be provided with packages or by creating files.
=== Configuración del sistema en  /etc/firewalld ===


=== System configuration settings in /etc/firewalld ===
La configuración del sistema o el usuario es almacenada aqui es creada por el administrador del sistema o por la herramienta de configuración de firewalld o a mano. Los archivos seran recargados al iniciar los archivos de configuración.
The system or user configuration stored here is either created by the system administrator or by customization with the configuration interface of firewalld or by hand. The files will overload the default configuration files.


To manually change settings of pre-defined icmptypes, zones or services, copy the file from the default configuration directory to the corresponding directory in the system configuration directory and change it accordingly.
Para cambiar la configuración de los servicios, zonas, icmptypes predefinidas, copie los archivos predefinidos del directorio de configuración correspondiente en el directorio de configuración y realice los cambios apropiadamente.


If you are loading the defaults for a zone that has a default or fallback file, the file in /etc/firewalld will be renamed to <file>.old and the fallback will be used again.
Si usted esta cargando los archivos de la zona predefinida o auto-fallo, el archivo en /etc/firewalld puede ser renombrado a <file>.old y ele auto-file sera usado nuevamente.


== Work in Progress Features ==
== Caracteristicas que se trabajan en la actualidad ==


=== Rich Language ===
=== Lenguaje Rico ===


The rich language provides a high level language to be able to have more complex firewall rules for IPv4 and IPv6 without the knowledge of iptables syntax.
El lenguaje rico provee un lenguaje de alto nivel que permite tener reglas de cortafuego mas complejas para IPv4 y IPv6 sin conocimiento de las reglas de sintaxes de iptables.


Fedora 19 provides milestone 2 of the rich language with D-Bus and command line client support. The milestone 3 will also provide support within firewall-config, the graphical configuration program.
Fedora 19 provee el hito 2 del lenguaje rico con D-BUS  el soporte a la linea de comando. El hito 3 tambien provee soporte dentro de firewall-config, la herramienta de configuración gráfica.


For more information on this, please have a look at: [https://fedoraproject.org/wiki/Features/FirewalldRichLanguage firewalld Rich Language]
Para mayor información, ver : [https://fedoraproject.org/wiki/Features/FirewalldRichLanguage firewalld Rich Language]


=== Lockdown ===
=== Lockdown ===


Lockdown adds a simple configuration setting for firewalld to be able to lock down configuration changes from local applications or services. It is a very light version of application policies.
Lockdown añade una opción de configuración simple para firewalld que permita cerrar los cambios de la configuraciones de las aplicaciones locales de aplicaciones y servicios. Es una versión ligera de aplicación de políticas.  


Fedora 19 provides milestone 2 of the lockdown feature with D-Bus and command line client support. The milestone 3 will also provide support within firewall-config, the graphical configuration program.
Fedora 19 provee un hito 2 del cierre de características con D-BUS y el soporte a la linea de comando. El hot 3 tambien provee soporte dentro del firewall-config, la herramienta de configuración gráfica.


For more information on this, please have a look at: [https://fedoraproject.org/wiki/Features/FirewalldLockdown firewalld Lockdown]
Para mayor información, ver: [https://fedoraproject.org/wiki/Features/FirewalldLockdown firewalld Lockdown]


=== Permanent Direct Rules ===
=== Reglas permanentes directas ===


This feature is in early state. It provides the ability to permanently save direct rules and chains. Passthorough rules are not part of this. See [[Direct options]] for more information on direct rules.
Esta característica esta en un estado inicial. Esto provee la habilidad de guardad reglas y cadenas permanentes. Las reglas Passthorought no son parte de esto. Ver [[Direct options]] para mayor información de las reglas directas.


=== Migration from ip*tables and ebtables services ===
=== Migraciones de los servicios de ip*tables y ebtables ===


This feature is in an very early state. It will provide a conversion script that creates direct permanent rules from the iptables, ip6tables and ebtables service configurations as far as possible. A limitation here might be the integration into the direct chains firewalld provides.
Esta caracteristicas esta en un estado inicial. Esto proveerá un archivo de conversión que crea reglas directas permanentes de las reglas de configuración de  los servicios de iptables, ip6tables y ebtables. Una limitante puede ser la integración dentro de las cadenas que firewalld provee.


This needs lots of tests at best also from more complex firewall configurations.
Esto requiere muchas pruebas y configuraciones mas complejas del contrafuego.


== Planned and Proposed Features ==
== Características planeadas y propuestas ==


=== Firewall Abstraction Model ===
=== Modelo de cortafuego abstracto ===


Adding an abstraction layer on top of ip*tables and ebtables firewall rules makes adding rules simple and more intuitive. The abstraction layer needs to be powerful, but also simple, which makes this not an easy task. A firewall language has to gen invented for this. Firewall rules have a fixed position and querying generic information about access state, access policies for ports and other firewall features is possible.
Agregandon una capa de abstracción al inicio de las reglas de  ip*tables y ebtables hace que agregar reglas sea simple y mas intuitivo. La capa de abstracción necesita ser poderosa pero sencilla, lo que hace esto una tarea compleja. Un lenguaje de cortafuego tiene un gen inventado para esto. Las reglas del cortafuego tienen una posición fija y buscan información generica acerca del estado de acceso, políticas de acceso a los puertos y otras características del cortafuego es posible.


=== Support for conntrack ===
=== Soporte para conntrack ===


Conntrack is needed to be able to terminate established connections for features that get disabled. For some use cases it might not be good to terminate the connection: Enabling of a firewall service for a limited time to establish a persistent external connection.
Conntrack es requerido para poder terminar las conexiones establecida por las características que sean deshabilitadas. Para algunos casos de uso no puede ser bueno terminar la conexión. Conntrack: habilitando el servicio de cortafuego por un tiempo limitado para establecer una conexión externa permanente.


=== User interaction mode ===
=== Modo de iteración con el usuario ===


This is a special mode of in the firewall the user or admin can enable. All requests of applications to alter the firewall are directed to the user to get notified and granted or denied. It is possible to set a time limit for the acceptance of a connection and to limit it to hosts, networks or connections. It can be saved to behave the same in the future without notification.
Este modo especial en el cortafuego permite que ser habilitado por el usuario o administrador. Todas las solicitudes de las aplicaciones para alterar el cortafuego son enviadas directamente al usuario para que sean autorizadas o denegadas. Es posible establecer un tiempo limite para la aceptación de la conexión y se limita al huésped, red o conexión. Puede ser guardado para controlar de la misma manera el futuro sin notificación.


An additional feature of this mode is direct external connection attempts on preselected services or ports to the user with the same features as the application initiated requests. The limitation on services and ports will also limit the amount of requests sent to the user.
Una característica adicionar de este modo es las conexión externa directa que intenta en servicios o puertos pre seleccionados con el usuario con las mismas características de la aplicación que inicia la solicitud. La limitación de los servicios y puertos también limita la cantidad de solicitudes que se enviá al usuario.


=== User policy support ===
=== Políticas de uso del usuario ===


The administrator can define which users are able to use the User Interaction Mode and can also limit the firewall features, that can be used with it.
El administrador puede definir que usuario esta disponible para el uso del modo Interactivo del Usuario y puede limitar las caracteristicas, que pueden ser usado con el.


=== Port metadata information (proposed by Lennart Poettering) ===
=== Información de los metadatos del Puerto (propuesto por Lennart Poettering) ===


To have a port independent metadata information would be good to have. The current model with a static assignment of ports and protocols from /etc/services is not a good solution and is not reflecting current use cases. Ports in applications or services are dynamic and therefore the port itself does not describe the use case.
Tener un puerto información de metadatos independientes seria algo bueno. El modelo actual con asignacion estatica de puertos y protocolos del /etc/services no es una buena solución y no refleja los casos de usos actuales. Los puertos en las aplicaciones o servicios son dinamicos y por lo tanto el puerto por si mismo no describe su uso.


This metadata information could be used to form simple rules for the firewall. Here are some examples:
Esta información de metadatos podria ser utilizado con una forma de reglas sencillas en el cortafuego. Aquí unos ejemplos:


   allow external access to file sharing applications or services
   allow external access to file sharing applications or services
Line 492: Line 495:
   allow external access to http web services
   allow external access to http web services


The metadata information here could not only be application specific, but also a group of use cases. For example the "all sharing" group or the "file sharing" group could match all sharing or file sharing applications, for example torrent file sharing. These are examples, therefore it might be that they are not useful.
La información de metadatos aquí no solo puede ser especifico a la aplicación, pero también a los grupos de uso. Por ejemplo el grupo "all sharing" o "file sharing" puede englobar a todas las aplicaciones de compartir archivos, por ejemplo los archivos compartidos por torrent. Estos son ejemplos, por lo tanto puede ser que no sean utilies.
 
Existen dos soluciones posibles para obtener la información de metadata en el cortafuego:


There are two possible solutions to get metadata information in the firewall:
La primera es agregarla al netfilter (espacio del nucle). Esto tiene la ventaja, que puede ser por cualquiera, pero también limita su uso. Para obtener la información del usuario o de sistema en cuenta, todo esto necesita ser implementado en el espacio del núcleo.


The first is to add it to netfilter (kernel space). This has the advantage, that it can be used by everyone, but also limits the use. To get user or system specific information into account, all these need to be implemented in kernel space also.
Este método se agregar al demonio del cortafuego. Estas reglas abstractas pueden ser usadas en conjunto con información como el nivel de confianza de las conexiones de red, la decisión del usuario de compartir con una persona/huésped especifico o una regla dura del administrador para prohibir la compartir.


The other one would be to add this to a firewall daemon. These abstract rules could be used together with information like the trust level of the network connections, the user decision to share with as specific person/host or the hard rule of the administrator to forbid sharing completely.


The second solution would have the advantage that new metadata groups or changes in incorporation of trust levels, user preferences or administrator rules would not require to push a new kernel. Adding these kind of abstract rules to a firewall daemon would make it much more flexible. Even new security levels would be easy to add without kernel updates.
 
La segunda solución tendría la ventaja de que nuevos grupos de metadatos o los cambios en la incorporación de niveles de confianza, las preferencias del usuario o reglas de administrador no requerirían para empujar un nuevo núcleo. La adición de este tipo de reglas abstractas a un demonio de servidor de seguridad haría mucho más flexible. Incluso los nuevos niveles de seguridad sería fácil añadir sin las actualizaciones del núcleo.


=== sysctld ===
=== sysctld ===


At the moment there are sysctl settings that are not properly applied. This happens if the module providing the setting is not loaded at boot time when rc.sysinit runs or it the module gets reloaded at runtime.
Por el momento los valores de sysctl que no se aplican correctamente. Esto sucede si el módulo que proporciona el ajuste no se carga en el arranque cuando rc.sysinit corre o que el módulo se vuelve a cargar en tiempo de ejecución.
Another example is net.ipv4.ip_forward, which is needed for example for specific firewall settings, libvirt and also user/admin changes. If there are two apps or daemons enabling ip_forwarding only if needed, then it could happen that one of them is turning it off again without knowing that there is another one, that still needs it turned on.
Otro ejemplo es net.ipv4.ip_forward, que es necesaria por ejemplo para la configuración específica de servidor de seguridad, libvirt y también los cambios de usuario / administrador. Si hay dos aplicaciones o demonios que permiten ip_forwarding sólo si es necesario, entonces podría suceder que uno de ellos es apagarlo de nuevo sin saber que hay otra, que aún queda encendida.


The sysctl daemon could solve this by having an internal use count for settings, that will make it possible to turn it off or go to the previous setting again if the requester reverted the request to change it.
El demonio sysctl podría resolver esto a través de un recuento de uso interno para los ajustes, que hará que sea posible para apagarlo o ir a la configuración anterior de nuevo si el solicitante se revirtió la solicitud para cambiarlo.


== Firewall Rules ==
== Reglas del Cortafuego ==


Netfilter firewalls are always susceptible to rule ordering issues, because a rule does not have a fixed position in a chain. The position can change if other rules are added or removed in a position before that rule.
Cortafuegos Netfilter siempre son susceptibles a descartar problemas de ordenación , ya que por regla general no tiene una posición fija en una cadena . La posición se puede cambiar si se agregan o eliminan otras reglas en una posición antes de que la regla.


In the static firewall model a firewall change is recreating a clean and sane firewall setup limited to the features directly supported by system-config-firewall / lokkit. Firewall rules created by other applications are not integrated and s-c-fw / lokkit does not know about them if the customs rules file feature is not in use. Default chains are used and there is no safe way to add and remove rules without interfering with others.  
En el modelo de servidor de seguridad estática un cambio firewall está recreando una configuración de servidor de seguridad limpio y sano se limita a las características soportadas directamente por system-config- firewall / lokkit . Las reglas de firewall creadas por otras aplicaciones no están integrados y sc- fw / lokkit no sabe acerca de ellos si la función de archivo de la normativa aduanera no está en uso . Cadenas por defecto se utilizan y no hay manera segura de agregar y quitar reglas sin interferir con los demás.


The dynamic model has additional chains for the firewall features. These specific chains are called in a defined ordering and rules added to a chain could not interfere with reject or drop rules in chains that were called before. This makes it possible to have a more sane firewall configuration.
El modelo dinámico tiene cadenas adicionales para las funciones de firewall . Estas cadenas específicas se llaman en un orden definido y normas añadidos a una cadena no podían interferir con rechazar o eliminar las reglas de las cadenas a las que llamó antes. Esto hace que sea posible tener una configuración de cortafuegos más cuerdo.


Here are example rules created by the daemon in the filter table with ssh, ipp-client and mdns enabled in the public zone, all other zones have been removed to simplify and shorten the output:
Éstos son ejemplos de reglas creadas por el demonio en la tabla de filtros con ssh, ipp -cliente y mdns habilitados en la zona pública , todas las otras zonas se han eliminado para simplificar y acortar la salida :


   *filter
   *filter
Line 550: Line 555:
   -A IN_ZONE_public_allow -p udp -m udp --dport 631 -m conntrack --ctstate NEW -j ACCEPT
   -A IN_ZONE_public_allow -p udp -m udp --dport 631 -m conntrack --ctstate NEW -j ACCEPT


Used is a deny/allow model to have a clear behaviour and at best no rule interferences. Icmp blocks for example will go to the IN_ZONE_public_deny chain if set for the public zone and will be handled before the rules in the IN_ZONE_public_allow chain.


This model makes it more easy to add or remove rules from a specific block without interfering with accept or drop rules from another block.
Se utiliza un modelo de denegar / permitir tener un comportamiento claro y en el mejor sin interferencias de reglas. Icmp bloques por ejemplo irán a la cadena IN_ZONE_public_deny si se establece para la zona pública y serán tratados antes de que las reglas de la cadena IN_ZONE_public_allow.
 
Este modelo hace que sea más fácil para agregar o quitar las reglas de un bloque específico, sin interferir con aceptar o dejar las reglas de otro bloque.

Latest revision as of 11:21, 7 June 2016

FirewallD, el cortafuegos dinámico

Firewalld es un cortafuegos dinámico administrable, con soporte para zonas de redes para definir el nivel de confianza de las redes o interfaces que utilice para conectarse. Tiene soporte para configuraciones IPv4, IPv6 y puentes de ethernet. Además, firewalld mantiene de forma separada una configuración en ejecución y otra permanente. Así pues, firewalld también ofrece una interfaz para que las aplicaciones puedan añadir reglas al cortafuegos de una forma cómoda.

El modelo de cortafuegos anterior (system-config-firewall/lokkit) era estático y cada cambio requería un reinicio completo del cortafuego. Esto suponía tener que descargar los módulos del cortafuegos del núcleo (ej: netfilter) y recargarlos de nuevo en cada configuración. Además, este reinicio suponía perder la información de estado de las conexiones establecidas.

Por el contrario, firewalld no requiere reiniciar el servicio para aplicar una nueva configuración. Por lo tanto, no es necesario recargar los módulos del núcleo. El único inconveniente es que para que todo esto funcione correctamente, la configuración del cortafuegos debe realizarse a traves de firewalld y sus herramientas de configuración (firewall-cmd o firewall-config). Firewalld es capaz de añadir reglas utilizando la misma sintaxis que los comandos {ip,ip6,eb}tables (reglas directas).

El servicio tambien ofrece información acerca de la configuración actual del cortafuegos por medio de DBus, y de igual forma también pueden añadirse nuevas reglas, utilizando PolicyKit para el proceso de autenticación.

El servicio

Las aplicaciones, servicios y el usuario pueden solicitar establecer funciones del cortafuego por medio de DBus. Una función puede ser una de las características predefinidas del cortafuego como servicios, puertos y combinación de protocolos, reenvío de puertos/paquetes, enmascarado o bloqueo de ICMP. Las características pueden ser habilitadas durante un periodo de tiempo o pueden deshabilitarse nuevamente.

Otros servicios (como por ejemplo libvirt) pueden añadir sus propias reglas usando argumentos y parámetros de iptables. Estas reglas se conocen como reglas directas.

La ayuda del cortafuego netfilter, que son por ejemplo usadas en los servicios como amanda, ftp, samba y tftp, también 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.

Bloqueo de ICMP

Mensajes seleccionados del protocolo ICMP (Internet Control Message Protocol). Estos mensajes sirven para solicitar información de enrutado o para responder a las solicitudes de otras máquinas remotas o a determinadas situaciones 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.

Reenvío de puertos

Se puede configurar un puerto de forma que los paquetes que lleguen sean reenviados hacia otro puerto local o una máquina remota.

¿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.

¿Qué zona debo usar?

Si se trata de una red inalámbria podría utilizar la zona public. En el caso de una red doméstica segura, tal vez le convenga más utilizar la zona trusted. Elija la zona más apropiada en función de la red a la que se conecte.

¿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.

Conexiones administradas por NetworkManager

El cortafuego no puede manejar los nombres de las redes mostraos en el NetworkManager, solo puede manejar las interfaces de red. Por lo tanto NetworkManager le indica a firewalld poner las interfaces de red relacionadas a esas conexiones en las zonas definidas dentro del archivo de configuración (ifcfg) antes que la conexión inicie. Si la zona no es enviada en el archivo de configuración, la interface sera puesta en la zona predeterminada por firewalld. Si la conexión tiene mas de una interface, las ambas sera entregadas al firewalld. También cambia los nombres de las interfaces que serán manejadas por NetworkManager y entregadas a Firewalld.

Para simplificar estas conexiones seran usadas como zonas relacionadas de ahora en adelante.


NetworkManager también le dice a firewalld que remueva las conexiones de las zonas si la conexión se interrumpe.

Si firewalld es iniciado o reiniciado por systemd o un script de init, firewalld notifica al NetworkManager y las conexiones que serán adicionadas en las zonas

Conexiones de red administradas por scripts de red

Para las conexiones de red administradas por scripts de red hay limitaciones: No existe demonio que le pueda indicar a firewalld que agregue conexiones a la zona. Esto solo es realizado por el script ifcfg-post. Por lo tanto los cambios de nombre después de este no pueden ser entregados por firewalld. También iniciar o reiniciar firealld si las conexiones estan activas resulta en perdida de la relación. Hay ideas de como solucionar esto. La mas sencilla es empujar todas las conexiones a la zona por defecto que no sean establecidas de otra manera.

La zona que define las características del cortafuego que están definidas para esta zona son:

a en otra zona anteriormente.

  • Remueve una interface de una zona
 firewall-cmd [--zone=<zone>] --remove-interface=<interface>
  • Busca una si una interface se encuentra en una zona
 firewall-cmd [--zone=<zone>] --query-interface=<interface>

Retorna si una interface es en una zona. No hay salida

  • Lista los servicios habilitados en una zona
 firewall-cmd [ --zone=<zone> ] --list-services
  • Habilita el modo de pánico para bloquear todo el trafico de red en caso de emergencia
 firewall-cmd --panic-on
  • Deshabilita el modo de pánico
 firewall-cmd --panic-off
Panic opciones de pánico cambiaron en 0.3.0
en firewalld versiones anteriores a 0.3.0, las opciones de panico eran --enable-panic y --disable-panic.
  • Búsqueda de mode de pánico
 firewall-cmd --query-panic

Esto entrega el estado del modo de pánico, no hay salida. Para obtener un estado visual use

 firewall-cmd --query-panic && echo "On" || echo "Off"

Administración de las zonas en ejecución

En modo de ejecución el cambi de zonas no es permanente. Los cambios se iran luego de la recarga o reinicio.

  • Habilitar un servicio en la zona
 firewall-cmd [--zone=<zone>] --add-service=<service> [--timeout=<seconds>]

Esto habilita un servicio en la zona. Si la zona no es definida, se utilizara la zona predeterminada. Si un tiempo fueroa es definido, el servicio no se habilitara por el numero de segundos en la zona. Si el servicio es activado previamente, no habrá mensaje de advertencia.


  • Ejemplo: Habilitar el servicio ipp-client service por 60 segundos en la zona home:
 firewall-cmd --zone=home --add-service=ipp-client --timeout=60
  • Ejemplo: Habilita el servicio http en la zona:
 firewall-cmd --add-service=http
  • Deshabilita un servicio en la zona
 firewall-cmd [--zone=<zone>] --remove-service=<service>

Esto deshabilita un servicio en la zona. Si la zona no esta definida, la zona predeterminada sera usado.

  • Ejemplo: Deshabilita el servicio http en la zona home:
 firewall-cmd --zone=home --remove-service=http

El servicio sera deshabilitado en la zona. Si el servicio no esta habilitado en la zona, se mostrara un mensaje de advertencia.

  • Busca si un servicio es habilitado en la zona
 firewall-cmd [--zone=<zone>] --query-service=<service>

Entrega 1 si el servicio es habilitado en las zona de otra forma entrega 0. No hay salida.

  • Habilita una combinación de puerto y protocolo para una zona
 firewall-cmd [--zone=<zone>] --add-port=<port>[-<port>]/<protocol> [--timeout=<seconds>]

Esto habilita una combinación de puerto y protocolo. El puerto puede ser un puerto simple <port> o un rango de puertos <port>-<port>. El protocolo puede ser tcp o udp.

  • Deshabilita una combinación de puerto y protocolo en una zona
 firewall-cmd [--zone=<zone>] --remove-port=<port>[-<port>]/<protocol>
  • Busca si una combinación de puerto y protocolo en una zona
 firewall-cmd [--zone=<zone>] --query-port=<port>[-<port>]/<protocol>

Este comando entrega si esta habilitado. No hay salida.

  • Habilita enmascarado para una zona
 firewall-cmd [--zone=<zone>] --add-masquerade

Esto habilita enmascarado para una zona. La dirección de la red privada es asignada y escondida detras de una dirección publica. Esta es una forma de traducción de direcciones y se usan normalmente en ruteadores. Enmascarado es solo para IPv4 por las limitaciones en el kernel.


  • Dishable enmascarado para una zona
 firewall-cmd [--zone=<zone>] --remove-masquerade
  • Busqueda de enmascarado en una zona
 firewall-cmd [--zone=<zone>] --query-masquerade

Este comando entrega si esta habilitado. No hay salida.

  • Habilita bloqueos de ICMP en la zona
 firewall-cmd [--zone=<zone>] --add-icmp-block=<icmptype>

Esto habilita el bloque del protocolo selecionado de mensajes Internet Control Message Protocol (ICMP). Los mensajes ICMP son solicitudes de información o creados como respuesta a información solicitudas o en condiciones de error.

  • Deshabilita bloqueos de ICMP en la zona
 firewall-cmd [--zone=<zone>] --remove-icmp-block=<icmptype>
  • Búsqueda de bloqueos de ICMP
 firewall-cmd [--zone=<zone>] --query-icmp-block=<icmptype>

Este comando entrega si esta habilitado. No hay salida

  • Ejemplo: Bloquea respuesta eco para los mensajes en la zona publica:
 firewall-cmd --zone=public --add-icmp-block=echo-reply
  • habilita reenvió de puertos o re dirección de puertos en la zona
 firewall-cmd [--zone=<zone>] --add-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }

El puerto es reenviado al mismo puerto o a otro huesped o otro puerto en el mismo equipo o otro puerto en otro host. EL puerto puede ser simple <port> o un rango de puertos <port>-<port>. El protocolo puede ser tcp o udp. toport es <port> o un rango de puertos <por>-<port>. toaddr es una dirección IPv4. El re direccionamiento de puertos es solo IPv4 por las limitaciones en el nucleo.


  • Deshabilita un re direccionamiento o reenvió de puertos en una zona
 firewall-cmd [--zone=<zone>] --remove-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }
  • Busqueda de re direccionamiento o reenvió de puertos en una zona
 firewall-cmd [--zone=<zone>] --query-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }

Este comando entrega si esta habilitado. No hay salida

  • Ejemplo: Reenvia ssh al huesped 127.0.0.2 en la zona home
 firewall-cmd --zone=home --add-forward-port=port=22:proto=tcp:toaddr=127.0.0.2

Administrador de zona permanente

Las opciones permanentes no afectan la ejecución directamente. Estas opciones solo se habilitan despues de recargar o reiniciar. Para tener la configuración de ejecución y permanente, usted debe entregar ambas.

La opción --permanent tiene que estar adelante de cualquier opción permanente.

  • Obtiene una lista de los servicios soportados permanentes
 firewall-cmd --permanent --get-services
  • Obtiene una lista de los timpos ICMP soportados permanentes
 firewall-cmd --permanent --get-icmptypes
  • Obtiene una lista de los zonas soportados permanentes
 firewall-cmd --permanent --get-zones
  • habilita una zona permanente
 firewall-cmd --permanent [--zone=<zone>] --add-service=<service>

Esto habilita un servicio en una zona permanente. Si las zona es omitida, se utiliza la zona predefinida.

  • Deshabilita un servicio en la zona
 firewall-cmd --permanent [--zone=<zone>] --remove-service=<service>
  • Busca si un servicio esta habilitado para una zona
 firewall-cmd --permanent [--zone=<zone>] --query-service=<service>

Esta instruccion entrega si esta habilitada, no hay salida.

  • Ejemplo: Habilita el servicio ipp-client permanentemente en una zona
 firewall-cmd --permanent --zone=home --add-service=ipp-client
  • Habilita una combinación de puerto y protocolo en una zona
 firewall-cmd --permanent [--zone=<zone>] --add-port=<port>[-<port>]/<protocol>
  • Dehabilita una combinación de puerto y protocolo en una zona
 firewall-cmd --permanent [--zone=<zone>] --remove-port=<port>[-<port>]/<protocol>
  • Busca una combinación de puerto y protocolo en una zona
 firewall-cmd --permanent [--zone=<zone>] --query-port=<port>[-<port>]/<protocol>

Esta instrucción entrega si esta habilitado. No hay salida.

  • Ejemplo: Habilita el puerto 443/tcp para https de forma permanente en la zona home
 firewall-cmd --permanent --zone=home --add-port=443/tcp
  • Habilita enmascarado permanente en la zona
 firewall-cmd --permanent [--zone=<zone>] --add-masquerade

Esto habilita enmascarado para la zona. La dirección de la red privada es asignada y escondida detras de una dirección IP publica. Esta es una forma de traduccion de dirección usado en ruteadores. Enmascarado es usado solo en IPv4 por limitaciones en el nucleo.

  • Habilita enmascarado permanente en la zona
 firewall-cmd --permanent [--zone=<zone>] --remove-masquerade
  • Busca enmascarado permanente en la zona
 firewall-cmd --permanent [--zone=<zone>] --query-masquerade

Esta instrucción entrega si esta habilitado. No hay salida.

  • Habilita bloqueos de ICMP permanentemente en la zona
 firewall-cmd --permanent [--zone=<zone>] --add-icmp-block=<icmptype>

Esto habilita el bloque de los mensajes de nternet Control Message Protocol (ICMP). Los mensajes de ICMP son solicitudes de información o creados como respuesta a solicitudes o condiciones de error.

  • Dehabilita bloqueos de ICMP permanentemente en la zona
 firewall-cmd --permanent [--zone=<zone>] --remove-icmp-block=<icmptype>
  • Busca bloqueos de ICMP permanentemente en la zona
 firewall-cmd --permanent [--zone=<zone>] --query-icmp-block=<icmptype>

Esta instrucción entrega si esta habilitado. No hay salida.

  • Ejemplo: Bloquea los mensajes de echo-reply en la zona publica:
 firewall-cmd --permanent --zone=public --add-icmp-block=echo-reply
  • Habilitan re direccionamiento o reenvió de puertos permanentemente en la zona
 firewall-cmd --permanent [--zone=<zone>] --add-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }

El puerto es re direccionado o reenviado al mismo puerto o otro huesped o otro puerto en el mismo huesped o otro puerto en otro huesped. El puerto puede ser simpel <port> o un rango de puertos <port>-<port>. El protocolo es tcp o udp toport es cualquier puerto <port> o cualquier rango de puertos <por>-<port> . toaddr es una dirección IPv4 debido a limitaciones en el núcleo.

  • dishabilitan re direccionamiento o reenvió de puertos permanentemente en la zona
 firewall-cmd --permanent [--zone=<zone>] --remove-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }
  • Busca re direccionamiento o reenvió de puertos permanentemente en la zona
 firewall-cmd --permanent [--zone=<zone>] --query-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }

Esta instrucción entrega si esta habilitado. No hay salida.

  • Ejemplo: reenvia ssh al huesped 127.0.0.2 en la zona home
 firewall-cmd --permanent --zone=home --add-forward-port=port=22:proto=tcp:toaddr=127.0.0.2

Opciones Directas

Las opciones directas es mas para que las aplicaciones y servicios apliquen sus propias reglas. Las reglas no son almacenadas tienen que ser ingresadas nuevamente cuando se recarga o reinicial el cortafuego. Los argumentos <arg> de las opciones son las mismas a las correspondientes a los argumentos de iptables, ip6tables y ebtables.

La opción --direct tiene que ser la primera opción para todas las opciones directas.

  • Envia un comando al cortafuego. <args> puede ser todas las iptables, ip6tables y ebtables en los argumentos de la linea de comandos
 firewall-cmd --direct --passthrough { ipv4 | ipv6 | eb } <args>
  • Agrega una nueva cadena <chain> a la tabla <table>.
 firewall-cmd --direct --add-chain { ipv4 | ipv6 | eb } <table> <chain>
  • Remueve una cadena con el nombre <chain> de la tabla <table>.
 firewall-cmd --direct --remove-chain { ipv4 | ipv6 | eb } <table> <chain>
  • Busca si una cadena con el nombre <chain> existe en las tablas <table>. Regresa 0 si es verdad, 1 si es falso.
 firewall-cmd --direct --query-chain { ipv4 | ipv6 | eb } <table> <chain>

Ese comando regresa si esta habilitado, no hay salida.

  • Obtiene todas las cadenas adicionadas al la tabla <table> como una lista separadas por espacio.
 firewall-cmd --direct --get-chains { ipv4 | ipv6 | eb } <table>
  • Agrega una regla con los argumentos <args> a la cadena <chain> en la tabla <table> con la prioridad <priority>.
 firewall-cmd --direct --add-rule { ipv4 | ipv6 | eb } <table> <chain> <priority> <args>
  • Remueve una regla con los argumentoss <args> de la cadena <chain> en la tabla <table>.
 firewall-cmd --direct --remove-rule { ipv4 | ipv6 | eb } <table> <chain> <args>
  • Busca una regla con los argumentos <args> existen la cadena <chain> en la tabla <table>. Regresa 0 si es cierto, 1 si es al contrario.
 firewall-cmd --direct --query-rule { ipv4 | ipv6 | eb } <table> <chain> <args>

Este comando retorna si esta habilitado, no hay salida.

  • Obtiene todas las reglas agregadas a las cadena <chain> en la tabla <table> como una lista de argumentos separados por una nueva linea.
 firewall-cmd --direct --get-rules { ipv4 | ipv6 | eb } <table> <chain>

Caracteristicas actuales de firewalld

Interface D-BUS

La interface D-BUS provee información acerca del estado del cortafuego y hace posible habilitarlo, deshabilitarlo y buscar la configuración del cortafuego.

Zonas

Una zona en una red o cortafuego define el nivel de confianza de la interfase utilizada en la conexión. Existen varias zonas pre definidas entregadas por firewalld. Las opciones de configuración y la información de las zonas son descritas en la paginas del manual firewalld.zone(5).

Servicios

Un servicio puede ser una lista de puertos los puertos locales y destinos adicionalmente también puede ser una lista de módulos de ayuda que se cargan automáticamente si un un servicio es habilitado. El uso de los servicios predefinidos hace mucho mas fácil para el usuario habilitar y deshabilitar el acceso al servicio. Las opciones de configuración y la información de los servicios son descritas en la pagina de manual firewalld.service(5).

Tipos ICMP

El Internet Control Message Protocol (ICMP) es usado para intercambiar información y mensajes de error en el protocolo de Internet (IP). Los tipos ICMP puede ser usados en firewalld para limitar el intercambio de este tipo de mensajes. Las opciones de configuracion y la información del los tipos ICMP son descritos en la pagina del manual firewalld.icmptype(5).

Interface directa

La interface directa es usada por los servicios o aplicaciones para especificar reglas del contrafuego. Las reglas no son permanentes y necesitan ser aplicadas después de iniciar, reiniciar o recargar los mensages del firewalld usando D-BUS.

Configuración en ejecución

La configuración en ejecución no es permanente y sera no reinstaurada al recargar. Después de reiniciar o iniciar el servicio o un reinicio del sistema, estas configuraciones se perderan.

Configuración permanente

Las configuraciones permanentes se almacenan en los archivos de configuracion y seran restablecidas con cada reinicio del equipo o carga o reinicio del servicio.

Tray Applet

El tray applet firewall-applet visualiza el estado y los problemas con el cortafuego al usuario. El puede también ser utilizado para cambiar la configuración llamando firewall-config.

Herramienta de configuración gráfica

La herramienta de configuración firewall-config es la herramienta de configuración del demonio del cortafuego. Este soporta todas las características del cortafuego ademas de la interface directa, este es manejado por los servicios/aplicaciones que agregan las reglas.

Linea de comandos

firewall-cmd provee (la mayoria) las características de la herramienta grafica en la linea de comandos.

Soporte para ebtables

El soporte a ebtables es requerida para soportar todas las necesidades del demonio libvirt y previene el acceso a problemas entre ip*tables y ebtables a nivel del netfilter del núcleo. Todos estos comandos son acceso en las mismas estructuras por ello no pueden ser utilizados al mismo tiempo.

Configuración Predeterminada/auto-fallo en /usr/lib/firewalld

Este directorio contiene las configuraciones predefinisas y de fallos proveídas por firewalld para icmptyoes, los servicios y las zonas Los archivos proveídos con el paquete de firewalld no deben de ser cambiados y los cambios se perderán con las actualizaciones. Con las actualizaciones se pueden agregar icmptypes, servicios y zonas pueden ser entregadas o al crear nuevos archivos.

Configuración del sistema en /etc/firewalld

La configuración del sistema o el usuario es almacenada aqui es creada por el administrador del sistema o por la herramienta de configuración de firewalld o a mano. Los archivos seran recargados al iniciar los archivos de configuración.

Para cambiar la configuración de los servicios, zonas, icmptypes predefinidas, copie los archivos predefinidos del directorio de configuración correspondiente en el directorio de configuración y realice los cambios apropiadamente.

Si usted esta cargando los archivos de la zona predefinida o auto-fallo, el archivo en /etc/firewalld puede ser renombrado a <file>.old y ele auto-file sera usado nuevamente.

Caracteristicas que se trabajan en la actualidad

Lenguaje Rico

El lenguaje rico provee un lenguaje de alto nivel que permite tener reglas de cortafuego mas complejas para IPv4 y IPv6 sin conocimiento de las reglas de sintaxes de iptables.

Fedora 19 provee el hito 2 del lenguaje rico con D-BUS el soporte a la linea de comando. El hito 3 tambien provee soporte dentro de firewall-config, la herramienta de configuración gráfica.

Para mayor información, ver : firewalld Rich Language

Lockdown

Lockdown añade una opción de configuración simple para firewalld que permita cerrar los cambios de la configuraciones de las aplicaciones locales de aplicaciones y servicios. Es una versión ligera de aplicación de políticas.

Fedora 19 provee un hito 2 del cierre de características con D-BUS y el soporte a la linea de comando. El hot 3 tambien provee soporte dentro del firewall-config, la herramienta de configuración gráfica.

Para mayor información, ver: firewalld Lockdown

Reglas permanentes directas

Esta característica esta en un estado inicial. Esto provee la habilidad de guardad reglas y cadenas permanentes. Las reglas Passthorought no son parte de esto. Ver Direct options para mayor información de las reglas directas.

Migraciones de los servicios de ip*tables y ebtables

Esta caracteristicas esta en un estado inicial. Esto proveerá un archivo de conversión que crea reglas directas permanentes de las reglas de configuración de los servicios de iptables, ip6tables y ebtables. Una limitante puede ser la integración dentro de las cadenas que firewalld provee.

Esto requiere muchas pruebas y configuraciones mas complejas del contrafuego.

Características planeadas y propuestas

Modelo de cortafuego abstracto

Agregandon una capa de abstracción al inicio de las reglas de ip*tables y ebtables hace que agregar reglas sea simple y mas intuitivo. La capa de abstracción necesita ser poderosa pero sencilla, lo que hace esto una tarea compleja. Un lenguaje de cortafuego tiene un gen inventado para esto. Las reglas del cortafuego tienen una posición fija y buscan información generica acerca del estado de acceso, políticas de acceso a los puertos y otras características del cortafuego es posible.

Soporte para conntrack

Conntrack es requerido para poder terminar las conexiones establecida por las características que sean deshabilitadas. Para algunos casos de uso no puede ser bueno terminar la conexión. Conntrack: habilitando el servicio de cortafuego por un tiempo limitado para establecer una conexión externa permanente.

Modo de iteración con el usuario

Este modo especial en el cortafuego permite que ser habilitado por el usuario o administrador. Todas las solicitudes de las aplicaciones para alterar el cortafuego son enviadas directamente al usuario para que sean autorizadas o denegadas. Es posible establecer un tiempo limite para la aceptación de la conexión y se limita al huésped, red o conexión. Puede ser guardado para controlar de la misma manera el futuro sin notificación.

Una característica adicionar de este modo es las conexión externa directa que intenta en servicios o puertos pre seleccionados con el usuario con las mismas características de la aplicación que inicia la solicitud. La limitación de los servicios y puertos también limita la cantidad de solicitudes que se enviá al usuario.

Políticas de uso del usuario

El administrador puede definir que usuario esta disponible para el uso del modo Interactivo del Usuario y puede limitar las caracteristicas, que pueden ser usado con el.

Información de los metadatos del Puerto (propuesto por Lennart Poettering)

Tener un puerto información de metadatos independientes seria algo bueno. El modelo actual con asignacion estatica de puertos y protocolos del /etc/services no es una buena solución y no refleja los casos de usos actuales. Los puertos en las aplicaciones o servicios son dinamicos y por lo tanto el puerto por si mismo no describe su uso.

Esta información de metadatos podria ser utilizado con una forma de reglas sencillas en el cortafuego. Aquí unos ejemplos:

 allow external access to file sharing applications or services
 allow external access to music sharing applications or services
 allow external access to all sharing applications or services
 allow external access to torrent file sharing applications or services
 allow external access to http web services

La información de metadatos aquí no solo puede ser especifico a la aplicación, pero también a los grupos de uso. Por ejemplo el grupo "all sharing" o "file sharing" puede englobar a todas las aplicaciones de compartir archivos, por ejemplo los archivos compartidos por torrent. Estos son ejemplos, por lo tanto puede ser que no sean utilies.

Existen dos soluciones posibles para obtener la información de metadata en el cortafuego:

La primera es agregarla al netfilter (espacio del nucle). Esto tiene la ventaja, que puede ser por cualquiera, pero también limita su uso. Para obtener la información del usuario o de sistema en cuenta, todo esto necesita ser implementado en el espacio del núcleo.

Este método se agregar al demonio del cortafuego. Estas reglas abstractas pueden ser usadas en conjunto con información como el nivel de confianza de las conexiones de red, la decisión del usuario de compartir con una persona/huésped especifico o una regla dura del administrador para prohibir la compartir.


La segunda solución tendría la ventaja de que nuevos grupos de metadatos o los cambios en la incorporación de niveles de confianza, las preferencias del usuario o reglas de administrador no requerirían para empujar un nuevo núcleo. La adición de este tipo de reglas abstractas a un demonio de servidor de seguridad haría mucho más flexible. Incluso los nuevos niveles de seguridad sería fácil añadir sin las actualizaciones del núcleo.

sysctld

Por el momento los valores de sysctl que no se aplican correctamente. Esto sucede si el módulo que proporciona el ajuste no se carga en el arranque cuando rc.sysinit corre o que el módulo se vuelve a cargar en tiempo de ejecución. Otro ejemplo es net.ipv4.ip_forward, que es necesaria por ejemplo para la configuración específica de servidor de seguridad, libvirt y también los cambios de usuario / administrador. Si hay dos aplicaciones o demonios que permiten ip_forwarding sólo si es necesario, entonces podría suceder que uno de ellos es apagarlo de nuevo sin saber que hay otra, que aún queda encendida.

El demonio sysctl podría resolver esto a través de un recuento de uso interno para los ajustes, que hará que sea posible para apagarlo o ir a la configuración anterior de nuevo si el solicitante se revirtió la solicitud para cambiarlo.

Reglas del Cortafuego

Cortafuegos Netfilter siempre son susceptibles a descartar problemas de ordenación , ya que por regla general no tiene una posición fija en una cadena . La posición se puede cambiar si se agregan o eliminan otras reglas en una posición antes de que la regla.

En el modelo de servidor de seguridad estática un cambio firewall está recreando una configuración de servidor de seguridad limpio y sano se limita a las características soportadas directamente por system-config- firewall / lokkit . Las reglas de firewall creadas por otras aplicaciones no están integrados y sc- fw / lokkit no sabe acerca de ellos si la función de archivo de la normativa aduanera no está en uso . Cadenas por defecto se utilizan y no hay manera segura de agregar y quitar reglas sin interferir con los demás.

El modelo dinámico tiene cadenas adicionales para las funciones de firewall . Estas cadenas específicas se llaman en un orden definido y normas añadidos a una cadena no podían interferir con rechazar o eliminar las reglas de las cadenas a las que llamó antes. Esto hace que sea posible tener una configuración de cortafuegos más cuerdo.

Éstos son ejemplos de reglas creadas por el demonio en la tabla de filtros con ssh, ipp -cliente y mdns habilitados en la zona pública , todas las otras zonas se han eliminado para simplificar y acortar la salida :

 *filter
 :INPUT ACCEPT [0:0]
 :FORWARD ACCEPT [0:0]
 :OUTPUT ACCEPT [0:0]
 :FORWARD_ZONES - [0:0]
 :FORWARD_direct - [0:0]
 :INPUT_ZONES - [0:0]
 :INPUT_direct - [0:0]
 :IN_ZONE_public - [0:0]
 :IN_ZONE_public_allow - [0:0]
 :IN_ZONE_public_deny - [0:0]
 :OUTPUT_direct - [0:0]
 -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
 -A INPUT -i lo -j ACCEPT
 -A INPUT -j INPUT_direct
 -A INPUT -j INPUT_ZONES
 -A INPUT -p icmp -j ACCEPT
 -A INPUT -j REJECT --reject-with icmp-host-prohibited
 -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
 -A FORWARD -i lo -j ACCEPT
 -A FORWARD -j FORWARD_direct
 -A FORWARD -j FORWARD_ZONES
 -A FORWARD -p icmp -j ACCEPT
 -A FORWARD -j REJECT --reject-with icmp-host-prohibited
 -A OUTPUT -j OUTPUT_direct
 -A IN_ZONE_public -j IN_ZONE_public_deny
 -A IN_ZONE_public -j IN_ZONE_public_allow
 -A IN_ZONE_public_allow -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
 -A IN_ZONE_public_allow -d 224.0.0.251/32 -p udp -m udp --dport 5353 -m conntrack --ctstate NEW -j ACCEPT
 -A IN_ZONE_public_allow -p udp -m udp --dport 631 -m conntrack --ctstate NEW -j ACCEPT


Se utiliza un modelo de denegar / permitir tener un comportamiento claro y en el mejor sin interferencias de reglas. Icmp bloques por ejemplo irán a la cadena IN_ZONE_public_deny si se establece para la zona pública y serán tratados antes de que las reglas de la cadena IN_ZONE_public_allow.

Este modelo hace que sea más fácil para agregar o quitar las reglas de un bloque específico, sin interferir con aceptar o dejar las reglas de otro bloque.