ACL Cisco Mario.Masciarelli@LNF.INFN.IT
Access 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 19 Settembre 2005
Access 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 19 Settembre 2005
Access 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 19 Settembre 2005
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. 19 Settembre 2005
Wildcard 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 Don’t check bits 19 Settembre 2005
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 19 Settembre 2005
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 19 Settembre 2005
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 19 Settembre 2005
Sintassi delle ACL estese IP Access-list-number: identifica l’access 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-wildcard-mask [operator destination-port | destination-port] [established] 19 Settembre 2005
Sintassi delle ACL Estese IP 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#configure 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} 19 Settembre 2005
Esempio Router#show 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 … 19 Settembre 2005
Come scrivere le Access-List Fondamentale e’ l’ordine con cui sono scritte le regole delle access-list Le regole vengono controllate sequenzialmente secondo l’ordine 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 19 Settembre 2005
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 19 Settembre 2005
Esempio (connessioni TCP) Implementiamo l’access-list tenendo conto, se possibile, che e’ conveniente mettere prima le regole verificate piu’ spesso Permesso di tutti i nodi internet all’inoltro 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-list 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 19 Settembre 2005
Porte 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) 19 Settembre 2005
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 19 Settembre 2005
Esempio (UDP) Permesso di tutti i nodi internet all’inoltro di pacchetti UDP sulle porte alte (>1024) 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 19 Settembre 2005
Esempio (ssh) Accesso in SSH solo verso macchine ben controllate ed amministrate 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 19 Settembre 2005
Esempio (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 <dns-server1-ip> eq domain access-list 103 permit udp any host <dns-server1-ip> eq domain access-list 103 permit tcp any host <smtp-server1-ip> 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 19 Settembre 2005
Porte 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-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 19 Settembre 2005
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 (redund.) 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 (redund.) 19 Settembre 2005
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) 19 Settembre 2005
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 19 Settembre 2005
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 19 Settembre 2005
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 19 Settembre 2005
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 19 Settembre 2005
Aumentare la Security disabilitando funzionalita’ sulle interfacce non necessarie no ip redirects no ip directed-broadcast no ip proxy-arp 19 Settembre 2005
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. 19 Settembre 2005
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 19 Settembre 2005
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 19 Settembre 2005
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 19 Settembre 2005
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 19 Settembre 2005
Sintassi TCP Intercept access-list <access-list-number> {deny | permit} tcp any destination destination-wildcard ip tcp intercept list <access-list-number> 19 Settembre 2005
Esempio ACL 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 …. 19 Settembre 2005
Esempio di configurazione di TCP Intercept ip tcp intercept list 104 ip tcp intercept drop-mode random Server WEB INTERNET Client 19 Settembre 2005
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 19 Settembre 2005