CISCO Access-List
Netgroup
23 Aprile 2002
Angelo Veloce – LNF Computing Service
Access List
• Nega il traffico basandosi su dei test sul
pacchetto IP
Frame Header
(for examples,
HDLC)
Packet
(IP header)
Segment (for
Examples.
TCP Header)
Data
Port number e TCP flags
Protocol
Source Address
Destination Address
Access List
• Che tipo di Access List ci sono?
– 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
Come sono identificate le
Access List sui Router CISCO:
• Per il protocollo IP:
– Standard hanno un range da 1 a 99
– Estese hanno un range da 100 a 199
• 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
Bits 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.
Wildcard Bits
Octet Bit Position and
Address Value for Bit
128
64
32
16
8
4
2
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0 = Check all address Bits
1 = Ignore Last 6 Address Bits
1 = Ignore Last 4 Address Bits
0 = Check Last 2 Address Bits
1 = Do Not Check Address Bits
Esempio 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
Esempio Wildcard Mask
• Per controllare qualsiasi indirizzo IP si
dovrebbe usare:
Any IP address
0.0.0.0
255.255.255.255
Wildcard mask
Ignore all
Per accettare qualsiasi indirizzo
si utilizza l’espressione abbreviata
ANY
Esempio Wildcard Mask
• Per controllare uno specifico IP host e
quindi controllare tutti I bits:
Uno specifico IP address
172.30.16.29
0.0.0.0
Wildcard mask
controlla tutti i bits
Per controllare tutti i bits di
uno specifico IP address si usa
l’abbreviazione
Host 172.30.16.29
Sintassi delle Access List Estese
•
•
•
•
•
Access-list-number, identifica l’access list
Protocol, sono IP, TCP, UDP, ICMP, GRE, IGRP
Source e destination, identificano source e destination IP address
Source-mask e destination-mask, sono la wildcard mask
Operator, lt (less than), gt (greater than), eq (equal), neq (not
equal), 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-wildcard-mask
[operator destination-port | destination-port]
[established]
Sintassi delle Access List Estese
• Attivare le access list estese su una interfaccia
– Access-list-number, indica il numero dell’access list
che deve essere richiamato sull’interfaccia
– In | out, indica se l’access list é applicata in ingresso
o in uscita all’interfaccia
Router#conf t
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}
Esempio
Router#show running-config | begin interface ATM1/0.5
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
…
…
Come scrivere le Access-List
• Fondamentale e’ l’ordine in cui sono scritte
le access-list
• Man mano che si esegue l’access-list se si
verificano delle condizioni si esce dal
percorso saltando i controlli successivi
• E’ importante anche il verso in cui sono
applicate sulle interfacce
Esempio
• Per prima cosa, implementiamo la nostra
access-list nel verso IN sull’interfaccia
Seriale o ATM connessa alla WAN
Dati
SA DA
Ip access-group <numero access-list> in
Esempio (connessioni TCP)
• Implementiamo l’access-list dalla “testa” ovvero
dalle prime regole che vengono controllate.
• Permesso di tutti i nodi internet all’inoltro di
pacchetti TCP per connessioni gia’ stabilite
access-list 103 permit tcp any XXX.XXX.XXX.0 0.0.7.255 established
access-list 103 permit tcp any YYY.YYY.YYY.0 0.0.0.255 established
access-list 103 permit tcp any ZZZ.ZZZ.ZZZ.0 0.0.0.255 established
access-list 103 permit tcp any TTT.TTT.TTT.0 0.0.3.255 established
Porte alte pericolose
• Divieto a tutti i nodi verso le porte alte
"pericolose":
–
–
–
–
–
–
NFS (udp e tcp 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)
Esempio (blocco porte alte pericolose UDP)
• Divieto di tutti i nodi internet all’inoltro 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 <font-server-IP> eq 7000
access-list 103 deny
udp any any eq 7100
Esempio (UDP)
• Permesso di tutti i nodi internet all’inoltro
di pacchetti UDP sulle porte alte (>1024)
access-list 103 permit udp any XXX.XXX.XXX.0 0.0.7.255 gt 1024
access-list 103 permit udp any YYY.YYY.YYY.0 0.0.0.255 gt 1024
access-list 103 permit udp any ZZZ.ZZZ.ZZZ.0 0.0.0.255 gt 1024
access-list 103 permit udp any TTT.TTT.TTT.0 0.0.3.255 gt 1024
Esempio (ssh)
• Permettiamo l’accesso in SSH solo verso
macchine amministrate dal servizio di
calcolo
access-list 103 permit tcp any host <ssh-server1-ip> eq 22
access-list 103 permit tcp any host <ssh-server2-ip> eq 22
access-list 103 permit tcp any host <ssh-server3-ip> eq 22
Esempio (net-services)
• Permesso di tutti i nodi internet verso i
Server DNS (53), SMTP (25), WWW (80)
access-list 103 permit tcp any host <dns-server1-ip> eq domain
access-list 103 permit udp any host <dns-server1-ip> eq domain
access-list 103 permit tcp any host eq smtp
access-list 103 permit tcp any host <dns-server2-ip> eq domain
access-list 103 permit udp any host <dns-server2-ip> eq domain
access-list 103 permit tcp any host <smtp-server2-ip> eq smtp
access-list 103 permit tcp any host <http-server1-ip> eq www
access-list 103 permit tcp any host <http-server2-ip> eq www
access-list 103 permit tcp any host <webmail-ip> eq 443
access-list 103 permit tcp any host <http-server3-ip> eq www
Porte utilizzate dagli AFS Server
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-prserver 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
Esempio (AFS Servers)
• Permesso di tutti i nodi verso gli AFS Server
– Autenticazione per client windows (porta 750)
access-list 103 permit udp any host <afs-server1-ip> eq 750
access-list 103 permit udp any host <afs-server2-ip> eq 750
- AFS server (compresa autenticazione per client unix)
access-list 103 permit tcp any host <afs-server1-ip> range 7000 7009
# access-list 103 permit udp any host <afs-server1-ip> range 7000 7009 (redundant)
access-list 103 permit tcp any host <afs-server2-ip> range 7000 7009
# access-list 103 permit udp any host <afs-server2-ip> range 7000 7009 (redundant)
Esempio (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)
Esempio (NTP Servers)
• Permesso di tutti i nodi internet verso i
Server NTP
access-list 103 permit udp any host <ntp-server1-ip> eq ntp
access-list 103 permit udp any host <ntp-server1-ip> eq ntp
access-list 103 permit udp any host <ntp-server1-ip> eq ntp
access-list 103 permit udp any host <ntp-server1-ip> eq ntp
Esempio (FTP Servers)
• Permesso di tutti i nodi internet ad accedere
in FTP ad un server autorizzato
access-list 103 permit tcp any host <ftp-server1-ip> eq 20
access-list 103 permit tcp any host <ftp-server1-ip> eq 21
Esempio (AT e ICMP)
• Permesso di tutti i nodi internet ad accedere al
tunnel Appletalk (gre/ip)
access-list 103 permit gre any host <tunnel-interface-ip>
• Permesso di tutti i nodi internet all’utilizzo
dell’ICMP, riservandoci di implementare le
funzionalita’ CAR (Committed Access Rate) per
limitare la banda destinata all’ICMP
access-list 103 permit icmp any any
Aumentare 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
Aumentare la Security
disabilitando funzionalita’ sulle
interfacce non necessarie
• no ip redirects
• no ip directed-broadcast
• no ip proxy-arp
Principali 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.
TCP 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
TCP SYN flooding attacks
• Questo attacco si verifica quando un hacker
“sommerge” un server di richieste di connessioni.
Quest’ultime 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
TCP 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
TCP 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 nell’ultimo minuto le richieste di connessioni
incomplete superano le 1100 vengono cancellate le piu’
vecchie e dimezzati i time out di ritrasmissione
Sintassi TCP Intercept
• access-list <access-list-number>
{deny | permit} tcp any destination
destination-wildcard
• ip tcp intercept list <access-list-number>
Esempio Access-List per TCP Intercept
access-list 104 permit tcp any host <ssh-server1-ip> eq 22
access-list 104 permit tcp any host <ssh-server2-ip> eq 22
access-list 104 permit tcp any host <ssh-server3-ip> eq 22
access-list 104 permit tcp any host <dns-server1-ip> eq domain
access-list 104 permit tcp any host <smtp-server1-ip> eq smtp
access-list 104 permit tcp any host <dns-server2-ip> eq domain
access-list 104 permit tcp any host <smtp-server2-ip> eq smtp
access-list 104 permit tcp any host <http-server1-ip> eq www
access-list 104 permit tcp any host <http-server2-ip> eq www
access-list 104 permit tcp any host <webmail-ip> eq 443
access-list 104 permit tcp any host <http-server3-ip> eq www
Etc ….
Esempio di configurazione di
TCP Intercept
ip tcp intercept list 104
ip tcp intercept drop-mode random
Server
WEB
INTERNET
Client
ICMP 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
Router#conf 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
Attenzione: ICMP Rate Limit non testato
Domande?
Scarica

Cisco Access-List