Aprenda Linux

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

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

Mantener 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 para 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 usaban 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.


Te recomiendo que uses Firewalld en lugar de iptables. No solo confíe 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 firewall 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.

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 suelen reservar el puerto 80 para comunicaciones HTTP seguras. Básicamente, los rangos de puertos 0 - 1024 están reservados para propósitos bien conocidos y 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 está instalado por defecto en Fedora, RHEL / CentOS 7/8 y openSUSE. Si no es así, puede instalarlo usando el siguiente comando:

# yum instalar firewalld -y
O
#dnf instalar 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 deshabilitar ufw

Habilite firewalld en el momento del arranque:

sudo systemctl enable -now firewalld

Verifique que Firewalld se esté ejecutando:

sudo firewall-cmd -state
corriendo

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.

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

cat / usr / lib / firewalld / zones / FedoraWorkstation.xml


Estación de trabajo Fedora
Los paquetes de red entrantes no solicitados se rechazan del puerto 1 al 1024, excepto para determinados servicios de red. [firewall] Se aceptan los paquetes entrantes relacionados con las conexiones de red salientes. Se permiten conexiones de red salientes.





Obtén tu zona actual:
Puedes usar el - - get-active-zones bandera para verificar las zonas actualmente activas en su sistema.

sudo firewall-cmd --get-active-zones
[sudo] contraseña para 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] contraseña para tuts:
FedoraWorkstation
[tuts @ fosslinux ~] $ sudo firewall-cmd --get-zones
FedoraServer Fedora Workstation block dmz drop external home internal libvirt nm-shared public confiable trabajo

Servicios de lista:

Puede obtener los servicios que el firewall permite que otros sistemas accedan utilizando 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 - -puertos de lista marca para ver otras configuraciones de puerto en cualquier zona.

tuts @ fosslinux ~] $ sudo firewall-cmd --list-ports --zone = FedoraWorkstation
[sudo] contraseña para 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. Debes crear una configuración permanente con la marca -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] contraseña para tuts:
éxito

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] contraseña para tuts:
éxito

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

[tuts @ fosslinux ~] $ sudo firewall-cmd --get-zones
FedoraServer FedoraWorkstation block dmz drop external Fosscorp hogar interno libvirt nm-shared público trabajo confiable

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

Utilizar el - -interfaz de cambio 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 --permanente
La interfaz está bajo el control del [firewall] de NetworkManager, configurando la zona en 'fosscorp'.
éxito

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

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

Ver las zonas actualmente asignadas a cada interfaz usando el - -get-active-zones 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] contraseña para tuts:
RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd auditoría 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 - -agregar-servicio bandera.

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

También puede eliminar el servicio con el - -quitar-servicio bandera:

[tuts @ fosslinux ~] $ sudo firewall-cmd --remove-service https --permanent
éxito
[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] contraseña para tuts:
éxito
[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
éxito
[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
éxito
[tuts @ fosslinux ~] $ sudo firewall-cmd --reload
éxito

Confirme si los cambios han surtido efecto:

[tuts @ fosslinux ~] $ sudo firewall-cmd --list-all
FedoraWorkstation (activo)
objetivo: predeterminado
icmp-block-inversión: no
interfaces: wlp3s0
fuentes:
servicios: dhcpv6-client mdns samba-client ssh
puertos: 1025-65535 / udp 1025-65535 / tcp 1718 / tcp
protocolos:
mascarada: no
puertos de reenvío:
puertos de origen:
bloques-icmp:
ricas reglas:

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
éxito
[tuts @ fosslinux ~] $ sudo firewall-cmd --reload
éxito

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

Cómo mostrar la superposición de OSD en aplicaciones y juegos de Linux en pantalla completa
Jugar juegos en pantalla completa o usar aplicaciones en modo de pantalla completa sin distracciones puede aislarlo de la información relevante del si...
Las 5 mejores cartas de captura de juegos
Todos hemos visto y amado la transmisión de juegos en YouTube. PewDiePie, Jakesepticye y Markiplier son solo algunos de los mejores jugadores que han ...
Cómo desarrollar un juego en Linux
Hace una década, no muchos usuarios de Linux predecían que su sistema operativo favorito algún día sería una plataforma de juegos popular para videoju...