Base de Coneixements Instruccions senzilles per treballar amb el servei Profitserver
Inici Base de Coneixements Configuració del tallafoc a Linux

Configuració del tallafoc a Linux


El tallafoc a Linux té un paper vital a l'hora de protegir un sistema informàtic. Actua com a barrera, controlant i filtrant el trànsit de xarxa per protegir el sistema d'accessos no autoritzats, atacs i altres amenaces. Sense un tallafoc configurat correctament, el servidor podria ser vulnerable a diversos tipus d'atacs cibernètics, la qual cosa comporta greus conseqüències per a la seguretat i la confidencialitat de les dades.

En aquest article, veurem dues eines principals per configurar el tallafoc de Linux: firewalld i iptables. Farem una anàlisi comparativa de les seves característiques, funcionalitats i avantatges. A més, proporcionarem instruccions detallades per configurar i utilitzar cadascuna d'aquestes eines, així com parlarem de les millors pràctiques per protegir el vostre sistema amb un tallafoc a la plataforma Linux. Totes les accions es mostraran a servidor virtual amb accés root.

Configuració de firewalld a Linux

Tallafoc (Firewall Daemon) és un programa per gestionar el tallafoc en sistemes operatius Linux. Proporciona una interfície d'usuari per configurar regles de tallafoc, permetent o bloquejant connexions d'aplicacions de xarxa. Està preinstal·lat per defecte a la majoria de distribucions de servidors. Si Firewalld no està preinstal·lat, es pot instal·lar independentment dels repositoris oficials de la distribució.

Per als sistemes Red Hat (com RHEL, CentOS, Fedora) la instal·lació es realitza amb l'ordre:

yum install firewalld

Per a Debian/Ubuntu:

apt-get install firewalld

Després de la instal·lació, es pot iniciar i activar immediatament amb l'ordre:

systemctl start firewalld

A continuació, heu d'afegir el servei a l'inici:

systemctl enable firewalld
Afegint firewalld a la càrrega automàtica de Linux

En aquest punt, recomanem desactivar ufw, ja que no es recomana l'ús simultani d'aquesta eina amb firewalld o iptables. Comproveu l'estat:

systemctl status ufw
Comprovant ufw linux

Per aturar-lo, introduïu l'ordre:

systemctl stop ufw

Per a la desactivació completa:

ufw disable

Després d'aquestes accions, podeu procedir a configurar el firewalld.

En primer lloc, cal definir zones de confiança. Firewalld utilitza el concepte de zones per determinar el nivell de confiança de les interfícies de xarxa. A cada interfície se li assigna una zona i les regles del tallafoc s'apliquen en funció de la zona. La llista de totes les zones disponibles s'obre amb l'ordre:

firewall-cmd --get-zones

Normalment, s'utilitzen 4 zones principals:

  1. Públic: aquesta zona és per a xarxes que considereu insegures;
  2. Privat: s'aplica a xarxes domèstiques o altres connexions de xarxa de confiança;
  3. Internal: s'utilitza per a xarxes internes, com les d'una organització o una xarxa corporativa;
  4. DMZ: Aquesta zona és on se solen col·locar els servidors que haurien de ser accessibles des d'Internet.

Tanmateix, aquest és només un exemple. Podeu afegir la vostra pròpia zona mitjançant l'ordre:

firewall-cmd --permanent --new-zone=nameyourzone

Després d'afegir, cal una recàrrega:

firewall-cmd --reload

Per eliminar una zona, s'utilitza un mètode similar

firewall-cmd --permanent --delete-zone=nameyourzone

Després de definir les zones, cal permetre el trànsit pels serveis i ports necessaris. Per permetre un determinat servei, utilitzeu l'ordre:

firewall-cmd --zone=public --add-service=name

On? nom és el nom del servei. Per exemple, per permetre el trànsit per a Apache:

firewall-cmd --zone=public --add-service=http

Per definir els ports permesos, utilitzeu l'ordre:

firewall-cmd --zone=public --add-port=number/protocol

Per exemple, el port estàndard 22 per a SSH seria així:

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

En aquesta etapa, les regles principals ja estan creades. A continuació, determineu com es processarà el trànsit en funció de la font, la destinació, el port i altres criteris. Per afegir una regla (utilitzant el públic zona com a exemple):

firewall-cmd --zone=public rule

Per exemple, per permetre el trànsit entrant des de qualsevol font al port 80 (HTTP):

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

Per eliminar una regla:

firewall-cmd --permanent --remove-rule=rule_specification

On? governar és el tipus de regla (per exemple, port, servei, regla rica, etc.) i especificació_regla és l'especificació de la mateixa regla.

Després de fer canvis a la configuració de Firewalld, cal desar-los i aplicar-los. Per desar els canvis, utilitzeu l'ordre:

firewall-cmd --runtime-to-permanent

Per aplicar els canvis:

firewall-cmd --reload

Un cop finalitzada la configuració, podeu verificar els paràmetres seleccionats obrint la llista de totes les regles:

firewall-cmd --list-all
tallafoc i regles de Linux

Si sorgeix algun problema, comproveu els registres de Firewalld amb l'ordre:

journalctl -u firewalld

Nota: només hem cobert l'algorisme general per configurar la connexió. L'eina té una àmplia funcionalitat. Per obtenir informació completa sobre totes les opcions disponibles, podeu utilitzar el documentació oficial o obre ajuda:

firewall-cmd --help

Configuració d'iptables a Linux

A diferència de Firewalld, iptables és una eina més antiga però encara molt utilitzada a Linux per gestionar el tallafoc. Proporciona un enfocament més directe i flexible de les regles de filtratge de paquets a nivell del nucli Linux. No obstant això, iptables requereix coneixements i experiència més avançats en comparació amb Firewalld, el que fa que sigui menys accessible per als principiants. Comproveu la versió preinstal·lada de l'eina amb l'ordre:

iptables -V

Si l'eina no està instal·lada, caldrà instal·lar-la. L'ordre per a la instal·lació a Ubuntu, Debian:

apt install iptables

Per a sistemes Red Hat (per exemple, CentOS, Fedora):

yum install iptables

L'ordre d'activació després de la instal·lació:

systemctl start iptables

Per afegir a l'inici, executeu:

systemctl enable iptables

Abans d'iniciar la configuració d'iptables, és important entendre com funciona. Això és ajudat per la sintaxi del programa. Té el següent aspecte:

iptables -t table action chain additional_parameters

Anem a aprofundir en cada element.

Iptables té quatre taules principals: filtre, nat, mangle i cru. Cadascun està dissenyat per processar determinats tipus de paquets i té les seves pròpies cadenes de regles:

  1. Filtrar: Aquesta és la taula més utilitzada, que conté regles de filtratge de paquets. S'utilitza per prendre decisions sobre si permetre o denegar paquets.
  2. nit: Aquesta taula s'utilitza per modificar adreces de xarxa i ports en paquets. Sovint s'utilitza per configurar el masquerading (NAT).
  3. mangle: En aquesta taula, podeu modificar les capçaleres dels paquets. S'utilitza per a operacions especialitzades de paquets, com ara el marcatge.
  4. cru: Aquesta taula s'utilitza per configurar les regles que s'apliquen abans de passar pel sistema de seguiment de connexions. Normalment s'utilitza per configurar regles que el sistema de seguiment no hauria de modificar, com ara deixar caure paquets de determinades adreces.

Cada taula conté un conjunt de cadenes. Les cadenes són una seqüència de regles que es comproven seqüencialment. Hi ha tres cadenes predefinides:

  1. INPUT (entrant). Les regles d'aquesta cadena determinen què fer amb els paquets entrants.
  2. SORTIDA (sortint). Aquesta cadena s'aplica a tots els paquets que l'ordinador envia a altres dispositius o ordinadors de la xarxa.
  3. FORWARD (enviament). Les regles d'aquesta cadena especifiquen què fer amb els paquets reenviats.

Finalment, cada cadena posseeix alguna acció (objectiu). A la pràctica, s'utilitzen 5 accions principals:

  1. ACEPTAR: permet que el paquet passi pel tallafoc.
  2. DROP: rebutjar el paquet i descartar-lo sense cap resposta.
  3. REBUTJAR: rebutjar el paquet i enviar al remitent un missatge d'error ICMP.
  4. LOG: Registreu el paquet al registre del sistema i realitzeu una altra acció (p. ex., ACCEPTAR o DROP).
  5. RETORN: Deixeu de comprovar les regles de la cadena actual i torneu a la cadena de trucades (si escau).

Per iniciar la configuració, obriu la llista de regles existents amb l'ordre:

iptables -L
Configuració del tallafoc a Linux

Com a guia per configurar Iptables, mirem exemples pràctics de les ordres més utilitzades. Per comoditat, dividirem els exemples en 3 grups, depenent de la cadena específica.

cadena ENTRADA:

  1. Permet el trànsit entrant mitjançant el protocol TCP al port 80:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

2. Permet el trànsit entrant mitjançant el protocol UDP al port 22:

iptables -A INPUT -p udp --dport 22 -j ACCEPT

3. Bloqueja el trànsit entrant d'una adreça IP específica:

iptables -A INPUT -s 192.168.1.100 -j DROP

cadena SORTIDA:

  1. Permet el trànsit de sortida mitjançant el protocol TCP al port 443:
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

2. Permet el trànsit de sortida mitjançant el protocol UDP al port 80:

iptables -A OUTPUT -p udp --dport 80 -j ACCEPT

3. Bloqueja el trànsit de sortida a un port específic (per exemple, 21):

iptables -A OUTPUT -p tcp --dport 21 -j DROP

cadena ENDAVANT:

  1. Bloqueja el trànsit reenviat des d'un rang específic d'adreces IP:
iptables -A FORWARD -s 172.16.0.0/24 -j DROP

2. Bloquegeu el reenviament de paquets des d'una interfície de xarxa específica:

iptables -A FORWARD -i eth1 -j DROP

3. Limiteu el nombre de connexions simultànies per a un port específic (en aquest exemple, 10 connexions per minut al port 80):

iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/minute -j ACCEPT

Com podeu veure, en cada cas per separat, s'utilitza un argument addicional (ordre). Per obtenir una llista completa de possibles arguments i suport general per a la funcionalitat de l'eina, introduïu:

iptables -h
llista d'ordres de configuració de iptables linux

Per assegurar-vos que la configuració és correcta, torneu a introduir l'ordre per veure la llista de regles:

iptables -L
Comprovació de les regles de Linux d'iptables

Per suprimir una regla específica, utilitzeu l'ordre:

iptables -D chain rule_number

Per exemple, si voleu suprimir la regla número 1 de la cadena INPUT, l'ordre tindrà aquest aspecte:

iptables -D INPUT 1

Per suprimir totes les regles amb una ordre:

iptables -F

Nota important: les regles d'iptables no es desen automàticament després de reiniciar el sistema o el servei. Per desar les regles, cal afegir-les a un fitxer de configuració i restaurar-les després del reinici. El iptables-desa i iptables-restore els serveis públics poden ajudar amb això. Per desar les regles, introduïu l'ordre:

iptables-save > /etc/iptables/rules.v4

Això desa les regles d'iptables actuals al fitxer rules.v4. Per restaurar després de reiniciar, introduïu:

iptables-restore < /etc/iptables/rules.v4

Aquesta ordre restaura les regles del fitxer rules.v4.

Conclusió

La configuració del tallafoc a Linux mitjançant firewalld o iptables és un aspecte important per garantir la seguretat del servidor. Ambdues eines ofereixen mitjans fiables per gestionar el trànsit de la xarxa i protegir el sistema d'accessos no autoritzats i ciberatacs. L'elecció entre firewalld i iptables depèn de les necessitats i preferències específiques de l'usuari, tenint en compte les seves diferents funcionalitats i punts forts.

❮ Article anterior Usuaris de Linux: gestió i permisos
Article següent ❯ Diagnòstic de càrrega del servidor

Pregunta'ns per VPS

Sempre estem preparats per respondre les vostres preguntes a qualsevol hora del dia o de la nit.