Diferència entre revisions de la pàgina «UF3-NF1. Introducció als tallafocs»

De Wiki IES Marianao. Departament Informàtica
Dreceres ràpides: navegació, cerca
(Tallafocs de Xarxa)
(iptables)
Línia 135: Línia 135:
 
=== iptables ===
 
=== iptables ===
  
En Linux la majoria de tallafocs es basen en ''iptables''.
+
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.
  
Es basa en cadenes (Chains) que són les regles que s'apliquen als paquets que passen pel tallafocs.
+
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:
 
S'organitza en taules:
*FILTER
+
*'''FILTER''': Filtre, taula per defecte (Firewall)
*NAT
+
** Cadenes: INPUT, OUTPUT, FORWARD
*MANGLE
+
*'''NAT''': Traducció d'adreces i reenviament
*RAW
+
*MANGLE: Modificació de paquests, afinament
 +
*RAW: Intercepta paquets en cru (abans que cap altre taula)
 +
 
 +
 
 +
 
 +
 
  
 
Per a les funcions de tallafocs interessa principalment el filtrat (FILTER) que té 3 cadenes: INPUT, OUTPUT, FORWARD. També interessa NAT que s'utilitza per traducció i redirecció, cadenes: PREROUTING, POSTROUTING.
 
Per a les funcions de tallafocs interessa principalment el filtrat (FILTER) que té 3 cadenes: INPUT, OUTPUT, FORWARD. També interessa NAT que s'utilitza per traducció i redirecció, cadenes: PREROUTING, POSTROUTING.

Revisió del 17:54, 5 gen 2012

tornar M11_-_Seguretat_i_alta_disponibilitat#UF3_-_Tallafocs_i_servidors_intermediaris


Tallafocs

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).

El funcionament bàsic d'un tallafocs és

  1. Examinar els paquets que rep o envia. Informació de xarxa, protocols, adreces, ports, interfases, estat de la connexió ...
  2. Aplicar les regles definides
  3. Decidir si el paquet passa o no


Els tallafocs es poden classificar

  • Segons el seu objectiu
    • Personals
    • De xarxa
  • Com s'implementen
    • Programari
    • Maquinari


Tallafocs Personals

Són sol·lucions de programari que filtren el tràfec entre un ordinador personal i la xarxa.

  • Firewall de Windows
  • Firestarter, Linux Firewall
  • Gufw, interfase de ufw (Uncomplicated Firewall), interface per a iptables

Filtren:

  • Connexions d'entrada, només útil en cas de servidors
  • Connexions de sortida, control de la navegació dels usuaris, possibles connexions de programari maliciós, p2p, etc...


Tallafocs de 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.


El tallafoc es situa en el punt de connexió amb altres xarxes i analitza i filtra el tràfec de xarxa en ambdues direccions, entrant i sortint. Centralitza la seguretat en les comunicacions de la xarxa interna. També pot mantenir un registre (Log). La xarxa interna és el perímetre de seguretat.


Firewall.png


Filtren:

  • 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)

Implementacions

Programari, el tallafocs es pot implementar amb un ordinador i el programari necessari.

  • En general serà un ordinador dedicat sense gaires serveis addicionals per temes de rendiment.
  • Programari gratuït, existeixen múltiples distribucions de linux a tal efecte, en general GUI per a iptables
  • Programari propietari, en cas de fer servir sistemes Windows Server per exemple

Maquinari, amb un router o amb maquinari i programari específic

  • CISCO té famílies de Routers - Firewalls, CISCO ASA (successor CISCO PIX). Que a més inclouen moltes altres funcionalitats, VPN, IPS
  • http://www.checkpoint.com empresa desenvolupadora de FireWall-1


En qualsevol cas és normal que el tallafocs faci funcions d'encaminador també, donat la situació física on es troba (punt de sortida de la xarxa).

Exemples de programari per a Tallafocs de xarxa


IPcop


http://ipcop.org/

Linux
  • Firewall i proxy caché
Zentyal


http://www.zentyal.com/



Ubuntu

  • Firewall
  • Proxy caché
  • Servidor d'arxius
  • Servidor Domini
  • VPN
ISA Server Windows


Server

  • Firewall i proxy caché


Filtre d'informació. Regles

Existeixen dos paradigmes de seguretat:

  • Tot allò que no es prohibeix expressament està permès --> Naïf. Política per defecte ACCEPTAR
  • Tot allò que no està permès expressament es prohibeix --> Paranoic (Recomanat). Política per defecte NEGAR


Els filtres s'implementen amb política per defecte + Llista de Regles

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 seqüencialment, si una compleix s'executa l'acció associada. Si no compleix cap s'executa la política per defecte.

Tipus de Filtres:

  • De paquets o de capa de xarxa, no miren informació de protocols d'aplicació (Estàtics). Són ràpids, p.e. iptables
    • Sense estat (Stateless).
    • Amb estat (StateFul Filtering i StateFull Packet Inspection).
  • De capa d'aplicació, més complexos doncs entenen els diferents protocols d'aplicació, més específics però més lents (Dinàmics). Generalment s'implementen en proxys i s'enfoquen a protocols concrets com HTTP, p.e. DansGuardian + SQUID, ISA Server


iptables

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
  • MANGLE: Modificació de paquests, afinament
  • RAW: Intercepta paquets en cru (abans que cap altre taula)



Per a les funcions de tallafocs interessa principalment el filtrat (FILTER) que té 3 cadenes: INPUT, OUTPUT, FORWARD. També interessa NAT que s'utilitza per traducció i redirecció, cadenes: PREROUTING, POSTROUTING.

Registre connexions entrants des de 192.168.1.215 (Inici de connexió, estat sync, es guarden als missatges del nucli)

  1. iptables -I INPUT -s 192.168.1.215 -p tcp --syn -j LOG

Sintaxi bàsica

#iptables -A FILTER -p tcp/udp [options] -j ACTION

-A INPUT, OUTPUT, FORWARD: Afegir una regla
-D INPUT, OUTPUT, FORWARD: Esborrar una regla
-F INPUT, OUTPUT, FORWARD: Esborrar totes les regles d'un tipus

Algunes opcions:

-v : (Verbose) Permet veure els paquets tractats per cada regla

-Z : Inicialitza els contadors

-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/MASQUERADE # (Jump) Acció que cal fer si el paquet compleix les especificacions
-o eth0: Output
-i eth0: Input
--dport numero
-t nat -A POSTROUTING .... -o eth0 -j MASQUERADE # NAT de sortida
-t nat -A PREROUTING ... -j DNAT --to IP:port # PAT d'entrada, redirecció

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

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