Un firewall és un dispositiu que funciona com a tallafocs entre xarxes, permetent o denegant les transmissions d'una xarxa a l'altra. Un ús típic és situar-ho entre una xarxa local i la xarxa Internet, com a dispositiu de seguretat per evitar que els intrusos puguin accedir a informació confidencial.
Un firewall és simplement un filtre que controla totes les comunicacions que passen d'una xarxa a l'altra i, en funció del que siguin, permet o denega el seu pas. Per permetre o denegar una comunicació el firewall examina el tipus de servei al que correspon i, depenent del servei, el firewall decideix si ho permet o no. A més, el firewall examina si la comunicació és entrant o sortint i depenent de la seva adreça pot permetre-la o no.
D'aquesta manera un firewall pot permetre des d'una xarxa local cap a Internet serveis de web, correu i ftp que pot ser innecessari per al nostre treball. També podem configurar els accessos que es facin des d'Internet cap a la xarxa local i podem denegar-los tots o permetre alguns serveis com el de la web, (si és que posseïm un servidor web i volem que accessible des d'Internet). Depenent del firewall que tinguem també podrem permetre alguns accessos a la xarxa local des d'Internet si l'usuari s'ha autenticat com a usuari de la xarxa local.
Un firewall pot ser un dispositiu programari o maquinari, és a dir, un aparell que es connecta entre la xarxa i el cable de la connexió a Internet, o bé un programa que s'instal·la en la màquina que té el mòdem que connecta amb Internet. Fins i tot podem trobar ordinadors computadors molt potents i amb programaris específics que l'única cosa que fan és monitoritzar les comunicacions entre xarxes.
En quan a les seves característiques principals, podríem destacar:
Un sistema firewall conté un conjunt de regles predeterminades que permeten al sistema:
Totes aquestes regles implementen un mètode de filtrat que depèn de la política de seguretat adoptada per l'organització. Les polítiques de seguretat es divideixen generalment en dos tipus que permeten:
"Tot el que no s'ha autoritzat explícitament està prohibit"
El primer mètode és sens dubte el més segur. No obstant això, imposa una definició precisa i restrictiva de les necessitats de comunicació.
Per tant, clarament veiem que hi ha dues polítiques bàsiques en la configuració d'un tallafoc i que canvien radicalment la filosofia fonamental de la seguretat en l'organització:
La política restrictiva és la més segura, ja que és més difícil permetre per error trànsit potencialment perillós, mentre que en la política permissiva és possible que no s'hagi contemplat algun cas de trànsit perillós i sigui permès per defecte.
Un sistema de firewall opera segons el principi del Filtrat simple de paquets, o filtrat de paquets stateless. Analitza l'encapçalat de cada paquet de dades (datagrama) que s'ha intercanviat entre un ordinador de xarxa interna i un ordinador extern.
Així, els paquets de dades que s'han intercanviat entre un ordinador amb xarxa externa i un amb xarxa interna passen pel firewall i contenen els següents encapçalats, els quals són analitzats sistemàticament pel firewall:
Les adreces IP que els paquets contenen permeten identificar l'ordinador que envia els paquets i l'ordinador de destí, mentre que el tipus de paquet i el nombre de port indiquen el tipus de servei que s'utilitza.
La següent taula proporciona exemples de regles del firewall:
Els ports reconeguts (els nombres dels quals van del 0 al 1023) estan associats amb serveis ordinaris (per exemple, els ports 25 i 110 estan associats amb el correu electrònic i el port 80 amb la Web). La majoria dels dispositius de firewall es configuren almenys per filtrar comunicacions d'acord amb el port que s'utilitza. Normalment, es recomana bloquejar tots els ports que no són fonamentals (segons la política de seguretat vigent).
Per exemple, el port 23 sovint es bloqueja de forma predeterminada mitjançant dispositius de firewall, ja que correspon al protocol TELNET, el qual permet a una persona emular l'accés terminal a una màquina remota per executar comandes a distància. Les dades que s'intercanvien a través de TELNET no estan codificades. Això significa que és probable que un hacker observi l'activitat de la xarxa i robi qualsevol contrasenya que no estigui codificada. Generalment, els administradors prefereixen el protocol SSH, el qual té la reputació de ser segur i brinda les mateixes funcions que TELNET.
El Filtrat de paquets Stateless només intenta examinar els paquets IP independentment, la qual cosa correspon al nivell de Xarxa del model TCP. No obstant això, la majoria de les connexions són admeses pel protocol TCP, el qual administra sessions, per tenir la seguretat que tots els intercanvis es duguin a terme en forma correcta. Així mateix, molts serveis (per exemple, FTP) inicien una connexió en un port estàtic. No obstant això, obren un port en forma dinàmica (és a dir, aleatòria) per establir una sessió entre la màquina que actua com a servidor i la màquina client.
D'aquesta manera, amb un filtrat simple de paquets, és impossible preveure quins ports haurien d'autoritzar-se i quins haurien de prohibir-se. Per solucionar aquest problema, el sistema de filtrat dinàmic de paquets es basa en la inspecció de les capes d'Internet i Transport del model TCP/IP, la qual cosa permet controlar la totalitat de les transaccions entre el client i el servidor. El terme que s'usa per denominar aquest procés és "inspecció stateful" o "filtrat de paquets stateful".
Un dispositiu de firewall amb "inspecció stateful" pot assegurar el control dels intercanvis. Això significa que pren en compte l'estat de paquets previs quan es defineixen regles de filtrat. D'aquesta manera, des del moment en què una màquina autoritzada inicia una connexió amb una màquina situada a l'altre costat del firewall, tots els paquets que passin per aquesta connexió seran acceptats implícitament pel firewall.
El fet que el filtrat dinàmic sigui més efectiu que el filtrat bàsic de paquets no implica que el primer protegirà l'ordinador contra els hackers que s'aprofiten de les vulnerabilitats de les aplicacions. Encara així, aquestes vulnerabilitats representen la major part dels riscos de seguretat.
El filtrat d'aplicacions permet filtrar les comunicacions de cada aplicació. El filtrat d'aplicacions opera en la capa d'aplicacions del model TCP/IP, a diferència del filtrat simple de paquets que opera en la capa de Transport. El filtrat d'aplicacions implica el coneixement dels protocols utilitzats per cada aplicació.
Com el seu nom indica, el filtrat d'aplicacions permet filtrar les comunicacions de cada aplicació. El filtrat d'aplicacions implica el coneixement de les aplicacions a la xarxa i un gran enteniment de la forma en què en aquesta s'estructuren les dades intercanviades (ports, etc.).
Un firewall que executa un filtrat d'aplicacions es denomina generalment "passarel·la d'aplicacions" o ("proxy"), ja que actua com relé entre dues xarxes mitjançant la intervenció i la realització d'una avaluació completa del contingut en els paquets intercanviats. Per tant, el proxy actua com a intermediari entre els ordinadors de la xarxa interna i la xarxa externa, i és el que rep els atacs. A més, el filtrat d'aplicacions permet la destrucció dels encapçalats que precedeixen els missatges d'aplicacions, la qual cosa proporciona una major seguretat.
Aquest tipus de firewall és molt efectiu i, si s'executa correctament, assegura una bona protecció de la xarxa. D'altra banda, l'anàlisi detallada de les dades de l'aplicació requereix una gran capacitat de processament, la qual cosa sovint implica l'alentiment de les comunicacions, ja que cada paquet ha d'analitzar-se minuciosament.
A més, el proxy ha d'interpretar una gran varietat de protocols i conèixer les vulnerabilitats relacionades per ser efectiu.
Finalment, un sistema com aquest podria tenir vulnerabilitats pel fet que interpreta comandes que passen a través de les seves esquerdes. Per tant, el firewall (dinàmic o no) hauria de dissociar-se del proxy per reduir els riscos de comprometre al sistema.
Per classificar el tipus de firewall ho podríem fer tenint en compte la capacitat de tractar el tràfic i la flexibilitat i facilitat de configuració que tenen. Una classificació possible podria ser per la ubicació en la que es trobi el firewall:
Les arquitectures de firewalls més implementades són:
Les IPTABLES és una de les eines de firewall més utilitzades en sistemes GNU/Linux, que permeten el filtrat de paquets de xarxa així com realitzar funcions de NAT. Venen per defecte en el nucli de GNU/Linux i no cal instal·lar-ho.
S'ha d'anar amb compte perquè l'ordre en que s'executen les cadenes de regles és molt important ja que les llegeix de forma seqüencial, és a dir, comença per la primera i verifica que es compleixla condició, i en cas afirmatiu l'executa sense verificar les següents.
Per tant, si la primera regla en una determinada taula és refusar qualsevol paquet, les següents regles ja no seran verificades.
El funcionament i estructura serien el següents:
Estructura
iptables -t [taula] --[tipus operació] --[cadena] --[regla amb paràmetres] --[acció]
Exemple:
iptables -t filter -A FORWARD -i eth0 -s 192.168.2.100 -p tcp --dport 80 -j ACCEPT
Les taules que se solen utilitzar són la filter, per acceptar o rebujar paquets, i la nat, per modificar l'origen o el destí d'un paquet.
Les cadenes de la taula filter són:
Les cadenes de la taula nat són:
Les accions que estaran sempre al final de cada regla (després de l'opció -j) que determinarà que fer amb els paquets afectats són:
Nota: S'ha de tenir en compte que per poder fer un FORWARD a través del Firewall des d'una altre màquina, hem d'activar l'arxiu ip_forward posant-lo a 1.
echo 1 > /proc/sys/net/ipv4/ip_forward
Guardar les regles
Les regles creades amb la comanda iptables són emmagatzemades en memòria. Si el sistema és reiniciat abans de guardar el conjunt de regles iptables, es perdran totes les regles. Perquè les regles de filtrat de xarxa persisteixin després d'un reinici del sistema, aquestes necessiten ser guardades. Per fer-ho, escriurem:
$sudo iptables-save
La propera vegada que s'iniciï el sistema, l'script d'inici de iptables tornarà a aplicar les regles guardades utilitzant la comanda /sbin/iptables-restore.
Encara que sempre és una bona idea provar una regla d'iptables abans de confirmar els canvis, és possible copiar regles iptables en aquest arxiu des d'una altra versió del sistema d'aquest arxiu. Això proporciona una forma ràpida de distribuir conjunts de regles iptables a moltes màquines. Si realitzem aquestes còpies, perquè sorgeixi efecte en les noves màquines haurem d'utilitzar la comanda:
$sudo iptables-restore