iptables a Linux: guia pràctica, completa i sense embuts

Darrera actualització: 9 de setembre de 2025
  • Estructura i flux: taules, cadenes i com circula el trànsit
  • Regles i polítiques: ordres, matxos i objectius clau
  • NAT i publicació: SNAT/MASQUERADE i DNAT en escenaris reals
  • Disseny segur: DMZ funcional i bones pràctiques operatives

Firewall iptables a Linux

Si administres distribucions Linux per protegir la teva seguretat i privadesa , tard o d'hora et tocarà bregar amb iptables. Aquest sistema de filtratge de paquets és el cor del tallafoc clàssic a GNU/Linux , capaç de decidir quin trànsit entra, surt o es reenvia entre xarxes. Ben configurat, és com tenir un porter molt fi a la porta de la teva xarxa, que aplica les teves normes sense pestanyejar i amb una precisió quirúrgica.

En les properes línies trobaràs una guia completa i actualitzada que integra allò essencial: conceptes de tallafocs , Netfilter, taules i cadenes, flux de paquets, ordres clau, extensions de regles i targets avançats , a més d'escenaris pràctics com NAT, redireccions, polítiques per defecte i una DMZ funcional. Tot explicat amb un llenguatge proper però rigorós, perquè puguis aplicar-ho ja a la teva infraestructura.

Tallafocs en context: del porter de discoteca a la DMZ

Un tallafoc és, en essència, un filtre entre xarxes que aplica regles per decidir la destinació de cada paquet. Pensa-ho com un porter de discoteca amb una llista de criteris : si el paquet compleix, passa; si no, es queda fora. Aquesta metàfora serveix per entendre que allò important és la lògica de regles i l'ordre en què s'avaluen.

Dins el disseny de xarxa, hi ha topologies més segures que altres. La DMZ (zona desmilitaritzada) és una xarxa intermèdia que allotja serveis públics (com un web o FTP) separant-los de la LAN corporativa. Per què? Perquè si un atacant comprometés un servidor públic, la segmentació impedeix que tingui accés directe a la resta de la xarxa interna.

Linux com a tallafocs: Netfilter i iptables

El nucli de Linux incorpora Netfilter, un framework amb “ganxos” (hooks) per interceptar i manipular paquets . A l'espai d'usuari, iptables és la utilitat que defineix les regles que el nucli aplicarà al pas del trànsit. Aquesta separació kernel/usuari permet un alt rendiment amb gran flexibilitat.

Convé distingir les utilitats per protocol: iptables (IPv4), ip6tables (IPv6), arptables (ARP) i ebtables (trames Ethernet) . Al nucli, el mòdul comú és x_tables, que comparteix la lògica per a extensions de coincidència i objectius. I un apunt històric: iptables va substituir ipchains i, al seu torn, nftables va succeir a iptables al nucli 3.13 , encara que iptables segueix molt present en multitud de sistemes.

Per operar, necessitareu privilegis d'administrador. Executa iptables com a root (o amb sudo), normalment a /usr/sbin/iptables (Debian/derivades) o /sbin/iptables (Xarxa Hat/derivades). La documentació oficial és a man iptables ia netfilter.org.

distribucions de Linux per a servidors
Article relacionat:
Les millors distribucions de Linux per a servidors

Estructura d'iptables: taules, cadenes i regles

Iptables organitza la seva lògica en taules (tables) compostes per cadenes (chains) plenes de regles . Cada regla especifica condicions de coincidència i un objectiu (target) que cal aplicar quan el paquet encaixa.

  • Taula filter (per defecte, filtrat pur)
    • ENTRADA: trànsit dirigit a la pròpia màquina.
    • ENDAVANT: trànsit que travessa l'equip (encaminament).
    • SORTIDA: trànsit generat localment.
  • Taula nat (traducció d'adreces; s'avalua en noves connexions)
    • PREENRUTAMENT: abans de decidir ruta; ideal per a DNAT/port forwarding.
    • SORTIDA: paquets originats localment abans de rutejar.
    • POSTOUTING: després de l'encaminament; típic per a SNAT/MASQUERADE.
  • Taula mangle (ajustaments fins de capçaleres: TOS, TTL, marcatge, etc.)
    • PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING: disponible a tot el camí.
  • Taula raw (control de seguiment de connexions/conntrack)
    • PREENRUTAMENT y SORTIDA: per marcar trànsit que cal saltar conntrack.

Quan un paquet arriba a una cadena, es compara seqüencialment amb cada regla ; si coincideix, s'executa el vostre objectiu i s'atura el recorregut. Si arribeu al final sense encaixar en cap i la cadena és predefinida, s'aplica la política per defecte (chain policy) d'aquesta cadena.

  ShadowPad: la vulnerabilitat crítica a WSUS que obre la porta a l'espionatge

Flux dels paquets: per on passen i quan

Entendre la ruta que segueix el trànsit és clau per ubicar bé les regles. Un paquet que surt de la teva LAN cap a Internet típicament es processa així: primer PREROUTING (possible DNAT/mangle) passa per FORWARD (filtrat de trànsit), i abans d'abandonar l'equip toca POSTROUTING (SNAT/MASQUERADE si escau).

En canvi, si el destí és el propi tallafocs, intervindran PREROUTING → INPUT ; si ho emet la màquina local, la ruta serà OUTPUT → POSTROUTING . Aquesta matriu mental t'estalvia mals de cap quan no quadra alguna cosa.

Ordres bàsiques: llistar, netejar, crear i polítiques per defecte

Per auditar l'estat actual, EUA iptables -L (opcionalment -v per detall i -n per no resoldre noms). També pots crear i eliminar cadenes amb -N y -X respectivament, i fixar polítiques per defecte amb -P.

Quan necessites partir de zero, neteja regles amb -F (flush) i, si escau, els comptadors. Recorda que pots especificar taules amb -t i cadenes concretes; per exemple, iptables -F -t nat per a la NAT.

En definir regles, les opcions més comunes són directes: -A afegeix, -I insereix, -R reemplaça i -D esborra. Després incorpores selectors com -p (protocol), -s/-d (origen/destinació), -i/-o (interfícies) i l'objectiu amb -j (P. Ex., ACCEPT, DROP o REJECT).

Les polítiques per defecte defineixen què passa si cap regla no coincideix. Un esquema típic endurit en un host seria INPUT DROP, FORWARD DROP, OUTPUT ACCEPT, bloquejant tot allò entrant excepte el permès explícitament i permetent el que surt.

Extensions de coincidència (-m): TCP, UDP, ICMP, MAC, estat i multiport

Iptables amplia els seus filtres amb mòduls de coincidència usant -m. El de TCP permet afinar per ports i banderes: --dport/--sport y --syn per a noves obertures de connexió, per exemple.

Per a UDP, podeu delimitar igualment ports d'origen i destí . Un cas clàssic: obrir el 80/443 cap a un servidor web o permetre consultes DNS sortints al 53/UDP.

Amb ICMP, --icmp-type et deixa discriminar tipus (P. Ex., fet-request y fet-reply per a pings). Això és útil per permetre diagnòstics sense deixar la porta oberta a tot ICMP.

També hi ha el mòdul mac per filtrar per adreça MAC amb --mac-source. Útil si vols autoritzar un equip administrat amb IP dinàmica perquè faci ping al tallafocs sense dependre de la IP.

I, potser el més important a nivell operatiu, el mòdul state (o conntrack) amb --state NEW, ESTABLISHED, RELATED. Aquest permet permetre respostes de connexions ja establertes, reduint dràsticament el nombre de regles necessàries.

Per agrupar ports, multiport afegeix --sports y --dports amb llistes separades per comes. És còmode per obrir HTTP, HTTPS i SSH en una sola regla.

Objectius (targets) més enllà d'ACCEPT/DROP: NAT i companyia

A més d'acceptar o descartar, iptables poden reescriure adreces i ports per connectar xarxes privades amb Internet o publicar serveis interns.

MASCARADA (en POSTROUTING de la taula nat) substitueix la IP d'origen per la IP de sortida del tallafocs, ideal quan la IP pública és dinàmica (DHCP). És el NAT típic de sortida per a tota una LAN.

SNAT (També en POSTROUTING) fixa explícitament la IP/port d'origen amb --to-source. Es fa servir quan tens IP pública estàtica i vols controlar amb precisió la traducció.

DNAT (en PREROUTING o OUTPUT) canvia la IP de destinació amb --to-destination. És el famós “obrir ports”: reps trànsit a la IP pública i el redirigeixes a un servidor a la DMZ, per exemple un web intern al 192.168.1.2.

  Ciberseguretat mundial sota amenaça: riscos i respostes

Exemple senzill: filtrar trànsit entre dues xarxes

Imagina una màquina actuant com a router/tallafocs entre dues subxarxes. Si vols que només el host B parli amb C i només per TCP, la taula serà filter i la cadena correcta és FORWARD, perquè el trànsit travessa l'equip.

Primer aplicaries una política per defecte DROP a FORWARD i després autoritzaries explícitament el trànsit B→C a TCP (i si escau, C→B). Aquest patró denegar per defecte i permetre el mínim és la base d'una postura de seguretat sòlida.

Casos quotidians en una passarel·la: regles tipus

Una passarel·la amb dues interfícies, per exemple eth1 (LAN) i eth0 (WAN), sol necessitar reenviar paquets de la LAN cap a Internet. Per això, afegeix FORWARD -i eth1 -o eth0 -j ACCEPT i permet en sentit contrari només ESTABLISHED,RELATED amb -m state.

Al mateix tallafocs, convé autoritzar trànsit entrant que sigui resposta de connexions sortints amb INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT, i permetre sempre el loopback: INPUT -i lo -j ACCEPT.

Perquè els equips de la LAN naveguin, aplica NAT de sortida: -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to-source X.Y.Z.W (o MASQUERADE si la IP és dinàmica). Això tradueix les IP privades a la teva IP pública.

Un enduriment bàsic és bloquejar paquets entrants per WAN amb IPs d'origen indegudes (la teva pròpia IP pública, rangs privats 192.168.0.0/24, 127.0.0.0/8, etc.), ja que acostumen a indicar suplantació.

Per exposar serveis al tallafocs (p. ex., SMTP 25, HTTP 80, HTTPS 443 o SSH 22), pots permetre paquets TCP amb flag SYN per a aquests ports de destinació. Si vols fitar per IP de destinació, afegeix -d a la IP del servei.

Serveis d'infraestructura habituals: DHCP (tràfic des de port 68 al 67) a la interfície LAN, i DNS des del resoldre autoritzat (UDP 53) si filtres per origen. Aquestes obertures permeten que els clients obtinguin IP i resolguin noms.

Si toca tancar accessos, DROP a SSH/Telnet entrant és directe; també pots REJECT sortides cap a IPs vetades de la xarxa local perquè l'emissor rebi notificació de rebuig.

Instal·lació i gestió del servei en sistemes Red Hat/CentOS

En entorns legacy amb CentOS/RHEL 5/6, n'hi havia prou amb instal·lar amb yum -y install iptables. Encara que avui moltes distros noves afavoreixen nftables, iptables segueix present en sistemes en producció i appliances.

La integració amb serveis SysV permetia gestionar i persistir regles: service iptables start|stop|restart y service iptables save, guardant a /etc/sysconfig/iptables. Per habilitar l'arrencada: chkconfig iptables on als nivells 2–5.

En sistemes moderns, encara que canvien els wrappers , la idea persisteix: defineix regles, prova-les i persisteix-les de manera que sobrevisquin a reinicis, ja sigui amb eines del sistema o scripts.

Llistats, esborrats i edició de regles amb precisió

Per veure l'estat amb números de regla, EUA iptables -L --line-numbers -n -v. Així podràs eliminar per índex amb -D INPUT 3 o reemplaçar amb -R sense confusions.

Si necessites un esborrat selectiu, neteja només la cadena o taula que toqui (-F FORWARD o -F -t nat). Evita escombrats globals en remot sense xarxa de seguretat o pots perdre l'accés SSH.

Com a pràctica habitual, col·loca primer regles que permetin la teva sessió SSH , aplica canvis gradualment i tingues una finestra de reversió (per exemple, un cron que restauri regles en 5 minuts si no confirmes).

Persistència amb iptables-save i iptables-restore

Per salvar la teva configuració, iptables-save > /ruta/backup/iptables.rules genera un bolcat llegible per màquina amb totes les taules. És perfecte per a control de canvis i per a migracions.

  10 Claus per dominar els sistemes d'autenticació

Per carregar-lo, utilitza iptables-restore < /ruta/backup/iptables.rules. Podeu automatitzar la restauració a l'arrencada amb systemd, scripts init o un cron @reboot, assegurant que el tallafocs quedi actiu després d'un reinici.

Afegeix a això bones pràctiques operatives: executa amb privilegis adequats, desa els fitxers fora de /tmp i alinea'ls amb l'entorn (interfícies i subxarxes correctes) per evitar sorpreses.

DMZ en detall: un exemple complet i realista

Suposa un tallafocs Linux connectat a un router en mode “monoposat” (sense NAT), amb tres interfícies: eth0 (LAN 192.168.1.1/24), eth1 (DMZ 192.168.2.1/24) i eth2 (WAN amb IP per DHCP) . La DMZ allotja un servidor web Apache (192.168.2.2) i un FTP (192.168.2.3).

Objectius de la política: publicar HTTP/HTTPS i FTP de la DMZ cap a Internet , permetre administració per SSH des de la LAN al tallafocs, i que la LAN pugui navegar (HTTP/HTTPS), transferir per FTP i resoldre DNS. Tota la resta, denegada.

A grans trets: a filtre/FORWARD permet trànsit LAN→WAN amb resposta, i WAN→DMZ només als ports publicats amb ESTABLISHED,RELATED per a les respostes. A nat/PREROUTING, aplica DNAT per publicar serveis; a nat/POSTROUTING, SNAT/MASQUERADE per a sortida de LAN/DMZ.

Exemples d'obertures: DNAT 80/443 cap a 192.168.2.2 i 21/20 (segons mode) cap a 192.168.2.3 amb els corresponents FORWARD permetent aquests ports. Assegura el canal de control i dades per a FTP (actiu/passiu) o limita el rang passiu i reflecteix-lo al tallafocs.

Per a la LAN: permet sortida a 80, 443, 21 i 53 i el seu retorn, aplicant NAT de sortida a POSTROUTING. Al tallafocs, autoritza SSH entrant només des de la subxarxa 192.168.1.0/24 i bloqueja accessos no desitjats des de la WAN.

No oblidis la higiene: DROP a rangs invàlids per la WAN (privats, loopback, la teva pròpia pública) i registra el que t'interessi. Amb polítiques per defecte restrictives i obertures mínimes, la teva exposició es redueix al mínim imprescindible.

Bones pràctiques i trucs operatius

Treballa sempre amb un pla: documenta què permets i per què , verifica el flux esperat amb un diagrama simple i aplica regles en l'ordre correcte per evitar solapaments.

Usa combinació de mòduls amb cap: state/conntrack per a respostes, tcp amb --syn en obertures, i multiport per agrupar. Així simplifiques i reduïxes el risc d'inconsistències.

Per a entorns amb canvis freqüents, considera separar regles per funció: cadenes personalitzades (Amb -N) trucades des d'INPUT/OUTPUT/FORWARD, de manera que mantenir o revertir peces sigui més net.

La transició a nftables està en marxa en moltes distros, però si la teva plataforma/producte utilitza iptables, conèixer a fons aquestes peces et donarà control total . I si migres, entendràs sense problema el mapa mental equivalent en nftables.

Amb allò vist ja disposes d'una base sòlida per desplegar i mantenir iptables en producció: comprens l'arquitectura (taules, cadenes i flux), domines les ordres essencials, apliques NAT i publicació amb DNAT/SNAT i saps muntar una DMZ segura . A partir d'aquí, queda ajustar al teu cas concret, auditar periòdicament i mantenir les regles tan clares com el teu model de xarxa.