GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo configurar un firewall con Firewalld en CentOS 8

Un firewall es una forma de proteger su sistema del tráfico no deseado de redes externas. Las herramientas de firewall comerciales y gratuitas son abundantes; algunos de ellos incluyen Iptables, UFW, Juniper, pfSense, SonicWall y más.

Entre ellos, FirewallD es una herramienta de software de firewall gratuita para el sistema operativo CentOS/RHEL/Fedora. Es un controlador frontend para iptables y proporciona una interfaz de línea de comandos para implementar reglas de firewall. En comparación con Iptables, FirewallD usa zonas y servicios en lugar de cadenas y reglas, y administra los conjuntos de reglas de forma dinámica. FirewallD proporciona la herramienta de línea de comandos firewall-cmd para administrar el tiempo de ejecución y la configuración permanente.

Características

  • Admite protocolo IPv4 e IPv6
  • Lista de zonas predefinidas
  • CLI y configuración gráfica
  • API D-Bus completa
  • Puente Ethernet
  • Registro simple de paquetes denegados
  • Lista blanca de aplicaciones
  • Integración de marionetas

En este tutorial, aprenderemos cómo configurar un firewall con FirewallD en CentOS 8.

Requisitos

  • Un nuevo CentOS 8 VPS en la plataforma en la nube Atlantic.Net
  • Una contraseña de root configurada en su servidor

Paso 1:Cree un servidor en la nube de Atlantic.Net

Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo CentOS 8 como sistema operativo con al menos 1 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.

Una vez que haya iniciado sesión en su servidor CentOS 8, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.

dnf update -y

Paso 2:Instale el cortafuegos

dnf install firewalld -y

Una vez instalado, inicie el servicio FirewallD y habilítelo para que se inicie al reiniciar el sistema con el siguiente comando:

systemctl start firewalld
systemctl enable firewalld

También puede verificar el estado de FirewallD usando el siguiente comando:

firewall-cmd --state

Salida:

running

Paso 3:uso básico de FirewallD

FirewallD administra un conjunto de reglas usando zonas. Cada zona tiene su propia configuración para aceptar o rechazar paquetes según el nivel de confianza que tenga en las redes a las que está conectada su computadora.

Puede listar todas las zonas disponibles usando el siguiente comando:

firewall-cmd --get-zones

Debería ver la siguiente lista:

block dmz drop external home internal public trusted work

Para obtener una lista de todas las zonas activas, ejecute el siguiente comando:

firewall-cmd --get-active-zones

Debería ver la siguiente lista:

public
interfaces: eth0 eth1

Puede enumerar la zona predeterminada configurada para conexiones de red usando el siguiente comando:

firewall-cmd --get-default-zone

Salida:

public

Para cambiar la zona predeterminada de pública a hogar usando el siguiente comando:

firewall-cmd --set-default-zone=home --permanent

Para mostrar más información sobre cualquier zona usando el siguiente comando:

firewall-cmd --info-zone public

Deberías obtener el siguiente resultado:

public (active)
target: default
icmp-block-inversion: no
interfaces: eth0 eth1
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

También puede enumerar todos los servicios disponibles ejecutando el siguiente comando:

firewall-cmd --get-services

Deberías obtener el siguiente resultado:

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 distcc dns dns-over-tls docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-server finger freeipa-4 freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master git grafana gre high-availability http https imap imaps ipp ipp-client ipsec irc ircs iscsi-target isns jenkins kadmin kdeconnect kerberos kibana klogin kpasswd kprop kshell kube-apiserver ldap ldaps libvirt libvirt-tls lightning-network llmnr managesieve matrix mdns memcache minidlna mongodb mosh mountd mqtt mqtt-tls ms-wbt mssql murmur mysql nfs nfs3 nmea-0183 nrpe ntp nut openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole plex pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy prometheus proxy-dhcp ptp pulseaudio puppetmaster quassel radius rdp redis redis-sentinel rpc-bind rsh rsyncd rtsp salt-master samba samba-client samba-dc sane sip sips slp smtp smtp-submission smtps snmp snmptrap spideroak-lansync spotify-sync squid ssdp ssh steam-streaming svdrp svn syncthing syncthing-gui synergy syslog syslog-tls telnet tentacle tftp tftp-client tile38 tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-http wbem-https wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server

Paso 4:permitir y denegar puertos con Firewalld

Firewalld proporciona la herramienta de línea de comandos firewall-cmd para agregar y eliminar puertos en su sistema.

Por ejemplo, para permitir el puerto TCP 80 y 22 en la zona pública, ejecute el siguiente comando:

firewall-cmd --zone=public --permanent --add-port=80/tcp --add-port=22/tcp

A continuación, vuelva a cargar el demonio FirewallD para guardar la configuración:

firewall-cmd --reload

Ahora, enumere el puerto agregado con el siguiente comando:

firewall-cmd --info-zone public

Debería ver el siguiente resultado:

public (active)
target: default
icmp-block-inversion: no
interfaces: eth0 eth1
sources:
services: cockpit dhcpv6-client ssh
ports: 80/tcp 22/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

También puede denegar o quitar el puerto de la zona fácilmente usando la opción –remove-port.

Por ejemplo, para denegar o eliminar el puerto 80 de la zona pública, ejecute el siguiente comando:

firewall-cmd --zone=public --permanent --remove-port=80/tcp

Paso 5:Permitir y denegar servicios con FirewallD

También puede permitir y denegar por nombre de servicio en lugar de usar un puerto con FirewallD.

Por ejemplo, permita el servicio FTP en la zona pública ejecutando el siguiente comando:

firewall-cmd --zone=public --permanent --add-service=ftp
firewall-cmd --reload

Puede denegar o eliminar el servicio FTP de la zona pública mediante el siguiente comando:

:

firewall-cmd --zone=public --permanent --remove-service=ftp
firewall-cmd --reload

Paso 6:Configure el enmascaramiento de IP con FirewallD

El enmascaramiento de IP es un proceso o método que permite que sus computadoras en una red con direcciones IP privadas se comuniquen con Internet utilizando la dirección de su servidor. Es muy útil cuando desea que otra computadora se comunique con Internet sin comprar IP adicionales de su ISP.

Antes de configurar el enmascaramiento de IP, verifique si el enmascaramiento está activo o no con el siguiente comando:

firewall-cmd --zone=public --query-masquerade

Debería ver que el enmascaramiento de IP está deshabilitado en la zona pública como se muestra a continuación:

no

Ahora, configure el enmascaramiento de IP usando el siguiente comando:

firewall-cmd --zone=public --add-masquerade
firewall-cmd --reload

También puede deshabilitar el enmascaramiento de IP usando la opción –remove-masquerade:

firewall-cmd --zone=public --remove-masquerade
firewall-cmd --reload

Conclusión

En la guía anterior, aprendió a usar FirewallD para bloquear el tráfico no deseado en su sistema. Ahora debería poder limitar todas las conexiones innecesarias y proteger su servidor de los atacantes. ¡Prueba FirewallD en un VPS de Atlantic.Net!


Linux
  1. Configurar Firewall con FirewallD en CentOS 7

  2. Cómo deshabilitar el firewall en CentOS 8 Linux

  3. Cómo configurar el cortafuegos en CentOS 7

  4. Cómo configurar un firewall usando FirewallD en CentOS 8

  5. Cómo configurar WireGuard VPN en CentOS 8

Cómo configurar un firewall con FirewallD en CentOS 7

Cómo configurar un cortafuegos con UFW en Debian 10

Cómo configurar un cortafuegos con UFW en Debian 9

Cómo configurar un cortafuegos con GUFW en Linux

Cómo instalar Kubernetes con Minikube en CentOS 8

Cómo instalar Nginx con módulo RTMP en CentOS 8