IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Tallafocs

thumbs

Implementacions

  • Per software:
  • Els que formen part del sistema operatiu. No cal instal·lar-los (ja venen de sèrie. Per exemple, Iptables en Linux).
  • A nivell d'aplicació (TCP Wrappers).
  • Firewalls personals (aplicacions que ens podem instal·lar).
  • Per hardware: màquina pensada exclusivament per fer de tallafocs.

Iptables/NetFilter

SeguretatJaumeS 80.png

Es filtra la capçalera d'Ethernet (MAC), capçalera de IP i capçalera de TCP

Seguretat per defecte (en el nucli del sistema operatiu). No és cap servei (forma part del nucli i hi ha menys possibilitats de que es penji). Menys vulnerable.

Té un elaborat, complet i complexe sistema de passos pels quals passa un paquet. El més important per entendre iptables és conèixer la seva semàntica i les capçaleres dels protocols TCP/IP.

SeguretatJaumeS 81.png

En una màquina que només té una única connexió, els paquets entren o surten. Normalment es vigilaran els paquets que entren.

FORWARDING: Només s'utilitza en encaminadors i passarel·les (ip_forwarding activat). No l'utilitzarem en tallafocs personals o servidors.

Cadenes: INPUT, OUTPUT, PREROUTING, POSTROUTING, FORWARD. Són normes.

Taules: raw, mangle, nat, filter. Per organitzar el firewall.

  • Filter: normes que són per filtrar (un paquet passa o no passa, però mai es modifica). És el més utilitzat.
  • Raw, Mangle i Nat: modifiquen paquets.
  • NAT: modifica direccions (IP) o ports.
  • Mangle: podem canviar el que vulguem d'un paquet.
  • Raw: podem modificar 0 i 1.

Els firewalls es formaran de normes (rules). És important l'ordre en que estiguin ficades les normes. Tenen 2 parts: condició i target.

  • Targets: ACCEPT, DROP (llençar), QUEUE, RETURN, REJECT (s'informa a l'origen que no s'accepta), LOG, ULOG, DNAT (es modifica la IP de destinació), SNAT, MASQUERADE.

Política: són les regles per defecte (que es fa amb un paquet, s'accepta o es llença).

Per executar iptables s'ha de ser superusuari.

$ sudo iptables -nvL
  • L(list)
  • v(verbose)
  • n(mostra IP enlloc de noms de màquines)
SeguretatJaumeS 82.png
$ sudo watch -n 1 iptables -nvL

watch: qualsevol comanda s'executa automàticament (cada 2 segons). Amb -n 1 s'executa cada segon.

SeguretatJaumeS 83.png
$ sudo iptables -A INPUT -p icmp -j DROP

-A Per afegir una norma s'utilitza -p protocol (en aquest cas, icmp) -j que es vol fer (target. En aquest cas, DROP)

$ sudo iptables -A INPUT -p icmp -j DROP

-D Per eliminar una norma

IMPORTANT: Per moltes normes que es puguin aplicar, no es pot evitar que arribin paquets a la targeta de xarxa. Sempre arriben paquets.

Per deixar de tenir targeta de xarxa:

$ sudo iptables -A INPUT -j DROP
$ sudo iptables -I INPUT 1 -p icmp -j ACCEPT

-I Per inserir una norma

$ sudo iptables -F

-F Per esborrar totes les normes a la vegada

Per esborrar els comptadors:

$ sudo iptables -Z

Per esborrar les cadenes creades pels usuaris:

$ sudo iptables -X


$ sudo iptables -A INPUT -s 192.168.202.101 -j DROP

-s Per impedir que la IP que hem ficat ens pugui fer pings

$ sudo iptables -A INPUT -s 192.168.202.101 -j REJECT

ens envia un missatge (Destination Port Unreachable) que ens indica que es rebutja el paquet.

Per filtrar serveis, es tenen que filtrar els ports. Primer s'ha de saber quin port està utilitzant el servei. Per saber els serveis podem mirar /etc/services.

$ cat /etc/services

amb l'opcio (per exemple) | grep ssh, filtrariem tot el fitxer i només ens mostrarà els ports que utilitza el servei ssh.

Una vegada sabem el port, podem fer:

$ sudo iptables -A INPUT -s ip_company -p tcp --dport 22 -j DROP
  • Política DROP: per a que no passi res. Política no permissiva per defecte. Es van afegint normes a mida que es necessita servei.
  • Política ACCEPT: ho deixa passar tot. Política permissiva per defecte. No hi ha cap norma.
  • iptables-save: salva en un fitxer com està el firewall en aquell moment.
$ sudo iptables-save > myfirewall

També ens permetria saber la comanda que s'ha utilitzat per fer la norma que es veu dins del fitxer (o per pantalla).

  • iptables-restore: per esborrar tot el que hi ha actualment al firewall i carregar una configuració de firewall que tenim en un fitxer.
$ sudo iptables-restore < myfirewall

NAT

Network Address Translation. És un estàndard creat de la Internet Engineering Task Force (IETF). Creat per lluitar contra la falta d'IPs.

  • Dos usos, dos tipus de NAT
  • SNAT (Source NAT): Compartir una connexió a Internet. Permet compartir una adreça vàlida d'Internet entre diverses adreces de xarxa privades. Es canvia la IP d'origen per compartir la connexió a Internet. SNAT també és conegut com Masquerade. Exemple de configuració SNAT: aquesta comanda s'executa al gateway de la xarxa LAN:
$ sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
  • DNAT (Destination NAT): Permet accedir als serveis d'una màquina local (obrir un port).

Funcionament: Canvia les adreces d'Internet (SNAT adreces origen i DNAT adreces destinació) de les capçaleres IP.

SeguretatJaumeS 84.png

Per crear una ruta estàtica:

$ sudo route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.202.1
  • add: per afegir la xarxa.
  • gw: indica el gateway.