Sie sind auf Seite 1von 19

Anonymous, Joe

Instalacin y configuracin de Firewalld.

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

Equipamiento lgico necesario.


Firewalld slo viene instalado de modo predeterminado si realiz la instalacin utilizando el DVD. Si realiz la instalacin
mnima, por favor ejecute lo siguiente:
yum -y
install
firewalld
Si instal el escritorio grfico, ejecute lo siguiente si quiere utilizar la herramienta grfica de configuracin:
yum -y install
firewall-config

Alcance Empresarial

3 / 19

Anonymous, Joe

Habilitar e iniciar el servicio.


Una vez instalado, habilite el servicio ejecutando lo siguiente:
systemctl
enable
firewalld
Inicie el servicio por primera vez ejecutando lo siguiente:
systemctl
start
firewalld
Ejecute lo siguiente si requiere reiniciar el servicio
systemctl
restart
firewalld
O bien ejecute lo siguiente si slo requiere volver a leer la configuracin:
firewall-cmd
--reload

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

Consultar valores predeterminados.


Ejecute lo siguiente para ver la lista de zonas de firewalld:
firewall-cmd
--get-zones
La salida seguramente ser:
block dmz
drop
external
home
internal
public
trusted
work
Ejecute lo siguiente para verificar cul es la zona utilizada por firewalld:
firewall-cmd -get-default-zone
La salida seguramente ser:
public
Ejecute lo siguiente para ver la lista de servicios habilitados en la zona actual:
firewall-cmd -list-services
La salida seguramente ser:
dhcpv6-client
ssh

Alcance Empresarial

6 / 19

Anonymous, Joe

Cambios temporales y cambios permanentes.


Los cambios realizados con firewall-cmd sin la opcin --permanent aplicarn de inmediato sin guardarse en la configuracin.
sto es lo que lo convierte en un cortafuegos dinmico. Ejemplo:
firewall-cmd -zone=public --addport=10000/tcp
Los cambios realizados con firewall-cmd con la opcin --permanent se guardan de inmediato en la configuracin pero slo
aplicarn hasta ejecutar firewall-cmd con la opcin --reload. Ejemplo:
firewall-cmd -permanent -zone=public --addport=10000/tcp

Alcance Empresarial

7 / 19

Anonymous, Joe

Cambiar la zona predeterminada.


Ejecute lo siguiente para cambiar la zona predeterminada a home:
firewall-cmd --setdefault-zone=home
La salida seguramente ser:
success
El cambio aplica automticamente y se abren los puertos predeterminados de la zona.
Ejecute lo siguiente para ver la lista de servicios habilitados en la zona actual:
firewall-cmd -list-services
La salida seguramente ser:
dhcpv6-client
ipp-client
mdns sambaclient ssh
Vuelva a definir la zona public como la predeterminada:
firewall-cmd -set-default-zone=
public

Alcance Empresarial

8 / 19

Anonymous, Joe

Asociar interfaces de red zonas especficas.


Ejecute lo siguiente para asociar el primer dispositivo de red del sistema enp0s3 si es una mquina virtual a la zona
public:
firewall-cmd -zone=public --addinterface=enp0s3
Ejecute lo siguiente para hacer permanente el cambio:
firewall-cmd -permanent -zone=public --addinterface=enp0s3
Ejecute lo siguiente para asociar el segundo dispositivo de red del sistema enp0s8 si es una mquina virtual a la zona
internal:
firewall-cmd -zone=internal --addinterface=enp0s8
Ejecute lo siguiente para hacer permanente el cambio:
firewall-cmd -permanent -zone=internal --addinterface=enp0s8
Ejecute lo siguiente para asociar el tercer dispositivo de red del sistema enp0s9 si es una mquina virtual a la zona dmz:
firewall-cmd -zone=dmz --addinterface=enp0s9
Ejecute lo siguiente para hacer permanente el cambio:
firewall-cmd -permanent --zone=dmz
--add-interface=enp0s9
Ejecute lo siguiente para determinar qu interfaces estn asociadas a cada zona:
firewall-cmd -get-active-zone
La salida seguramente ser la siguiente:
dmz
interfaces:
enp0s9
internal
interfaces:
enp0s8
public
interfaces:
enp0s3
Ejecute lo siguiente para listar todo lo que est configurado en la zona public:
firewall-cmd
--zone=public
--list-all

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

Apertura de puertos y servicios.


Ejecute lo siguiente para ver la lista de servicios disponibles en firewalld:
firewall-cmd
--get-services
La salida debe ser similar a la siguiente.
RH-Satellite-6
amanda-client
bacula baculaclient dhcp dhcpv6
dhcpv6-client dns
freeipa-ldap
freeipa-ldaps
freeipa-replication
ftp highavailability http
https imaps ipp
ipp-client ipsec
iscsi-target
kerberos kpasswd
ldap ldaps libvirt
libvirt-tls mdns
mountd ms-wbt mysql
nfs ntp openvpn
pmcd pmproxy
pmwebapi pmwebapis
pop3s postgresql
proxy-dhcp radius
rpc-bind rsyncd
samba samba-client
smtp ssh telnet
tftp tftp-client
transmission-client
vdsm vnc-server
wbem-https
Para abrir un servicio del muro cortafuegos hacia una zona utilice la siguiente sintaxis:
firewall-cmd [-permanent] --zone=[zona}
--add-service=[servicio]

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

Bloquear el trafico ICMP.


El protocolo ICMP (Internet Control Message Protocol) es utilizado para solicitar la informacin de destination-unreachable,
echo-reply, echo-request, parameter-problem, redirect, router-advertisement, router-solicitation, source-quench y timeexceeded. Entre otras cosas, este protocolo es responsable de las respuestas de echo hechas con ping. De modo
predeterminado Firewalld permite el trfico ICMP. Hay escenarios donde puede ser conveniente bloquear el trfico ICMP
para impedir ataques DDoS a travs de este protocolo.
Ejecute lo siguiente para ver la lista de tipos ICMP que puede gestionar Firewalld:
firewall-cmd -get-icmptypes
La salida debe ser la siguiente:
destination-unreachable
echo-reply echo-request
parameter-problem
redirect routeradvertisement routersolicitation sourcequench time-exceeded
Ejecute lo siguiente para consultar si esa bloqueada la respuesta de echo en la zona public:
firewall-cmd --zone=public -query-icmp-block=echo-reply
La respuesta seguramente ser que no:
no
Ejecute lo siguiente para activar el bloque de la respuesta de echo en la zona public.
firewall-cmd --zone=public
--add-icmp-block=echo-reply
Vuelva a consultar si esa bloqueada la respuesta de echo en la zona public:
firewall-cmd --zone=public -query-icmp-block=echo-reply
La respuesta seguramente ser que S:
yes
Para hacer permanente el cambio ejecute lo siguiente:
firewall-cmd --permanent -zone=public --add-icmpblock=echo-reply
A partir de este momento quedar bloqueada la respuesta de los pings hechas hacia el muro cortafuegos desde la zona
pblica.

Alcance Empresarial

15 / 19

Anonymous, Joe

Cambiar la zona asociada una interfaz.


El siguiente ejemplo considera que se cambiar la asociacin de la interfaz enp0s3 de la zona public hacia la zona drop. sta
ltima es mucho ms segura. La zona public tiene como poltica predeterminada rechazar paquetes REJECT, es decir
rechaza conexiones pero confirma que el anfitrin existe. La zona drop tiene como poltica externa tiene como poltica
predeterminada descartar paquetes DROP, es decir hace parecer que ni siquiera existe el anfitrin.
De modo predeterminado la zona public tiene habilitados los servicios ssh y dhcpv6-client. La zona drop carece de servicios
habilitados. Por tanto lo primero que habr que hacer es determinar si se requerir acceso por SSH y soporte para DHCP.
El procedimiento realizar los cambios permanentes sin aplicarlos de inmediato. Los cambios ser aplicados hasta el final.
Primero defina de modo permanente los servicios y puertos que sern abiertos en la zona drop:
firewall-cmd --permanent
-zone=drop --add-icmpblock=echo-reply
firewall-cmd --permanent
-zone=drop --addport=10000/tcp
firewall-cmd --permanent
-zone=drop --addport=30300-30310/tcp
firewall-cmd --permanent
-zone=drop --addservice=dhcpv6-client
firewall-cmd --permanent
-zone=drop --addservice=http
firewall-cmd --permanent
-zone=drop --addservice=ssh

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

Cambiar la poltica predeterminada de una zona.


La zona public proporciona una seguridad muy buena. Sin embargo, si se desea un muro cortafuegos ms estricto,
probablemente prefiera cambiar la poltica predeterminada de REJECT a DROP. Este procedimiento es una alternativa al
cambio de zona de una interfaz, descrito anteriormente.
Consulte cual es la nueva poltica predeterminada:
firewall-cmd
--permanent
--zone=public
--get-target
La salida debe ser la siguiente.
default
Ejecute lo siguiente para cambiar la poltica a drop:
firewall-cmd -permanent -zone=public -set-target=DROP
Para aplicar el cambio es necesario volver a cargar la configuracin:
firewall-cmd
--reload
Consulte cual es la nueva poltica predeterminada:
firewall-cmd
--permanent
--zone=public
--get-target
La salida debe ser la siguiente.
DROP

Alcance Empresarial

18 / 19

Anonymous, Joe

Cerrar todas las conexiones.


Puede haber escenarios en los cuales surja una emergencia que requiera cerrar todas las conexiones. Ejecute lo siguiente
para activar el modo pnico:
firewall-cmd
--panic-on
Puede ejecutar lo siguiente para desactivar el modo pnico y restablecer todas las conexiones:
firewall-cmd
--panic-off
Ejecute lo siguiente para verificar si est activo o desactivado el modo pnico:
firewall-cmd
--query-panic

Alcance Empresarial

19 / 19

Das könnte Ihnen auch gefallen