- Prima e ultima riga del filtro
Il filtro deve DEVE SEMPRE avere come prima riga:
no access-list 103
questo perché altrimenti le nuove regole con le ACL verranno aggiunte
alla access-list 103 già attiva sul router. Non è possibile infatti aggiungere
ACL in mezzo ad un filtro: bisogna cancellarlo e poi ricrearlo.
Inoltre DEVE SEMPRE avere come ultime righe:
access-list 103 permit ip any any
end
La prima serve per fare passare tutto quello che non viene bloccato dalle ACL (senza questa riga il default
sarebbe deny any any implicito);
la seconda termina il filtro.
- Permette le connessioni già aperte
I pacchetti che hanno già superato la fase di setup (p.e. connessioni dall'interno della LAN)
non vengono controllati.
access-list 103 permit tcp any any established
- AntiSpoofing
Blocca il traffico proveniente da network riservate:
access-list 103 deny ip host 0.0.0.0 any log
access-list 103 deny ip 127.0.0.0 0.255.255.255 any log
access-list 103 deny ip 10.0.0.0 0.255.255.255 any log
access-list 103 deny ip 172.16.0.0 0.15.255.255 any log
access-list 103 deny ip 192.168.0.0 0.0.255.255 any log
e proveniente da network locali:
access-list 103 deny ip XXX.YYY.ZZZ.0 0.0.0.255 any log
NB: inserire una riga per ognuna delle network del proprio dominio
- Blocco di eventuali host indesiderati
Se volete bloccare l'ingresso di host specifici:
access-list 103 deny ip host xxx.yyy.zzz.kkk any log
- Blocco di eventuali network indesiderate
Se volete bloccare l'ingresso di network specifiche:
access-list 103 deny ip xxx.yyy.zzz.0 0.0.0.255 any log
- Blocca tutto dalla porta 1 alla porta 20
Le porte dalla 1 alla 20 non sono normalmente necessarie(
iana)
access-list 103 deny ip any any range 1 20 log
- Filtra porta 21 - FTP
FTP trasmette la password in chiaro per cui è potenzialmente pericoloso,
a volte però è necessario tenerlo aperto verso alcune macchine
(p.e. macchine amministrazione). Se dovete lasciarlo aperto, fatelo solo
network to host o (meglio) host to host e bloccate FTP verso le altre macchine:
access-list 103 permit tcp xxx.yyy.zzz.kkk host sss.ddd.fff.ggg eq 21 <<< host to host
access-list 103 permit tcp xxx.yyy.zzz.0 0.0.0.255 host sss.ddd.fff.ggg eq 21 <<< network to host
access-list 103 deny ip any any eq 21 log
- Blocca porta 22 - SSH
Se avete host con versioni SSH non sicure:
access-list 103 deny ip any host xxx.yyy.zzz.kkk eq 22
- Filtra porta 23 - Telnet
Telnet trasmette la passowrd in chiaro come FTP ma a volte è necessario tenerlo aperto:
access-list 103 permit tcp xxx.yyy.zzz.kkk host sss.ddd.fff.ggg eq 23 <<< host to host
access-list 103 permit tcp xxx.yyy.zzz.0 0.0.0.255 host sss.ddd.fff.ggg eq 23 <<< network to host
access-list 103 deny ip any any eq 23 log
- Blocca porta 24 - any private mail system
La porta 24 non è normalmente necessaria(
iana)
access-list 103 deny ip any any eq 24 log
- Filtra porta 25 - SMTP
La porta 25 deve essere aperta solo verso il(i) mailserver locale xxx.yyy.zzz.kkk:
access-list 103 permit tcp any host xxx.yyy.zzz.kkk eq smtp
access-list 103 deny ip any any eq smtp log
- Blocca tutto dalla porta 26 alla porta 52
Le porte dalla 26 alla 52 non sono normalmente necessarie(
iana)
access-list 103 deny ip any any range 26 52 log
- Filtra porta 53 - DNS
La porta 53 deve essere aperta solo verso il(i) DNS Nameserver locali xxx.yyy.zzz.kkk in udp;
in tcp solo da macchine DNS server esterne autorizzate al zone-transfer:
access-list 103 permit udp any host xxx.yyy.zzz.kkk eq domain <<< aggiungere più righe per più server
access-list 103 permit tcp host ddd.fff.ggg.hhh host xxx.yyy.zzz.kkk eq domain <<< aggiungere più righe per più server
access-list 103 deny ip any any eq domain log
- Blocca tutto dalla porta 54 alla porta 79
Le porte dalla 54 alla 79 non sono normalmente necessarie(
iana)
access-list 103 deny ip any any range 54 79 log
- Filtra porta 80 - HTTP
La porta 80 deve essere aperta solo verso il(i) WWW-http Server xxx.yyy.zzz.kkk:
access-list 103 permit tcp any host xxx.yyy.zzz.kkk eq www <<< aggiungere più righe per più server
access-list 103 deny ip any any eq www log
- Blocca tutto dalla porta 81 alla porta 109
Le porte dalla 81 alla 109 non sono normalmente necessarie(
iana)
access-list 103 deny ip any any range 81 109 log
- Filtra porta 110 - POP3
La porta 110 deve essere aperta solo verso il(i) POP3 Server xxx.yyy.zzz.kkk, se ce ne sono:
access-list 103 permit tcp any host xxx.yyy.zzz.kkk eq pop3 <<< aggiungere più righe per più server
access-list 103 deny ip any any eq pop3 log
- Blocca tutto dalla porta 111 alla porta 122
Le porte dalla 111 alla 122 non sono normalmente necessarie(
iana)
access-list 103 deny ip any any range 111 122 log
- Filtra porta 123 - NTP
La porta 123 deve essere aperta solo verso il(i) NTP (Time syncronization) Server xxx.yyy.zzz.kkk, se ce ne sono:
access-list 103 permit udp any host xxx.yyy.zzz.kkk eq 123 <<< aggiungere più righe per più server
access-list 103 deny ip any any eq 123 log
- Blocca tutto dalla porta 124 alla porta 136
Le porte dalla 124 alla 136 non sono normalmente necessarie(
iana)
access-list 103 deny ip any any range 124 136 log
- Filtra porte 137 138 139 - NetBios
La porte 137, 138, 139 devono essere aperte solo se necessario o richiesto (Servizi Microsoft)
(verificate anche se serve aperta la porta 445 - Microsoft DS):
all to host:
access-list 103 permit tcp any host xxx.yyy.zzz.kkk range 137 139
access-list 103 permit udp any host xxx.yyy.zzz.kkk range 137 139
access-list 103 deny ip any any range 137 139 log
oppure host to host:
access-list 103 permit tcp host sss.ddd.fff.ggg host xxx.yyy.zzz.kkk range 137 139
access-list 103 permit udp host sss.ddd.fff.ggg host xxx.yyy.zzz.kkk range 137 139
access-list 103 deny ip any any range 137 139 log
- Blocca tutto dalla porta 140 alla porta 142
Le porte dalla 140 alla 142 non sono normalmente necessarie(
iana)
access-list 103 deny ip any any range 140 142 log
- Filtra porta 143 - IMAP
La porta 143 deve essere aperta solo verso il(i) IMAP Server xxx.yyy.zzz.kkk:
access-list 103 permit tcp any host xxx.yyy.zzz.kkk eq 143 <<< aggiungere più righe per più server
access-list 103 deny ip any any eq 143 log
- Blocca tutto dalla porta 144 alla porta 169
Le porte dalla 144 alla 169 non sono normalmente necessarie(
iana)
access-list 103 deny ip any any range 144 169 log
- Filtra porta 170 - PRINT-SRV
Se volete permettere l'accesso alla stampante (printserver Digital) xxx.yyy.zzz.kkk da altri domini presenti
sulla vostra LAN, p.e. network sss.ddd.fff.0 del Dipartimento di Fisica (vedere anche porta 515):
access-list 103 permit tcp sss.ddd.fff.0 0.0.0.255 host xxx.yyy.zzz.kkk eq 170 <<< aggiungere più righe per più stampanti
access-list 103 deny ip any any eq 170 log
- Blocca tutto dalla porta 171 alla porta 442
Le porte dalla 171 alla 442 non sono normalmente necessarie(
iana)
access-list 103 deny ip any any range 144 169 log
- Filtra porta 443 - HTTPS
La porta 443 deve essere aperta solo verso il(i) WWW-HTTPS e/o WebMail Server, xxx.yyy.zzz.kkk:
access-list 103 permit tcp any host xxx.yyy.zzz.kkk eq 443 <<< aggiungere più righe per più server
access-list 103 deny ip any any eq 443 log
- Blocca porta 444
La porta 444 non è normalmente necessaria(
iana)
access-list 103 deny ip any any eq 444 log
- Filtra porta 445 - Microsft-DS
La porta 445 deve essere aperta solo se necessario o richiesto (Servizi Microsoft):
all to host:
access-list 103 permit ip any host xxx.yyy.zzz.kkk eq 445
access-list 103 deny ip any any eq 445 log
oppure host to host:
access-list 103 permit ip host sss.ddd.fff.ggg host xxx.yyy.zzz.kkk eq 445
access-list 103 deny ip any any eq 445 log
- Blocca tutto dalla porta 446 alla porta 448
Le porte dalla 446 alla 448 non sono normalmente necessarie(
iana)
access-list 103 deny ip any any range 446 448 log
- Filtra porta 449 - AS Server Mapper
Alcuni Java script utilizzati dall' Amministrazione INFN a Frascati sull'host sss.ddd.fff.ggg potrebbero avere
la necessità di questa porta aperta verso il sistema AS400 locale xxx.yyy.zzz.kkk:
access-list 103 permit tcp host sss.ddd.fff.ggg host xxx.yyy.zzz.kkk eq 449
access-list 103 deny ip any any eq 449 log
- Blocca tutto dalla porta 450 alla porta 499
Le porte dalla 450 alla 499 non sono normalmente necessarie(
iana)
access-list 103 deny ip any any range 450 499 log
- Filtra porta 500 - VPN
Permettere l'accesso a device VPN xxx.yyy.zzz.kkk:
access-list 103 permit tcp any host xxx.yyy.zzz.kkk eq 500 <<< aggiungere più righe per più box VPN
access-list 103 deny ip any any eq 500 log
- Blocca tutto dalla porta 501 alla porta 514
Le porte dalla 501 alla 514 non sono normalmente necessarie(
iana)
access-list 103 deny ip any any range 501 514 log
- Filtra porta 515 - SPOOLER
Se volete permettere l'accesso alla stampante xxx.yyy.zzz.kkk da altri domini presenti sulla vostra LAN,
p.e. network sss.ddd.fff.0 del Dipartimento di Fisica:
access-list 103 permit tcp sss.ddd.fff.0 0.0.0.255 host xxx.yyy.zzz.kkk eq 515 <<< aggiungere più righe per più stampanti
access-list 103 deny ip any any eq 515 log
- Blocca tutto dalla porta 516 alla porta 960
Le porte dalla 516 alla 960 non sono normalmente necessarie(
iana)
access-list 103 deny ip any any range 516 960 log
- Porte da 961 a 990 aperte per ssh
- Filtra porta 993 - IMAP4 (IMAP SSL)
La porta 993 deve essere aperta solo verso il(i) IMAP-SSL server xxx.yyy.zzz.kkk:
access-list 103 permit tcp any host xxx.yyy.zzz.kkk eq 993 <<< aggiungere più righe per più server
access-list 103 deny ip any any eq 993 log
- Porte da 994 a 1022 aperte per ssh
- Con questo abbiamo terminato le porte definite Well Known.
Per le porte superiori, ecco alcuni esempi di porte che è consigliabile filtrare:
!
! 1080 chiusa per IRC
!
access-list 103 deny ip any any eq 1080 log
!
! 1115 chiusa per ardus-transfer
!
access-list 103 deny ip any any eq 1115 log
!
! 1214 chiusa per Kazaa e Morpheous (mp3)
!
access-list 103 deny ip any any eq 1214 log
!
! 1433-1434 chiusa per MS-SQL udp/tcp
!
acess-list 103 deny ip any any range 1433 1434 log
!
! 1993 UDP chiusa per sicurezza SNMP CISCO
!
access-list 103 deny udp any any eq 1993 log
!
! 2002 sicurezza SSL (in & out)
!
access-list 103 deny ip any any eq 2002 log
!
! 2049 NFS
!
access-list 103 deny ip any any eq 2049 log
!
! 2773-2774 Sub-Seven trojan - 5/1/2003
!
access-list 103 deny ip any any range 2773 2774 log
!
! 4600-4700 - eDonkey - FB 05.06.03
!
access-list 103 deny ip any any range 4600 4700 log
!
! 6200-6300 WinMX 11.3.2003 (6257)
!
access-list 103 deny ip any any range 6200 6300 log
!
! Gnutella - 27.6/02
!
access-list 103 deny ip any any range 6300 6400 log
!
! 6667 chiusa per IRC
!
access-list 103 deny ip any any eq 6667 log
!
! 6600-6800 chiusa per Winmx
!
access-list 103 deny ip any any any 6600-6800 log
!
! 27374 chiusa per worm ramen
!
access-list 103 deny ip any any eq 27374 log
!
! 43981 Netware
!
access-list 103 deny ip any any eq 43981 log
!
- Chiusura del file
Come già riportato all'inizio, chiudete il file con:
access-list 103 permit any any
end
- Condor
Attenzione: se nella vostra sede viene utilizzato Condor, le seguenti porte devono restare aperte:
- range 32000-32500 (il range può essere configurato nel file condor_config)
- porta 9618 (serve solo per il Central Manager; attualmente ne esiste uno solo nella sede di Bologna).
- AFS
Nel caso venga completamente bloccato l'accesso dall'esterno ad un host locale, fate attenzione nel caso sia
installato AFS Client: non funziona e provoca problemi anche agli AFS Server nazionali.
Se non si può disabilitare AFS sull'host locale, vanno tenute aperte dall'esterno verso l'interno le seguenti porte:
- range 7000-7009 UDP
- porta 32773 UDP (permette l'utilizzo del comando klog)
- Filtro in uscita
In questo esempio viene creato un filtro (access-list 104 in questo caso) in uscita per l'interfaccia verso la rete esterna.
Queste ACL servono per:
- bloccare host del vostro dominio (p.e. host compromessi in attesa di bonifica).
- bloccare porte in uscita utilizzate da virus.
- Antispoofing delle network locali: permette l'uscita solo dei pacchetti
che abbiano come source address indirizzi delle network locali.
- tutto il resto viene bloccato
no access-list 104
!
! *********************************
! filtro per wan in uscita
! *********************************
!
! blocca host locali compromessi
!
access-list 104 deny ip host xxx.yyy.kkk.zzz any log
access-list 104 deny ip host xxx.yyy.kkk.hhh any log
!
! 69 - TFTP chiusa per virus NACHI
!
access-list 104 deny ip any any eq 69 log
!
! 135-139 - NetBios (Chiusa per virus Blaster)
! escluse macchine autorizzate
!
access-list 104 permit ip xxx.yyy.kkk.zzz xxx.yyy.kkk.hhh eq 137-139
access-list 104 deny ip any any any 135-139 log
!
! 445 - Microsoft DS - Chiusa per virus Blaster
! escluse macchine autorizzate
!
access-list 104 permit ip xxx.yyy.kkk.zzz xxx.yyy.kkk.hhh eq 445
access-list 104 deny ip any any any 445 log
!
! 593 - Chiusa per virus NACHI
!
access-list 104 deny ip any any eq 593 log
!
! 1214 chiusa per Morpheus
!
access-list 104 deny ip any any eq 1214 log
!
! 1433-1434 chiusa per MS-SQL udp/tcp
!
access-list 104 deny ip any any range 1433 1434 log
!
! 2002 vulnerabilita' SSL
!
access-list 104 deny ip any any eq 2002 log
!
! 4600-4700 chiusa per eDonkey
!
access-list 104 deny ip any any range 4600 4700 log
!
! 6346-6347 porta Gnutella
!
access-list 104 deny ip any any range 6346 6347 log
!
! 6667 trojan Sendmail
!
access-list 104 deny ip any any eq 6667 log
!
! 27374 chiusa per worm ramen
!
access-list 104 deny ip any any eq 27374 log
!
! antispoofing dalle network locali
!
access-list 104 permit ip xxx.yyy.kkk.0 0.255.255.255 any
access-list 104 permit ip xxx.yyy.hhh.0 0.255.255.255 any
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! tutto il resto viene bloccato
!
access-list 104 deny ip any any log
!
end
- Attivazione filtri
I file con i filtri devono risiedere su una macchina che abbia TFTP attivo in una directory autorizzata
al TFTP (vedi /etc/inetd.conf o equivalente). Le protezioni dei file devono essere: -rwxr-xr-x (chmod 775).
Dalla console del Cisco, in enable, individuate (show interface) l'interfaccia di accesso alla rete esterna (p.e. ATM2/0.1)
ed eseguite i seguenti comandi per caricare il file con il filtro e associare l'access-list 103 al traffico entrante ed eventualmente
l'access-list 104 al traffico uscente dell'interfaccia verso il GARR.
# copy tftp run
host ? [return]
Address of remote host? host-con-tftp
Name of configuration file? /drectory-tftp/filtro.103
Il router carica il filtro, segnalando se ci sono errori di sintassi o se l'operazione viene completata con successo.
Se lo avete implementato, ripete l'operazione per il filtro in uscita (access-list 104).
Ora associamo i filtri all'interfaccia:
# conf t
interface ATM2/0.1
ip access-group 103 in
ip access-group 104 out << solo se implementato
control Z
Ricordate di salvare le modifiche:
# copy run startup
# copy run tftp
per salavare la configurazione su host con tftp deve esistere nella directory abilitata al tftp un file vuoto con protezione:
-rwxrwxrwx (chmod 777).
- Logging
Dalla console del Cisco è possibile monitorare i pacchetti scartati con il comando:
# show logging
in testa alla videata vengono visualizzati gli eventi più recenti.
Questo sistema non è però molto comodo: visualizza solo gli eventi più recenti.
Per inviare i messaggi di log su un host, eseguite i seguenti comandi sul router:
# conf t
logging buffered 16384 << dimensioni buffer
no logging console << disabilita i messaggi su console
logging trap debugging << livello dei messaggi generati
logging facility local6 << definisce su quale facility il syslog della macchina riceve i messaggi
logging xxx.yyy.kkk.hhh << host di destinazione
Sull'host di destinazione, nel file /etc/syslog.conf ( o equivalente) inserire una riga:
local6.debug /directory/cisco.log
Su questi log file si possono utilizzare tool automatici per verificare eventuali scan, compromissioni, etc.
A seconda della quantità e complessità delle ACL, questo file può crescere di dimensioni rapidamente:
utilizzate tool come logrotate per ruotarli, comprimerli e archiviarli.
Con il comando show process è possibile visualizzare il carico della cpu del Cisco per verificare
l'impatto dei filtri sulle performance del router.
Per informazioni o commenti sulla pagina:
F. Brasolin