La guia per a principiants de les ordres d'IPTables (tallafocs de Linux).


Si utilitzeu ordinadors durant un temps, heu d'estar familiaritzat amb la paraula \Firewall. Sabem que les coses semblen complexes des de la superfície, però a través d'aquest tutorial, explicarem les bases d'IPTable i l'ús d'ordres bàsiques. de manera que fins i tot si sou un estudiant de networking o voleu aprofundir en les xarxes, podeu beneficiar-vos d'aquesta guia.

El funcionament del tallafoc és bastant senzill. Crea una barrera entre xarxes fiables i no fiables perquè el vostre sistema estigui segur de paquets maliciosos.

Però, com decidirem què és segur i què no? Per defecte, teniu algun privilegi per configurar regles per al vostre tallafoc, però per a una vigilància més detallada dels paquets entrants i sortints, IPTables és el que més necessiteu.

IPTables es pot utilitzar per a la informàtica personal o també es pot aplicar a tota la xarxa. Mitjançant IPTables, definirem un conjunt de regles mitjançant les quals podem supervisar, permetre o bloquejar els paquets de xarxa entrants o sortints.

En lloc de centrar-nos en tota la part teòrica, només parlarem del que importa en el món pràctic. Per tant, comencem per comprendre els conceptes bàsics d'IPTables.

Comprensió del concepte d'IPTables

Mentre parlem d'IPTables, hem d'entendre 3 termes: taules, cadenes i regles. Com que aquestes són les parts importants, parlarem de cadascuna d'elles.

Així que comencem amb les taules.

Hi ha 5 tipus de taules a IPTables i cadascuna té regles diferents aplicades. Així que comencem amb la taula més comuna \Fitxer.

  1. Taula de filtres: aquesta és la taula principal i predeterminada quan s'utilitza IPTables. Vol dir que sempre que no mencioneu cap taula específica mentre apliqueu regles, s'aplicaran a la taula de filtres. Com el seu nom indica, la funció de la taula de filtres és decidir si s'ha de permetre que els paquets arribin a la seva destinació o denegar la seva sol·licitud.
  2. NAT (Traducció d'adreces de xarxa): com el seu nom indica, aquesta taula permet als usuaris determinar la traducció de les adreces de xarxa. La funció d'aquesta taula és determinar si cal modificar i com modificar l'origen i la destinació de l'adreça del paquet.
  3. Taula Mangle: aquesta taula ens permet modificar les capçaleres IP dels paquets. Per exemple, podeu ajustar TTL per allargar o reduir els salts de xarxa que el paquet pot mantenir. De la mateixa manera, altres capçaleres IP també es poden modificar segons les vostres preferències.
  4. Taula RAW: l'ús principal d'aquesta taula és fer un seguiment de les connexions, ja que proporciona un mecanisme per marcar paquets per veure'ls com a part d'una sessió en curs.
  5. Taula de seguretat: mitjançant la taula de seguretat, els usuaris poden aplicar marques de context de seguretat internes de SELinux als paquets de xarxa.

En la majoria de casos d'ús, els 2 últims tipus (RAW i Seguretat) de la taula no tenen gaire a veure i només les 3 primeres opcions es compten com a taules principals.

Ara, parlem de les cadenes.

Es comporten en punts del recorregut de la xarxa on podem aplicar normes. A IPTables, tenim 5 tipus de cadenes i parlarem de cadascun d'ells. Tingueu en compte que no cada tipus de cadena està disponible per a cada tipus de taula.

  1. Enrutament previ: aquesta cadena s'aplica a qualsevol paquet entrant un cop s'ha introduït a la pila de xarxa i aquesta cadena es processa fins i tot abans que s'hagi pres cap decisió d'encaminament pel que fa a la destinació final del paquet.
  2. Cadena d'entrada: és el punt on un paquet entra a la pila de xarxa.
  3. Cadena d'enviament: és el punt on s'ha reenviat el paquet a través del vostre sistema.
  4. Cadena de sortida: la cadena de sortida s'aplica al paquet quan s'ha originat a través del vostre sistema i s'apaga.
  5. Post-encaminament: és tot el contrari de la cadena de pre-encaminament i s'aplica als paquets enviats o sortints un cop s'ha pres la decisió d'encaminament.

Ara, l'únic que queda per parlar són les regles, i és la més fàcil de les 3 que hem comentat aquí. Per tant, completem el que queda a la part teòrica.

Les regles no són més que les ordres conjuntes o individuals mitjançant les quals els usuaris manipulen el trànsit de la xarxa. Un cop cada cadena entri en acció, el paquet es comprovarà amb les regles definides.

Si una regla no compleix la condició, es saltarà a la següent i si compleix la condició, la següent regla s'especificarà pel valor de l'objectiu.

Cada regla té dos components: el component coincident i el component objectiu.

  1. Component de concordança: són condicions diferents per definir regles que poden coincidir per protocol, adreça IP, adreça de port, interfícies i capçaleres.
  2. Component objectiu: aquesta és una acció que s'activarà un cop es compleixin les condicions.

Aquesta va ser la part d'explicació i ara cobrirem ordres bàsiques relacionades amb IPTables a Linux.

Instal·lació del tallafoc IPTables a Linux

A les distribucions de Linux modernes com Pop!_OS, IPTables ve preinstal·lat, però si el vostre sistema no té el paquet IPTables, podeu instal·lar-lo fàcilment seguint les instruccions donades:

Per instal·lar IPTables a l'ordre dnf.

$ sudo dnf install iptables-services

Important: si feu servir Firewalld, haureu de desactivar-lo abans de procedir a la instal·lació. Per aturar completament el tallafoc, haureu d'utilitzar les ordres següents:

$ sudo systemctl stop firewalld
$ sudo systemctl disable firewalld
$ sudo systemctl mask firewalld

Per instal·lar IPTables a l'ordre apt.

$ sudo apt install iptables

Un cop instal·leu IPTables, podeu habilitar el tallafoc mitjançant les ordres donades:

$ sudo systemctl enable iptables
$ sudo systemctl start iptables

Per supervisar l'estat del servei IPTable, podeu utilitzar l'ordre donada:

$ sudo systemctl status iptables

Apreneu els conceptes bàsics del comandament IPTables a Linux

Un cop acabem la instal·lació, podem procedir amb la sintaxi d'IPTables que us permetrà ajustar els valors per defecte i configurar-lo segons les vostres necessitats.

La sintaxi bàsica d'IPTables és la següent:

# iptables -t {type of table} -options {chain points} {condition or matching component} {action}

Entenem l'explicació de l'ordre anterior:

La primera part és -t on podem triar entre les 5 opcions de taula disponibles i si elimineu la part -t de l'ordre, utilitzarà la taula de filtres tal com està. el tipus de taula predeterminat.

La segona part és per a la cadena. Aquí podeu triar entre diferents opcions de punt de cadena i aquestes opcions es mostren a continuació:

  • -A: afegeix una regla nova a la cadena al final de la cadena.
  • -C: comprova si la regla compleix els requisits de la cadena.
  • -D: permet als usuaris suprimir una regla existent de la cadena.
  • -F: això eliminarà cada regla definida per l'usuari.
  • -I: permet als usuaris afegir una regla nova a la posició especificada.
  • -N: crea una cadena completament nova.
  • -v: quan s'utilitza amb l'opció de llista, aporta informació detallada.
  • -X: elimina la cadena.

Les opcions de concordança són la condició per comprovar el requisit de la cadena. Podeu triar entre diverses opcions i algunes d'elles es mostren a continuació:

Protocols -p
Source IP -s
Destination IP -d
IN interface -i
OUT interface -o

Per a TCP, són els següents:

-sport
-dport
--tcp-flags

Ara, si tenim en compte la part d'acció, les opcions disponibles depenen del tipus de taula com NAT, i la taula de mangle té més opcions en comparació amb altres. Mitjançant l'acció, també podeu orientar una taula o una cadena específica.

L'acció més utilitzada és Saltar (-j) que ens donarà diverses opcions com ara:

  • ACCEPTA: s'utilitza per acceptar paquets i finalitzar el recorregut.
  • DROP: s'utilitza per deixar caure paquets i acabar el recorregut.
  • REJECTA: és molt semblant a DROP, però envia paquets rebutjats a la font.
  • RETORN: aturarà el recorregut del paquet a la subcadena i enviarà el paquet específic a la cadena superior sense cap efecte.

Un cop acabem amb la sintaxi, us mostrarem com podeu utilitzar IPTables inclosa la configuració bàsica.

Si voleu comprovar què passa pel vostre tallafoc de manera predeterminada, enumerar un conjunt de regles actuals és una manera perfecta. Per llistar les regles aplicades, utilitzeu l'ordre donada:

$ sudo iptables -L

En aquesta secció, us mostrarem com podeu permetre o denegar el trànsit de xarxa per a ports específics. Us mostrarem alguns ports coneguts perquè volem ser tan útils com puguem.
Si voleu permetre el trànsit de xarxa HTTPS, haurem de permetre el port no 443 utilitzant l'ordre donada:

$ sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

De la mateixa manera, també podeu desactivar el trànsit web HTTP mitjançant l'ordre donada:

$ sudo iptables -A INPUT -p tcp --dport 80 -j REJECT

Explicació de les opcions d'ordres utilitzades:

  • -p s'utilitza per comprovar el protocol especificat i en el nostre cas és TCP.
  • --dport s'utilitza per especificar el port de destinació.
  • -j s'utilitza per prendre accions (acceptar o deixar anar).

Sí, també podeu controlar el trànsit de xarxa des d'una adreça IP. No només una o dues, sinó que també controleu el rang d'adreces IP i us mostrarem com fer-ho.

Per permetre una adreça IP específica, utilitzeu l'estructura d'ordres donada:

$ sudo iptables -A INPUT -s 69.63.176.13 -j ACCEPT

De la mateixa manera, per eliminar paquets d'una IP específica, cal que utilitzeu l'estructura d'ordres donada:

$ sudo iptables -A INPUT -s 192.168.0.27 -j DROP

Si voleu, també podeu controlar el rang d'adreces IP utilitzant l'estructura d'ordres donada:

$ sudo iptables -A INPUT -m range --src-range 192.168.0.1-192.168.0.255 -j REJECT

De vegades podem acabar cometent errors mentre creem regles i la millor manera de superar aquests errors és esborrar-los. L'eliminació de les regles definides és el procés més senzill al llarg d'aquesta guia i per eliminar-les, primer, haurem d'enumerar-les.

Per llistar regles definides amb números, utilitzeu l'ordre donada:

$ sudo iptables -L --line-numbers

Per eliminar regles, haurem de seguir l'estructura d'ordres donada:

$ sudo iptables -D <INPUT/FORWARD/OUTPUT> <Number>

Suposem que vull suprimir la 10a regla d'INPUT, així que faré servir l'ordre donada:

$ sudo iptables -D INPUT 10

Per comprovar si hem eliminat correctament la regla, hem d'enumerar les regles mitjançant l'ordre donada:

$ sudo iptables -L –line-numbers

Com podeu veure, hem eliminat correctament la 10a regla.

Potser us preguntareu per què hem de guardar les regles on funcionen bé després d'aplicar-les? El problema és que un cop es reiniciï el sistema, s'eliminaran totes les regles definides que no es desaran, per la qual cosa és crucial per a nosaltres.

Per desar regles a les distribucions basades en RHEL:

$ sudo /sbin/service iptables save

Per desar regles en derivats de Debian:

$ sudo /sbin/iptables–save

Per obtenir més informació sobre les regles del tallafoc d'IPtable, consulteu la nostra guia detallada a:

  • 25 regles útils del tallafoc d'IPtable que tots els administradors de Linux haurien de conèixer

Al llarg d'aquesta guia, hem intentat simplificar les coses perquè tothom se'n pugui beneficiar. Aquesta va ser una guia d'explicació bàsica sobre IPTables i si teniu cap pregunta, no dubteu a preguntar-ho als comentaris.