Com configurar FirewallD a RHEL/CentOS 7 i Fedora 21


Net-filter, ja que tots sabem, és un tallafoc a Linux. Firewalld és un dimoni dinàmic per gestionar tallafocs amb suport per a zones de xarxa. A la versió anterior, RHEL i CentOS 6, hem estat utilitzant iptables com a dimoni per al marc de filtratge de paquets. A RHEL/CentOS 7/8, la interfície Fedora i openSUSE – rong>iptables està sent substituïda per firewalld.

Es recomana començar a utilitzar Firewalld en comptes d'iptables, ja que això podria interrompre's en el futur. Tanmateix, els iptables encara són compatibles i es poden instal·lar amb l'ordre yum. No podem mantenir Firewalld i iptables tots dos al mateix sistema, cosa que pot provocar conflictes.

A iptables, solia configurar-nos com a CADENES D'ENTRADA, SORTIDA I ENTRENENT, però aquí a Firewalld, el concepte utilitza Zones. Per defecte, hi ha diferents zones disponibles a firewalld, que es tractaran en aquest article.

La zona bàsica que són com la zona pública i la zona privada. Perquè les coses funcionin amb aquestes zones, hem d'afegir la interfície amb el suport de zona especificat i després podem afegir els serveis a firewalld.

Per defecte, hi ha molts serveis disponibles, una de les millors característiques de firewalld és que ve amb serveis predefinits i podem prendre aquests serveis com a exemple per afegir els nostres serveis simplement copiant-los.

Firewalld també funciona molt bé amb ponts IPv4, IPv6 i Ethernet. Podem tenir un temps d'execució independent i una configuració permanent a firewalld.

Comencem a treballar amb zones i a crear els nostres propis serveis i un ús molt més emocionant de firewalld.

Operating System :	CentOS Linux release 7.0.1406 (Core)
IP Address       :	192.168.0.55
Host-name	:	server1.tecmintlocal.com

Pas 1: instal·lar Firewalld a CentOS

1. El paquet Firewalld s'instal·la per defecte a RHEL/CentOS 7/8, Fedora i openSUSE. Si no, podeu instal·lar-lo mitjançant la següent comanda yum.

# yum install firewalld -y

2. Un cop instal·lat el paquet firewalld, és hora de verificar si el servei iptables s'està executant o no, si s'està executant, cal aturar i emmascarar (no utilitzar més) el servei iptables amb les ordres següents.

# systemctl status iptables
# systemctl stop iptables
# systemctl mask iptables

Pas 2: Comentar els components del tallafoc

3. Abans d'anar a la configuració del tallafoc, m'agradaria parlar de cada zona. Per defecte, hi ha algunes zones disponibles. Hem d'assignar la interfície a la zona. Una zona defineix que la zona en la qual es va confiar o es va denegar el nivell de la interfície per obtenir una connexió. Una zona pot contenir serveis i ports.

Aquí, descriurem cada zona disponible a Firewalld.

  • Zona de llançament: tots els paquets entrants s'eliminen si fem servir aquesta zona de llançament. És el mateix que fem servir per afegir iptables -j drop. Si utilitzem la regla d'eliminació, vol dir que no hi ha resposta, només estaran disponibles les connexions de xarxa sortints.
  • Zona de bloqueig: la zona de bloqueig negarà que les connexions de xarxa entrants siguin rebutjades amb un icmp-host-prohibited. Només es permetran les connexions establertes dins del servidor.
  • Zona pública: per acceptar les connexions seleccionades podem definir regles a la zona pública. Això només permetrà que el port específic s'obri al nostre servidor altres connexions es deixaran caure.
  • Zona externa: aquesta zona actuarà com a opcions d'encaminador amb l'emmascarament activat, altres connexions s'eliminaran i no s'acceptaran, només es permetrà la connexió especificada.
  • Zona DMZ: si hem de permetre l'accés a alguns dels serveis al públic, podeu definir-la a la zona DMZ. Això també té la característica que només s'accepten connexions entrants seleccionades.
  • Zona de treball: en aquesta zona, només podem definir xarxes internes, és a dir, es permet el trànsit de xarxes privades.
  • Zona d'inici: aquesta zona s'utilitza especialment a les zones domèstiques, podem utilitzar aquesta zona per confiar en els altres ordinadors de les xarxes per no danyar el vostre ordinador com totes les zones. Això també permet només les connexions entrants seleccionades.
  • Zona interna: aquesta és similar a la zona de treball amb connexions permeses seleccionades.
  • Zona de confiança: si establim la zona de confiança, s'acceptarà tot el trànsit.

Ara teniu una millor idea de les zones, ara esbrinem les zones disponibles, les zones predeterminades i llistem totes les zones mitjançant les ordres següents.

# firewall-cmd --get-zones
# firewall-cmd --get-default-zone
# firewall-cmd --list-all-zones

Nota: La sortida de l'ordre anterior no encaixarà en una sola pàgina, ja que inclourà totes les zones com ara block, dmz, drop, external, home, internal, public, trusted i work. Si les zones tenen regles enriquides, els serveis o ports activats també es mostraran amb la informació de la zona corresponent.

Pas 3: Configuració de la zona de tallafocs predeterminada

4. Si voleu establir la zona per defecte com a zona interna, externa, de sortida, de treball o qualsevol altra, podeu utilitzar l'ordre següent per establir la zona per defecte. Aquí utilitzem la zona interna per defecte.

# firewall-cmd --set-default-zone=internal

5. Després de configurar la zona, verifiqueu la zona per defecte mitjançant l'ordre següent.

# firewall-cmd --get-default-zone

6. Aquí, la nostra interfície és enp0s3, si necessitem comprovar la nostra zona en què està limitada la interfície, podem utilitzar l'ordre següent.

# firewall-cmd --get-zone-of-interface=enp0s3

7. Una altra característica interessant de firewalld és 'icmptype', un dels tipus icmp compatibles amb firewalld. Per obtenir la llista dels tipus icmp compatibles, podem utilitzar l'ordre següent.

# firewall-cmd --get-icmptypes

Pas 4: Creació de serveis propis a Firewalld

8. Els serveis són un conjunt de regles amb ports i opcions que utilitza Firewalld. Els serveis que estiguin habilitats es carregaran automàticament quan el servei Firewalld estigui en funcionament.

Per defecte, hi ha molts serveis disponibles, per obtenir la llista de tots els serveis disponibles, utilitzeu l'ordre següent.

# firewall-cmd --get-services

9. Per obtenir la llista de tots els serveis disponibles per defecte, aneu al directori següent, aquí obtindreu la llista de serveis.

# cd /usr/lib/firewalld/services/

10. Per crear el vostre propi servei, heu de definir-lo a la ubicació següent. Per exemple, aquí vull afegir un servei per al port RTMP 1935, primer feu una còpia de qualsevol dels serveis.

# cd /etc/firewalld/services/
# cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/

A continuació, navegueu fins a la ubicació on es va copiar el nostre fitxer de servei, a continuació canvieu el nom del fitxer ssh.xml a rtmp.xml, tal com es mostra a la imatge següent.

# cd /etc/firewalld/services/

11. A continuació, obriu i editeu el fitxer com a Encapçalament, Descripció, Protocol i Número de port, que hem d'utilitzar per al servei RTMP tal com es mostra a la imatge següent.

12. Per activar aquests canvis, reinicieu el servei del tallafoc o torneu a carregar la configuració.

# firewall-cmd --reload

13. Per confirmar si s'afegeix el servei o no, executeu l'ordre següent per obtenir una llista dels serveis disponibles.

# firewall-cmd --get-services

Pas 5: Assignació de serveis a zones de tallafoc

14. Aquí veurem com gestionar el tallafoc mitjançant l'ordre firewall-cmd. Per conèixer l'estat actual del tallafoc i de totes les zones actives, escriviu l'ordre següent.

# firewall-cmd --state
# firewall-cmd --get-active-zones

15. Per obtenir la zona pública per a la interfície enp0s3, aquesta és la interfície predeterminada, que es defineix al fitxer /etc/firewalld/firewalld.conf com a DefaultZone= públic.

Per llistar tots els serveis disponibles en aquesta zona d'interfície predeterminada.

# firewall-cmd --get-service

Pas 6: Afegir serveis a les zones del tallafoc

16. En els exemples anteriors, hem vist com crear els nostres propis serveis creant el servei rtmp, aquí veurem també com afegir el servei rtmp a la zona.

# firewall-cmd --add-service=rtmp

17. Per eliminar la zona afegida, escriviu.

# firewall-cmd --zone=public --remove-service=rtmp

El pas anterior era només un període temporal. Perquè sigui permanent, hem d'executar l'ordre següent amb l'opció –permanent.

# firewall-cmd --add-service=rtmp --permanent
# firewall-cmd --reload

18. Definiu regles per a l'interval de fonts de xarxa i obriu qualsevol dels ports. Per exemple, si voleu obrir un rang de xarxa, digueu 192.168.0.0/24 i el port 1935 utilitzeu les ordres següents.

# firewall-cmd --permanent --add-source=192.168.0.0/24
# firewall-cmd --permanent --add-port=1935/tcp

Assegureu-vos de tornar a carregar el servei del tallafoc després d'afegir o eliminar qualsevol servei o port.

# firewall-cmd --reload 
# firewall-cmd --list-all

Pas 7: Afegeix regles riques per a l'interval de xarxa

19. Si vull permetre els serveis com http, https, vnc-server, PostgreSQL, feu servir les regles següents. Primer, afegiu la regla i feu-la permanent i torneu a carregar les regles i comproveu l'estat.

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept' 
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept' --permanent

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="https" accept'
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="https" accept' --permanent

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="vnc-server" accept'
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="vnc-server" accept' --permanent

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="postgresql" accept'
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="postgresql" accept' --permanent

Ara, l'interval de xarxa 192.168.0.0/24 pot utilitzar el servei anterior des del meu servidor. L'opció –permanent es pot utilitzar en totes les regles, però hem de definir la regla i comprovar amb el client l'accés després l'hem de fer permanent.

20. Després d'afegir les regles anteriors, no us oblideu de tornar a carregar les regles del tallafoc i llistar-les amb:

# firewall-cmd --reload
# firewall-cmd --list-all

Per saber més sobre Firewalld.

# man firewalld

Això és tot, hem vist com configurar un filtre de xarxa mitjançant Firewalld a RHEL/CentOS i Fedora.

Net-filter és el marc per a un tallafoc per a totes i cadascuna de les distribucions de Linux. En totes les edicions de RHEL i CentOS, vam utilitzar iptables, però en versions més noves, han introduït Firewalld. És més fàcil d'entendre i utilitzar firewalld. Espero que hagis gaudit de l'escrit.