Teoria Terzo Modulo Ccna Lezione 2

ACLs seconda parte

Named ACLs

  • si usa il nome invece del numero
  • valgono solo per tcp
  • possono estendere le standard o le extended
  • introdotte versione 11.2 di cisco ios
  • posso modificarla senza cancellarla: questo è disponibile sono dal cisco ios 12.3 in maniera completa. Prima si poteva modificare le righe ma inserire un nuovo statement solo alla fine della acl.
r1(config)#ip access-list [standard | extended] name
r1(config-std-nacl)# [permit | deny | remark] {source [source-wildcard]} [log]
r1(config)# ip access-group name [in | out]

Se usiamo una named il prompt cambia std / ext.
I comandi sono quelli delle acl già visti cambia solo il primo comando.
r1(config)#ip access-list extended server-access
r1(config-ext-nacl)# permit TCP any host 131.108.101.99 eq smtp
r1(config-ext-nacl)# permit UDP any host 131.108.101.99 eq domain
r1(config-ext-nacl)# deny ip any any log
r1(config-ext-nacl)# ^Z
Applying the name list:
r1(config)# interface fastethernet 0/0
r1(config-if)# ip access-group server-access out
r1(config)#^Z

Abbiamo creato l'acl con il permesso di due porte per smtp e dns, mettiamo policy di default e poi l'applichiamo all'interfaccia fast ethernet.

Vediamo le liste presenti nel router con il comando

r1# show access-list {access-list-number | name}
r1# show access-list
Standard IP access list SALES
    10 deny 10.1.1.0 0.0.0.255
    20 permit 10.3.3.1
Extended IP access list ENG
    10 permit tcp host 192.168.10.2 any eq telnet 
    20 permit tcp host 192.168.10.2 any fpt
    30 permit tcp host 192.168.10.2 any fpt-data

I numeri servono per modificare le acl.
Ecco un esempio di modifica

r1# show access-list
Standard IP access list WEBSERVER
    10 permit 192.168.10.11
    20 deny 192.168.10.0, wildcard bits 0.0.0.255
    30 deny 192.168.11.0, wildcard bits 0.0.0.255
r1#conf t
r1(config)#ip access-list standard WEBSERVER
r1(config-std-nacl)# 15 permit host 192.168.11.10
r1(config-std-nacl)# end
r1#
r1# show access-list
Standard IP access list WEBSERVER
    10 permit 192.168.10.11
    15 permit 192.168.11.10    
    20 deny 192.168.10.0, wildcard bits 0.0.0.255
    30 deny 192.168.11.0, wildcard bits 0.0.0.255
r1#

Si possono renumerare le etichette a partire dal valore x con un salto tra un ognuna di 5 o 10 o 15.

Ecco un esempio che permette la navigazione in internet

r1(config)#access-list extended SURFING
r1(config-ext-nacl)# permit tcp 192.168.10.0 0.0.0.255 any eq 80
r1(config-ext-nacl)# permit tcp 192.168.10.0 0.0.0.255 any eq 443
r1(config)#access-list extended BROWSING
r1(config-ext-nacl)# permit tcp any 192.168.10.0 0.0.0.255 established

Restricting Virtual Terminal Access to a Router

Restringiamo l'accesso al router attraverso le acl

Prima creiamo l'acl

r1(config)# access-list 2 permit 172.16.1.0 0.0.0.255
r1(config)# access-list 2 permit 172.16.2.0 0.0.0.255
r1(config)# access-list 2 deny any

Poi l'applichiamo a tutti e 5 i terminali del router

r1(config)# line vty 0 4
r1(config)# login
r1(config)# password secret
r1(config)# access-class 2 in

Se io faccio un telnet dal router l'acl del router in uscita non blocca questo traffico.

Se voglio devo però deve specificare non la sorgente ma la destinazione e porte. Non abbiamo esempi per vederle nel dettaglio.

r1(config)# access-class 2 out

Complex ACLs

  1. Dynamic ACLs (lock-and-key)
  2. Reflexive ACLs
  3. Time-based ACLs

Dynamic ACLs

Non sempre attiva, ma viene attiva per un lasso temporale.
Tipicamente l'accesso è bloccato.
Ci si autentica in remoto o in locale. Dipende dal server di autenticazione.
Vediamo i passi di quella in locale quindi sullo stesso router

Step 1

Creazione username e password

r1(config)# username student password 0 cisco
Step 2

riga 1, deve essere possibile fare il telnet al router (che ha indirizzo 10.2.2.2 ) per poter inserire le credenziali di abilitazione della acl
riga 2, viene permessa la connessione alla rete 192.168.30.0 dalla rete 192.168.10.0

r1(config)# access-list 101 permit any host 10.2.2.2 eq telnet
r1(config)# access-list 101 dynamic testlist timeout 15 permit ip 192.168.10.0 0.0.0.255 192.168.30.0 0.0.0.255
Step 3

Applichiamo le regole all'interfaccia seriale 0/0/1

r1(config)# interface serial 0/0/1
r1(config-if)# ip access-group 101 in
Step 4

riga 1, impostiamo al livello di teminale che sia necessaria l'autenticazione.
riga 2, dopo l'autenticazione al login
riga 3 chiudi il telnet e abilita l'access list dinamica per 15 minuti

r1(config)#  line vty 0 4
r1(config-line)# login local
r1(config-line)# autocommand access-enable host timeout 5

Il timeout 5 indica che se dopo l'attivazione della acl temporanea non è stata usata per 5 minuti cade.

Reflexive ACLs

Sono una generelizzazione del meccanismo establish. Quello establish si applicava solo al tcp mentre reflexive si applica a tutto il tipo di traffico.
Ci sono tre passi da seguire:

PRIMO PASSO:
definire una regola in uscita che indichi al router di salvarsi in una tabella le connessioni che stanno uscendo in quel momento.

r1(config)# ip access-list extended OUTBOUNDFILTER
r1(config-ext-nacl)# permit tcp 192.168.0.0 0.0.255.255 any reflect TCPTRAFFIC
r1(config-ext-nacl)# permit icmp 192.168.0.0 0.0.255.255 any reflect ICMPTRAFFIC

In questo modo crea una entry temporanea finchè la mia entry rimane attiva.

SECONDO PASSO:
definire in ingresso una access list che faccia passare solo il traffico che corrisponda a un flusso che sia già uscito.

r1(config)# ip access-list extended INBOUNDFILTER
r1(config-ext-nacl)# evaluate TCPTRAFFIC
r1(config-ext-nacl)# evaluate ICMPTRAFFIC

TERZO PASSO:
applicare all'interfaccia le access list definite

r1(config)# interface s0/0/1
r1(config-if)# ip access-group INBOUNDFILTER in
r1(config-if)# ip access-group OUTBOUNDFILTER out

Timed-based ACLs

r1(config)#time-range EVERYOTHERDAY
r1(config-time-range)#periodic Monday Wednesday Friday 8:00 to 17:00

Definisco un intervallo temporale chiamato EVERYOTHERDAY, lunedì mercoledì venerdì dalle 8 alle 17

Poi creo un'acl

r1(config)#access-list 101 permit tcp 192.168.10.0 0.0.0.255 any eq telnet time-range EVERYOTHERDAY

quindi permetto dalla mia rete verso ogni altra destinazione il traffico telnet ma solo nell'intervallo definito sopra

Esercizi

dal minuto 55 al 59
TFTP usa udp

ICMP

È un protocollo di segnalazione, non trasmettono dati utente. Se il pacchetto non matcha nessuna tabella di routing allora il router manda al mittente un messaggio icmp che indica l'errore. È un protocollo che completa il routing.
ICMP viaggia all'interno di un pacchetto ip, però in questo caso se il pacchetto ip che contiene un pacchetto icmp viene perso la sorgente non viene informata perchè altrimenti si potrebbe causare del traffico infinito.

Formato

  • 8 bit il tipo del messaggio , destinazione non raggiungibile (tipo 3) per esempio
  • 8 bit codice, perchè nell'esempio della destinazione non raggiugibile, potrebbe essere per rete non raggiungibile, o porta non raggiungibile perchè sull'host destinatario non è aperta, oppure c'è il bit di fragment a 1 e quindi non deve deframmentarlo, ttl che viene decrementato a 0 dal router

Tipo di messaggi echo request tipo 9 ed equo replay tipo 0 con cui funziona il protocollo ping.

Tipo Redirect se ci sono due punti di uscita dalla rete e quello che io utilizzo come default gw per una destinazione un router che poi lo inoltra all'altro, viene suggerito a me con il messaggio di redirect di collegarmi per quella destinazione al gw corretto.

Traceroute

Viene usata come porta di destinazione la 33434 di tipo udp dove non c'è nessun servizio in ascolto. Quindi prima ci sono i messaggi del time excedeed quando si giunge a destinazione c'è il messaggio di porta non raggiungibile.

Path MTU Discovery

Alcuni firewall non permetto la frammentazione dei pacchetti per motivi di controllo che vorrei fare su numero di porta o altro. Quindi mando pacchetti con mtu di 1500 e mi ritornano i messaggi che dicono che la dimensione massima è stata superata oppure in alcuni casi indicano direttamente che la dimensione massima da lui accetta è 1400 o 1300 quindi posso adattare i miei messaggi.

Salvo diversa indicazione, il contenuto di questa pagina è sotto licenza Creative Commons Attribution-ShareAlike 3.0 License