CISCO Access-List Netgroup 23 Aprile 2002 Angelo Veloce – LNF Computing Service.
Transcript of CISCO Access-List Netgroup 23 Aprile 2002 Angelo Veloce – LNF Computing Service.
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 (forExamples. TCP Header)
Data
Protocol
Source Address
Destination Address
Port number e TCP flags
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
128 64 32 16 8 4 2 1
0 0 0 0 0 0 0 0 = Check all address Bits 0 0 1 1 1 1 1 1 = Ignore Last 6 Address Bits 0 0 0 0 1 1 1 1 = Ignore Last 4 Address Bits 1 1 1 1 1 1 0 0 = Check Last 2 Address Bits 1 1 1 1 1 1 1 1 = Do Not Check Address Bits
Octet Bit Position and Address Value for Bit
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 address0.0.0.0
255.255.255.255Wildcard 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 address172.30.16.29
0.0.0.0Wildcard mask
controlla tutti i bits
Per controllare tutti i bits diuno specifico IP address si usa
l’abbreviazioneHost 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 tEnter 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}
EsempioRouter#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 Serverafs3-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 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)
- AFS server (compresa autenticazione per client unix)
access-list 103 permit udp any host <afs-server1-ip> eq 750
access-list 103 permit udp any host <afs-server2-ip> eq 750
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
INTERNETINTERNETClient
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
INTERNETINTERNETClient
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 tEnter 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?