Allora, cominciamo!
Il fondamentale strumento di sicurezza offerto dai router Cisco sono le Access-Control-List.
Lavorano sui livelli 2, 3 e 4. Quindi sanno manipolare mac-address, indirizzi ip, porte e protocolli di trasporto. Addizionalmente, contemplano informazioni di livello superiore.
Ogni acl è un elenco di regole che vengono applicate nell'ordine in cui vengono scritte. Appena un pacchetto viene riconosciuto in una riga dell'acl, viene presa la decisione descritta da quella riga e il resto viene ignorato.
L'acl, poi, viene applicata ad un'interfaccia e questo serve a stabilire in che momento viene messa in pratica.
In fondo all'access list c'è un implcito
deny any, ovvero, se il pacchetto non ha avuto alcun riscontro fino alla fine dell'acl, buttalo via.
Io comincio subito dalle ACL estese perché quelle base tendono ad avere poca applicazione nel networking moderno.
Il prototipo di una access list estesa è:
Codice: Seleziona tutto
access-list <100-199> <permit/deny> <tcp/udp/icmp> <sorgente/i> eq <porta sorgente> <destinazione> eq <porta destinazione>
Questo in realtà è un prototipo molto scarno in quanto l'espressività e le possibilità offerte sono molto di più.
Facciamo subito un esempio:
Codice: Seleziona tutto
access-list 101 permit tcp any host 192.168.0.5 eq 80
sta a significare, qualsiasi dato tcp proveniente da qualsiasi indirizzo, verso l'host 192.168.0.5, porta 80, è accettato.
Ma anche:
Codice: Seleziona tutto
access-list 101 permit tcp any 192.168.0.0 0.0.0.255
significa, accetta qualsiasi dato tcp da qualsiasi host verso il network 192.168.0.0, 255.255.255.0 . Si noti come il secondo quartetto di ottetti non sia una netmask, ma il suo inverso, noto come wildcard.
Adesso, aggiungiamo un elemento di livello superiore:
Codice: Seleziona tutto
access-list 101 permit tcp any 192.168.0.0 0.0.0.255 established
Questo è un po' più particolare. Significa, accetta i dati tcp da qualsiasi host verso 192.168.0.0 255.255.255.0, solo se sono stati richiesti da 192.168.0.0 255.255.255.0, altrimenti passa oltre... comodo no?
Si noti come, per indicare 1 singolo ip, sia necessaria la parola chiave
host
Ora che possediamo un po' di dimestichezza, proviamo una configurazione tipo, semplice semplice:
Codice: Seleziona tutto
access-list 101 permit tcp any 192.168.0.0 0.0.0.255 established
access-list 101 permit udp any eq domain 192.168.0.0 0.0.0.255
access-list 101 permit tcp any host 192.168.0.5 eq 4662
access-list 101 permit udp any host 192.168.0.5 eq 4672
Con questo esempio:
1a riga: ciò che richiediamo tcp, può entrare
2a riga: le richieste di risoluzione DNS possono entrare
3a riga: accettiamo la tcp/4662 (edonkey tcp) se la destinazione è 192.168.0.5
4a riga: accettiamo la tcp/4672 (edonkey udp, credo) se la destinazione è 192.168.0.5.
Tutto il resto, viene buttato!
Adesso dobbiamo solo applicare queste regole ad una interfaccia...
Codice: Seleziona tutto
#conf t
(conf)interface e0
(conf-if)ip access-group 101 out
Perché out? perché dobbiamo vedere il verso dei dati dall'interno del router. Out, perché esce da e0.
Fine prima lezione!!!
Facci sapere i tuoi progressi