UF3-NF1. Filtre d'informació a nivell de xarxa (i/o Transport)
tornar M11_-_Seguretat_i_alta_disponibilitat#UF3_-_Tallafocs_i_servidors_intermediaris
Contingut
Filtre d'informació. Nivell de Xarxa (i/o Transport)
Els filtres s'implementen amb política per defecte + Llista de Regles
Les polítiques per defecte depenen del paradigma de seguretat:
- Permissiu. Política per defecte ACCEPTAR
- Restrictiu. Política per defecte NEGAR
En els tallafocs de nivell de xarxa, una regla simplement és una condició sobre el paquet, origen, destí, port, protocol, etc... i una acció associada (ACCEPT, DENY, DROP).
En general per a cada paquet, es repassa la llista de regles de manera seqüencial, si una compleix s'executa l'acció associada. Si no compleix cap s'executa la política per defecte.
Tipus de tràfec:
- Connexions d' entrada, seguretat del propi firewall. Molt important, el firewall és un punt calent de la xarxa, si la seva seguretat es veu compromesa el perímetre es trenca.
- Connexions de sortida, en general no cal controlar la sortida.
- Connexions reenviades (xarxa interna <-> Internet), tant d'entrada com de sortida
- Entrada, control de l'accés als serveis de xarxa que ofereix la LAN.
- Sortida, accés a dels ordinadors de la zona de confiança a recursos externs (no confiables)
iptables (StateLess)
En Linux la majoria de tallafocs es basen en iptables. Aquesta eina permet implementar les polítiques de filtre típiques dels tallafocs, però a més afegeix altres funcionalitats com traducció d'adreces o modificació dels paquets.
Forma part del framework NetFilter integrat en el nucli de Linux i per tant funciona a molt baix nivell, per tant és ràpida i segura.
S'estructura en taules, cada taula té unes cadenes (Chains) associades, a partir de les quals es creen les regles que s'apliquen als paquets que passen pel tallafocs.
S'organitza en taules:
- FILTER: Filtre, taula per defecte (Firewall)
- Cadenes: INPUT, OUTPUT, FORWARD
- NAT: Traducció d'adreces i reenviament
- Cadenes: POSTROUTING, PREROUTING (També OUTPUT)
- MANGLE: Modificació de paquests, afinament
- RAW: Intercepta paquets en cru (abans que cap altre taula)
A les regles se'ls assigna una acció (target).
- ACCEPT
- DROP
- Target extensions
- REJECT, només a INPUT, UTPUT, FORWARD, en alguns casos pot retornar un error (ICMP), en qualsevol altre idèntica a DROP
- LOG, no finalitza, continua a la següent (Per tant en cas de refusar cal indicar 2 regles LOG + DROP)
El resultat de les regles es mostra als missatges del nucli
/var/log/messages
Sintaxi bàsica
iptables -A {CADENA} [options de filtre] -j {ACCIÓ} #iptables -A INPUT -s 192.168.10.0/24 -i eth1 -j ACCEPT Algunes opcions: -A : Afegir una regla -D : Esborrar una regla -F : Esborrar totes les regles d'un tipus -P : política per defecte per una cadena -v : (Verbose) Permet veure els paquets tractats per cada regla -Z : Inicialitza els contadors Filtres. Es poden negar amb el caràcter "!" -p tcp/udp: A quin protocol s'aplica: tcp, udp, icmp o all -s IP: IP origen (Source) -s IP/MASK: 0.0.0.0/0 per qualsevol xarxa -d IP: IP destí -j DROP/ACCEPT # (Jump) Acció que cal fer si el paquet compleix les especificacions -o eth0: Output interfase -i eth0: Input interfase --dport numero Cadenes personals -N : crear una cadena personal -X : Esborrar una cadena personal
traducció d'adreces, NAT
La taula nat de iptables permet gestionar la traducció d'adreces (sortida) i el reenviament (entrada).
Aquesta taula modifica la informació dels paquets i es basa en les cadenes
- POSTROUTING, per als paquets que passen a través del sistema de sortida, els modifica just abans de sortir. Després d'aplicar les regles FORWARD per exemple.
- Serveix per configurar el NAT dinàmic. Ordinadors de la xarxa local sortint a Internet amb una adreça pública per exemple.
- PREROUTING, per als paquets que passen a través del sistema d' entrada, els modifica tant bon punt entren. Abans d'aplicar les regles FORWARD per exemple.
- Serveix per gestionar els reenviaments. Clients d'Internet, que només tenen accés a l'adreça pública de la xarxa, són reenviats a màquines concretes de la xarxa local per exemple.
- OUTPUT, generats pel propi sistema.
Aquestes cadenes tenen nous Targets:
- DNAT --> PREROUTING (També OUTPUT), canvia IP destí
- MASQUERADE --> POSTROUTING, nat dinàmic PAT, canvia IP origen
- SNAT --> POSTROUTING, nat estàtic, canvia IP origen (igual que MASQUERADE però permet un pool d'adreces externes)
Exemples # NAT de sortida, eth0 és la interfase de sortida dels paquets. Activació del bit de forward (enrutament entre interfases) echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE # Redirecció del tràfec al port 80 entrant a la interfase eth0, al port 80 de la màquina 192.168.10.12 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.10.12:80 # SNAT de sortida iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 --to-source 194.236.50.155-194.236.50.160:1024-32000 -j SNAT
iptables (StateFull)
Addicionalment, iptables permet el tractament de l'estat de les connexions.
Les comunicacions client-servidor es poden veure com:
- Nivell de xarxa, intercanvi de paquets
- Nivell de transport (TCP), establiment d'una connexió, una connexió passa per diferents estats.
Amb el mòdul (match) state es pot diferenciar entre aquests estats
- NEW, comença nova connexió
- ESTABLISHED, paquet associat a una connexió existent
- RELATED, comença nova connexió secundària, associada a una existent
Pot interessar per exemple deixar sortir connexions noves (NEW) però només deixar entrar connexions establertes o secundàries (ESTABLISHED - RELATED), d'aquesta manera impedir l'inici de connexions contra el servidor o altres màquines de la xarxa.
iptables -A FORWARD -i eth1 -m state ! --state INVALID -j ACCEPT iptables -A FORWARD -i eth0 -m state --state ESTABLISHED, RELATED -j ACCEPT iptables -A FORWARD -j DROP
Altres
Tutorial molt complet
http://www.frozentux.net/iptables-tutorial/iptables-tutorial.html
Alguns exemples per a protocols concrets
http://ocw.uv.es/ingenieria-y-arquitectura/seguridad/3Seguridad_perimetrica.pdf
http://www.mmc.igeofcu.unam.mx/LuCAS/Manuales-LuCAS/doc-unixsec/unixsec-html/node252.html