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

  • Podem implementar un firewall per hardware o per software
  • Però els de hardware porten un software per poder funcionar
  • Amb software tres tipus de firewalls
    • Part del sistema operatiu,no fa falta instal.lar(Iptables,Firewall de windows)estan incorporats en el nucli del sistema operatiu
    • No confondre entre un proxy i un firewall el proxy treballa a nivell d'aplicació
    • Firewall personal(aplicació que va per sobre del sistema operatiu
  • Treballa a Nivell 1,nivell 2 i nivell 3

Nivell 1.Interfície de xarxa (Ethernet)

Nivell 2 Internet. IP

Nivell 3 TransportTCP


Firewall112.jpeg


NetFilter/iptables

  • Els sistemes Linux porten un sistema integrat en el seu kernel anomenat iptables
Ver.png

INPUT/OUTPUT

  • Només filtra els paquets que tenen origen o destinació en la màquina on estem utilitzant iptables
  • L'utilitzem a una màquina que no sigui un encaminador (tallafocs personal o tallafocs en un servidor)

FORWARDING

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


FILTER

  • Bàsicament utilitzarem iptables com a filtre (firewall pur)

Passos més importants

  • raw prerouting: Modifica els paquets amb 0 i 1
  • mangle prerouting: Canviem el que vulguem d'un paquet
  • nat prerouting:Modifica direccions de xarxa
Ver2.png
  • Cadenes tot el que esta en majúscula
  • Les que més utilitzarem són:
IMPUT
OUTPUT
FORWARD
PREROUTING

FILTER: Bàsicament utilitzarem iptables com a filtre (firewall pur)(no canvia el paquet

INPUT/OUTPUT: Només filtra els paquets que tenen origen o destinació en la màquina on estem utilitzant iptables.L'utilitzem a una màquina que no sigui un encaminador (tallafocs personal o tallafocs en un servidor)

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

RULES: Condició + target. Les condicions poden ser:Ip d'origen o destinació, protocol, port, MAC, etc.

TARGETS: Accions per dur a terme amb els paquets ACCEPT, DROP, QUEUE, RETURN, REJECT, LOG, ULOG, DNAT, SNAT, MASQUERADE

CHAINS:Grups de normes (ruleset) aplicables en cert moment del “cicle de vida” del paquet a iptables.INPUT, OUTPUT, FORWARD, PREROUTING, POSTROUTING

TABLES: Separació de conceptes (filtrar, manipular, NAT) RAW, FILTER, MANGLE, NAT

POLICIES: Són les regles per defecte: DROP, ACCEPT

Executem el iptables

 $ sudo iptables -nvL


[email protected]:~$ sudo iptables -nvL
[sudo] password for ramon: 
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         


Amb aquesta comanda ens refrescarà cada segon in ens la mostrarà perque tenim el watch

$ sudo watch -n 1 iptables -nvL

Afegim una norma

  • -A:Afegir
  • IMPUT:CAdena
  • -p:protocol
$ sudo iptables -A INPUT -p icmp -j DROP
$ sudo iptables -nvL
Chain INPUT (policy ACCEPT 1 packets, 137 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    5   420 DROP       icmp --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 5 packets, 420 bytes)
 pkts bytes target     prot opt in     out     source               destination 


Treure una norma

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

Per escoltar tots els paquets icmp de la nostra xarxa

$ sudo tcpdump -i lo icmp

Per filtrar tots els paquets i no deixa passar cap paquet equivaldria a desconectar el cable

$ sudo iptables -A INPUT -j DROP

=Nomes deixem passar els pings

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

Per eliminar totes les normes al·lhora

$ sudo iptables -F

Per eliminar normes una a una

$ sudo iptables -D INPUT 1

Exercici iptables

  • Deneguem una ip local
$ sudo iptables -A INPUT -s 192.168.202.108 -p icmp -j DROP
  • On ara si executem la comanda següent podrem veure algo com això
$ sudo iptables -nvL 
[email protected]:~$ sudo iptables -nvL
Chain INPUT (policy ACCEPT 237 packets, 33215 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    8   672 DROP       icmp --  *      *       192.168.202.108      0.0.0.0/0           

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 72 packets, 7880 bytes)
 pkts bytes target     prot opt in     out     source               destination         
[email protected]:~$ ping 192.168.202.108
PING 192.168.202.108 (192.168.202.108) 56(84) bytes of data.
^C
--- 192.168.202.108 ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 4032ms

[email protected]:~$ 
  • Amb la següent comanda podrem veure els ports d'algun servei en aquest cas el servei ssh
$ cat /etc/services | grep ssh

Filtrat de serveis

  • Amb la següent comanda filtrarem tots els paquets d'una IP pel port 22
$ sudo iptables -A INPUT -s 192.168.202.107 -p tcp --dport 22 -j DROP
  • Amb aquesta comanda especifiquem cada taula com la NAT,RAW,etc
$ sudo iptables -nvL -t nat

Per borrar els contadors

$ sudo iptables -F $ sudo iptables -X--->Cadenes creades pe l'usuari $ sudo iptables -Z

$ sudo iptables -P INPUT DROP--->Canvia la politica per defecte


  • Política no permissiva per defecte (DROP)
  • El millor primer és denegar tot (DROP)
$ sudo iptables -F
$ sudo iptables -X
$ sudo iptables -Z
$ sudo iptables -t nat -F
$ sudo iptables -P INPUT DROP
$ sudo iptables -P OUTPUT DROP
$ sudo iptables -P FORWARD DROP
$ sudo iptables -t nat -P PREROUTING DROP
$ sudo iptables -t nat -P POSTROUTING DROP

Política permissiva per defecte (ACCEPT)


Establir normes iptables a l'inici del sistema

$ iptables-save  > myfirewall--->Creem el fitxer que ens guardarà la configuració del firewall
$ sudo iptables-restore < firewallbuit--->Restaurem la configuració del firewall guardada en el fitxer firewallbuit


NAT

NAT: Traducció d'adreçes de xarxa

  • És un estàndard creat de la Internet Engineering Task Force (IETF). Creat per lluitar contra la falta d'IPs
  • Hi ha de dos tipus:
  • 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)
  • DNAT (Destination NAT): Permet accedir als serveis d'una màquina local(Ho coneixem com obrir un port)
  • Funcionament: Canvia les adreces d'Internet (SNAT adreces origen i DNAT adreces destinació) de les capçaleres IP

Connection Tracking

Nat112.png

Exemple de SNAT

Utilitzat en les màquines que fan de gateway

  • Els requisits que explicàvem abans per als gateways també s'apliquen ara.
  • SNAT: També és conegut com Masquerade. De fet, masquerade és millor ja que permet que el gateway tingui una IP dinàmica.
  • Exemple de configuració SNAT:
  • On aquesta comanda s'executa al gateway de la xarxa LAN
  • Afegir una ruta estàtica
$ sudo route add 192.168.0.0 netmask 255.255.255.0 gw 192.168.202.1


  • Treure una ruta estàtica
$ sudo route add 192.168.0.0 netmask 255.255.255.0 gw 192.168.202.1


  • Masquerade: Canvia la ip privada per la publica que tenim en aquell moment


Linux Box IPCOP

  • Vegeu també

NAT