|
|
(Hi ha 2 revisions intermèdies del mateix usuari que no es mostren) |
Línia 115: |
Línia 115: |
| * <font>Firewall i proxy caché</font> | | * <font>Firewall i proxy caché</font> |
| |} | | |} |
− |
| |
− |
| |
− | == 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
| |
− |
| |
− | <pre>
| |
− | /var/log/messages
| |
− | </pre>
| |
− |
| |
− | Sintaxi bàsica
| |
− |
| |
− | <pre>
| |
− | 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
| |
− | </pre>
| |
− |
| |
− |
| |
− | ==== 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)
| |
− |
| |
− | <pre>
| |
− | 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
| |
− | </pre>
| |
− |
| |
− |
| |
− |
| |
− | === iptables (StateFull) ===
| |
− |
| |
− | Addicionalment, iptables permet el tractament de l'estat de les connexions.
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− | <pre>
| |
− | Registre connexions entrants des de 192.168.1.215 (Inici de connexió, estat sync, es guarden als missatges del nucli)
| |
− | #iptables -I INPUT -s 192.168.1.215 -p tcp --syn -j LOG
| |
− |
| |
− |
| |
− | Exemple 1. NAT
| |
− |
| |
− | ## Nota: eth0 es el interfaz conectado al router y eth1 a la LAN
| |
− |
| |
− | # Al firewall tenemos acceso desde la red local
| |
− |
| |
− | iptables -A INPUT -s 192.168.10.0/24 -i eth1 -j ACCEPT
| |
− |
| |
− | # Ahora hacemos enmascaramiento de la red local
| |
− |
| |
− | # y activamos el BIT DE FORWARDING (imprescindible!!!!!)
| |
− |
| |
− | iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE
| |
− | Exemple 2. tallar ports bàsics sortida
| |
− |
| |
− | # Aceptamos que vayan a puertos 80
| |
− | iptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p tcp --dport 80 -j ACCEPT
| |
− | # Aceptamos que vayan a puertos https
| |
− | iptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p tcp --dport 443 -j ACCEPT
| |
− |
| |
− | # Aceptamos que consulten los DNS
| |
− | iptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p tcp --dport 53 -j ACCEPT
| |
− | iptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p udp --dport 53 -j ACCEPT
| |
− |
| |
− | # Y denegamos el resto. Si se necesita alguno, ya avisaran
| |
− | iptables -A FORWARD -s 192.168.10.0/24 -i eth1 -j DROP
| |
− |
| |
− | Exemple 3. Obrir ports exemple d'entrada i una ip específica d'entrada a la màquina on estem
| |
− |
| |
− | # Abrimos el puerto 25, hay que configurar bien el relay del servidor SMTP
| |
− | iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 25 -j ACCEPT
| |
− | # Abrimos el pop3
| |
− | iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 110 -j ACCEPT
| |
− |
| |
− | # Y abrimos el puerto pptpd para la ip del adsl de casa del jefe
| |
− | iptables -A INPUT -s 211.45.176.24 -p tcp --dport 1723 -j ACCEPT Redireccion a màquina internes de la xarxa
| |
− | ## REDIRECCIONES
| |
− |
| |
− | # Todo lo que venga por el exterior y vaya al puerto 80 lo redirigimos
| |
− | # a una maquina interna
| |
− | iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.10.12:80
| |
− |
| |
− | # Los accesos de un ip determinada a Terminal server se redirigen e esa
| |
− | # maquina
| |
− | iptables -t nat -A PREROUTING -s 221.23.124.181 -i eth0 -p tcp --dport 3389 -j DNAT --to 192.168.10.12:3389
| |
− |
| |
− | En general aquestes comandes les posarem dins un script de linux amb els permisos adequats
| |
− |
| |
− | #chmod 750 firewall1.sh
| |
− | Per verificar la configuració
| |
− |
| |
− | #iptables -L –n
| |
− | </pre>
| |
− |
| |
− | 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
| |
Firewall és un dispositiu que té un conjunt de regles que especifiquen el tràfec de xarxa que s'accepta i el que es denega (Filtre), addicionalment poden tenir una tercera regla per indicar si es registre el tràfec (Log).
Són sol·lucions de programari que filtren el tràfec entre un ordinador personal i la xarxa.
Implementen seguretat perimètrica a nivell de xarxa però no són sistemes alternatius als altres elements de la seguretat activa i passiva. En general els tallafocs més bàsics no comproven el contingut dels paquets (la informació), només comproven dades de xarxa.