Beruflich Dokumente
Kultur Dokumente
Instalacin y configuracin
de Firewalld
Todo servidor requiere un
muro cortafuegos.
Alcance Empresarial
1 / 19
Anonymous, Joe
Introduccin
La instalacin mnima de CentOS 7 y Red Hat Enterprise Linux 7 carece de muro cortafuegos. Es importante configurar
uno.
Firewalld es un servicio dinmico de muro cortafuegos que provee una administracin dinmica con soporte para zonas y
asignacin de niveles de confianza a stas ltimas. Tiene soporte para IPv4 e IPv6 as como tambin dispositivos puente tipo
Ethernet.
Es el muro cortafuegos predeterminado de CentOS 7 y Red Hat Enterprise Linux 7. Resulta una solucin prctica y rpida
para poner en marcha un muro cortafuegos y cumple con lo requerido para la mayora de los fines. Si lo que se busca es una
solucin ms robusta y extensible, probablemente prefiera utilizar Shorewall. Las nicas ventajas que tiene Firewalld sobre
Shorewall son las herramientas de configuracin y la comunicacin con otras aplicaciones como NetworkManager a
travs de D-BUS.
Utiliza iptables y ebtables para comunicarse con Netfilter y dispone de una herramienta de configuracin de fcil uso para la
terminal denominada firewall-cmd.
URL: https://github.com/t-woerner/firewalld/
Una vez instalado, puede ejecutar lo siguiente para consultar la ayuda rpida de firewall-cmd:
firewall-cmd
--help
Una vez instalado, puede ejecutar lo siguiente para consultar el manual detallado de firewall-cmd:
man 1
firewall-cmd
Pulse q para salir de la pgina de manual.
Si se instal el escritorio grfico, existe tambin una herramienta grfica para la configuracin de Firewalld denominada
firewall-config.
Alcance Empresarial
2 / 19
Anonymous, Joe
Alcance Empresarial
3 / 19
Anonymous, Joe
Alcance Empresarial
4 / 19
Anonymous, Joe
Zonas de firewalld.
De modo predeterminado Firewalld tiene diferentes tipos de zonas. Cada una tiene un distinto nivel de seguridad.
drop
Descripcin: Para redes pblicas. Se descartan los paquetes de red entrantes no solicitados. Los paquetes entrantes
que estn relacionados con las conexiones de red salientes son aceptados. Se permite el trfico de salida. sta sera
la zona ms segura. Ideal para paranoicos.
Servicios habilitados: ninguno.
Poltica predeterminada: DROP.
block
Descripcin: Para redes pblicas. Se rechazan los paquetes de red entrantes no solicitados. Los paquetes entrantes
que estn relacionados con las conexiones de red salientes son aceptados. Se permite el trfico de salida.
Servicios habilitados: ninguno.
Poltica predeterminada: REJECT.
public
Descripcin: Es la zona predeterminada. Para redes pblicas. Slo se aceptan algunas conexiones entrantes selectas
y el resto son rechazadas. Es ideal para reas pblicas.
Servicios habilitados: ssh y dhcpv6-client.
Poltica predeterminada: REJECT.
external
Descripcin: Para redes externas.Slo se aceptan algunas conexiones entrantes selectas y el resto son rechazadas.
Es ideal para redes externas con enmascaramiento habilitado especialmente para ruteadores.
Servicios habilitados: ssh.
Poltica predeterminada: REJECT.
dmz
Descripcin: Para en sistemas zona desmilitarizada con acceso limitado a la red interna. Slo se aceptan algunas
conexiones entrantes selectas y el resto son rechazadas.
Servicios habilitados: ssh.
Poltica predeterminada: REJECT.
work
Descripcin: Para trabajo u oficina. Se confa en los sistemas que coexisten en la misma red pero slo se aceptan
algunas conexiones entrantes selectas y el resto son rechazadas.
Servicios habilitados: ssh, ipp-client y dhcpv6-client.
Poltica predeterminada: REJECT.
home
Descripcin: Para el hogar. Se confa en los sistemas que coexisten en la misma red pero slo se aceptan algunas
conexiones entrantes selectas y el resto son rechazadas. Bsicamente igual que work.
Servicios habilitados: ssh, ipp-client, mdns, samba-client y dhcpv6-client.
Poltica predeterminada: REJECT.
internal
Descripcin: Para redes internas. Se confa en los sistemas que coexisten en la misma red pero slo se aceptan
algunas conexiones entrantes selectas y el resto son rechazadas.
Servicios habilitados: ssh, ipp-client, mdns, samba-client y dhcpv6-client.
Poltica predeterminada: REJECT.
trusted
Descripcin: Todas las conexiones son aceptadas.
Servicios habilitados: todos.
Poltica predeterminada: ACCEPT.
Alcance Empresarial
5 / 19
Anonymous, Joe
Alcance Empresarial
6 / 19
Anonymous, Joe
Alcance Empresarial
7 / 19
Anonymous, Joe
Alcance Empresarial
8 / 19
Anonymous, Joe
Alcance Empresarial
9 / 19
Anonymous, Joe
La salida debe ser similar a la siguiente:
public (active)
interfaces:
enp0s3
sources:
services:
dhcpv6-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
Ejecute lo siguiente para listar todo lo que est configurado en la zona internal:
firewall-cmd -zone=internal
--list-all
La salida debe ser similar a la siguiente:
internal (active)
interfaces:
enp0s8
sources:
services:
dhcpv6-client
ipp-client mdns
samba-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
Ejecute lo siguiente para listar todo lo que est configurado en la zona dmz:
firewall-cmd
--zone=dmz -list-all
La salida debe ser similar a la siguiente:
dmz (active)
interfaces:
enp0s9
sources:
services: ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
Alcance Empresarial
10 / 19
Anonymous, Joe
Configuracin de NAT.
Ejecute lo siguiente para habilitar el enmascaramiento de IP (NAT) y permitir a los anfitriones detrs de la zona internal salir
hacia Internet.
firewall-cmd -zone=internal -add-masquerade
--permanent
Para aplicar el cambio es necesario volver a cargar la configuracin:
firewall-cmd
--reload
Lo anterior automticamente activa en el ncleo de Linux la funcin de reenvo de paquetes para IPv4. Ejecute lo siguiente
para validar sto:
sysctl
net.ipv4.ip_forward
La salida debe ser igual a la siguiente.
net.ipv4.ip_forward
= 1
Ejecute lo siguiente para listar todo lo que est configurado en la zona internal:
firewall-cmd -zone=internal
--list-all
La salida debe ser similar a la siguiente:
internal (active)
interfaces:
enp0s8
sources:
services:
dhcpv6-client
ipp-client mdns
samba-client ssh
ports:
masquerade: yes
forward-ports:
icmp-blocks:
rich rules:
Alcance Empresarial
11 / 19
Anonymous, Joe
Configuracin de DNAT.
Para hacer DNAT de un puerto en el exterior hacia el puerto de un anfitrin en la red local primero hay que activar el
enmascaramiento de la zona pblica. Ejecute lo siguiente:
firewall-cmd -permanent -zone=public -add-masquerade
Para aplicar el cambio es necesario volver a cargar la configuracin:
firewall-cmd
--reload
Hecho lo anterior, puede utilizar la siguiente sintaxis para redireccionar puertos desde el exterior hacia la red de rea local:
firewall-cmd --zone=[zona] --add-forwardport=port=[puerto]:proto=[protocolo]:toport=[puerto]:toaddr=[direccin IP]
En el siguiente ejemplo se hace DNAT del puerto 22023 del cortafuegos hacia el puerto 22 de un anfitrin en la red local con
direccin IP 172.16.1.2:
firewall-cmd --permanent --zone=public --add-forwardport=port=22023:proto=tcp:toport=22:toaddr=172.16.1.2
Para aplicar el cambio es necesario volver a cargar la configuracin:
firewall-cmd
--reload
En el siguiente ejemplo se hace DNAT del puerto 3389 del cortafuegos hacia el puerto 3389 de un anfitrin en la red local
con direccin IP 172.16.1.3:
firewall-cmd --permanent --zone=public --add-forwardport=port=3389:proto=tcp:toport=3389:toaddr=172.16.1.2
Para aplicar el cambio es necesario volver a cargar la configuracin:
firewall-cmd
--reload
Ejecute lo siguiente para listar todo lo que est configurado en la zona public:
firewall-cmd
--zone=public
--list-all
La salida debe ser similar a la siguiente:
public (active)
interfaces: enp0s3
sources:
services: dhcpv6-client ssh
ports:
masquerade: yes
forward-ports:
port=3389:proto=tcp:toport=3389:toaddr=172.16.1.3
port=22023:proto=tcp:toport=22:toaddr=172.16.1.2
icmp-blocks:
rich rules:
Alcance Empresarial
12 / 19
Anonymous, Joe
En el siguiente ejemplo se abre el servicio http (puerto 80/tcp) del servidor hacia el trfico proveniente de la zona public:
firewall-cmd -zone=public -add-service=http
Ejecute lo siguiente para hacer permanente el cambio:
firewall-cmd -permanent -zone=public -add-service=http
En el siguiente ejemplo se abre el servicio http (puerto 80/tcp) del servidor hacia el trfico proveniente de la zona internal:
firewall-cmd -zone=internal -add-service=http
Alcance Empresarial
13 / 19
Anonymous, Joe
Ejecute lo siguiente para hacer permanente el cambio:
firewall-cmd -permanent -zone=internal -add-service=http
Si algn servicio est ausente de la lista de servicios de firewalld, puede abrir puertos especficos utilizando la siguiente
sintaxis:
firewall-cmd --zone=[zona] -add-port=[puerto]/[protocolo]
En el siguiente ejemplo se abre el puerto 10000/tcp del servidor para el trfico proveniente de la zona public:
firewall-cmd -zone=public --addport=10000/tcp
Ejecute lo siguiente para hacer permanente el cambio:
firewall-cmd -permanent -zone=public --addport=10000/tcp
En el siguiente ejemplo se abre el rango de puertos entre el 30300/tcp y el 30310/tcp del servidor para el trfico proveniente
de la zona public:
firewall-cmd --zone=public
--add-port=30300-30310/tcp
Ejecute lo siguiente para hacer permanente el cambio:
firewall-cmd --permanent
--zone=public --addport=30300-30310/tcp
Ejecute lo siguiente para listar todo lo que est configurado en la zona public:
firewall-cmd
--zone=public
--list-all
La salida debe ser similar a la siguiente:
public (active)
interfaces: enp0s3
sources:
services: dhcpv6-client http ssh
ports: 30300-30310/tcp 10000/tcp
masquerade: yes
forward-ports:
port=3389:proto=tcp:toport=3389:toaddr=172.16.1.3
port=22023:proto=tcp:toport=22:toaddr=172.16.1.2
icmp-blocks:
rich rules:
Alcance Empresarial
14 / 19
Anonymous, Joe
Alcance Empresarial
15 / 19
Anonymous, Joe
Va a requerir enmascaramiento de IP? Va a redirigir puertos desde redes pblicas hacia redes privadas? Ejecute lo
siguiente:
firewall-cmd -permanent -zone=drop -add-masquerade
Que puertos va a redirigir y hacia qu anfitriones en la red privada? Ejecute lo siguiente:
firewall-cmd --permanent --zone=drop --add-forwardport=port=22023:proto=tcp:toport=22:toaddr=172.16.1.2
firewall-cmd --permanent --zone=drop --add-forwardport=port=3389:proto=tcp:toport=3389:toaddr=172.16.1.2
Elimine la tarjeta de la zona actual de modo permanente:
firewall-cmd --permanent
--zone=external -remove-interface=enp0s3
Elija una zona adecuada a sus necesidades para la interfaz de red.
Ejecute lo siguiente para asociar la interfaz de red a la zona seleccionada de modo permanente:
firewall-cmd -permanent --zone=drop
--add-interface=enp0s3
Hasta aqu slo se han realizado cambios en la configuracin sin aplicarlos. Para aplicar los cambios es necesario volver a
Alcance Empresarial
16 / 19
Anonymous, Joe
cargar la configuracin ejecutando lo siguiente:
firewall-cmd
--reload
Valide el cambio de interfaz ejecutando lo siguiente:
firewall-cmd -get-active-zone
La salida seguramente ser la siguiente:
drop
interfaces:
enp0s9
internal
interfaces:
enp0s8
public
interfaces:
enp0s3
Valide los puertos, servicios y enmascaramiento habilitados en la zona drop ejecutando lo siguiente.
firewall-cmd
--zone=drop
--list-all
La salida debe ser similar a la siguiente:
drop (active)
interfaces: enp0s3
sources:
services: dhcpv6-client http ssh
ports: 30300-30310/tcp 10000/tcp
masquerade: yes
forward-ports: port=3389:proto=tcp:toport=3389:toaddr=172.16.1.3
port=22023:proto=tcp:toport=22:toaddr=172.16.1.2
icmp-blocks:
rich rules:
Alcance Empresarial
17 / 19
Anonymous, Joe
Alcance Empresarial
18 / 19
Anonymous, Joe
Alcance Empresarial
19 / 19