Title: ACL Cisco
1ACL Cisco
Mario.Masciarelli_at_LNF.INFN.IT
2Access List
- Nega il traffico basandosi sul contenuto di
alcuni campi dei datagram. - Nel caso di un pacchetto IP
Frame Header (for examples, HDLC)
Segment (for Examples. TCP Header)
Packet (IP header)
Data
Port number e TCP flags
Protocol
Source Address
Destination Address
3Access List
- Tipi di Access List
- Standard Access List, controllano il source
address del pacchetto IP - Extended Access List, controllano entrambi source
e destination addresses del pacchetto IP. Inoltre
puo essere filtrato uno specifico protocollo,
numero di porta e TCP flags
4Access List range su IOS
- Per il protocollo IP
- Standard hanno un range da 1 a 99
- Estese hanno un range da 100 a 199
- Per il bridge type-code
- Standard hanno un range da 201 a 299
- Per il protocollo IPX
- Standard hanno un range da 800 a 899
- Estese hanno un range da 900 a 999
- Per il protocollo Apple Talk
- Il range va da 600 a 699
5Bits della Wildcard Mask
- Questa maschera permette di stabilire in una
Network cosa controllare e cosa ignorare. - Dove cé uno zero si ha un controllo sul
corrispondente bit - Dove cé un uno il corrispondente bit é ignorato.
6Wildcard Bits
128 64 32 16 8 4 2 1 Octet Bit
Position
0 0 0 0 0 0 0 0 Check all Bits
0 0 1 1 1 1 1 1 Ignore last 6
bits 0 0 0 0 1 1 1 1 Ignore last
4 bits 1 1 1 1 1 1 1 1 Dont
check bits
7Esempio Wildcard Mask
- Data la Network 172.30.16.0 con wildcard mask
0.0.15.255 - La network é di classe B con il terzo ottetto
subnettato . - É possibile usare questa configurazione per
controllare le subnet da 172.30.16.0 a 172.30.31.0
8Esempio Wildcard Mask
- Per controllare qualsiasi indirizzo IP si
dovrebbe usare
Any IP address 0.0.0.0
Per accettare qualsiasi indirizzo si utilizza
lespressione abbreviata ANY
255.255.255.255 Wildcard mask Ignore all
9Esempio Wildcard Mask
- Per controllare uno specifico IP host e quindi
controllare tutti i bits
Uno specifico IP address 172.30.16.29
Per controllare tutti i bits di uno specifico IP
address si usa labbreviazione Host 172.30.16.29
0.0.0.0 Wildcard mask controlla tutti i bits
10Sintassi delle ACL estese IP
- Access-list-number identifica laccess list
- Protocol sono IP, TCP, UDP, ICMP, GRE, IGRP, etc
- Source, destination IP addr di provenienza e di
destinazione - Source-mask e destination-mask, sono la wildcard
mask - Operators operatori logici - lt, le, gt, ge, eq,
neq, range - Operand, port number
Router (config) Access-list access-list-number
permit deny protocol Source
source-wildcard-mask operator source-port
source-port Destination destination-wildcar
d-mask operator destination-port
destination-port established
11Sintassi delle ACL Estese IP
- Attivare le access list estese su una interfaccia
- Access-list-number, indica il numero dellaccess
list che deve essere richiamato sullinterfaccia - In out, indica se laccess list é applicata in
ingresso o in uscita allinterfaccia
Routerconfigure terminal Enter configuration
commands, one per line. End with
CNTL/Z. Router(config)interface atm1/0.5
point-to-point Router(config-subif)ip
access-group access-list-number in out
12Esempio
Routershow running-config interface ATM1/0.5
point-to-point description PVC 17.6M
LNF-GARRB-Telecom bandwidth 17600 ip address
XXX.XXX.XXX.XXX 255.255.255.252 ip access-group
103 in no ip mroute-cache atm pvc 107 30 107
aal5snap 17600 17600
13Come scrivere le Access-List
- Fondamentale e lordine con cui sono scritte le
regole delle access-list - Le regole vengono controllate sequenzialmente
secondo lordine di inserimento - Alla prima regola verificata si esce dal percorso
saltando i controlli successivi - E importante anche il verso in cui sono
applicate sulle interfacce
14Esempio
- Per prima cosa, implementiamo la nostra
access-list nel verso IN sullinterfaccia Seriale
o ATM connessa alla WAN
Dati
SA
DA
Ip access-group ltnumero access-listgt in
15Esempio (connessioni TCP)
- Implementiamo laccess-list tenendo conto, se
possibile, che e conveniente mettere prima le
regole verificate piu spesso - Permesso di tutti i nodi internet allinoltro di
pacchetti TCP per connessioni gia stabilite
access-list 103 permit tcp any 192.168.8.0
0.0.7.255 established access-list 103 permit tcp
any 172.16.0.0 0.15.255.255 established access-l
ist 103 permit tcp any 10.0.0.0 0.255.255.255
established access-list 103 permit tcp any
192.84.129.0 0.0.0.255 established
16Porte alte pericolose
- Elenco di esempio di porte alte UDP e TCP
"pericolose" - NFS (udp porta 2049),
- Openwin (tcp porta 2000),
- MySQL (tcp e udp porta 3306),
- X11 (tcp porte 6000-6010),
- adsm (tcp porta 1500),
- fontsrv (udp e tcp porte 7000 e 7100)
17Esempio (blocco porte alte pericolose UDP)
- Divieto di tutti i nodi internet allinoltro di
pacchetti UDP sulle porte alte pericolose
access-list 103 deny udp any any eq 2049
access-list 103 deny udp any any eq 3306
access-list 103 deny udp any host
ltfont-server-IPgt eq 7000 access-list 103 deny
udp any any eq 7100
18Esempio (UDP)
- Permesso di tutti i nodi internet allinoltro di
pacchetti UDP sulle porte alte (gt1024)
access-list 103 permit udp any 192.168.8.0
0.0.7.255 gt 1024 access-list 103 permit udp any
172.16.0.0 0.15.255.255 gt 1024 access-list
103 permit udp any 10.0.0.0 0.255.255.255 gt
1024 access-list 103 permit udp any 192.84.129.0
0.0.0.255 gt 1024
19Esempio (ssh)
- Accesso in SSH solo verso macchine ben
controllate ed amministrate
access-list 103 permit tcp any host
ltssh-server1-ipgt eq 22 access-list 103 permit tcp
any host ltssh-server2-ipgt eq 22 access-list 103
permit tcp any host ltssh-server3-ipgt eq 22
20Esempio (net-services)
- Permesso di tutti i nodi internet verso i Server
DNS (53), SMTP (25), WWW (80 e 443)
access-list 103 permit tcp any host
ltdns-server1-ipgt eq domain access-list 103 permit
udp any host ltdns-server1-ipgt eq
domain access-list 103 permit tcp any host
ltsmtp-server1-ipgt eq smtp access-list 103 permit
tcp any host ltdns-server2-ipgt eq
domain access-list 103 permit udp any host
ltdns-server2-ipgt eq domain access-list 103 permit
tcp any host ltsmtp-server2-ipgt eq
smtp access-list 103 permit tcp any host
lthttp-server1-ipgt eq www access-list 103 permit
tcp any host lthttp-server2-ipgt eq www access-list
103 permit tcp any host ltwebmail-ipgt eq
443 access-list 103 permit tcp any host
lthttp-server3-ipgt eq www
21Porte utilizzate dai Server AFS
afs3-fileserver 7000/tcp
File Server Itself afs3-fileserver 7000/udp
File Server
Itself afs3-callback 7001/tcp
Callbacks to Cache Managers afs3-callback
7001/udp Callbacks to
Cache Managers afs3-prserver 7002/tcp
Users Groups Database afs3-prser
ver 7002/udp Users
Groups Database afs3-vlserver 7003/tcp
Volume Location
Database afs3-vlserver 7003/udp
Volume Location Database afs3-kaserver
7004/tcp AFS/Kerberos
Auth. Service afs3-kaserver 7004/udp
AFS/Kerberos Auth.
Service afs3-volser 7005/tcp
Volume Managment Server afs3-volser
7005/udp Volume
Managment Server afs3-errors 7006/tcp
Error Interpretation
Service afs3-errors 7006/udp
Error Interpretation Service afs3-bos
7007/tcp Basic
Overseer Process afs3-bos 7007/udp
Basic Overseer
Process afs3-update 7008/tcp
Server-To-Server Updater afs3-update
7008/udp
Server-To-Server Updater afs3-rmtsys 7009/tcp
Remote Cache Manager
Service afs3-rmtsys 7009/udp
Remote Cache Manager Service
22Esempio (AFS Servers)
- Permesso di tutti i nodi verso gli AFS Server
- Autenticazione per client windows (porta 750)
access-list 103 permit udp any host
ltafs-server1-ipgt eq 750 access-list 103 permit
udp any host ltafs-server2-ipgt eq 750
- AFS server (compresa autenticazione per client
unix)
access-list 103 permit tcp any host
ltafs-server1-ipgt range 7000 7009 access-list
103 permit udp any host ltafs-server1-ipgt range
7000 7009 (redund.) access-list 103 permit tcp
any host ltafs-server2-ipgt range 7000 7009
access-list 103 permit udp any host
ltafs-server2-ipgt range 7000 7009 (redund.)
23Esempio (AFS clients)
- Permesso any to any per le callbacks delle cache
dei client AFS
access-list 103 permit tcp any any eq 7001
access-list 103 permit udp any any eq 7001
(redundant)
24Esempio (NTP Servers)
- Permesso di tutti i nodi internet verso i Server
NTP
access-list 103 permit udp any host
ltntp-server1-ipgt eq ntp access-list 103 permit
udp any host ltntp-server1-ipgt eq ntp access-list
103 permit udp any host ltntp-server1-ipgt eq
ntp access-list 103 permit udp any host
ltntp-server1-ipgt eq ntp
25Esempio (FTP Servers)
- Permesso di tutti i nodi internet ad accedere in
FTP ad un server autorizzato
access-list 103 permit tcp any host
ltftp-server1-ipgt eq 20 access-list 103 permit
tcp any host ltftp-server1-ipgt eq 21
26Esempio (AT e ICMP)
- Permesso di tutti i nodi internet ad accedere al
tunnel Appletalk (gre/ip)
access-list 103 permit gre any host
lttunnel-interface-ipgt
- Permesso di tutti i nodi internet allutilizzo
dellICMP, riservandoci di implementare le
funzionalita CAR (Committed Access Rate) per
limitare la banda destinata allICMP
access-list 103 permit icmp any any
27Aumentare la Security disabilitando funzionalita
globali non necessarie
- service password-encryption
- no service finger
- no service pad
- no service udp-small-server
- no service tcp-small-server
- no ip bootp server
28Aumentare la Security disabilitando funzionalita
sulle interfacce non necessarie
- no ip redirects
- no ip directed-broadcast
- no ip proxy-arp
29Principali tipi di attacchi
- TCP SYN-flooding
- E un tipo di denial-of-service che colpisce un
server con grandi richieste di connessioni TCP - Packet Filtering
- Assicurarsi che i pacchetti che entrano in LAN
sono validi ed hanno un source address che
coincide effettivamente con il mittente - Rate Limiting
- Limitare il livello di traffici (come ICMP) che
non hanno una valida ragione di consumare banda.
30TCP Intercept
- Questa funzionalita disponibile sui Router CISCO
dalla versione di IOS 11.2 F, permette di
proteggere server da denial of service e
distributed denial of service tipo - TCP SYN-flooding attacks
31TCP SYN flooding attacks
- Questo attacco si verifica quando un hacker
sommerge un server di richieste di connessioni.
Questultime hanno la caratteristica di avere un
unreachable return address e quindi la
connessione non viene mai stabilita. - Il risultato e che queste fallite richieste di
connessioni bloccano le richieste valide verso i
servizi offerti dal server
32TCP Intercept Software
- Il software (IOS) intercetta i TCP
synchronization (SYN) packets dal Client ai
server interni alla LAN specificati in una
apposita access-list estesa.
Server WEB
INTERNET
Client
33TCP Intercept Software
- Il software (IOS) stabilisce una connessione con
il client per conto del server di destinazione - Se successivamente la connessione ha successo il
software stabilisce la connessione con il Server - In questo modo tentativi di connessioni da
unreachable host non raggiungeranno mai i server - Inoltre se nellultimo minuto le richieste di
connessioni incomplete superano le 1100 vengono
cancellate le piu vecchie e dimezzati i time out
di ritrasmissione
34Sintassi TCP Intercept
- access-list ltaccess-list-numbergt
- deny permit tcp any destination
destination-wildcard - ip tcp intercept list ltaccess-list-numbergt
35Esempio ACL per TCP Intercept
access-list 104 permit tcp any host
ltssh-server1-ipgt eq 22 access-list 104 permit tcp
any host ltssh-server2-ipgt eq 22 access-list 104
permit tcp any host ltssh-server3-ipgt eq
22 access-list 104 permit tcp any host
ltdns-server1-ipgt eq domain access-list 104 permit
tcp any host ltsmtp-server1-ipgt eq
smtp access-list 104 permit tcp any host
ltdns-server2-ipgt eq domain access-list 104 permit
tcp any host ltsmtp-server2-ipgt eq
smtp access-list 104 permit tcp any host
lthttp-server1-ipgt eq www access-list 104 permit
tcp any host lthttp-server2-ipgt eq www access-list
104 permit tcp any host ltwebmail-ipgt eq
443 access-list 104 permit tcp any host
lthttp-server3-ipgt eq www Etc .
36Esempio di configurazione di TCP Intercept
ip tcp intercept list 104 ip tcp intercept
drop-mode random
Server WEB
INTERNET
Client
37ICMP Rate Limit
- Per evitare un denial of service di tipo ICMP
(ping flood) si puo usare il CAR (Committed
Access Rate) come comando per limitare questo
traffico indesiderato
access-list 105 permit icmp any any
echo access-list 105 permit icmp any any
echo-reply Routerconf t Enter configuration
commands, one per line. End with
CNTL/Z. Router(config)interface atm1/0.5
point-to-point Router(config-subif) rate-limit
input access-group 105 256000 8000 8000
conform-action trasmit exceed-action drop