Tallafocs

Les xarxes estan formades per multitud de dispositius, alguns dels quals juguen un paper important en el seu correcte funcionament. Dins de l’àmbit de la seguretat cal estudiar un dispositiu molt especial: el tallafoc. El tallafoc està gairebé sempre present en una xarxa, ja sigui gran o petita, empresarial o domèstica. Però sovint l’usuari n’ignora la seva presència, mentre que en altres ocasions sap que hi és però desconeix per a què serveix.

El tallafoc serveix per protegir la xarxa de les amenaces que es puguin presentar.

La seva invenció és fruit de la necessitat: uns atacs virals a importants entitats nord-americanes van propiciar la creació dels tallafocs com a instrument per defensar-se de la nova amenaça. De llavors ençà, el terme tallafoc s’ha mantingut, però l’eina ha anat evolucionant. Els tallafocs estan en constant evolució a causa del desenvolupament d’una altra entitat tecnològica: Internet.

De tallafocs n’hi ha de diversos tipus. El seu disseny i la seva evolució depenen de la idiosincràsia de cada xarxa. No només cada xarxa presenta unes determinades peculiaritats, sinó que també varia l’ús que els usuaris en fan, el contingut i naturalesa de la informació que hi circula.

Per a una visió més tècnica del tallafoc consulteu l’RFC 2979: www.ietf.org/rfc/rfc2979.txt

El tallafoc compleix una sèrie de funcions necessàries, però el seu ús implica dominar certs aspectes sinó es vol crear problemes a la xarxa.

El tallafoc es va concebre amb la intenció de donar protecció a la xarxa. Partint d’aquesta base, tot administrador de xarxa es pot formular la pregunta: necessito instal·lar un tallafoc a la meva xarxa? Des de tots els punts de vista la resposta és clara: sí.

Tallafoc és la traducció literal del terme anglès firewall, que s’usa en aquest context per primera vegada el 1988.

L’esquema més habitual que s’utilitza per representar un tallafoc és el mostrat en la figura. Com es pot observar, s’acostuma a utilitzar un mur de maons vermells com a símbol de l’equip tallafoc.

Figura Representació d’una xarxa amb un tallafoc

Definicions importants

Abans de començar a tractar els aspectes més rellevants dels tallafocs és important parlar d’una sèrie de termes imprescindibles per entendre’ls. No és possible comprendre la rellevància d’aquests dispositius sense ser conscients de les diferents amenaces de les xarxes, els tipus d’atacants i els atacs més comuns.

Una vegada presentades algunes de les situacions comprometedores de la seguretat de la xarxa es veurà encara més clara la necessitat d’utilitzar tallafocs.

Amenaces

Per fer front a una amenaça cal estudiar prèviament l’origen de l’amenaça, les eines que utilitza, l’entorn on es desenvolupa i els mecanismes de defensa de què disposem. L’establiment d’una estratègia defensiva és fonamental per garantir la seguretat de la xarxa que volem protegir.

La gestió de la seguretat es pot enfocar com un joc on hi ha una sèrie de regles inamovibles i d’altres que apareixen amb l’evolució tecnològica. Així, fa un cert temps cap tècnic de xarxa s’havia de preocupar per accessos no permesos a la xarxa utilitzant dispositius mòbils i resulta que avui en dia es pot accedir a una xarxa des de punts no estàtics. De fet, la majoria de dispositius que pertanyen a la xarxa són mòbils. Si analitzem el trànsit de xarxa en un àmbit docent descobrim que més de la meitat d’equips connectats són telèfons mòbils, tauletes i portàtils que hi accedeixen amb comunicacions sense fil. Internet està en constant evolució i les persones encarregades de gestionar la seguretat de les xarxes no poden estancar-se i adoptar una actitud passiva davant d’aquests canvis. En la figura es pot veure com accedeixen a la xarxa dispositius que utilitzen multitud de tecnologies.

Figura A les xarxes actuals hi accedeixen tota mena de tecnologies

La National Vulnerability Database (NVD) és el repositori de dades de gestió de vulnerabilitat del govern dels Estats Units d’Amèrica. Es va crear l’any 2000 per l’Institut Nacional d’Estàndards i Tecnologia, que s’abreuja NIST (National Institute of Standards and Technology) i també és del govern dels Estats Units.

A la figura figura es pot observar el nombre de les vulnerabilitats anuals trobades entre els anys 2000 i 2019. Les dades dibuixen tres períodes: 2000 a 2004, 2005 a 2016 i 2017 a 2019. Cadascun d’aquests períodes té un nombre d’incidències anual significativament superior al període anterior.

Figura Nombre de vulnerabilitats trobades cada any.
Font: https://nvd.nist.gov/vuln-metrics/visualizations/cvss-severity-distribution-over-time

L’increment de la població amb accés a la tecnologia i a Internet, el desenvolupament de nous camps tecnològics vinculats a les xarxes informàtiques i l’augment del coneixement d’aquestes tecnologies per un ampli ventall de perfils són algunes de les causes més probables del creixement del nombre d’incidents registrats. Aquests incidents no només són provocats per persones aïllades, sinó que últimament proliferen organitzacions que actuen de forma coordinada, com és el cas d’Anonymous.

Anonymous és el pseudònim utilitzat per diverses persones i grups que reivindiquen la llibertat d’expressió i la independència d’Internet. Alguns consideren que no tots els seus actes estan dins de la llei.

Igual que en qualsevol indústria hi ha un recurs molt útil en el disseny d’estratègies de protecció: categoritzar els atacants i els atacs.

Tipus d'atacants

La seguretat d’una xarxa es pot veure compromesa per l’actuació d’un atacant novell o expert. Que la xarxa sigui xarxa víctima potencial d’un atac dependrà de la rellevància de les dades que hi circulen i de les relacions socials de les persones que hi interactuen.

Llocs web de grans corporacions o d’esdeveniments polítics, econòmics i socials són un blanc força comú d’atacs.

Bàsicament existeixen dues categories d’atacants: els black hats i els script kiddies. Els black hats són experts que posseeixen moltes i variades habilitats i coneixements, i s’han de considerar una amenaça molt seriosa. Si l’administració d’una xarxa té la sospita de que un black hat els està estudiant cal adoptar mesures urgents. Els script kiddies són molt més nombrosos que els black hats i se’ls atribueixen la majoria d’atacs, però són una amenaça molt menor, ja que són considerats programadors inexperts que només aprofiten codi creat per altres.

Motivacions de l'atac

Les motivacions dels atacants són força variades. Poden anar des de la recerca d’un benefici econòmic fins a l’afany d’accedir a un recurs per fer-ne ús personal.

Els principals riscos d’un xarxa són la pèrdua de la integritat de les dades, la pèrdua de la confidencialitat i la pèrdua de la disponibilitat dels recursos.

La pèrdua de la integritat de les dades es produeix quan un atac aconsegueix modificar dades, programes o fins i tot el sistema operatiu. Aquesta pèrdua és especialment greu quan no s’ha detectat l’atac. Això pot provocar que es continuï treballant amb dades que no són les correctes o fins i tot que hagi instal·lat dins la xarxa un programa que permeti accessos no autoritzats. La pèrdua de confidencialitat consisteix en sostraure informació privilegiada i fer-ne ús, per exemple revelant els continguts. Si una empresa aconsegueix de manera fraudulenta informació confidencial de la competència, com per exemple els plànols d’un artefacte que està tenint gran èxit de vendes, pot utilitzar aquesta informació per fabricar una rèplica millorada del producte i assolir una posició avantatjosa en el mercat. La pèrdua de disponibilitat dels recursos es relaciona normalment amb un atac de denegació de servei.

Els atacs de denegació de servei s’identifiquen amb l’acrònim DoS, sigles de denial of service, i normalment es manifesten en atacs per inundació SYN, inundació ICMP, SMURF i inundació UDP.

Atacs comuns

Amb el conjunt d’eines IDS/IPS és possible detectar els diferents atacs que pot patir una xarxa. Els més comuns són els que es detallen a continuació:

  1. Correu brossa. Actualment els virus, els cavalls de Troia i altres programes maliciosos (malware), un cop tenen el sistema infectat acostumen a enviar correu brossa. Per detectar aquest problema de seguretat, cal buscar sistemes que estiguin generant trànsit amb destinació al port 25 d’altres sistemes d’Internet.
  2. Denegació de servei (DoS). Es tracta d’un problema de seguretat que busca deshabilitar un servei determinat. Hi ha moltes maneres de causar una denegació de servei. La més coneguda, perquè és la més complicada d’aturar, és sol·licitar una gran quantitat de connexions simultànies. Això fa que els recursos del servidor s’esgotin o bé que, simplement, el trànsit legítim es redueixi com a conseqüència de l’atac. Tot i això, aquesta no és l’única manera de provocar una denegació de servei. Per exemple, un paquet manipulat de manera especial pot fer que un dimoni produeixi un error intern i, consegüentment, el servei s’apagui. Si el dimoni en qüestió no disposa d’un sistema d’arrencada automàtic, es produeix una denegació de servei fins que un operador del sistema hi intervé.
  3. P2P/Programari piratejat. Actualment, en cas d’intrusió en un servidor, el més comú és que s’hi instal·li programari per enviar correu brossa. Anteriorment, els sistemes infectats se solien fer servir per distribuir programari piratejat (warez). En aquests casos, el trànsit d’FTP o de protocols P2P sol incrementar. Així, per detectar aquest tipus d’incident, cal revisar l’increment d’aquests protocols mitjançant un IDS/IPS o bé un sistema d’anàlisi del trànsit.
  4. Pesca. Un altre efecte dels virus és la instal·lació de programari per robar informació. Un cop instal·lat, aquest atac pot ser complicat de detectar: cal analitzar els canvis en el sistema de fitxers, analitzar els fitxers de registre de tots els dimonis o bé fer captures del trànsit de la xarxa. En cas que la pesca faci servir un nom de domini diferent del nom propi del sistema, es podria analitzar el trànsit HTTP buscant la capçalera host per detectar-lo. Si utilitzem tcpdump a Linux, ho podríem fer mitjançant les ordres següents:
  1. # tcpdump -nni enp0s3 -s 0 -w /tmp/captura 'port 80'

Si tinguéssim una mostra prou gran del trànsit, les peticions web es podrien analitzar mitjançant l’ordre següent:

  1. strings /tmp/exemple | grep Host: | awk '{ print $NF }' | sort | uniq -c | sort -n

Per poder fer els atacs que s’han descrit més amunt, cal propagar mínimament el programa maliciós. D’aquesta manera, en general, un equip infectat, independentment de la resta d’accions que se li poden fer emprendre, es converteix en un altre punt de propagació d’aquest programa. És imprescindible, doncs, analitzar periòdicament els equips per buscar-hi virus i altres tipus de programes maliciosos.

Codi corrupte

El warez és un programari amb drets d’autor que es distribueix il·lícitament. El malware és el conjunt de programes maliciosos. S’hi inclouen els virus, els cucs, els cavalls de Troia, les eines d’intrusió (rootkits) i el programari de publicitat (adware), entre d’altres.

L’ordre strings extreu les cadenes de text d’un fitxer binari.

En el cas de Linux, es pot fer servir l’antivirus de font pública ClamAV per analitzar els sistemes.

Els tallafocs més comuns

En el moment d’instal·lar un tallafoc és bàsic poder respondre tres preguntes: quines regles de tallafoc necessitem? On col·locarem el tallafoc? Quants tallafocs necessita la xarxa?

Les necessitats de la xarxa indicaran quin és el tipus de tallafoc més idoni per instal·lar. Així podem instal·lar un tallafoc en encaminador, un tallafoc en un sola màquina o un tallafoc en més d’una màquina.

Quan s’aprofita l’encaminament de dades per realitzar un filtratge d’aquestes dades s’està protegint la xarxa. Aquesta manera de treballar no és gaire recomanable, ja que aquest procés es limita a estudiar únicament l’adreça IP del paquet. L’encaminador està fent una tasca que a priori hauria de fer un tallafoc. Però en xarxes de mida reduïda és una estratègia força comuna. Tot i ser una tècnica molt simple de dissenyar i d’implementar, presenta una sèrie de problemes greus: la defensa té una carència de profunditat evident, no existeix la flexibilitat i tant les màquines públiques com les privades conviuen en la mateixa xarxa.

La xarxa de la figura només té un encaminador. En una xarxa d’aquestes dimensions és molt probable que haver d’instal·lar i gestionar un tallafoc no sigui del tot adient.

Figura Xarxa de dimensions reduïdes amb un encaminador

Característiques i tipus de tallafocs

El tallafoc és un dispositiu que presenta algunes característiques genèriques i d’altres de particulars, que permeten classificar-lo en diferents tipus. Hi ha una sèrie de característiques que s’han de conèixer per comprendre què significa utilitzar un tallafoc a la xarxa. Existeixen diferents tipus de tallafocs que es poden trobar en el mercat. Serà tasca de l’administrador escollir quin és el tallafoc més adient per a la xarxa.

Característiques del tallafoc

En general, els tallafocs presenten una sèrie de característiques comunes. Aquestes característiques són la implementació, el nivell de la gestió de seguretat que ofereix de la xarxa i el pressupost.

La implementació del tallafoc és possiblement la característica més important. La xarxa ha de seguir una política de seguretat que marcarà el nivell de protecció a aplicar. Una empresa que treballa amb dades sensibles haurà d’aplicar una política de seguretat rigorosa, mentre que en un entorn domèstic s’aplicarà un nivell de seguretat menor.

En determinades xarxes són necessaris tallafocs que permetin la gestió de la seguretat de la xarxa des del punt de vista del monitoratge, el control de la redundància i el nivell de control a aplicar. El monitoratge és una gran ajuda per detectar problemes, intrusions o un mal ús de la xarxa. La redundància a diferents nivells permet l’assegurament de la informació. És important, per tant, que el tallafoc permeti la redundància necessària i detecti i elimini, en canvi, la que resulti contraproduent. El nivell de control a aplicar a la xarxa necessita de reflexió: s’ha de decidir què es permetrà i que es negarà.

Tallafoc domèstic

Amb l’arribada d’Internet a les llars, l’ús del tallafoc ha esdevingut imprescindible per protegir els nostres equips, però la sofisticació d’un tallafoc domèstic no té res a veure amb la d’un tallafoc empresarial.

Hi ha dos tipus de nivell de control: el restrictiu i el permissiu. El control restrictiu denega tot el que no es permet explícitament, mentre que el control permissiu permet tot allò que no es prohibeix de manera manifesta.

Disposar de segons quin tallafoc pot implicar una despesa no sempre assumible. Un tallafoc pot tenir un cost econòmic nul o de molts milers d’euros (no és difícil trobar-ne per sobre dels 30.000 €). Escollirem un tallafoc o un altre en funció de les necessitats de la xarxa i del nostre pressupost.

Un cop clares les característiques dels tallafocs cal escollir el model més adequat a les nostres necessitats. Formular-nos les preguntes següents ens ajudarà a triar la millor opció:

  1. Per la nostra xarxa circulen dades sensibles? Si la resposta és afirmativa haurem d’instal·lar un tallafoc. Avui en dia, la resposta sempre és afirmativa perquè per la nostra xarxa sempre hi circularan dades sensibles.
  2. Quin grau de complexitat té la nostra xarxa? No hem de confondre una xarxa complexa amb una xarxa gran. Una empresa amb set treballadors i deu ordinadors pot disposar d’una xarxa més complexa que una que té 1.000 treballadors. Com més complexa sigui la xarxa, més eines ha d’oferir el tallafoc per gestionar-la de manera senzilla i eficaç.
  3. Quin pressupost podem dedicar al tallafoc? Quan es fa la provisió per als components de la xarxa s’ha de reservar una part del pressupost per al tallafoc. La quantitat dependrà de les respostes a les preguntes anteriors.

La necessitat marca les característiques del tallafocs

Una multinacional amb gran volum de negoci pot necessitar un tallafoc de prestacions elevades i segurament pot invertir-hi una gran quantitat de diners. En canvi, a casa podem utilitzar un ordinador antic que ja no utilitzem amb sistema operatiu Ubuntu i un tallafoc gratuït.

Com es pot veure, el tallafoc és un dispositiu amb unes característiques clarament definides. Quan coneixem la funció del tallafoc ens adonem del seu paper protagonista dins de la xarxa.

Tipus de tallafocs

Els diferents tallafocs que es poden trobar en el mercat es poden agrupar segons el preu, la seva implementació o segons la complexitat que presenta la xarxa.

En una mateixa xarxa poden conviure diferents tipus de tallafocs, ja que aquests desenvolupen tasques bastant específiques segons sigui el cas.

Tipus de tallafocs segons el preu

Actualment es poden trobar tallafocs gratuïts, tallafocs gratuïts als quals se’ls poden afegir mòduls de pagament, tallafocs gratuïts durant un període de temps i tallafocs de pagament.

Poder disposar de tallafocs gratuïts és molt convenient per a aquelles corporacions que no poden invertir gaire en la xarxa, però que necessiten que aquesta ofereixi unes mínimes garanties.

  • Logotip del programa Shorewall molt utilitzat en xarxes mitjanes i grans.
  • Logotip del programa Shorewall molt utilitzat en xarxes mitjanes i grans.

Les empreses que fabriquen màquines tallafoc generalment també desenvolupen programari tallafoc. La gama de preu és molt àmplia, i la variable que utilitzen aquestes empreses és el nivell de seguretat que garanteixen.

Un tallafoc gratuït no ofereix el suport tècnic que en principi pot oferir un de pagament, però per contra un bon tallafoc per a empreses pot ser molt car.

Tipus de tallafocs segons la implementació

En el mercat existeixen tallafocs de maquinari i de programari. Així, podem descarregar un tallafoc gratuït d’Internet, o bé comprar un paquet de programari o comprar una màquina que faci aquesta funció.

  • Logotip de Check Point que comercialitza tant màquines com programes tallafocs./4
  • Logotip de Check Point que comercialitza tant màquines com programes tallafocs.

Les marques més reconegudes de màquines tallafoc són SonicWALL, Barracuda, Check Point, Cisco, RSA, Juniter i Watchguard. Els preus mitjans d’equips professionals estan al voltant dels 6.000 €, però aquestes marques tenen models que poden sobrepassar els 50.000 €. En la figura es mostra un model de tallafoc de l’empresa SonicWALL, especialitzada en el sector de la seguretat.

Figura Model de tallafoc de la marca SonicWALL

Les màquines tallafoc poden tenir objectius de defensa genèrics o poden estar dedicades a un servei determinat. En aquest segon cas, per exemple, cal citar tallafocs dissenyats específicament per a serveis de correu que tenen com a objectiu controlar el correu brossa.

Tipus de tallafocs segons la complexitat

La confidencialitat és una característica tant important de les xarxes que en moltes ocasions les defineix. L’administrador de la xarxa prendrà les decisions que tinguin a veure amb la seguretat en funció de la complexitat de la xarxa i de la importància de les dades que s’han de protegir.

Correu brossa

El correu brossa o spam són missatges de correu que arriben a un client que no els ha sol·licitat. L’spamming genera importants pèrdues econòmiques a les empreses que el pateixen.

Tenint en compte aquesta complexitat es poden identificar tres grans grups de tallafocs:

  1. Els tallafocs personals
  2. Els tallafocs de departament
  3. Els tallafocs d’empresa

El tallafoc personal s’instal·la generalment en àmbits domèstics o negocis molt petits. Aquest tallafoc normalment ha de protegir un únic ordinador o una petita xarxa, fins i tot és probable que s’instal·li en el mateix equip de treball. Alguns sistemes operatius inclouen un tallafoc instal·lat pensat per a ús domèstic. Algunes empreses comercialitzadores d’equips informàtics, d’equips de xarxa o de sistemes operatius inclouen tallafocs preinstal·lats en els seus productes.

Els sistemes operatius de Microsoft incorporen un programa amb les funcionalitats pròpies d’un tallafoc personal.

El tallafoc de departament ofereix una sèrie de serveis a una xarxa informàtica. El volum de dades que ha de gestionar aquest tipus de tallafoc comença a ser important i el manteniment i configuració del tallafoc requereix coneixements tècnics.

El tallafoc empresarial pot ser un equip molt potent o bé el conjunt format per diversos tallafocs de departament. L’ús i manteniment d’aquest tipus de tallafoc exigeix molta dedicació. Generalment l’administració de la xarxa acaba per automatitzar processos per gestionar aquests tallafocs, ja que habitualment el volum de dades que hi circulen és massa gran per fer-ho sense suport automàtic. Actualment existeixen en el mercat empreses que centren el seu negoci en la fabricació d’aquests equips. Generalment són equips que han de ser operats per treballadors amb una formació específica i un alt grau de coneixements de xarxa.

La taula resumeix les característiques més remarcables dels diferents tipus de tallafocs.

Taula: Resum de característiques dels diferents tipus de tallafocs
Tallafoc personal Tallafoc de departament Tallafoc empresarial
Nombre de màquines 1 o cap 1 1 o més
Complexitat Baixa Alta Molt alta
Requeriments tècnics No Recomanable Imprescindible
Actualització Constant Constant Constant

Quin tallafoc escollir

Arriba un moment en què tot administrador d’una xarxa ha de prendre una decisió crucial: quin tallafoc instal·lo? Haurà de tenir en compte les qüestions següents:

  1. La política de seguretat que se segueixi
  2. El nivell de control
  3. El pressupost

La política de seguretat a aplicar depèn bàsicament de les dades sensibles que circulin per la xarxa. Si, per exemple, hi circulen dades personals, caldrà aixecar totes les barreres necessàries per no posar en perill la integritat i confidencialitat d’aquestes dades. En aquest cas, doncs, s’haurà d’establir una política de seguretat rígida. Val a dir que un tallafoc no és l’únic element en una política de seguretat: un altre aspecte molt important és l’accés dels usuaris a la xarxa amb dispositius extraïbles, la visibilitat de dades des de dispositius d’oficina o l’accés al recinte de persones alienes a l’empresa.

Pel que fa al nivell de control d’una xarxa es pot adoptar una postura restrictiva o una postura permissiva. El tipus de tallafoc a implementar dependrà de si s’adopta una postura restrictiva o una postura permissiva pel que fa al nivell de control.

Figura Tallafoc de gama alta de Cisco

El pressupost és una dada que sempre marca l’elecció dels equips que conformen la xarxa. En el mercat es poden trobar tallafocs de preus molt diversos i en ocasions resulta difícil triar la millor opció. En la figura hi ha un exemple de tallafoc amb moltes prestacions i que implica disposar d’un alt pressupost. Depenent del requeriment de la xarxa, un equip d’aquest perfil hi tindria cabuda.

Escollir el tallafoc adient és una tasca complexa que requerirà un temps de reflexió.

Exemple de decisió

A l’hora d’escollir un tallafoc és convenient que ens fem aquestes preguntes: De quin pressupost disposo? Circulen dades especialment sensibles per la xarxa? El tallafoc que s’utilitzarà serà un programa o una màquina? El tallafoc escollit cobreix totes les necessitats de la xarxa o s’ha de complementar amb un altre tallafoc?

Suposem que una empresa de nova creació que es dedica a la fabricació artesanal de cotxes us demana assessorament. Disposen d’una petita xarxa informàtica que consta de cinc ordinadors personals que s’utilitzen en tasques de producció i administració. Un d’aquests ordinadors fa tasques de servidor (dóna accés a Internet, emmagatzema les dades personals dels clients i realitza còpies de seguretat). Acaben d’incorporar en plantilla a una persona que ha finalitzat el grau mitjà d’informàtica. La pregunta que us fan és: com protegim les dades de l’empresa?

Solució

  1. De quin pressupost disposo? Resposta: com a màxim es poden invertir 500 € en la protecció de la xarxa.
  2. Circulen dades especialment sensibles per la xarxa? Resposta: Sí. A més, durant una visita a l’empresa es detecta un punt d’accés sense cables.
  3. El tallafoc que s’utilitzarà serà un programa o una màquina? Resposta: La màquina que fa de servidor està força atapeïda. Es fa un estudi de rendiment i es valora afegir un equip que realitzi tasques de tallafoc.
  4. El tallafoc escollit cobreix totes les necessitats de la xarxa o s’ha de complementar amb un altre? Resposta: Encara no s’ha escollit el tallafoc, però ja se sap que serà una màquina que no excedeixi dels 500 €, que haurà de filtrar el trànsit d’entrada i sortida de la xarxa i que possiblement tregui serveis al servidor actual. Amb un tallafoc n’hi haurà prou.

Funcions principals del tallafoc

La funció principal d’un tallafoc és la defensa de la xarxa. Un tallafoc ha de preveure un atac i parar els accessos no autoritzats a la xarxa. Eliminar virus no és feina del tallafoc, però sí que ho és proporcionar seguretat i protecció davant de l’entrada de virus.

Des del punt de vista de l’entitat que utilitza la xarxa, el tallafoc és l’instrument que assegura la confidencialitat, la integritat i la disponibilitat de les dades que estan viatjant per la xarxa o bé que estan emmagatzemades en els dispositius que pertanyen a la xarxa.

La confidencialitat d’una part o de la totalitat de la informació que circula o s’emmagatzema en un xarxa ha d’estar protegida. La integritat de les dades indica si podem tenir la certesa de que la informació no ha estat modificada sense permís. La disponibilitat de les dades significa que s’hi pot accedir.

El concepte entitat fa referència a una empresa, a una societat, una corporació o qualsevol persona o grup de persones que disposin d’una xarxa informàtica.

Habitualment, la relació existent entre aquests tres conceptes es representa en forma de triangle. A la figura es veuen factors bàsics en la gestió de la informació i els seus atributs de seguretat:

  1. La seguretat personal és el factor més extern i estarà marcat per l’educació de l’usuari en la matèria.
  2. La seguretat física marcarà l’accés a dispositius
  3. Programari, maquinari i comunicacions estan al mateix nivell i permeten accedir a la disponibilitat, confidencialitat i integritat de la informació.
Figura Triangle dels conceptes confidencialitat, integritat i disponibilitat

Confidencialitat, integritat i disponibilitat són els tres atributs de la seguretat de la informació.

Un tallafoc s’encarrega de contenir els atacs a la xarxa i d’identificar l’atacant. Per aconseguir-ho pot filtrar el trànsit estudiant les adreces IP o el servei que s’està utilitzant.

Tot i que l’ús de tallafoc presenta més avantatges que inconvenients, cal comentar aquests últims per tal de assolir una comprensió més completa del seu funcionament. L’ús del tallafoc pot provocar problemes de fiabilitat, de rendiment o de flexibilitat.

L’RGPD, del 27 d’abril de 2016, garanteix la protecció de les dades personals.

Una de les normes que se segueix en el disseny de xarxes segures és, primer de tot, comprovar la correcta connectivitat general i a continuació aplicar les polítiques de seguretat. La pràctica ens demostra que la fiabilitat de la xarxa pot disminuir a causa del tallafoc. Fer passar tot el trànsit de xarxa per un mateix punt té un gran risc, ja que aquest punt concentra el risc d’incidents. Si per error el trànsit no pot traspassar el tallafoc, la xarxa deixa d’estar disponible, i això contradiu el mateix sentit de la xarxa.

Una situació per desgràcia bastant recurrent és la que s’esdevé en xarxes ben dissenyades i implementades, però que presenten un baix rendiment quan arriben a la frontera del tallafoc. Per què passa, això? Per què el rendiment de la xarxa és tan baix? Es pot donar el cas que el tallafoc provoqui un coll d’ampolla, a causa en molts casos d’una línia lenta (no és inusual que s’utilitzi el mateix ample de banda de la xarxa per conduir tot el trànsit al tallafoc) perquè el tallafoc té instal·lades unes interfícies de baixa velocitat o bé perquè el mateix tallafoc està per sota del perfil de rendiment de la xarxa.

Per naturalesa, una xarxa ha de presentar una certa flexibilitat. És curiós que puguem estudiar la progressió i l’estratègia d’una empresa limitant-nos a observar la configuració i utilització que fa de la tecnologia. La xarxa informàtica és una eina al servei de l’empresa i, com aquesta, pot canviar al llarg del temps. Els tallafocs poden ser un handicap en aquesta evolució. Les capacitats d’una xarxa poden veure’s limitades per la presència del tallafoc.

Com podem solucionar els problemes de fiabilitat, rendiment i flexibilitat? Una manera de sortejar els inconvenients dels tallafocs és usar diversos tallafocs en diferents zones de la xarxa i no deixar així la xarxa depenent d’un únic tallafoc.

És força comú trobar programes que disposen d’estructures de seguretat pròpies a priori suficients. Aquests programes treballen independentment del tallafoc, sense relacionar-s’hi, però en conjunt formen un bloc operatiu.

Configuració i utilització del tallafoc

Configurar i utilitzar el tallafoc no són tasques senzilles, almenys en un inici. És important treballar correctament per no convertir un projecte engrescador en un malson. Perquè, efectivament, realitzar aquesta tasca de manera incorrecta pot generar uns problemes tant greus que la xarxa quedi anul·lada o que, si més no, perdi flexibilitat i capacitat de servei.

Combinació de mesures

Es pot avaluar la fortalesa de la xarxa estudiant la implicació i varietat de mesures defensives aplicades. Podem fer treballar els tallafocs en combinació amb altres mesures de seguretat.

Per treballar de manera coherent i avançar amb pas segur cal entendre el model de desenvolupament d’un tallafoc i assajar els passos descrits per tal d’aprofitar al màxim el temps dedicat.

Model de desenvolupament d'un tallafoc

L’establiment i configuració d’un tallafoc ha de seguir una sèrie de passos. És important respectar l’ordre d’aquestes fases si es pretén desenvolupar una eina pràctica i eficaç. Els passos són:

  1. Especificació dels requisits
  2. Justificació
  3. Disseny arquitectònic
  4. Disseny de directives
  5. Implementació
  6. Prova
  7. Administració i manteniment

Prenent aquests punts com a guia es tindran més probabilitats d’èxit en la implementació d’un tallafoc.

Especificació dels requisits

Cal documentar la funció del tallafoc. Aquesta afirmació no és trivial, ja que dedicar un cert temps a pensar quines són les amenaces i riscos específics que es volen evitar amb el tallafoc és molt important.

Una xarxa concreta es veurà amenaçada per determinades entitats i en una major o menor quantia. L’elecció del tallafoc s’ha de fer en una escala lògica dins el sistema al qual pertany.

Algunes de les tasques que li podem demanar al tallafoc són:

  1. Bloquejar l’entrada i sortida de trànsit d’un segment de xarxa.
  2. Bloquejar l’entrada i sortida de trànsit amb adreces IP privades.
  3. Bloquejar l’accés a un determinat amfitrió.
  4. Bloquejar l’accés a determinat trànsit que vagi a un determinat amfitrió.

Haureu de redactar en un document els requisits específics de la vostra xarxa.

Un tallafoc no pot anul·lar una xarxa, ha de permetre que aquesta doni servei als seus usuaris.

Exemple de requisits

Un exemple de redactat dels requisits d’un tallafoc podria ser la següent:

La nostra xarxa ha de garantir determinats serveis als usuaris interns de la xarxa i als usuaris externs de la xarxa. Els usuaris interns podran accedir sempre a Internet, al servidor que allotja els cursos virtuals i al servidor de fotografies. Els usuaris externs només podran accedir al servidor que allotja els cursos virtuals.

Justificació

Cal justificar la implementació d’un tallafoc? Aquesta comporta una despesa de temps d’estudi, instal·lació, configuració i manteniment, i també pot suposar una despesa econòmica en cas que el tallafoc no sigui gratuït. Per acabar, també suposa una despesa organitzativa. Per tant, cal justificar la necessitat que tenim del tallafoc.

Això implica analitzar la seguretat de la xarxa, fer una valoració de les amenaces i els riscos i fer una proposta en funció de la informació obtinguda. És una tasca molt important, ja que és al tècnic a qui es demanaran responsabilitats si es produeix un atac que compromet la seguretat de la xarxa.

La seguretat d’una xarxa és un assumpte que implica molta agilitat i requereix quantiosos esforços tècnics i humans. La varietat d’atacs i la seva continuïtat forcen els administradors de la xarxa a buscar i aplicar contínuament mesures defensives. Una baixada en la intensitat i efectivitat d’aquestes mesures pot resultar fatal per a la xarxa.

La justificació de l’ús d’un tallafoc es realitzarà per escrit i es lliurarà a la direcció de l’organització.

Documentació de les necessitats

Suposem que, després de realitzar una anàlisi de les dades que circulen i s’emmagatzemen en una xarxa informàtica i el perfil d’usuari que hi accedeix, veiem la necessitat d’instal·lar-hi un tallafoc. El nivell de seguretat actual que s’aplica és insuficient i hem comprovat que la xarxa no disposa dels recursos necessaris per detectar una intrusió i que tampoc no la podria evitar o contrarestar, ni assegurar la informació. S’afegiria a l’escrit de justificació de la necessitat d’un tallafoc un informe tècnic amb aquestes dades.

Disseny arquitectònic

L’arquitectura que segueixen la majoria de tallafocs depèn de les característiques de cada xarxa en particular i del seu entorn.

El disseny arquitectònic consisteix a decidir quina és l’arquitectura de tallafoc més adient perquè sigui òptim.

Seguir aquests passos pot ser de molta ajuda per desenvolupar el disseny arquitectònic:

  1. Estudiar les arquitectures de tallafoc candidates.
  2. Fer la simulació de com funcionaria cada una d’elles en la nostra xarxa.
  3. Ordenar les arquitectures de millor a pitjor segons les nostres necessitats.
  4. Implementar la tecnologia candidata realitzant les modificacions necessàries per emmotllar-la de la forma més eficient a la xarxa.

El disseny arquitectònic implica en moltes ocasions una revisió del pla i una nova justificació, ja que es pot donar el cas que una vegada implementada una tecnologia sorgeixin vulnerabilitats que no es poden corregir amb l’opció escollida inicialment.

Disseny de directives

A més del correcte estudi de necessitats, cal fer un bon disseny de directives. Hem de dedicar temps i esforços a aquesta fase, ja que és la base del futur funcionament del sistema de defensa.

El disseny de directives és el responsable de l’especificació detallada de com ha d’actuar un tallafoc davant de paquets que tenen determinades característiques.

El disseny de directives implica pensar les regles que gestionaran el funcionament del tallafoc. Consisteix bàsicament a:

  1. Identificar les màquines que tindran permís per accedir a determinats serveis.
  2. Identificar les característiques del trànsit de dades.
  3. Documentar el procés especificant el tractament de la informació per part del tallafoc.

La tasca de documentació és important. I és especialment important documentar el disseny de directives, encara que el tallafoc s’apliqui sobre una xarxa petita. Elaborar aquesta documentació facilitarà la detecció de problemes i incompatibilitats de la nostra gestió.

Un exemple de regles seria:

-A FORWARD -o enp0s3 -i enp0s4 -d 192.168.0.8 -p tcp --dport 80 -j ACCEPT
-A FORWARD -o enp0s3 -i enp0s5 -d 192.168.0.8 -p tcp --dport 80 -j ACCEPT
-A FORWARD -o enp0s3 -i enp0s6 -d 192.168.0.8 -p tcp --dport 80 -j ACCEPT
-A FORWARD -o enp0s3 -i enp0s4 -d 192.168.0.8 -p tcp --dport 22 -j DROP
-A FORWARD -o enp0s3 -i enp0s4 -d 200.168.0.5 -p tcp --dport 80 -j DROP
-A FORWARD -o enp0s3 -i enp0s7 -d 192.168.0.8 -p udp --dport 80 -j DROP
-A FORWARD -o enp0s3 -i enp0s8 -d 192.168.0.8 -p tcp --dport 80 -j ACCEPT
-A FORWARD -o enp0s3 -i enp0s8 -d 200.100.0.6 -p udp --dport 80 -j DROP

Les línies de codi defineixen unes regles determinades. Abans d’inserir-les en el tallafoc ha calgut realitzar un treball previ de disseny. Aplicar regles de forma errònia pot causar greus problemes de funcionament a la xarxa.

Hi ha dos corrents bàsics en el disseny de directives: tallafocs amb perfils restrictius i tallafocs amb perfils permissius. Els tallafocs restrictius bloquegen els paquets que no coincideixen amb les regles. Els tallafocs permissius accepten els paquets que no coincideixen amb les regles. Quin perfil és millor? La resposta no és senzilla. A priori es podria considerar que una política restrictiva és més segura, però aquesta política pot no proporcionar la flexibilitat necessària per al funcionament normal de la xarxa.

Per començar a dissenyar directives es pot utilitzar una plantilla com la de la taula

Taula: Plantilla exemple
Acció Interfície Estat TCP Protocol Origen PortO Destinació PortD Comentari
  • Acció: defineix l’acció a realitzar. Generalment els paquets es poden acceptar, rebutjar, eliminar o registrar.
  • Interfície: indica la interfície a la qual arriba un paquet entrant o la interfície a la qual es dirigeix un paquet sortint. Amb la versió v197 del gestor de dispositius de Linux systemd/udev, s’assignaran de forma automàtica i predictible noms estables per a les interfícies de xarxes locals Ethernet (en), WLAN(wl) i WWAN(ww). Això és un canvi respecte a la forma tradicional d’anomenar les interfícies de xarxa (eth0, eth1, wlan0, …) que s’ha realitzat per solucionar problemes de configuració, mantenint ara les interfícies el mateix nom, tot i reiniciar l’ordinador. Aquesta nova nomenclatura s’utilitza ja a partir d’Ubuntu 16 i Debian 9. Per exemple, l’antiga interfície eth0 ara s’anomenarà enp0s3, on en indica el tipus de xarxa, en aquest cas Ethernet (en) - les altres que opcions poden ser: WLAN(wl) i WWAN(ww). La p indica el tipus de bus (en aquest cas, PCI): el p0 és el primer bus i la s indica en quin slot està. En aquest nou sistema hi ha 5 esquemes en funció de la informació proporcionada pel maquinari per escollir la manera d’anomenar les interfícies de xarxa; el cinquè i darrer d’aquests esquemes les anomena segons l’antiga nomenclatura.
  • Estat: per a tallafocs que disposen d’estat (l’antic tallafoc IPChains, per exemple, no en disposava), s’indica l’estat de la connexió. Genèricament aquest valor serà nova, establerta o relacionada.
  • TCP: identifica indicadors de TCP (Transmission Control Protocol). Poden ser-ho SYN o ACK.
  • Protocol: indica el protocol a tractar. Aquests poden ser TCP, UDP, ICMP o tots.
  • Origen: indica l’adreça IP origen del paquet. L’adreça 0.0.0.0 indica que s’accepta qualsevol adreça IP.
  • PortO: indica el port d’origen per als protocols TCP i UDP, però també el tipus de datagrama ICMP en el cas que es tracti d’un paquet ICMP.
  • Destinació: indica l’adreça IP de destinació del paquet. L’adreça 0.0.0.0 indica que s’accepta qualsevol adreça IP.
  • PortD: indica el port de destinació per als protocols TCP i UDP, però també el tipus de datagrama ICMP en el cas que es tracti d’un paquet ICMP.
  • Comentari: en aquesta columna es poden afegir comentaris per donar justificació o explicació a l’acció.
    La plantilla proposada és força genèrica i pot servir com a punt de partida, però finalment cada responsable de seguretat crearà la seva pròpia plantilla per tal d’ajustar-la a les seves necessitats.

Podeu ampliar la informació de la versió v197 del gestor de dispositius de Linux systemd/udev a la secció “Annexos”, a l’enllaç “Nomenclatura consistent pels dispositius de xarxa” del web del mòdul”.

La taula reflecteix la especificació de requisits següent: els usuaris interns podran accedir sempre a Internet, al servidor que allotja els cursos virtuals i al servidor de fotografies. Els usuaris externs només podran accedir al servidor que allotja els cursos virtuals.

Taula: Quadre resum de directive
Acció Interfície Estat TCP Protocol Origen PortO Destinació PortD Comentari
Acceptar 0 Establerta Tots Tots La xarxa interna Tots Sortida Internet Tots Permetre l’accés a Internet
Acceptar 0 Establerta Tots Tots La xarxa interna Tots IP del servidor de cursos virtuals Tots Permetre l’accés al servidor de cursos virtuals
Acceptar 0 Establerta Tots Tots La xarxa interna Tots IP del servidor de fotografies Tots Permetre l’accés al servidor de fotografies
Acceptar 1 Establerta El que calgui El que calgui La xarxa externa Tots IP del servidor de cursos virtuals El que calgui Permetre l’accés al servidor de cursos virtuals
Denegar 0 Tot Tot Tot Tot Tot Tot Tot Denegar tot el que no s’hagi permès abans
Denegar 1 Tot Tot Tot Tot Tot Tot Tot Denegar tot el que no s’hagi permès abans

Quan es dissenyen directives cal tenir molt clar l’ordre en el qual s’escriuen, ja que si, per exemple, primer ho deneguem tot ja no podrem permetre res: haurem eliminat tot el trànsit.

En aquest punt caldrà realitzar una revisió del disseny abans d’entrar a la fase d’implementació. És molt important no cometre errors durant la fase de disseny. Tot error no detectat a temps pot afectar a la feina realitzada.

Implementació

La implementació del tallafoc consisteix a aplicar les directives dissenyades al tallafoc escollit. En aquest procés es duu a la pràctica la teoria desenvolupada en el disseny segons les possibilitats físiques reals del tallafoc.

L’esforç de la implementació se centra en configurar el tallafoc de tal manera que compleixi les directives dissenyades.

  • Una porta gran i robusta amb un aspecte bastant agressiu. És el que instal·laríem a casa? No s'ha de confondre valor i preu. S'ha d'escollir el que la xarxa necessiti.
  • Una porta gran i robusta amb un aspecte bastant agressiu. És el que instal·laríem a casa? No s'ha de confondre valor i preu. S'ha d'escollir el que la xarxa necessiti.

El més important en aquesta fase és decidir quin tipus de tallafoc utilitzar. Decidides les directives caldrà escollir el programa o màquina tallafoc que permeti realitzar les accions dissenyades. En resum, les variables que ens ajudaran a seleccionar el tallafoc poden ser:

  • Funcions que el tallafoc ha de realitzar (bàsicament NAT, registre i control)
  • Estabilitat del tallafoc
  • Rendiment del tallafoc
  • Facilitat d’ús del tallafoc
  • Documentació disponible
  • Cost econòmic i tecnològic

Avaluant aquestes variables es podrà decidir justificadament quin tallafoc implementar.

Prova

En aquesta fase es prova si el disseny de directives ha estat el correcte i si la seva implementació en el tallafoc compleix els objectius.

Durant el procés de prova s’han de realitzar accions permeses i no permeses per comprovar la correcta resposta del tallafoc. A causa d’errors de disseny o d’errors d’implementació, un tallafoc pot treballar de forma incorrecta i permetre accions prohibides i denegar accions permeses.

No realitzar proves genera problemes

Són innumerables les ocasions en què un usuari inexpert instal·la un tallafoc i deixa sense accés a Internet a tots els usuaris d’una xarxa. Ha provat el tallafoc abans? Segurament no. Ha realitzat tots els passos que s’han de seguir en el procés d’implantació d’un tallafoc? Segurament tampoc.

Administració i manteniment

Una vegada dissenyat, implementat i provat un tallafoc, cal realitzar tasques d’administració i manteniment. La xarxa informàtica presenta moviments continus de dades i evolucions constants, i això justifica que el tallafoc s’hagi d’anar estudiant i millorant.

Val la pena dedicar una mica de temps a experimentar amb diverses aplicacions gratuïtes, com Webmin (figura), que simplifica molt la gestió d’un tallafoc i permet guanyar molt temps en els processos de configuració i seguiment d’esdeveniments de la xarxa.

Figura Pàgina inicial de Webmin

La lectura dels registres generats pel tallafoc ajudarà a comprovar els intents d’accions no permeses, i la continua revisió de les directives i l’actualització de versions, tant de programari com de maquinari, faran menys vulnerable el tallafoc.

Filtratge de paquets de dades

Per fer el filtratge dels paquets de dades cal veure amb una mica de detall com viatgen les dades. Els principals datagrames que es desplacen per la xarxa informàtica són datagrames IP, ICMP, UDP i TCP. No oblidem que els tallafocs filtren paquets, per tant, si volem extreure informació valuosa de les dades que ens acabarà retornant el tallafoc hem de ser capaços d’analitzar amb coneixement de causa aquesta informació.

Per estudiar els paquets que circulen per la xarxa és recomanable usar programes tipus Wireshark. En la figura apareix una imatge de la pantalla principal d’aquest programa quan està en funcionament.

Figura Captura amb Wireshark de tràfic de xarxa

Datagrames IP

Un datagrama IP (Internet Protocol) està format per dues parts: la capçalera i el cos. La capçalera està formada per sis paraules o més de 32 bits. Dins del cos hi ha el missatge, per exemple un missatge TCP/IP.

A la capçalera es pot trobar la informació següent:

  • Versió IP: són 4 bits que indiquen el número de versió del protocol IP. Tot i que actualment es treballa de forma habitual amb la versió 4 d’IP, ja fa temps que s’ha iniciat el canvi a la versió 6.
  • Longitud de capçalera: són 4 bits que indiquen la longitud de la capçalera. Per realitzar aquesta acció s’empren paraules de 32 bits, sent la longitud mínima d’una capçalera de 20 bytes.
  • Tipus de servei: són 8 bits que

s’utilitzen per indicar si el datagrama ha de ser reenviat o s’ha de realitzar qualsevol altra acció.

  • Longitud de datagrama: són 16 bits que indiquen la longitud del datagrama IP en bytes. És important tenir en compte que aquesta longitud inclou la capçalera i el cos.
  • Identificador de paquet: són 16 bits que identifiquen a quin datagrama pertanyen els paquets d’informació.
  • Indicador de fragmentació: són 3 bits que indiquen si el datagrama està fragmentat o no. Aquest indicador s’utilitza sobretot per comprovar si tots els fragments del datagrama han arribat a la destinació quan es rep l’últim fragment.
  • Desplaçament de fragmentació: són 13 bits que s’utilitzen per indicar la posició del fragment dins del datagrama.
  • Temps de vida: són 8 bits que s’utilitzen per evitar que els datagrames circulin indefinidament dins d’una xarxa. Aquest valor decreix en una unitat cada vegada que el paquet travessa un encaminador. En arribar el valor zero, el paquet ja no es reenvia i es retorna un missatge d’error.
  • Protocol: són 8 bits que indiquen el tipus de dades contingut. Alguns exemples són 1 per ICMP, 6 per TCP o 17 per UDP.
  • Suma de comprovació: són 16 bits que s’utilitzen per comprovar la integritat de la capçalera. Aquest camp no indica res sobre la integritat del cos del missatge.
  • IP origen: són 32 bits que indiquen l’adreça IP de la màquina que ha enviat el datagrama.
  • IP destinació: són 32 bits que indiquen l’adreça IP de la màquina a qui va destinat el datagrama.
  • Opcions i farcit: es tracta d’un camp de longitud variable que pot indicar diferents opcions d’IP. S’ha d’omplir fins arribar a 32 bits.

En la figura es mostra l’estructura d’un datagrama IP. Aquesta estructura s’acaba aprenent gairebé de memòria quan es realitza el filtratge de paquets que circulen per una xarxa.

Un datagrama es pot fragmentar en paquets d’informació. Tots els paquets d’informació que pertanyin a un mateix datagrama tindran el mateix identificador de paquet.

Figura Capçalera d’un paquet IP
http://www.cisco.com/

Datagrames ICMP

Els datagrames ICMP (Internet Control Message Protocol) s’utilitzen principalment per realitzar proves de xarxa o retornar codis d’error. Els datagrames ICMP no viatgen sols per la xarxa, sinó que són transportats dins del cos dels datagrames IP.

Dins d’un datagrama ICMP es pot trobar la informació següent:

  • Tipus de missatge: són 8 bits que indiquen el tipus de missatge ICMP.
  • Codi de missatge: són 8 bits que s’utilitzen per proporcionar informació detallada del tipus de missatge ICMP.
  • Comprovació de suma: són 16 bits que s’utilitzen per comprovar la integritat del missatge ICMP.
  • Dades ICMP: té una longitud variable i el seu contingut variarà segons el tipus de missatge.

Alguns dels tipus de missatge que existeixen són:

Per a més informació sobre els datagrames ICMP consulteu l’RFC 792.

  • 0: resposta ECO.
  • 3: no es pot arribar a la destinació.
  • 4: s’ha arribat a la destinació.
  • 5: redireccionament.
  • 8: ECO.
  • 11: temps de vida esgotat.
  • 12: problema amb algun paràmetre.
  • 13: data i hora.
  • 14: resposta de data i hora.
  • 15: sol·licitud d’informació.
  • 16: resposta d’informació.

Alguns codis de missatge són:

  • 0: no es pot arribar a la xarxa.
  • 1: no es pot arribar a la màquina de destinació.
  • 2: protocol inassolible.
  • 3: port inassolible.
  • 4: és necessari fragmentar la informació.
  • 5: error en la ruta d’origen.

En la figura es mostra l’estructura d’un datagrama ICMP. Com es pot observar, va precedit per la capçalera IP.

Figura Capçalera d’un datagrama ICMP

Datagrames UDP

Els datagrames UDP s’utilitzen principalment en protocols com DHCP, BOOTP o DNS. El protocol UDP (User Datagram Protocol), situat a la capa 4 del model OSI, permet l’enviament de datagrames sense haver establert connexió prèviament. Això és possible ja que el protocol UDP conté a la capçalera tota la informació necessària per realitzar l’adreçament. Els datagrames UDP no viatgen sols per la xarxa, sinó que són transportats dins del cos dels datagrames IP. Aquest protocol no treballa amb confirmació d’entrega ni de recepció, ni es preocupa de controlar el flux del trànsit. Treballant amb UDP els paquets que es transmeten poden arribar de forma desordenada a la destinació i allà s’hauran d’ordenar correctament.

Dins d’un datagrama UDP es pot trobar la informació següent:

  • Port d’origen: són 16 bits que indiquen quin és el port origen del datagrama.
  • Port de destinació: són 16 bits que indiquen quin és el port de destinació del datagrama.
  • Longitud del datagrama: són 16 bits que indiquen la longitud en bytes del datagrama. Aquest valor és el total de sumar la capçalera i les dades del datagrama UDP.
  • Suma de comprovació: són 16 bits que indiquen la integritat de la capçalera IP, la capçalera UDP i les dades UDP.
  • Dades UDP: és de longitud variable segons les necessitats.

La figura mostra l’estructura d’un datagrama UDP.

Figura Capçalera d’un datagrama UDP

La comunicació entre entre aplicacions per UDP requereix l’ús de ports. Els ports possibles per al protocol UDP són els que van del 0 al 65535.

Si per exemple es necessita emetre veu o imatge generalment s’utilitzarà el protocol UDP. Treballant amb UDP es prioritza la velocitat a la generació d’errors o a la pèrdua d’informació.

La raó per la qual els ports vàlids per al protocol UDP van del 0 al 65535 és que a l’estructura del paquet UDP es dediquen 16 bits per marcar aquest valor. I 216 = 65535.

Datagrames TCP

Els datagrames TCP (Transport Control Protocol) s’utilitzen principalment en la comunicació entre equips de xarxa on s’ha de garantir el lliurament de dades de manera ordenada i sense errors. Els datagrames TCP no viatgen sols per la xarxa, sinó que són transportats dins del cos dels datagrames IP.

Dins d’un datagrama TCP es pot trobar la informació següent:

  • Port d’origen: són 16 bits que indiquen el port origen del datagrama.
  • Port de destinació: són 16 bits que indiquen el port de destinació del datagrama.
  • Número de seqüència: són 32 bits que indiquen la posició del datagrama dins del grup de dades. Aquest número serveix per acoblar els datagrames quan arribin a la destinació en ordre i detectar si s’ha produït algun error.
  • Número de reconeixement: són 32 bits que s’utilitzen per informar al receptor del datagrama que el remitent ha processat els datagrames anteriors. Aquest camp s’utilitza per garantir el lliurament dels datagrames.
  • Desplaçament de dades: són 4 bits que indiquen la mida de la capçalera TCP. Aquesta quantitat es mesura en paraules de 32 bits.
  • Indicadors TCP: són 8 bits que s’utilitzen per indicar diferents condicions i esdeveniments.
  • Finestra: són 16 bits que s’utilitzen per sincronitzar la comunicació entre equips que tenen diferents velocitats de dades.
  • Suma de comprovació: són 16 bits que s’utilitzen per comprovar la integritat de la capçalera i les dades.
  • Punter urgent: són 16 bits que s’utilitzen quan l’indicador URG està establert.
  • Dades: és de longitud variable i conté les dades.

A la taula es mostren alguns dels indicadors i la seva descripció.

Taula: Indicadors TCP
Posició del bit Indicador Descripció
0 SYN Indica l’inici d’una connexió TCP.
1 ACK El número de reconeixement indica el número de seqüència dels proper byte de dades.
2 RST Indica que el remitent ha interromput la connexió.
3 PSH Indica que el receptor ha de permetre que les dades siguin disponibles per a la capa d’aplicació.
4 URG Identifica dades que s’han de processar urgentment.
5 FIN Indica que el remitent ha completat la comunicació i procedirà a tancar la connexió.
6-7 RES En determinades ocasions s’utilitza per indicar que la xarxa està congestionada.

El protocol TCP l’utilitzen protocols com HTTP, SMTP, SSH o FTP. A més és emprat per navegadors, programes d’intercanvi de fitxers o clients FTP.

En la figura es mostra l’estructura d’un datagrama TCP.

Figura Capçalera d’un datagrama TCP

Quan s’estableix una comunicació entre una aplicació emissora i una aplicació receptora és necessari assignar com a mínim un número de port vàlid a cada extrem. Els ports possibles per al protocol TCP són els que van del 0 al 65535.

Instal·lació del tallafoc. Ubicació

La decisió d’instal·lar o no un tallafoc no comporta grans maldecaps. En la majoria d’ocasions la resposta és clara: sí, necessites instal·lar un tallafoc. El que no és tan evident és on s’ha d’instal·lar el tallafoc.

La raó per la qual els ports vàlids per al protocol TCP van del 0 al 65535 és que a l’estructura del paquet TCP s’hi dediquen 16 bits per marcar aquest valor: 216 = 65535.

Una xarxa informàtica segueix una arquitectura de disseny i una norma d’implementació on cada component està ubicat on pertoca. No es tracta d’endollar aparells a la xarxa i esperar que facin la seva tasca. Caldrà analitzar on s’haurà d’ubicar el tallafoc dins la xarxa perquè aquest sigui més efectiu.

Existeixen una sèrie d’arquitectures força comunes que han estat provades abastament, la qual cosa ens proporciona una valuosa informació sobre els seus avantatges i inconvenients. Es comenten tres arquitectures: el tallafoc d’encaminador, el tallafoc d’una única màquina i el tallafoc de múltiples màquines.

Tallafoc d'encaminador

Aquesta és possiblement l’arquitectura de tallafoc més simple que hi ha. Es tracta d’aprofitar les característiques d’un encaminador per realitzar tasques de tallafoc. Un encaminador s’encarrega de reenviar paquets seguint una política, i reenviar paquets es pot considerar una forma molt simple de filtrar paquets pensant en la protecció de la xarxa.

En la figura es pot observar una xarxa a la qual accedeixen diversos dispositius però no s’observa cap tallafoc. Això no vol dir que no hi sigui, ja que l’encaminador segurament estigui realitzant tasques de tallafoc.

Figura Xarxa amb encaminador

Un estudiant de xarxes veurà de seguida que aquesta arquitectura no és gaire potent, ja que el filtratge consisteix a analitzar únicament les adreces IP. Però no hi ha cap dubte que és una solució barata, senzilla i eficaç fins a cert nivell, a part d’estar a l’abast de tot usuari que usi un encaminador.

Las raons que ens fan descartar l’ús d’aquesta arquitectura són bàsicament tres:

  • No és una arquitectura flexible.
  • Les màquines públiques i privades comparteixen xarxa.
  • La defensa té una greu manca de profunditat.

La falta de flexibilitat d’aquesta arquitectura està condicionada per les característiques de l’encaminador. Un encaminador que només faci reenviament de paquets no es pot programar per bloquejar o acceptar paquets en funció dels ports que s’utilitzin. Tot el que s’ofereixi a la part interna de la xarxa quedarà exposat a l’exterior.

Quan les màquines públiques i privades comparteixen una mateixa xarxa, la seguretat de la part privada es veu compromesa. Des d’una màquina pública es possibilita l’accés sense limitacions a la part privada.

Quan es parla de manca de profunditat fa referència a que només es proporciona una capa de seguretat. Si algun intrús supera l’encaminador, la xarxa queda completament oberta, sense cap altra mesura defensiva.

Llistes d'accés de Cisco

Les llistes d’accés per filtrar adreces IP i filtrar el trànsit d’una xarxa es poden aplicar en alguns dels sistemes operatius de Cisco.

Les llistes d’accés són conegudes popularment com ACL (Access Control List).

Hi ha diversos conceptes que s’han de tenir clars per poder treballar amb ACL. L’ús de llistes d’accés està molt estès i amb raó, ja que és un mecanisme molt pràctic. Però corre la idea errònia de que les ACL són molt complexes i difícils d’entendre. Segurament el més difícil d’entendre són les màscares que s’utilitzaran. La màscara es pot utilitzar com:

  • Màscara revertida
  • ACL de sumari
  • ACL de sumari parcial

1) Màscara revertida: s’utilitza amb les adreces de xarxa per especificar què es permet i què es denega. Les màscares s’inicien amb el valor 255 per especificar tot un segment de xarxa i van decreixent segons les restriccions. Les màscares que s’utilitzen en ACL no són exactament les màscares de xarxa que habitualment s’utilitzen en el disseny de xarxes. Les màscares que s’utilitzen en ACL s’anomenen màscares revertides, màscares inverses o màscares wildcard. Si es tradueix el valor de la màscara a codi binari, el resultat determina quines adreces són les que s’han de tenir en compte en el processament de trànsit. Els zeros indiquen que l’adreça ha de ser considerada, i els uns, que “tant se val”. Per determinar la màscara revertida es pot restar a la màscara 255.255.255.255 la màscara de xarxa corresponent.

Exemple de màscara revertida

  1. Es disposa de l’adreça de xarxa 192.168.0.0 amb màscara de xarxa 255.255.255.0 i amb la màscara revertida 0.0.0.255.
  2. Es tradueix 192.168.0.0 a binari:
    11000000.10101000.00000000.00000000
  3. Es tradueix 0.0.0.255 a binari:
    00000000.00000000.00000000.11111111
  4. Els tres primers octets de la màscara revertida indiquen que s’han d’agafar exactament els valors de l’adreça IP (192.168.0).
  5. L’últim octet de la màscara wildcard indica que “tant se val” el valor dels últims vuit octets. Això vol dir que es processarà qualsevol adreça de xarxa que vagi de la 192.168.0.1 a la 192.168.0.255.
  6. Per trobar la màscara revertida que s’ha utilitzat només cal restar a la màscara 255.255.255.255 la màscara de xarxa corresponent, que en aquest cas és 255.255.255.0, sent el resultat 0.0.0.255.

2) ACL de sumari: es pot fer un sumari d’un conjunt de subxarxes que es vegin afectades per una ACL. En comptes d’escriure una ACL per a cada subxarxa a tractar es pot fer una ACL que aglutini el màxim de subxarxes.

Exemple d'ACL de sumari

Es desitja dissenyar una ACL que cobreixi les subxarxes següents:

  • 192.168.80.0/24
  • 192.168.81.0/24
  • 192.168.82.0/24
  • 192.168.83.0/24

Es pot veure que l’únic octet diferent a tots els casos és el tercer (té els valors 80, 81, 82 i 83) i per això serà el que utilitzem per calcular la máscara revertida.

Passem a binari l’octet que canvia (que en aquest cas és el tercer):

  • 80 → 01010000
  • 81 → 01010001
  • 82 → 01010010
  • 83 → 01010011

Per determinar la wildcard cal detectar els bits que mai canvien i els que sí canvien. En aquest cas els sis primers bits no canvien i els últims dos sí.

A més, es pot observar que els valors que canvien són tots els possibles valors que es poden obtenir amb dos bits (0, 1, 2, 3 i 4).

Tant se val quin valor tinguin els dos últims bits d’aquest tercer octet, i això és així perquè tots els possibles valors estan contemplats. Això es tradueix en que la màscara revertida serà 00000011 o, el que és el mateix, 3.

El valor complet de la màscara revertida que cobreix aquestes quatre subxarxes és 0.0.3.255.

La línia completa que definiria l’ACL seria:

access-list acl_permetre permit ip 192.168.80.0 0.0.3.255

3) ACL de sumari parcial: en determinats casos no es pot realitzar un sumari que englobi totes les subxarxes a tractar i caldrà fer-ho per parts.

Utilitzar /24 és el mateix que utilitzar 255.255.255.0 i el que indica és que la màscara té vint-i-quatre uns: 11111111.11111111.
11111111.00000000

Exemple d'ACL de sumari parcial

Es desitja dissenyar una ACL que cobreixi les següents subxarxes:

  • 192.168.86.0/24
  • 192.168.87.0/24
  • 192.168.88.0/24
  • 192.168.89.0/24

Es pot veure que l’únic octet diferent a tots els casos és el tercer (té els valors 86, 87, 88 i 89) i per això serà el que utilitzem per calcular la màscara revertida. Passem a binari l’octet que canvia (el tercer):

  • 86 → 01010110
  • 87 → 01010111
  • 88 → 01011000
  • 89 → 01011001

Per determinar la màscara revertida caldrà detectar els bits que mai canvien i els que sí canvien. En aquest cas els quatre primers bits no canvien i els últims quatre sí.

En aquest cas es detecta que no apareixen tots els possibles valors que es poden generar amb tres bits: només es treballa amb 0110, 0111, 1000 i 1001.

Si no estan contemplats tots els valors cal dividir la màscara revertida. Es pot observar que l’única diferència entre les dues primeres subxarxes és l’últim bit:

  • 86 → 01010110
  • 87 → 01010111

Això permet establir la wildcard 0.0.1.255. La línia completa que definiria l’ACL seria:

access-list acl_permetre permit ip 192.168.86.0 0.0.1.255

En el cas de les dues últimes subxarxes també és l’últim bit el que canvia:

  • 88 → 01011000
  • 89 → 01011001

Això permet establir la màscara revertida 0.0.1.255. La línia completa que definiria l’ACL seria:

access-list acl_permetre permit ip 192.168.88.0 0.0.1.255

El funcionament de les ACL és molt simple: quan el trànsit de xarxa entra a l’encaminador es compara amb les llistes d’accés que l’encaminador té configurades. Val a dir que les ACL estan ordenades i es llegeixen en ordre. L’encaminador compara el trànsit amb totes les regles fins que troba alguna que coincideix amb les característiques del trànsit. Si es dóna el cas de que no coincideix el trànsit amb cap regla de la llista se li denega el pas.

L’ACL següent permet el trànsit que surt de qualsevol equip que pertany a la xarxa 192.168.0.0 i que vagi a qualsevol equip de la xarxa 192.168.1.0, i la resta de trànsit es denega.

access-list 101 permit ip 192.168.0.0 0.0.0.255 192.168.1.0 0.0.0.255

I el cas següent té el mateix resultat, però s’indica en dos passos: primer s’indica el trànsit permès i a continuació s’especifica que la resta de trànsit s’ha de denegar.

access-list 102 permit ip 192.168.0.0 0.0.0.255 192.168.1.0 0.0.0.255
access-list 102 deny ip any any

Les ACL es poden utilitzar per filtrar el trànsit d’una forma més concreta. Per exemple la línia següent permetria el trànsit Telnet entre una màquina amb adreça de xarxa 192.168.1.26 i una altra màquina amb adreça de xarxa 192.168.0.5. Cal destacar que per indicar una màquina concreta es pot utilitzar l’etiqueta host i evitar d’aquesta manera utilitzar màscares revertides.

access-list 101 permit tcp host 192.168.1.26 host 192.168.0.5 eq telnet

Si no volem ser tant estrictes podem permetre qualsevol tipus de trànsit TCP:

access-list 101 permit tcp host 192.168.1.26 host 192.168.0.5

O de trànsit UDP:

access-list 101 permit tcp host 192.168.1.26 host 192.168.0.5

El tractament de diferents protocols a nivell de subxarxa segueix el mateix procediment. Per permetre el trànsit IP entre dues subxarxes hem d’escriure:

access-list 101 permit ip 192.168.1.0 0.0.0.255 192.168.0.0 0.0.0.255

Un altre conjunt de conceptes bàsics per entendre i aplicar les ACL són els que indiquen si el trànsit a tractar és d’entrada o sortida o si el que s’estudia és l’origen d’aquest trànsit o bé la seva destinació:

Denegació total

Les ACL només tenen efecte si s’apliquen a les interfícies d’un encaminador. També cal recordar que una llista d’accés té una denegació total de forma implícita al final del llistat.

  • In: fa referència al trànsit que arriba a la interfície de l’encaminador i que provarà de travessar-lo. L’origen del paquet és la procedència del paquet i la destinació és on vol anar una vegada travessi l’encaminador.
  • Out: fa referència al trànsit que ha travessat l’encaminador i surt per una de les seves interfícies. En aquest cas l’origen és la procedència del trànsit (fora de l’encaminador) i la destinació és cap a on va aquesta informació.
  • Inbound: l’encaminador analitza el paquet d’informació que rep. Si el paquet és permès es continuarà processant el paquet. Si aquest paquet no és permès es descartarà.
  • Outbount: després de rebre i encaminar el paquet cap a la interfície correcta, l’encaminador analitza el paquet i el compara amb el llistat d’ACL. Si el paquet és permès es transmet. Si el paquet no és permès es descarta.

Tallafoc d'una màquina

Implementar un tallafoc en una màquina té el gran avantatge de permetre separar la xarxa protegida en dues subxarxes:

  • Una xarxa privada interna.
  • Una xarxa perimetral, coneguda popularment com a zona desmilitaritzada (DMZ).

Són possibles dues arquitectures quan s’ubica un tallafoc en una màquina:

  • Arquitectura de tallafoc exposat.
  • Arquitectura de tallafoc d’apantallament.

En una arquitectura de tallafoc exposat, la xarxa privada interna està protegida pel tallafoc, que pot filtrar i reenviar els paquets que circulen en ambdós sentits: cap a la xarxa perimetral i cap a la xarxa privada interna. En la figura es pot observar que a la xarxa perimetral s’hi han ubicat els servidors públics per tal d’aïllar-los dels servidors privats i dels clients interns de la xarxa. Si la xarxa pateix un atac cap a un servidor públic, la xarxa privada interna no patirà un perill immediat.

Figura Tallafoc exposat

El perill més gran que presenta l’arquitectura de tallafoc exposat és l’exposició dels servidors públics. Aquests han de disposar d’un reforç especial en les seves configuracions per tal de resistir atacs.

En moltes ocasions s’assigna als servidors públics que veuen reforçada la seva seguretat el nom d’equips bastió.

L’arquitectura de tallafoc d’apantallament és similar a la de tallafoc exposat, la gran diferència és que els servidors públics se situen darrere del tallafoc, com es pot veure en la figura. Aquesta acció redueix la vulnerabilitat dels atacs. En aquest cas, però, existeix el risc que si un servidor públic és atacat, la xarxa privada interna es veu compromesa.

Figura Tallafoc apantallat

Són avantatges de les dues arquitectures que:

  • Tot i ser més cares que el tallafoc d’encaminador continuen sent barates.
  • Ofereixen més flexibilitat que el tallafoc d’encaminador.
  • Les màquines privades estan protegides pel tallafoc.

Un avantatge de l’arquitectura de tallafoc d’apantallament respecte al tallafoc exposat és que els servidors públics també estan protegits pel tallafoc.

Són inconvenients de les dues arquitectures que es tracta d’una defensa vulnerable que només depèn del tallafoc.

Un inconvenient del tallafoc exposat és que els servidors públics són vulnerables.

Un inconvenient del tallafoc d’apantallament és que els equips de la xarxa d’àrea local (LAN) són vulnerables si un servidor públic es veu compromès.

Tallafoc de múltiples màquines

En determinades circumstàncies, amb una única màquina dedicada a funcions de tallafoc la xarxa continua exposada a vulnerabilitats. En aquests casos és interessant utilitzar tallafoc de múltiples màquines.

Un tallafoc de múltiples màquines consisteix a utilitzar més d’un equip per protegir les màquines de la xarxa, la qual cosa proporciona una major seguretat.

Existeixen dues arquitectures de tallafoc de múltiples màquines: el tallafoc de xarxa apantallada i el tallafoc de tres direccions.

La figura mostra un exemple de tallafoc de xarxa apantallada, on s’utilitzen un tallafoc interior, conegut com a tallafoc d’obstrucció, i un tallafoc exterior, conegut com a tallafoc de porta d’enllaç. El tallafoc d’obstrucció separa la xarxa privada interna de la xarxa perimetral. El tallafoc de porta d’enllaç separa la xarxa perimetral de la xarxa pública externa.

Figura Tallafoc de xarxa apantallada

Cal destacar que la diferència entre un tallafoc exposat i un tallafoc de xarxa apantallada és la substitució de l’encaminador per un segon tallafoc. Aquest segon tallafoc protegeix els servidors públics de les amenaces externes.

L’arquitectura de tallafoc de xarxa apantallada protegeix els servidors públics i les màquines privades i ofereix una defensa estructurada en diverses capes. L’inconvenient que presenta, però, és que resulta més car que les arquitectures que utilitzen una sola màquina.

El tallafoc de tres direccions fa seus els avantatges del tallafoc de xarxa apantallada i els de les arquitectures d’una màquina. És una única màquina amb tres targetes de xarxa: una per a la xarxa pública externa, una per a la xarxa perimetral i una última per a la xarxa privada interna.

L’arquitectura de tallafoc de tres direccions, tal com es pot observar en la figura, assegura que els servidors públics i les màquines privades estaran protegits per un tallafoc, la defensa es continua estructurant en diverses capes i la implantació és més barata que en el cas de l’arquitectura en xarxa apantallada. Aquesta arquitectura continua sent més cara que una arquitectura d’una sola màquina, ja que l’equip que s’utilitza de tallafoc ha de tenir almenys tres targetes de xarxa i la seva configuració i administració és més complexa que l’arquitectura de xarxa apantallada.

Figura Tallafoc de tres direccions

Altres arquitectures

Amb el decurs del temps les necessitats de seguretat de les xarxes van demanant solucions que no s’ajusten exactament a les arquitectures bàsiques d’una màquina o de múltiples màquines. Així, sorgeixen arquitectures modelades segons circumstàncies molt particulars. A continuació s’enumeren algunes de les arquitectures més populars.

  • Arquitectura de xarxa apantallada dividida: consisteix a utilitzar una arquitectura de xarxa apantallada i substituir els servidors públics per servidors públics amb dues targetes de xarxa. En aquest, com es pot observar en la figura, s’utilitzen els servidors públics com a capa de defensa per als servidors privats. El servidor públic fa d’enllaç entre les xarxes perimetrals.
  • Arquitectura de xarxa apantallada múltiple: consisteix a utilitzar una arquitectura de xarxa apantallada dividida i utilitzar més d’un equip entre les xarxes perimetrals.
  • Arquitectura de tallafoc empresarial: consisteix a afegir redundància des de la xarxa privada interna a les xarxes públiques externes. Tot i que aquesta arquitectura està clarament basada en una arquitectura de xarxa apantallada, el nivell de seguretat és enorme.
Figura Tallafoc de xarxa apantallada dividida

Regles de filtratge del tallafoc

Per una xarxa hi circulen paquets d’informació. A l’inici del paquet s’indica la destinació, qui l’ha enviat, de quin tipus de paquet es tracta… A aquesta part del paquet l’anomenem capçalera.

La capçalera se situa a l’inici del bloc d’informació del paquet i conté dades suplementàries necessàries per a la correcta gestió del bloc d’informació.

Filtrar paquets consisteix a analitzar la capçalera del paquet i decidir la destinació de tot el paquet analitzat.

Actualment, molts llocs web implementen comunicació encriptada, inicialment amb SSL i, posteriorment, amb TSL. Evidentment, aquesta comunicació encriptada és necessària en alguns casos, com quan volem realitzar compres per Internet o volem accedir al nostre banc. Però, a més d’aquests casos on l’encriptació és necessària, també s’utilitza en casos on, en principi, no ho és, com, per exemple, en connectar-se a Google per a realitzar una consulta. En tenir, però, comunicacions encriptades, el tallafoc no pot filtrar els paquets segons el seu contingut, ja que desconeix la informació que contenen. En aquests casos, el tallafoc té més feina de la que tenia anteriorment, ja que també ha de desencriptar la informació. Per desencriptar la informació, el tallafoc necessita la funcionalitat d’interceptació SSL/TLS. Hi ha dos mecanismes per desencriptar la informació. Un d’ells utilitza atacs tipus Man-in the-Middle, ja que el xifrat de les dades és obligatori, però l’autenticació no ho és; tot i així, normalment s’autentica el servidor. Per a realitzar aquests atacs es poden usar eines com BurpSuite. De totes maneres, s’ha de destacar que interceptar tràfic SSL que no sigui nostre sense consentiment o autorització no és legal. Al cas d’un tallafoc d’una organització, s’hauria de demanar permís als usuaris, encara que en fossin empleats. El segon atac consisteix en atacar la fase de negociació de la clau SSL entre el client i el servidor. El client i el servidor negocien un premaster secret comú, d’aquest premaster secret es derivarà el master secret que s’utilitzarà per crear les claus criptogràfiques. Si obtenim el premaster secret, aleshores podrem realitzar tots els càlculs per obtenir les claus finals tal i com fan client i servidor. Aquesta opció és la que necessita menys esforç, ja que els navegadors permeten guardar el premaster secret a un fitxer.

A continuació, es mostren 6 protocols de la família SSL/TLS i els problemes que tenen:

  • SSLv2: prohibit el seu ús per la Internet Engineering Task Force (RFC 6176).
  • SSLv3: obsolet, no suficientment segur (RFC 7568).
  • TLS1.0: considerat com a no segur (vulnerable a l’atac BEAST). No s’ha d’usar més. No és acceptat per la norma PCI (juny del 2018).
  • TLS1.1: no té més problemes de seguretat coneguts, però no ofereix les característiques de xifrat modernes (RFC 5246, secció 1.2).
  • TLS1.2: no té més problemes de seguretat coneguts i ofereix les característiques modernes de xifrat de tipus AEAD.
  • TLS1.3: A l’agost de 2018, la Internet Engineering Task Force ha publicat TLS 1.3, que suprimeix les opcions problemàtiques de les versions anteriors de TLS i els seus algorismes no tenen vulnerabilitats conegudes. Aquest hauria de ser el principal protocol a usar a l’actualitat.

Quan es fa un filtratge es pot denegar el paquet, acceptar-lo o bé rebutjar-lo. Denegar un paquet consisteix a eliminar-lo i tractar-lo com si mai hagués estat rebut. Acceptar un paquet consisteix a deixar-lo passar cap al següent punt del camí. I rebutjar un paquet consisteix a eliminar el paquet i avisar l’emissor que el paquet s’ha eliminat.

Podeu analitzar la seguretat SSL/TSL dels Servidors web amb aquesta web: bit.ly/3cOcHZc.

Filtrar paquets aporta seguretat, control i vigilància sobre la xarxa informàtica. Aporta seguretat perquè permet restringir el trànsit que arriba a la xarxa. Permet control sobre el trànsit intern de la xarxa. I permet rebre avisos quan algun aspecte de la xarxa interna no funciona correctament.

Hi ha molts exemples de tallafocs, però és important estudiar els casos d’IPTables i NFTables per entendre millor les regles de filtratge.

Filtratge amb IPTables

IPTables és un tallafoc que requereix un nucli basat en Linux per poder-se executar. El seu ús està molt estès i se’l considera el substitut de l’antic i, en el seu temps, popular IPChains, tot i que en ocasions se’ls pot trobar treballant en equip (IPTables en primera línia de defensa i IPChains en segona línia).

IPTables filtra paquets amb estat, dona suport a emmascarament IP, a NAT d’origen i de destinació, permet realitzar un registre de paquets i s’executa des de línia d’ordres, tot i que hi ha aplicacions gràfiques que ho poden evitar.

Les regles del tallafoc estan a nivell de nucli, i és el nucli el que ha de decidir què fer amb els paquets d’informació que li arriben.

La figura mostra esquemàticament el procés que segueix un paquet inspeccionat per IPTables. En ella es pot veure que treballant amb IPTables els paquets poden seguir camins diferents, depenent de l’origen i de la destinació. L’ordre que se segueix és:

  1. mangle prerouting: aquesta és la primera cadena que travessen els paquets que arriben al tallafoc. Normalment no s’inclouen regles, per tant, els paquets passen directament a la cadena següent.
  2. nat prerouting: aquesta cadena la travessen tots els paquets que arriben al tallafoc. Aquí es poden incloure regles que modifiquin l’adreça IP de destinació o el port de destinació del paquet.
  3. Camí: en aquest pas es classifiquen els paquets segons la destinació. Tots aquells paquets que portin una adreça IP de destinació coincident amb una de les interfícies del tallafoc s’enviaran a filter input, i la resta s’enviaran a filter forward.
  4. filter forward: aquesta cadena té per missió processar els paquets que es reenvien una xarxa a una altra. Generalment és aquí on es decideix si es deixa passar un paquet o si es bloqueja.
  5. nat postrouting: en aquest pas es tradueixen les adreces de xarxa d’origen i l’emmascarament.
  6. filter input: s’encarrega de tractar els paquets destinats al tallafoc. Conté regles que avaluen si el paquet ha de ser acceptat o bloquejat.
  7. Procés local: aquest procés s’executa al tallafoc. El procés podria ser l’origen o la destinació dels paquets.
  8. mangle output: només els paquets generats pel tallafoc travessen aquesta cadena.
  9. filter output: processa els paquets enviats pel tallafoc. Pot determinar si el paquet ha de bloquejar-se o no.
Figura Camí que segueixen els paquets a IPTables

Pas a pas

El camí que segueix un paquet a IPTables pot ser:

Entra per mangle prerouting. Generalment, aquesta cadena no inclou regles, per tant es passa a la cadena següent. La cadena nat prerouting realitza la traducció d’adreces de xarxa de destinació.

El paquet arriba a routing i es classifiquen els paquets segons quina sigui la seva destinació: si és el tallafoc, el paquet anirà a filter input, però si no, el paquet anirà a filter forward. La cadena filter forward s’encarrega de processar els paquets que es reenvien entre xarxes. Els paquets que han anat per aquest camí arriben a mangle postrouting, que és una cadena amb la capacitat de modificar els paquets abans que aquests abandonin el tallafoc i, a continuació, arriben a nat postrouting. nat postrouting s’encarrega de traduir les adreces de xarxa i emmascarament. A partir d’aquí el paquet surt cap a la xarxa de destinació.

La cadena filter input s’encarrega de processar els paquets que estan destinats al tallafoc. És aquí on es determina si el paquet ha de ser bloquejat o no. Si no es bloqueja, pot rebre un procés local (Local Processing of Data) i a continuació ser encaminat cap al mangle output, on el paquet es modificarà si és necessari. Després de passar per mangle output, el paquet arriba a filter output, on serà processat i enviat al tallafoc.

En IPTables els tres tipus de regla de filtratge són entrada (input), sortida (output) o reenviament (forward).

Una característica de les IPTables és que permeten aplicar regles de NAT. Les regles de NAT s’utilitzen per adreçar ports o realitzar canvis en l’IP d’origen o de destinació.

IPTables funciona seguint els passos següents:

  1. Es carreguen els mòduls necessaris.
  2. S’estableix algun bit.
  3. Esborra totes les regles actuals.
  4. Estableix les polítiques per defecte per l’acceptació, reenviament i sortida.
  5. Per acabar aplica totes les regles del tallafoc.

Un exemple de regla en IPTables on es permeti a qualsevol adreça que entri per la interfície np0s1 l’accés al port 80 seria:

  1. iptables -A INPUT -i enp0s3 -s 0.0.0.0/0 -p TCP -dport www -j ACCEPT

Si s’analitza la línia anterior:

  • iptables: nom de l’ordre.
  • -A: s’utilitza per afegir (append) la regla.
  • INPUT: estat del paquet, que en aquest cas és un paquet d’entrada (input).
  • -i np0s1: interfície de xarxa, que en aquest cas és enp0s3.
  • -s 0.0.0.0/0/0: adreça d’accés, que en aquest cas indica qualsevol adreça d’accés.
  • -p TCP: tipus de port, que en aquest cas és TCP.
  • -dport: port de destinació.
  • -j ACCEPT: què es farà amb el paquet, en aquest cas s’acceptarà.

Per exemple, per no permetre enviar res al tallafoc o el trànsit intern i permetre només el trànsit de sortida:

  1. iptables -P INPUT DROP
  2. iptables -P FORWARD DROP
  3. iptables -P OUTPUT ACCEPT

Per permetre el trànsit entre la xarxa interna np0s3 i la xarxa externa enp0s3:

  1. iptables -A FORWARD -i enp0s3 -o enp0s1 -j ACCEPT

Per permetre el trànsit entre connexions establertes amb origen a la xarxa enp0s1 i destinació a la xarxa enp0s3:

  1. iptables -A FORWARD -i enp0s1 -o enp0s3 -m state --state ESTABLISHED,RELATED -j ACCEPT

Per permetre l’entrada de paquets al tallafoc i que tinguin com a origen la xarxa interna i interfícies locals:

  1. iptables -A INPUT -i enp0s1 -s 0/0 -d 0/0 -j ACCEPT
  2. iptables -A INPUT -i lo -s 0/0 -d 0/0 -j ACCEPT

Per no permetre l’entrada per la interfície enp0s1 a màquines de l’exterior de la nostra xarxa que hagin piratejat adreces de xarxa de la nostra xarxa interna (192.168.0.0/24):

  1. iptables -A INPUT -i enp0s1 -s 192.168.0.0/24 -j DROP
  2. iptables -A INPUT -i enp0s1 -s 127.0.0.0/8 -j DROP

Per acceptar el trànsit de SYN que utilitza el protocol SMTP, l’accés web, l’accés web segur i SSH:

  1. iptables -A INPUT -p tcp -s 0/0 -d x.y.z.m/32 --destination-port 25 --syn -j ACCEPT
  2. iptables -A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 80 --syn -j ACCEPT
  3. iptables -A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 443 --syn -j ACCEPT
  4. iptables -A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 22 --syn -j ACCEPT

Si es disposa d’un servidor DHCP caldrà permetre el seu trànsit amb:

  1. iptables -A INPUT -i enp0s1 -p tcp --sport 68 --dport 67 -j ACCEPT
  2. iptables -A INPUT -i enp0s1 -p udp --sport 68 --dport 67 -j ACCEPT

Per no permetre cap sol·licitud a ports UDP o TCP:

  1. iptables -A INPUT -s 0/0 -d 0/0 -p udp -j DROP
  2. iptables -A INPUT -s 0/0 -d 0/0 -p tcp --syn -j DROP

Filtratge amb NFTables

Amb l’aparició d’IPv6 es va crear ip6tables, del qual podem dir que és una adaptació d’IPTables per a IPv6. L’any 2014 apareix NFTables, un nou entorn (framework) per a filtrar paquets basat també, com IPTables, en NetFilter. Un dels problemes d’IPTables és la forma complicada d’expressar les regles; per aquest motiu, la sintàxi d’NFTables és més curta i fàcil d’entendre. Per exemple, en lloc de “-p tcp”, es posa “tcp”, de forma similar a la sintàxi de tcpdump.

Actualment, el tallafoc IPTables va essent substituït a les instal·lacions pel tallafoc NFTables i aquest procés continua el 2020.

Podeu ampliar el filtratge amb nftables a: bit.ly/2TVdv5U.

Podem eliminar el tràfic de la xarxa amb la següent regla:

  1. nft add rule filter input reject

Si no especifiquem cap motiu, s’envia un paquet ICMP que indica “port inaccessible”. Podem especificar el motiu pel qual refusem el paquet, per exemple, amb with icmp type host-unreachable:

  1. nft add rule filter input reject with icmp type host-unreachable

Es poden especificar els següents motius:

  • net-unreachable: Xarxa de destí inaccessible.
  • host-unreachable: Host inaccessible.
  • prot-unreachable: Protocol de destí inaccessible.
  • port-unreachable: Port de destí inaccessible.
  • net-prohibited: Xarxa prohibida administrativament.
  • host-prohibited: Host prohibit administrativament.
  • admin-prohibited: Comunicació prohibida administrativament.

Pel tràfic IPv6 utilitzarem icmpv6, de la següent forma:

  1. nft add rule ip6 filter input reject with icmpv6 type no-route

Els motius possibles per refusar les conexions en IPv6 són:

  • no-route: No hi ha ruta al destí.
  • admin-prohibited: Comunicació prohibida administrativament.
  • addr-unreachable: Direcció inaccessible.
  • port-unreachable: Port inaccessible.

Per refusar tant el tràfic IPv4 com el tràfic IPv6 amb una única regla, podem usar la familia inet amb una abstracció anomenada icmpx. A continuació hi ha un exemple:

  1. nft add rule inet filter input reject with icmpx type no-route

La regla anterior refusa el tràfic IPv6 amb el motiu “no route” i el tràfic IPv4 amb el motiu “net unreachable”. Això és així perquè existeix un mapatge entre els motius de tots dos protocols.

Un exemple d’ordre seria la següent, que guarda el log i permet la sortida dels paquets tcp amb el port destí 22, que utilitza ssh. Observeu com nftables permet realitzar dues accions en una mateixa regla, en aquest cas fer el log i acceptar el paquet. Amb iptables necessitaríem dues regles per fer el mateix. Cal tenir present, també, que la regla s’avalua d’esquerra a dreta:

  1. nft add rule output tcp dport 22 log accept

També podem posar un missatge de log:

  1. nft add rule filter input tcp dport 22 ct state new log prefix \"Nova connexió SSH : \" accept

Podem instal·lar NFTables amb: sudo apt install nftables

Podem usar ordres NFTables que no facin els canvis permanents o escriure-les en un fitxer, que s’anomena /etc/nftables.conf, perquè els canvis passin a ser permanents.

Ordres NFTables

Es poden definir interfícies amb: nft define nomInterfície=interficie.

També es poden afegir taules amb: sudo nft add table <familia> <nomTaula>.

Les taules són contenidors de cadenes. El seu nom no té cap significat predefinit. Les cadenes són contenidors de regles.

La família és opcional; és un concepte que apareix amb nftables i que indica el tipus de tràfic amb el qual treballem. S’admeten les següents famílies: ip, arp, ip6, bridge, inet i netdev.

La família ip treballa amb paquets IPv4.

La família ip6 treballa amb paquets IPv6.

La família inet treballa amb paquets IPv4 i IPv6.

La família arp treballa amb paquets arp, i ja no fa falta usar una altra ordre a part com era arptables.

La família bridge treballa amb paquets que passen per un switch.

La família netdev permet classificar els paquets i permet veure tot el tràfic de xarxa. Aquesta funcionalitat aparèix amb nftables al nucli 4.2 de Linux.

Aquesta última família és ideal per eliminar els paquets que provenen d’atacs DDOS, ja que així els eliminem com més aviat millor. L’eliminació dels paquets des de aquí és el doble d’eficient que fer-ho desde la cadena de prerouting d’iptables.

També podem usar aquesta nova família per fer balanceig de càrrega.

Es poden veure les diferents taules existents amb: sudo nft list tables.

Es poden eliminar les taules amb: sudo nft delete table nomTaula.

Per exemple, es poden crear les típiques taules filter per filtrar i nat per canviar les adreces IP.

A cada taula es poden crear cadenes com, per exemple, la cadena prerouting i la cadena postrouting amb: sudo nft add chain nomTaula nomCadena.

Les cadenes s’esborren amb: nft delete chain <família> <tabla> <cadena>. En aquesta instrucció, la família és opcional.

Cal tenir present, però, que només poden esobrrar-se cadenes buides, és a dir, sense cap regla. Pot buidar-se una cadena amb la instrucció nft flush chain <família> <tabla> <cadena>. Novament, la família és opcional.

Podem crear regles amb la instrucció:

  1. nft add rule <família> <taula> <cadena> position <posició> <identificador> <coincidències> <acció>

On:

  • position <posició> i <familia> són opcionals.
  • La posició indica el handle d’una regla ja existent. Aquest és un número intern que identifica les regles d’una cadena.

Si s’indica la posició, la nova regla s’afegirà a continuació de la regla identificada pel handle. Si s’omet la posició, la regla s’afegeix al final. Es pot conèixer el handle d’una regla amb la instrucció nft list <taula> filter -n -a. L’opció -a és per demanar que es mostri el handle de cada regla i, per tant, al nostre cas, tot i que sintàcticament és opcional, cal posar-la. L’opció -n també és opcional i indica que no s’han de realitzar resolucions DNS. És recomanable posar-la per eficiència.

Pot substituir-se add per insert. En aquest cas, la regla es posaria abans de la regla amb el handle indicat per la posició. En cas que no s’indiqués cap posició, es posaria a l’inici de la llista. Després de les coincidències venen les declaracions de les accions que executa la regla quan es detecta alguna d’aquestes coincidències. Algunes de les accions que pot executar la regla són: accept, drop, queue, continue, return, jump i goto.

  • accept: Accepta el paquet i deixa d’avaluar les regles restants.
  • drop: Elimina el paquet i deixa d’avaluar les regles restants.
  • queue: Encua el paquet a l’espai d’usuari i deixa d’avaluar les regles restants.
  • continue: Continua l’avaluació de les regles amb la següent regla de la cadena.
  • return: Torna de la cadena actual i continua a la següent regla de la darrera cadena. En una cadena base, és equivalent a acceptar.
  • jump <chain>: Continua a la primera regla de la cadena <chain>.
  • goto <chain>: Similar a jump, però, després de l’avaluació de la nova cadena, l’avaluació continuarà a la darrera cadena en lloc de fer-ho a la cadena on hi ha la sentència goto.

Pel que fa a les coincidències o matches, hi ha moltes expressions disponibles per a especificar-les, però majoritàriament coincideixen amb les d’iptables. La principal diferència és que no hi ha coincidències genèriques (és a dir, vàlides per a tots els protocols) o implícites (és a dir, referides al protocol indicat amb l’opció corresponent que, al cas de les iptables, és -p o –protocol).

Les coincidències s’utilitzen per accedir a certa informació dels paquets i crear filtres segons aquesta informació. Hi ha moltes coincidències previstes.

A continuació teniu una llista no exhaustiva de les coincidències disponibles:

Podeu ampliar la informació de les coincidències a: bit.ly/3cKVVue

  • meta (meta propietats, per exemple interfícies)
  • icmp (protocol ICMP)
  • icmpv6 (protocol ICMPv6)
  • ip (protocol IP)
  • ip6 (protocol IPv6)
  • tcp (protocol TCP)
  • udp (protocol UDP)
  • sctp (protocol SCTP)
  • ct (seguiment de la connexió)

Aquestes coincidències poden tenir diferents arguments. Tot seguit presentem alguns d’aquests arguments:

  • meta:
    • oif <índex de la interfície de sortida>
    • iif <índex de la interfície d’entrada>
    • oifname <nom de la interfície de sortida>
    • iifname <nom de la interfície d’entrada>

(oif i iif accepten arguments de cadena i es converteixen llavors en índex d’interfícies.oifname i iifname son més dinàmics, però més lents per la coincidència de cadenes)

  • icmp:
    • type <tipus icmp>
  • icmpv6:
    • type <tipus icmpv6>
  • ip:
    • protocol <protocol>
    • daddr <adreça de destí>
    • saddr <adreça d’origen>
  • ip6:
    • daddr <adreça de destí>
    • saddr <adreça d’origen>
  • tcp:
    • dport <port de destí>
    • sport <port d’origen>
  • udp:
    • dport <port de destí>
    • sport <port d’origen>
  • sctp:
    • dport <port de destí>
    • sport <port d’origen>
  • ct:
    • state <new | established | related | invalid>

Alguns exemples són:

  • Acceptem el tràfic related (relacionat) i el tràfic established (establert):
  1. nft add rule inet filter input ct state related,established accept
  • Posem la politica de descartar el tràfic invàlid:
  1. nft add rule inet filter input ct state invalid drop
  • Acceptem paquets del protocol icmp (és el que utilitza l’ordre ping):
  1. nft add rule inet filter input ip protocol icmp icmp type echo-request ct state new accept
  • Acceptem el tràfic de la interfície local:
  1. nft add rule inet filter input iif lo accept
  • Acceptem el tràfic SSH pel port 22:
  1. nft add rule inet filter TCP tcp dport 22 accept
  • Refusem el tràfic no procesat per les altres regles. A la primer regla no posem cap motiu. A les altres dues posem, respectivament, els motius tcp reset i prot-unreachable:
  1. nft add rule inet filter input ip protocol udp reject
  2. nft add rule inet filter input ip protocol tcp reject with tcp reset
  3. nft add rule inet filter input counter reject with icmp type prot-unreachable

nft no utilitza /etc/services per fer coincidir els números dels ports amb els noms, sinó que utilitza una llista interna. Per veure les assignacions de ports desde la línia d’ordres podem usar:

  1. nft describe tcp dport

Pot esborrar-se una regla d’una cadena amb nft delete rule <taula> <cadena> handle <handle>.

Especificació de sets, interfícies i protocols. Canvis permanents a les regles

Un set és una col·lecció o conjunt d’elements que pot contenir adreces IP o ports. El nom d’un set pot tenir fins a 15 caràcters.

Existeixen sets anònims, que s’utilitzen directament a les regles (com per exemple: dport {22, 80, 443}) i sets amb nom, que primer es defineixen i després s’utilitzen a les regles.

Es poden crear sets amb nom creant en primer lloc la taula on el posarem, que podem anomenar filter, i, a continuació, el set:

  1. nft add table ip filter
  2. nft add set ip filter enemic { type ipv4_addr\;}

On enemic és el nom del set i type indica el tipus de dada del set, en aquest cas una adreça IPv4.

També es poden afegir elements al set:

  1. nft add element ip filter enemic { 192.168.3.4 }
  2. nft add element ip filter enemic { 192.168.1.4, 192.168.1.5 }

Aleshores podem posar el set amb nom a la regla:

  1. nft add rule ip filter input ip saddr @enemic drop

Especificacions dels sets amb nom:

  • type: és obligatori i determina el tipus de dada del set. Els tipus de dades suportats són:
    • ipv4_addr: adreça IPv4.
    • ipv6_addr: adreça IPv6.
    • ether_addr: adreça Ethernet.
    • inet_proto: qualsevol protocol d’Internet.
  • inet_service: servei d’Internet (per exemple, read tcp port).
  • mark: tipus de marca.
  • ifname: nom de la interfície de xarxa (enp0s3, enp0s1..).
  • timeout: determina el temps que l’element és al set. La cadena de caràcters ha de ser del format: “v1dv2hv3mv4s” on v1 és el dia, v2 l’hora, v3 els minuts i v4 els segons. Per exemple podem, crear un set anomenat ports, els elements del qual s’eliminaran després de 3 hores i 45 segons:
  1. nft add set ip filter ports {type inet_service \; timeout 3h45s \;}
  • flags: els flags poden separar-se amb comes, com es veu a l’exemple del final. Hi ha els següents flags:
    • constant: no es pot canviar el contingut del set, és constant.
    • interval: el set conté intervals.
    • timeout: els elements es poden afegir amb un timeout assignat.
nft add set ip filter flags_set {type ipv4_addr\; flags constant, interval\;}
  • gc-interval: és l’interval del recol·lector d’escombreries; només es pot usar si el timeout o els flags del timeout s’han activat. L’interval segueix el mateix format anterior “v1dv2hv3mv4s”.
  • elements: serveixen per afegir elements al set. L’ordre següent crea un set anomenat daddrs amb els elements 192.168.1.1, què hi serà 10 segons, i 192.168.1.2, què hi serà 30 segons:
  1. nft add set ip filter daddrs {type ipv4_addr \; flags timeout \; elements={192.168.1.1 timeout 10s, 192.168.1.2 timeout 30s} \;}
  • size: nombre màxim d’elements del set. Per exemple, podem crear un set amb un màxim de 2 elements de la següent forma:
  1. nft add set ip filter saddrs {type ipv4_addr \; size 2 \;}
  • policy: determina la política de selecció del set. Els valors disponibles son: performance (és el valor per defecte) i memory.

Finalment, podem llistar els sets amb nom amb list:

  1. nft list set ip filter elMeuSet
  2. nft list set ip filter saddrs

Una altra característica és la possibilitat de definir els diccionaris. La seva estructura és la d’un set que, a més, pot tenir veredictes; per això s’anomenen també mapes amb veredicte. Un veredicte és una instrucció com les que s’especifiquen dins de les regles. Si s’hi posa més d’un veredicte en el mateix element del diccionari, aquests elements es separen amb comes.

Els mapes amb veredicte són una de les funcionalitats més potents de nftables. Els mapes amb veredicte permeten lligar una acció a un element.

A continuació teniu com a exemple la creació d’un diccionari anònim (o literal) que s’utilitza directament a les regles (igual que succeeix amb els sets anònims). Aquest diccionari estableix que, segons el protocol, s’executi una acció o una altra. En aquest cas incrementar diferents comptadors. El primer que es fa, però, és crear les taules i cadenes que ens fan falta, en aquest cas la taula filter amb la cadena input:

  1. nft add table filter
  2. nft add chain ip filter input
  3. nft add rule ip filter udp-chain counter
  4. nft add rule ip filter tcp-chain counter
  5. nft add rule ip filter icmp-chain counter
  6. nft add rule ip filter input ip protocol vmap { tcp : jump tcp-chain, udp : jump udp-chain , icmp : jump icmp-chain }

El següent codi és el resultat d’executar nft list table filter després de les ordres anteriors. Aquest resultat pot posar-se en un fitxer de configuració per fer que les regles siguin permanents:

table ip filter {
        chain input {
                 type filter hook input priority 0;
                 ip protocol vmap { udp : jump udp-chain, tcp : jump tcp-chain, icmp : jump icmp-chain}
        }

        chain tcp-chain {
                 counter packets 0 bytes 0
        }

        chain udp-chain {
                 counter packets 0 bytes 0
        }

        chain icmp-chain {
                 counter packets 0 bytes 0
        }
}

Podem declarar diccionaris amb nom de la següent forma:

  1. nft add map filter diccionari { type ipv4_addr : verdict\; }

Un cop creat, hi podem afegir elements:

  1. nft add element filter diccionari { 192.168.0.10 : drop, 192.168.0.11 : accept }

Tot seguit teniu un altre exemple on, segons la ip de destí, s’executaran unes accions o unes altres; per exemple pels paquets de la ip 192.168.1.1 a la 192.168.1.10, es produeix un salt per executar les accions de la cadena chain-dmz:

  1. nft add rule ip Firewall Forward ip daddr vmap {\
  2. 192.168.1.1-192.168.1.10 : jump chain-dmz, \
  3. 192.168.2.1-192.168.2.99 : jump chain-ssn1, \
  4. 192.168.2.100-192.168.2.199 : jump chain:ssn2, \
  5. 192.168.3.1-192.168.3.50 : jump chain-desktops \
  6. }

El fet que es puguin especificar les interfícies d’entrada i sortida amb meta, seguit d‘iifname <Interfície d’entrada> o oifname <Interfície de sortida>, es pot utilitzar per acceptar o denegar el tràfic que tenim en una interfície determinada. En el següent exemple, s’accepta el tràfic de la interfície local de loopback, posant després de la interfície de sortida oifname el nom d’aquesta:

  1. nft add rule filter input meta oifname lo accept

Els meta selectors permeten fer coincidències amb la metainformació dels paquets i, en alguns casos, modificar-la.

Tenim dos tipus de meta selectors: qualificats i no qualificats. Els qualificats obliguen a què usem la paraula reservada meta i els no qualificats no.

Entre els qualificats hi trobem length, la longitud del paquet, i el protocol. Entre els no qualificats, mark, marques dels paquets, time, day i hour ( el dia i l’hora).

Els protocols que es poden utilitzar són: udp, tcp, ip i icmp. Podem posar, després del protocol, el port origen (sport) o el port destí (dport), el número d’aquest port i l’acció a realitzar: <protocol> <dport/sport><número de port><acció>.

Teniu informació dels meta selectors a: bit.ly/3aJ9okw

Per exemple:

tcp dport{dns,http, ntp, https} accept

Podem crear el fitxer /etc/nftables.conf i carregar-lo amb: sudo nft -f nftables.conf. Vegeu-ne un exemple:

table inet filter {
        chain web {
                ip daddr 83.247.151.178 drop
        }
  
        chain preruting {
        }
  
        chain output {
                type filter hook output priority 0; policy accept;
                ip daddr 8.8.8.8 counter packets 0 bytes 0
                ip daddr 83.247.151.178 counter packets 0 bytes 0
        }
  
        chain input {
                type filter hook input priority 0; policy accept;
                ip daddr 172.217.168.0/24 drop
        }
}

Podem filtrar el tràfic per protocol o comptar els paquets que enviem o rebem dels diferents protocols de xarxa. Podem crear taules per a cada protocol i acció a realitzar, podent crear així la taula ip filter amb les cadenes input i output amb les accions corresponents a realitzar.

A continuació enteniu un exemple:

table ip filter{

     chain output{
     ip daddr 192.168.0.3 drop
     ip saddr 127.0.0.6 drop
     ip saddr 127.0.0.2 ip daddr 127.0.0.8 drop
     tcp dport 22 counter packets 0 bytes 0
  }

}

Proves de funcionament. Sondeig

Per poder assegurar que el tallafoc realitza les tasques per a les quals ha estat dissenyat s’han de realitzar proves. Hi ha una sèrie d’eines i tècniques que ajuden a realitzar aquestes proves de manera ràpida i eficient.

Nmap

L'nmap és una eina molt popular en el món de l’administració de les xarxes. Temuda per molts (injustament) i molt apreciada pels tècnics, aquesta eina escaneja màquines i identifica els serveis assignats als ports.

L’ús d'nmap és vist per alguns tècnics com una amenaça. Identifica una part molt sensible de la configuració d’una màquina, la qual cosa fa saltar moltes alarmes. Com a administradors d’un tallafoc i responsables de la seguretat de la xarxa hem de detectar si algú realitza un escaneig a màquines de la nostra xarxa i s’ha d’identificar l’origen de l’escaneig, ja que possiblement s’estigui realitzant aquesta acció amb l’objectiu de trobar forats de seguretat. Aquest és un dels motius pels quals hem de dominar aquesta eina, ja que també és útil per trobar forats de seguretat en la nostra xarxa informàtica. Per no tenir ensurts no s’ha de realitzar un nmap en una xarxa que no sigui la pròpia o sobre la qual no tinguem permís, ja que segons la legislació d’alguns països podeu estar realitzant una acció il·legal.

En l’exemple següent es pot veure un escaneig molt simple a una màquina amb l’adreça de xarxa 192.168.7.52:

  1. Nmap scan report for 192.168.7.52
  2. Host is up (0.00039s latency).
  3. Not shown: 994 closed ports
  4. PORT STATE SERVICE
  5. 22/tcp open ssh
  6. 25/tcp open smtp
  7. 53/tcp open domain
  8. 80/tcp open http
  9. 139/tcp open netbios-ssn
  10. 445/tcp open microsoft-ds
  11. MAC address: 1C:C1:DE:**:**:** (Unknow)

La primera columna indica el número de port i el protocol carregat. La segona indica l’estat del port i la tercera indica el servei activat.

Els ports poden estar oberts (open), tancats (closed) o filtrats (filtered). Un port filtrat pot acceptar o no trànsit depenent les característiques del paquet.

La figura mostra l’aspecte de l’eina Zenmap. Aquest programa treballa amb nmap per obtenir dades, però ofereix una interfície gràfica molt còmoda per a l’usuari.

Figura Pantalla de l’aplicació Zenmap

Eines TCP/IP

Existeix una sèrie d’eines bàsiques per resoldre problemes de xarxa relacionats amb TCP/IP i que, alhora, poden resultar útils durant el procés de prova d’un tallafoc. A continuació és descriuen breument:

  • ip: IP vol dir Internet Protocol. Aquesta ordre és usada per a mostrar o manipular dispositius, l’enrutament i túnels. És similar a l’ordre ifconfig, però té més funcionalitats, ja que, a més de substituir ifconfig, substitueix també les ordres route i arp, aportant també noves funcionalitats. Així, es pot executar: ip route per veure l’enrutament dels paquets, ip monitor per monitoritzar l’estat dels dispositius i l’encaminament. Podem posar en funcionament interfícies de xarxa amb: ip link set enp3s0 up.
  • ifconfig: actualitza i mostra la configuració de xarxa. La figura mostra la sortida d’aquesta ordre. Com es pot observar, el resultat per defecte presenta més informació, a part de l’adreça de xarxa: també l’adreça MAC, l’adreça de difusió (broadcast), la màscara de xarxa o la quantitat de trànsit que ha circulat per la xarxa. Des del 2001 ja no té suport i ha estat substituit per l’eina ip.

Figura Exemple d’execució de l’ordre ifconfig
  • route: configura i mostra l’estat de la taula d’encaminament d’una màquina. En la figura es mostra un cas molt senzill de configuració d’un equip client.
Figura Exemple d’execució de l’ordre route
  • traceroute: determina la connectivitat amb una màquina remota indicant les màquines que troba pel camí. En màquines amb sistema operatiu Windows l’ordre equivalent és tracert, i el resultat de la seva execució es pot observar en la figura.
Figura Exemple d’execució de l’ordre tracert
  • host: permet realitzar cerques DNS directes i indirectes. En la figura es relaciona el domini ioc.xtec.cat amb l’adreça IP 213.176.163.218.
Figura Exemple d’execució de l’ordre host
  • dig: permet realitzar cerques DNS directes i indirectes aportant més informació que l’ordre host. La figura mostra el resultat de fer la consulta de dig sobre el domini ioc.xtec.cat i, com es pot veure, el resultat és bastant més complet que el que ofereix host.
Figura Exemple d’execució de l’ordre dig
  • tcpdump: permet veure paquets que arriben a una interfície de xarxa. La sortida d’aquesta ordre és bastant difícil de llegir, tal com es mostra en la figura.
Figura Exemple d’execució de l’ordre tcpdump
  • IPTraf: permet mesurar el trànsit que circula per una interfície. Treballar amb IPTraf és una opció molt bona a tcpdump. Com es pot veure en la figura, la interfície d’IPTraf presenta les dades de manera clara i entenedora.
Figura Exemple d’execució de l’ordre IPTraf

Registres d'esdeveniments d'un tallafoc

Treballar amb tallafoc no tindria gaire sentit si no es pogués consultar a posteriori la informació que aquest ha generat. És impossible estar vint-i-quatre hores davant d’un monitor amb la mirada atenta esperant que es produeixi un esdeveniment per actuar. Els tallafocs han de poder emmagatzemar informació rellevant per després poder-la analitzar i prendre les mesures que calgui.

Els diferents tallafocs emmagatzemen els esdeveniments que succeeixen a la xarxa seguint determinades tècniques.

Registre d'esdeveniments amb IPTables

El tallafoc IPTables registra missatges d’esdeveniments amb Syslog. Syslog és un estàndard que s’empra per l’enviament de missatges de registre a les xarxes informàtiques. En una distribució Linux, el nucli captura, mitjançant el dimoni klogd, els esdeveniments atípics que es produeixen i els emmagatzema. El fitxer de configuració syslog.conf, ubicat en el directori /etc, s’utilitza per indicar el directori de destinació dels missatges de registre generats per IPTables.

Per tal d’emmagatzemar missatges de registre en un directori, s’ha d’afegir al fitxer /etc/syslog.conf la línia següent:

kern.=debug/var/log/iptables.log

Perquè els canvis tinguin efecte cal reiniciar el dimoni.

Registre d'esdeveniments amb NFTables

Podem activar el registre de missatges amb la següent ordre, que registra tots els paquets de sortida cap al socket NFLOG:

nft add rule filter output log

També podem comptar quants paquets i bytes s’han rebut o s’han enviat a determinades adreces IP posant al fitxer /etc/nftables.conf les paraules counter packets 0 bytes 0, tal i com es pot veure a la figura figura.

Figura Comptar paquets

Anàlisi de registres

Quan les dades ja estan emmagatzemades, s’hi poden aplicar eines que permetin agregar-les a un informe sobre l’estat del programari o del sistema. Per exemple, mitjançant l’aplicació LogWatch, les dades d’un sistema Linux es poden agrupar. D’aquesta manera, es pot enviar un informe sobre l’activitat a l’administrador de sistemes.

També hi ha programari més específic, com l’AWStats, que permet analitzar els registres de servidors web. Amb aquest programa es poden extreure dades molt importants si l’atacant no ha pogut alterar el sistema d’emmagatzematge de registres.

Activitat a investigar

En general, el que cal buscar en els registres són les anomalies, ja que és molt complicat fer encaixar l’activitat que es genera en un atac amb el funcionament normal del sistema. Quan busquem anomalies, també es detecten falsos positius, activitat legítima que sembla il·lícita. Així, doncs, convé actuar amb cautela i no treure conclusions precipitades.

L’AWStats és un programari d’anàlisi de registres d’activitat de servidors web, correu i FTP.

Per exemple, en el cas d’analitzar els registres d’un servidor web, es podria començar a analitzar l’activitat buscant els punts següents:

  • Els fitxers més consultats: entre els fitxers més populars és possible trobar contingut il·lícit si el servidor web s’està fent servir per distribuir-lo.
  • Evolució del trànsit: en cas que hi hagi un increment sobtat del trànsit de dades, pot tractar-se d’un intent de denegació de servei o bé que s’hi hagi introduït algun contingut fraudulent. Així, doncs, per poder valorar què passa en el servidor web, caldria estimar l’evolució de bytes enviats, les consultes per unitat de temps i els totals de consultes per IP.
  • Consultes a fitxers que no existeixen (404): és possible que, per tal de comprometre un servidor web, s’hagi d’intentar accedir-hi repetidament. Algun d’aquests intents pot generar l’error 404 (not found: no trobat), que queda registrat en els logs del servidor web. Si els errors 404 es comproven periòdicament, és possible tenir una idea del tipus d’atacs que pateix el servidor.

Exemples de tallafoc

A Internet es poden trobar molts exemples de tallafocs gratuïts. Alguns d’aquests tallafocs, però, són més representatius i, en alguns casos, són fins i tot utilitzats per explicar diversos aspectes teòrics del món de les xarxes. Així, es podria iniciar l’estudi amb l’antic IPChains, que es pot utilitzar actualment en una segona línia de defensa, tot i que avui en dia és difícil de veure’l instal·lat. A continuació trobaríem l’IPTables, que és l’evolució natural de l’IPChains i, posteriorment, NFTables, l’evolució d’IPChains. A més, hi ha tot un seguit de tallafocs, que no són més que eines que utilitzen IPTables i NFTables, però que ofereixen major facilitat d’ús, fins i tot, en algun cas, amb interfícies gràfiques. També cal estudiar un equip bastió com a exemple curiós de màquina de xarxa amb un extra de seguretat.

IPChains

IPChains és un tallafoc obsolet que només s’utilitza en cassos molt concrets, generalment en la segona línia defensiva i en combinació amb altres tallafocs.

L’última revisió d’aquest programa es va realitzar l’any 2000 i s’incloïa a nuclis Linux anteriors al 2.4. Actualment es pot descarregar d’algunes pàgines d’eines de xarxa.

IPTables

El tallafoc IPTables és més complet que IPChains. És molt més precís, però també és més difícil d’utilitzar. Funciona carregant un mòdul del nucli i executant un guió o script. El guió segueix els passos següents:

  1. Es carreguen els mòduls imprescindibles i auxiliars.
  2. S’esborren les regles actuals.
  3. S’estableixen les polítiques per defecte per acceptar, reenviar o sortida.
  4. S’apliquen les regles.

Quan un paquet arriba al tallafoc és processat pel nucli. A partir d’aquí el paquet comença a recórrer etapes al nucli abans de ser enviat a la destinació adient, reenviat cap a un altre equip o bé se li aplica qualsevol altra operació.

Molts tallafocs utilitzen internament IPTables. Es tracta de programes amb una interfície prou entenedora que facilita molt el disseny de directives i la seva aplicació, modificació i manteniment.

NFTables

El tallafoc NFTables és el successor d’IPTables i inclou la gestió amb IPv6. Es va començar a desenvolupar desde zero al 2014 i es va integrar al kernel de Linux, a la branca 3.13. Debian es va decantar des del principi per NFTables i, per tant, també Ubuntu. Posteriorment ho va fer Red Hat. Les grans empreses usen actualment NFTables perquè té un rendiment millor. NFTables permet afegir amb una ordre diferents accions en una mateixa regla. Les ordres ip6tables, ebtables i arptables, s’integren totes a NFTables. Incorpora també una capa de compatibilitat amb IPTables per fer la transició més fàcil. NFTables té 3 components bàsics:

  • Implementació del kernel
  • Biblioteca de comunicació libnl
  • Frontend per a l’usuari

Equip bastió

Quan un equip de la xarxa, generalment un servidor, esdevé un objectiu potencial d’atacs, requereix una protecció extra. Un equip bastió és una màquina a la qual se li afegeix més protecció tot i estar a la xarxa interna. Aquests equips estan especialment configurats per rebre atacs. Un exemple d’equip bastió podria ser un servidor intermediari. Els bastions poden ser single-homed, dual-homed i multihomed.

Uncomplicated Firewall (ufw)

El tallafoc ufw (Uncomplicated Firewall) permet configurar fàcilment les IPTables des de la línia d’ordres. Aquest programa està desenvolupat per Ubuntu en llenguatge Python.

En la seva accepció original, un bastió és una fortificació que forma part d’un castell. La seva missió és protegir un espai crític de defensa en el cas de produir-se un atac.

La taula mostra resumidament el funcionament d’aquest tallafoc.

Taula: Exemples d’accions amb ufw
Funció Ordre
Encendre el tallafoc sudo ufw enable
Apagar el tallafoc sudo ufw disable
Mostrar l’estat del tallafoc sudo ufw status
Mostrar la llista de regles numerades sudo ufw status numered
Bloquejar tot el trànsit d’entrada sudo ufw default deny incoming
Permetre tot el trànsit d’entrada sudo ufw default allow incoming
Bloquejar tot el trànsit de sortida sudo ufw default deny outgoing
Permetre tot el trànsit de sortida sudo ufw default allow outgoing
Bloquejar el port 22 sudo ufw deny port 22
Permetre el port 22 sudo ufw allow port 22
Bloquejar el port 22 a l’IP 192.168.0.15 sudo ufw deny from 192.168.0.15 port 22
Permetre el port 22 a l’IP 192.168.0.15 sudo ufw allow from 192.168.0.15 port 22
Bloquejar el port 22 a la xarxa 192.168.0.0 sudo ufw deny from 192.168.0.0/24 port 22
Permetre el port 22 a la xarxa 192.168.0.0 sudo ufw allow from 192.168.0.0/24 port 22
Bloquejar un rang de ports TCP sudo ufw deny 1025:3000/tcp

Gufw

Gufw és una interfície gràfica desenvolupada per ufw. És una eina molt fàcil d’utilitzar i d’instal·lar. Apareix als repositoris oficials d’Ubuntu.

En la figura es mostra la pantalla d’inici del tallafoc, en la qual es pot veure que està habilitat però que encara no contempla cap regla.

Figura Pantalla principal de Gufw

Firewall Builder

El tallafoc Firewall Builder és un programa que ofereix una interfície gràfica per gestionar diferents plataformes de tallafocs. En la figura es mostra la finestra inicial del procés de creació d’un tallafoc.

Figura Pantalla de configuració d’un tallafoc amb Firewall Builder

Aquest programa està concebut per controlar diversos tallafocs des d’un únic centre de comandament. El fet que permeti controlar diversos tallafocs i que aquests puguin estar muntats amb IPTables, Cisco ASA and PIX, ipfilter BSD o HP ProCurve ACL el converteixen en un candidat òptim.

Shorewall

Shorewall és una eina que treballa sobre Netfilter i que permet aplicar fàcilment diferents dissenys de regles. Funciona sobre el sistema operatiu de Linux, però permet una gestió a distància utilitzant un navegador web.

Shorewall està considerat un dels tallafocs més potents per a distribucions Linux. Permet gestionar la xarxa utilitzant mecanismes senzills o bé aplicant una major complexitat quan és necessària.

Shorewall es pot descarregar dels repositoris oficials d’Ubuntu. La configuració es basa en treballar sobre quatre fitxers: interfaces, policy, rules i zones. A interfaces es configuren les interfícies del tallafoc. A zones es definiran les zones que s’administraran amb Shorewall i el tipus de zona. A policy s’especifica si s’accepta (ACCEPT) o no (DROP) el trànsit entre zones.

Exemple de fitxer /etc/shorewall/zones

#ZONE DISPLAY OPTIONS
fw firewall
net ipv4
loc ipv
dmz ipv4
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE

Exemple de fitxer /etc/shorewall/interfaces

#ZONE INTERFACE BROADCAST OPTIONS GATEWAY
net ppp0 detect
loc enp0s1 detect
dmz enp0s3 detect
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE

Exemple de fitxer /etc/shorewall/policy

#SOURCE DEST POLICY LOG LIMIT:BURST
loc net ACCEPT
dmz net ACCEPT
fw net ACCEPT
net all DROP info
all all REJECT info
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE

IPFire

La distribució Linux IPFire va nèixer com un fork del tallafoc IPCop i va ser reescrit a partir de la versió 2 (publicada el 2011). IPFire té llicència GNU desde 2007. Des de la seva web es pot descarregar una imatge ISO i fer una instal·lació com si fos un sistema operatiu Linux corrent. Un cop acabada la instal·lació del sistema operatiu, aquest demana fer un reinici per configurar la xarxa i les contrasenyes; una vegada fet això, podem entrar a la consola de configuració accedint a https://ipfire:444.

IPFire pot funcionar com a firewall o com a IDS.

Podeu consultar més informació d’IPFire a: ipdire.org.

IPFire com a firewall està construït sobre Netfilter, filtrant els paquets de forma molt ràpida i aconseguint rendiments de fins a desenes de Gigabits per segon.

Té una interfície web intuïtiva, que permet crear grups de màquines i de xarxes. Així pot contenir un gran conjunt de regles ordenades. També permet generar informes gràfics.

IPFire necessita, com a mínim, un processador de la família x86 amb 1 GHz, 1GB de RAM i 4GB de disc dur. També necessita 2 adaptadors Ethernet.

Permet filtrar i bloquejar atacs DoS (Denial-of-Service).

  • Logotip d'IPFire
  • Logotip d'IPFire

Com a IDS, IPFire analitza el tràfic de la xarxa intentant detectar exploits i activitats sospitoses. En produir-se una detecció, s’envien les alertes corresponents i es bloqueja l’atacant.

En una configuració típica, IPFire es configura amb Geen + Red, que vol dir que tindrem 2 xarxes.

Normalment, hi ha dues xarxes: la xarxa Green, pels ordinadors de la xarxa interna, i la xarxa Red, pels altres ordinadors, connectats a través d’Internet.

Com a molt són possibles 4 xarxes, anomenades: Green, Blue, Orange i Red:

  • La xarxa Red serà una WAN, és a dir, una xarxa externa conectada a Internet i al Proveidor d’Internet (ISP) corresponent.
  • La xarxa Green serà la nostra xarxa interna o LAN privada.
  • La xarxa Orange serà la Zona Desmilitaritzada, DMZ, on es podrà accedir a un servidor desprotegit o a una xarxa desprotegida des d’Internet.
  • La xarxa Blue serà una xarxa Wireless WLAN, és a dir, una xarxa wireless separada per a aquest tipus de clients.

Per a instal·lar IPFire en una màquina virtual, podem crear al VirtualBox 2 interfícies de xarxa -és el mínim necessari- i escollir-hi el teclat es. Amb 2 interfícies de xarxa, podem configurar un sistema Green+Red; per fer-ho hem d’escollir Red com a tipus de configuració i, després, assignar els controladors i les targetes a les interfícies Green i Red.

Tot seguit, hem d’assignar les adreces IP a Green, que sol correspondre al host 1 d’una adreça IP privada (per exemple, 10.0.0.1), i Red, que serà especial ja que dependrà del nostre ISP. Sol ser una adreça IP pública (podria ser, per exemple, 193.100.10.8). Per acabar, només hem de configurar el DNS i la porta d’enllaç. Com a DNS primari podem posar l’adreça IP 8.8.8.8, que correspon al servidor DNS de Google, i, com a porta d’enllaç, la que tinguem a la xarxa. Seguint l’exemple anterior, un valor posible seria 10.0.0.50.

Amb iptables -L podem veure les cadenes que hi ha; entre aquestes trobarem GEOIPBLOCK, BADTCP, WIRELESSINPUT i TOR_INPUT.

Tallafoc de Microsoft Windows

El tallafoc de Microsoft Windows és un clar exemple de tallafoc per a xarxes domèstiques. No es requereixen grans coneixements per administrar-lo i és un programa ja instal·lat en el sistema operatiu. En molts casos aquest programa està funcionant a l’equip de l’usuari i aquest ho desconeix totalment.

La figura mostra la pantalla de configuració del tallafoc. Es pot apreciar que no disposa de paràmetres tècnics ni requereix de gaires coneixements per activar-lo o desactivar-lo i per fer-ne una configuració bàsica.

Figura Pantalla de configuració del tallafoc de Microsoft Windows
Anar a la pàgina anterior:
Referències
Anar a la pàgina següent:
Exercicis d'autoavaluació