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) Segment (for Examples. TCP Header) Packet (IP 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 128 64 32 16 8 4 2 1 Address Value for Bit 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
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 Per accettare qualsiasi indirizzo si utilizza l’espressione abbreviata ANY 255.255.255.255 Wildcard mask Ignore all
Esempio 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 l’abbreviazione Host 172.30.16.29 0.0.0.0 Wildcard mask controlla tutti i bits
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
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?