La herramienta de línea de comandos firewall-cmd es parte del firewalld aplicación, que se instala por defecto. Se puede utilizar para realizar cambios de tiempo de ejecución permanentes y no permanentes.
Instalando cortafuegos
De forma predeterminada, firewalld se incluye en el grupo de rpm "núcleo", pero si no está instalado, siempre puede instalarlo usando yum.
# yum install -y firewalld
Habilite el firewalld para que comience en el arranque:
# systemctl enable firewalld
Reinicie el servicio firewalld ahora.
# systemctl restart firewalld
Opciones disponibles con el comando firewall-cmd
# firewall-cmd --help Usage: firewall-cmd [OPTIONS...] General Options -h, --help Prints a short help text and exists -V, --version Print the version string of firewalld -q, --quiet Do not print status messages Status Options --state Return and print firewalld state --reload Reload firewall and keep state information --complete-reload Reload firewall and lose state information --runtime-to-permanent Create permanent from runtime configuration
El comando firewall-cmd ofrece categorías de opciones como General, Estado, Permanente, Zona, IcmpType, Servicio, Adapt and Query Zones, Direct, Lockdown, Lockdown Whitelist y Panic. Consulte la página de manual de firewall-cmd para obtener más información.
Ejemplos útiles de firewall-cmd
1. Listar todas las zonas
Utilice el siguiente comando para enumerar la información de todas las zonas. Solo se muestra la salida parcial.
# firewall-cmd --list-all-zones work target: default icmp-block-inversion: no interfaces: sources: services: dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: sourceports: icmp-blocks: rich rules: drop target: DROP icmp-block-inversion: no interfaces: sources: services: ports: protocols: masquerade: no forward-ports: sourceports: icmp-blocks: rich rules: .....
Público es el conjunto de zonas predeterminado, si no lo cambia. Para verificar la zona predeterminada configurada actualmente, use el siguiente comando:
# firewall-cmd --get-default-zone public
2. Lista de servicios y puertos permitidos en el sistema
Para mostrar el servicio actualmente permitido en su sistema, use el siguiente comando.
# firewall-cmd --list-services dhcpv6-client ssh
Para enumerar los puertos que están abiertos en su sistema:
# firewall-cmd --list-ports
Normalmente, no vería ningún puerto en la lista aquí cuando acaba de habilitar el cortafuegos.
3. Para habilitar todos los puertos entrantes para un servicio
También puede abrir los puertos requeridos para un servicio usando –add-service opción. Para permitir el acceso de clientes HTTP para la zona pública:
# firewall-cmd --zone=public --add-service=http success
Para enumerar los servicios que están permitidos para la zona pública:
# firewall-cmd --zone=work --list-services dhcpv6-client http ssh
El uso de este comando solo cambia la configuración de Runtime y no actualiza los archivos de configuración. La siguiente secuencia de comandos muestra que los cambios de configuración realizados en el modo de configuración Runtime se pierden cuando se reinicia el servicio firewalld:
# systemctl restart firewalld
# firewall-cmd --zone=work --list-services dhcpv6-client ssh
Para hacer que los cambios sean permanentes, utilice la opción –permanente. Ejemplo:
# firewall-cmd --permanent --zone=public --add-service=http success
Los cambios realizados en el modo de configuración Permanente no se implementan inmediatamente. Ejemplo:
# firewall-cmd --zone=work --list-services dhcpv6-client ssh
Sin embargo, los cambios realizados en una configuración permanente se escriben en los archivos de configuración. Reiniciar el servicio firewalld lee los archivos de configuración e implementa los cambios.
Ejemplo:
# systemctl restart firewalld
# firewall-cmd --zone=work --list-services dhcpv6-client http ssh
4. Permitir tráfico en un puerto entrante
El siguiente comando abrirá el puerto 2222 con efecto inmediato, pero no persistirá en los reinicios:
# firewall-cmd --add-port=[YOUR PORT]/tcp
Por ejemplo, para abrir el puerto TCP 2222:
# firewall-cmd --add-port=2222/tcp
El siguiente comando creará una regla persistente, pero no se pondrá en vigencia de inmediato:
# firewall-cmd --permanent --add-port=[YOUR PORT]/tcp
Por ejemplo, para abrir el puerto TCP 2222:
# firewall-cmd --permanent --add-port=2222/tcp
Para listar los puertos abiertos, use el comando:
# firewall-cmd –-list-ports 2222/tcp
5. Iniciar y detener el servicio de firewalld
Para iniciar/detener/estado del servicio firewalld use los siguientes comandos:
# systemctl start firewalld.service # systemctl stop firewalld.service
Para verificar el estado del servicio firewalld:
# systemctl status firewalld.service