Administre la seguridad de la red con Firewalld usando líneas de comando

METROMantener la seguridad de la red es clave para los administradores del sistema y configurar el firewall a través de la línea de comandos es una habilidad esencial que debe aprender. El artículo destacará cómo administrar el firewall con firewall-cmd en la línea de comandos de Linux.

Un firewall es esencialmente un software que puede configurar para controlar el tráfico de red entrante y saliente. Los cortafuegos pueden evitar que otros usuarios utilicen los servicios de red en un sistema que está ejecutando. La mayoría de los sistemas Linux se envían con un firewall predeterminado. Las versiones anteriores de los sistemas Linux han estado usando iptables como demonio para el filtrado de paquetes. Las versiones más recientes de Fedora, RHEL / CentOS, openSUSE se envían con Firewalld como el demonio de firewall predeterminado. También puede instalar Firewalld en distribuciones Debian y Ubuntu.

Cortafuegos de red
Te recomiendo que uses Firewalld en lugar de iptables. No se limite a creer en mi palabra. Obtenga más información en nuestra guía completa sobre los firewalls de código abierto disponibles para su sistema Linux.

Firewalld es un demonio dinámico para administrar firewalls con soporte para redes o zonas de firewall. Las zonas de cortafuegos definen los niveles de confianza en la seguridad de la red de las interfaces, los servicios o las conexiones de la red. Los administradores de sistemas de seguridad de red han descubierto que Firewalld funciona muy bien con IPv4, IPv6, conjuntos de IP y puentes Ethernet. Para administrar Firewalld, puede usar el comando de terminal firewall-cmd o la herramienta de configuración de GUI firewall-config.

Esta guía utilizará la firewall-cmd comando para administrar la seguridad de la red, y nuestro entorno de prueba será Fedora Workstation 33.

Antes de ponernos todos los técnicos, aprendamos algunos conceptos básicos de la red.

Índice

Conceptos básicos de la red

A una computadora conectada a una red se le asigna una dirección IP que se utiliza para enrutar datos. Las computadoras también tienen puertos en el rango de 0-65535, que actúan como puntos de conexión en la dirección IP. Las aplicaciones pueden reservar puertos específicos. Los servidores web normalmente reservan el puerto 80 para comunicaciones HTTP seguras. Básicamente, los rangos de puertos 0 - 1024 están reservados para propósitos bien conocidos y para el sistema.

Los dos principales protocolos de transferencia de datos de Internet (TCP y UDP) utilizan estos puertos durante la comunicación de red. Una computadora host establece una conexión entre una dirección IP de origen y un puerto (puerto 80 para HTTP no seguro) y la dirección y el puerto de destino.

Para administrar la seguridad de la red, el software de firewall puede permitir o bloquear la transferencia de datos o la comunicación según reglas como puertos o direcciones IP.

Instalación de Firewalld

Fedora, RHEL / CentOS 7/8, openSUSE

Firewalld se instala de forma predeterminada en Fedora, RHEL / CentOS 7/8 y openSUSE. Si no es así, puede instalarlo usando el siguiente comando:

# yum install firewalld -y
OR
#dnf install firewalld -y

Debian / Ubuntu

Los sistemas Ubuntu se envían con el cortafuegos no complicado de forma predeterminada. Para usar firewalld, debe habilitar el repositorio de universos y desactivar el firewall sin complicaciones.

sudo add-apt-repository universe
sudo apt install firewalld

Desactive el cortafuegos sin complicaciones:

sudo systemctl disable ufw

Habilite firewalld en el momento del arranque:

sudo systemctl enable –now firewalld

Verifique que Firewalld se esté ejecutando:

sudo firewall-cmd –state
running

Zonas de cortafuegos

Firewalld simplifica la configuración de su firewall al establecer zonas predeterminadas. Las zonas son un conjunto de reglas que se adaptan a las necesidades diarias de la mayoría de los administradores de Linux. Una zona de firewall puede definir niveles de confianza o denegados para servicios y puertos.

  • Zona de confianza: Todas las conexiones de red se aceptan y se usan solo en entornos confiables como un hogar familiar o un laboratorio de pruebas.
  • Zona pública: Puede definir reglas solo para permitir que puertos específicos abran conexiones mientras se descartan otras conexiones. Se puede utilizar en áreas públicas cuando no confía en otros hosts de la red.
  • Hogar, Interno, Zonas de trabajo: La mayoría de las conexiones entrantes se aceptan en estas tres zonas. Las conexiones entrantes excluyen el tráfico en los puertos que no esperan conexiones ni actividad. Puede aplicarlo en conexiones domésticas donde existe una confianza general de los demás usuarios de la red. Solo permite las conexiones entrantes seleccionadas.
  • Zona de bloqueo: Esta es una configuración de firewall extremadamente paranoica en la que solo son posibles las conexiones iniciadas desde la red o el servidor. Se rechazan todas las conexiones entrantes a la red y se emite un mensaje ICMP de host prohibido.
  • Zona DMZ: La zona desmilitarizada se puede utilizar para permitir el acceso del público a algunos servicios. Solo se aceptan las conexiones seleccionadas. Es una opción esencial para ciertos tipos de servidores en la red de una organización.
  • Zona externa: Cuando está habilitada, esta zona actuará como un enrutador y se puede usar en redes externas con el enmascaramiento habilitado. La dirección IP de su red privada está asignada y oculta detrás de una dirección IP pública. Solo se aceptan las conexiones entrantes seleccionadas, incluido SSH.
  • Zona de descenso: Los paquetes entrantes se descartan sin respuesta. Esta zona solo permite conexiones de red salientes.

Ejemplo de zonas predeterminadas definidas por la estación de trabajo Fedora 33

cat /usr/lib/firewalld/zones/FedoraWorkstation.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Fedora Workstation</short>
<description>Unsolicited incoming network packets are rejected from port 1 to 1024, except for select network services. [firewall ] Incoming packets that are related to outgoing network connections are accepted. Outgoing network connections are allowed.</description>
<service name="dhcpv6-client"/>
<service name="ssh"/>
<service name="samba-client"/>
<port protocol="udp" port="1025-65535"/>
<port protocol="tcp" port="1025-65535"/>
</zone>

Obtenga su zona actual:
Puedes usar el - - obtener-zonas-activas marca para comprobar las zonas actualmente activas en su sistema.

sudo firewall-cmd --get-active-zones
[sudo] password for tuts:
FedoraWorkstation
interfaces: wlp3s0
libvirt
interfaces: virbr0

La zona predeterminada en Fedora Workstation 33 en la zona de FedoraWorkstation

Obtenga la zona predeterminada y todas las zonas definidas:

sudo firewall-cmd --get-default-zone
[sudo] password for tuts:
FedoraWorkstation
[tuts@fosslinux ~]$ sudo firewall-cmd --get-zones
FedoraServer Fedora Workstation block dmz drop external home internal libvirt nm-shared public trusted work

Servicios de lista:

Puede obtener los servicios que el firewall permite que otros sistemas accedan mediante el - -lista-servicios bandera.

[tuts@fosslinux ~]$ sudo firewall-cmd --list-services
dhcpv6-client mdns samba-client ssh

En Fedora Linux 33, el firewall permite el acceso a cuatro servicios (dhcpv6-client mdns samba-client ssh) con números de puerto conocidos.

Enumere la configuración del puerto del cortafuegos:
Puedes usar el - -lista-puertos marca para ver otras configuraciones de puerto en cualquier zona.

tuts@fosslinux ~]$ sudo firewall-cmd --list-ports --zone=FedoraWorkstation
[sudo] password for tuts:
1025-65535/udp 1025-65535/tcp

Hemos especificado la zona a verificar usando la opción - -zone = FedoraWorkstaion.

Gestión de zonas, puertos y servicios

Las configuraciones de firewall se pueden configurar como tiempo de ejecución o permanente. Todas las acciones de firewall-cmd persisten solo hasta que se reinicia la computadora o el firewall. Debe crear una configuración permanente con el indicador –permanent.

Crea una zona

Para crear una zona, debe utilizar el - -nueva-zona bandera.
Ejemplo:
Cree una nueva zona permanente llamada fosscorp:

[tuts@fosslinux ~]$ sudo firewall-cmd --new-zone fosscorp --permanent
[sudo] password for tuts:
success

Vuelva a cargar las reglas del firewall para activar la nueva zona:

[tuts@fosslinux ~]$ sudo firewall-cmd --reload

Agregue el servicio ssh a la zona de fosscorp para que pueda acceder a él de forma remota:

[tuts@fosslinux ~]$ sudo firewall-cmd --zone fosscorp --add-service ssh --permanent
[sudo] password for tuts:
success

Confirme que su nueva zona 'fosscorp' esté activa:

[tuts@fosslinux ~]$ sudo firewall-cmd --get-zones
FedoraServer FedoraWorkstation block dmz drop external fosscorp home internal libvirt nm-shared public trusted work

Su nueva zona fosscorp ahora está activa y rechaza todas las conexiones entrantes excepto el tráfico SSH.

Utilizar el - -cambio-interfaz para hacer que la zona fosscorp sea la zona activa y predeterminada para una interfaz de red (wlp3s0) que desea proteger:

[tuts@fosslinux ~]$ sudo firewall-cmd --change-interface wlp3s0 
> --zone fosscorp --permanent
The interface is under the [ firewall ] control of NetworkManager, setting zone to 'fosscorp'.
success

Si desea establecer fosscorp como la zona principal y predeterminada, ejecute el siguiente comando:

[tuts@fosslinux ~]$ sudo firewall-cmd --set-default fosscorp
success

Ver las zonas actualmente asignadas a cada interfaz usando el - -conseguir-zonas-activas bandera:

[tuts@fosslinux ~]$ sudo firewall-cmd --get-active-zones
fosscorp
interfaces: wlp3s0

Agregar y quitar servicios:

Una forma rápida de permitir el tráfico a través de su firewall es agregar un servicio predefinido.

Enumere los servicios predefinidos disponibles:

tuts@fosslinux ~]$ sudo firewall-cmd --get-services
[sudo] password for tuts:
RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bb bgp bitcoin bitcoin-rpc
bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-mon cfengine cockpit condor-collector ctdb dhcp dhcpv6 dhcpv6-client
[.....]

Desbloquear un servicio predefinido

Puede permitir el tráfico HTTPS (o cualquier otro servicio predefinido) a través de su firewall utilizando el - -add-service bandera.

[tuts@fosslinux ~]$ sudo firewall-cmd --add-service https --permanent
success
[tuts@fosslinux ~]$ sudo firewall-cmd --reload

También puede eliminar el servicio con el - -remove-service bandera:

[tuts@fosslinux ~]$ sudo firewall-cmd --remove-service https --permanent
success
[tuts@fosslinux ~]$ sudo firewall-cmd --reload

Agregar y quitar puertos

También puede agregar un número de puerto y un prototipo directamente con el indicador –add-port. Agregar un número de puerto directamente puede resultar útil cuando no existe un servicio predefinido.

Ejemplo:
Puede agregar el no estándar puerto 1717 para SSH a su zona personalizada usando el siguiente comando:

[tuts@fosslinux ~]$ sudo firewall-cmd --add-port 1717/tcp --permanent
[sudo] password for tuts:
success
[tuts@fosslinux ~]$ sudo firewall-cmd –reload

Elimine el puerto usando la opción –remove-port flag:

[tuts@fosslinux ~]$ sudo firewall-cmd --remove-port 1717/tcp --permanent
success
[tuts@fosslinux ~]$ sudo firewall-cmd –reload

También puede especificar una zona para agregar o eliminar un puerto agregando la marca –zone en el comando:
Agregue el puerto 1718 para la conexión TCP a la zona de FedoraWorstation:

[tuts@fosslinux ~]$ sudo firewall-cmd --zone=FedoraWorkstation --permanent --add-port=1718/tcp
success
[tuts@fosslinux ~]$ sudo firewall-cmd --reload
success

Confirme si los cambios han surtido efecto:

[tuts@fosslinux ~]$ sudo firewall-cmd --list-all
FedoraWorkstation (active)
target: default
icmp-block-inversion: no
interfaces: wlp3s0
sources:
services: dhcpv6-client mdns samba-client ssh
ports: 1025-65535/udp 1025-65535/tcp 1718/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

Nota: Debajo de los puertos, hemos agregado número de puerto 1718 para permitir el tráfico TCP.

Puedes eliminar puerto 1718 / tcp ejecutando el siguiente comando:

[tuts@fosslinux ~]$ sudo firewall-cmd --zone=FedoraWorkstation --permanent --remove-port=1718/tcp
success
[tuts@fosslinux ~]$ sudo firewall-cmd --reload
success

Nota: Si desea que sus cambios sean permanentes, debe agregar el - -permanente bandera a tus órdenes.

Resumen

Firewalld es una gran utilidad para administrar la seguridad de su red. La mejor manera de aumentar sus habilidades de administrador de sistemas es adquiriendo experiencia práctica. Recomiendo encarecidamente instalar Fedora en su máquina virtual favorita (VM) o en Boxes para experimentar con todas las funciones de firewall-cmd disponibles. Puede obtener más información sobre las funciones de firewall-cmd en la página de inicio oficial de Firewalld.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir