INFN Sec. Group

Un FIREWALL realizzato con
una ACL e un Proxy gateway

v 2.6 - 12/1/2000
R. Alfieri (INFN Parma)
M. Ricciardelli e M. Golinelli (Univ. Parma)


Indice

Introduzione
Il progetto
Le regole dell' ACL
La temporizzazione dell'ACL
I proxy telnet e ftp
Conclusioni
 

Introduzione

Avendo la possibilita` di configurare opportunamente il router di frontiera della propria LAN, e` possibile ridurre i rischi di attacchi provenienti dalla rete esterna in modo semplice, mediante l`utilizzo di software di pubblico dominio e senza dover aggiungere nuovo hardware.
La soluzione presa in esame e' un Firewall realizzato componendo le 2 principali tipologie di firewall: il packet filter ed il proxy gateway.
In questo documento si descrive l`implementazione di questo progetto, condotto in collaborazione tra l'INFN gruppo collegato di Parma ed il Centro di Calcolo Elettronico dell'Ateneo di Parma e realizzato mediante una ACL installata su router Cisco e il Proxy gateway di pubblico dominio FWTK (www.fwtk.org).

 

Il Progetto

Il packet filter e` un firewall che filtra i pacchetti che lo attraversano mediante Access Control List. Il modo piu' semplice per realizzarlo avviene mediante una ACL installata su di un router che prende il nome di "screening router".
Il proxy gateway una soluzione software, a livello di singola applicazione, che agisce da "ponte" tra client e server. L'host su cui gira il proxy e' detto "bastion host". Il client si connette al proxy, su cui puo` essere autenticato e autorizzato; dal proxy viene successivamente aperta la connessione al server.
La soluzione con una unica interfaccia di rete per il Bastion Host (single-homed) e` meno sicura, ma indispensabile per una configurazione mista filter/proxy.

La Lan INFN su cui applichiamo il firewall convive con la LAN del Dipartimento di Fisica dell`Universita` di Parma, verso la quale esiste un peering Ethernet. La rete Locale e` composta da 3 sottoreti di classe C: una pubblica INFN, una pubblica dell`Universita` e una privata per la Didattica. Il totale abbiamo in rete circa 500 indirizzi IP.
La doppia uscita verso Garr-b richiede l`inistallazione dell`ACL sull`intefaccia esterna del Router INFN e sull`interfaccia interna del Router Universita`.
La necessita` di utilizzare Switch per l`infrastruttura della LAN e un logger verso le connessioni esterne ci ha indotto ad adottare l`architettura di figura:

La politica di security realizzata dal firewall prevede le seguenti regole:

  • Non vi sono restrizioni per connessioni TCP attivate dall`interno della LAN verso GARR.
  • Il servizio TELNET (23/tcp) dall`esterno e` permesso solo verso il proxy telnet.
  • I servizi SSH (22/tcp) e ICMP sono permessi senza restrizioni.
  • Il servizio SMTP (25/tcp) dall`esterno e` permesso solo sul server SMTP principale e di backup.
  • I servizi POP3 (110/tcp) e IMAP (143/tcp) sono ammessi verso il MAIL server.
  • Il servizio DNS (tcp/53) e` permesso verso il server DNS. Sul server DNS e` inoltre necessario abilitare tutto il traffico UDP.
  • Il servizio WWW (80/tcp) e` permesso verso il server Web.
  • Il servizio FTP (20 e 21/tcp) e` permesso verso il server proxy-ftp. Quando, pero`, un client ftp interno alla LAN richiede il download da un server ftp esterno, la connessione essendo aperta dal server verra` rigettata dal filtro. Le regole di ACL del router Cisco non possono agire sul numero della porta sorgente (server ftp-data), per cui dovremo abilitare tutte le connessioni entranti con porta di destinazione superiore a 1023 (ftp client).
    Il problema puo` essere risolto drasticamente utilizzando in uscita il proxy cache ftp (squid o apache) per connessioni ftp-anonymous, mentre per le connessioni non-anonymous si puo` utilizzare il gateway fwtk oppure la modalita` PASV sui client che la supportano.
  • X11 e` una delle principali fonti di insicurezza della LAN, per cui le connessioni X11 (6000/tcp) entranti sono vietate. Il protocollo X puo` comunque transitare incapsulato con SSH o mediante il meccanismo di X-forwarding del proxy telent.
  • Tutti le altre connessioni dall`esterno sono vietate.

In questo modo l`utente interno non percepisce restrizioni nell`utilizzo dei servizi standard della rete. L`utente della LAN deve invece essere a conoscenza dei meccanismi di securezza quando vuole connettersi dall`esterno; per questo e` necessario stabilire precise regole e procedure che devono essere comunicate con la massima diffusione.

Con l'adozione di opportune procedure e' possibile temporizzare la ACL in modo tale da utilizzare politiche di controllo differenti in funzione delle fascie orarie rendendo piu' severe ad esempio le regole di accesso notturno o festive, momenti nei quali il presidio delle macchine e' assai piu' modesto quindi i sistemi sono piu' vulnerabili.

 

Le regole ACL

Questa ACL verra' abilitata nella direzione IN dell`interfaccia Seriale sul Router INFN e nella direzione OUT dell'intefaccia Ethernet sul Router dell`Universita`.
L'item "established" permette ai client interni di uscire senza restrizioni, tranne per il servizio ftp che viene trattato a parte.
!
! Comunicazione tra eventuali LAN interne.
! Necessario se la ACL e` installata sulla interfaccia interna.
access-list 140 permit ip "net1"  0.0.0.255 any
access-list 140 permit ip "net2"  0.0.0.255 any
!
! abilitazione connessioni tcp stabilite dall'interno
access-list 140 permit tcp any any established
!
! lista dei servizi abilitati
access-list 140 permit tcp any any eq ssh
access-list 140 permit tcp any any eq ftp-data
access-list 140 permit icmp any any
access-list 140 permit tcp any host "webserver"   eq www
access-list 140 permit tcp any host "smtpserver"  eq smtp
access-list 140 permit tcp any host "mailserver"  eq pop3
access-list 140 permit tcp any host "mailserver"  eq imap
access-list 140 permit tcp any host "telnet-gw"   eq telnet
access-list 140 permit tcp any host "ftp-gw"      eq ftp
access-list 140 permit tcp any host "dnsserver"   eq domain
access-list 140 permit udp any host "dnsserver"
!
! abilitazione (con logging) delle porte "alte" per ftp
! in alternativa al proxy-ftp
! Viene inoltre bloccata la connessione X11 (entrante)
access-list 140 deny   tcp any any range 6000 6063
access-list 140 permit tcp any any gt 1023 log
!
! Eventuali abilitazioni locali
!
! tutto il resto non passa
access-list 140 deny   ip any any log
!

 

La temporizzazione dell'ACL

Se vogliamo abilitare la lista in determinate fascie orarie (ad esempio la notte ed i giorni festivi) possiamo avvalerci del cron di una stazione Unix opportunamente abilitata a connettersi ad un terminale virtuale del router (nell'esempio il terminale 6).
! indirizzo della macchina abilitata a lanciare lo stript
access-list 23 permit "cron-server"

! abilitazione sul terminale virtuale numero 6
line vty 6
 access-class 23 in
 access-class 23 out
 login local
 rotary 6


Negli orari stabiliti il crontab attivera' gli script acl_up e acl_down, del tipo:

(echo 'username xxx';
sleep 2;
echo 'password yyy';
sleep 2;
echo 'ena';
sleep 2;
echo 'username xxx';
sleep 2;
echo 'password yyy';
sleep 2;
echo 'terminal monitor';
sleep 2;
echo 'configure terminal'; 
sleep 2;
echo 'int eth zzz';
sleep 2;
echo 'ip access-group 140 out';      ! script acl_up
! echo 'no ip access-group 140 out'; ! script acl_down
sleep 2;
echo 'exit';
)| telnet router-name 3006
Le politiche di autorizzazione sul Cisco dipendono dalla configurazione locale.
Attenzione: E' indispensabile adottare tutti gli accorgimenti del caso per impedire l'accesso agli script acl_up e acl_down che contengono la password del router.
 

I proxy telnet e ftp

Il proxy da noi utilizzato e' il Firewall ToolKit FWTK v. 2.1, di cui abbiamo installato su di una stazione Linux RedHat il proxy-telnet ed il proxy-ftp.

La funzione fondamentale del proxy telnet e` sostanzialmente quella di permettere un accesso controllato dall`esterno con telnet per chi non ha modo di utilizzare ssh. Puo` inoltre permettere l`accesso al login remoto per eventuali stazioni locali con indirizzo IP privato. Infine rappresenta una alternativa a ssh per il forwarding del protocollo X.

Anche il proxy ftp permette controllare gli accessi dall`esterno, permette eventualmente l`accesso verso l`esterno da parte di stazioni locali con indirizzo IP privato e infine consente di superare il problema del Download menzionato in precedenza.

L`autorizzazzione puo` avvenire in base all'indirizzo (o al nome) del client e del server. Ad esempio:

permit-hosts *.rl.ac.uk -dest { 192.135.11.7 192.135.11.30 }
oppure puo` avvenire previo autenticazione (del tipo settabile dall`utente: SNK, SecudeID, S/Key, password).

I daemon tn-gw, ftp-gw ed il server per l`eventuale autenticazione sono attivati in inetd.conf:

ftp     stream  tcp     nowait  root    /usr/local/etc/ftp-gw   ftp-gw
telnet  stream  tcp     nowait  root    /usr/local/etc/tn-gw    tn-gw
authsrv stream  tcp     nowait  root    /usr/local/etc/authsrv  authsrv
Quanto segue e` un esempio di configurazione (/usr/local/etc/netperm-table):

ftp-gw:	welcome-msg	/usr/local/etc/ftp-welcome.txt
ftp-gw:	permit-hosts *

tn-gw: authserver    localhost  7777
tn-gw: welcome-msg   /usr/local/etc/tn-welcome.txt
tn-gw: xforwarder    /usr/local/etc/x-gw
tn-gw: permit-hosts  *.infn.it      -xok
tn-gw: permit-hosts  * -auth   

# auth server and client rules
authsrv: hosts 127.0.0.1
authsrv: database /usr/local/etc/fw-authdb
authsrv: permit-hosts localhost

# x rules
x-gw:           permit-hosts    *

Nell'esempio tutti i client dell'INFN possono accedere liberamente al proxy-telnet, mentre gli altri devono autenticarsi con password. Il qualificatore -xok autorizza gli utenti INFN all'X-forwarding.

L'utente del proxy realizzerara' la connessione al server in 2 step: inizialmente dovra' attivare una normale connessione (es: telnet o ftp) sul proxy, ottenendo una risposta del tipo:

############################################################
      Dipartimento di Fisica di Parma - INFN Parma
       Benvenuti al telnet-gateway tn-gw.fis.unipr.it 
   Per utilizzare Xwindow:     x clientname (es: x prpc1)
   Per connettersi ad un host: c hostname   (es: c prix7)
############################################################
tn-gw-> 
Dal prompt e' quindi possibile lanciare la connessione al server.
 

Conclusioni

Dal Marzo 1998, attraverso il meccanismo di temporizazione, e` attivo sulla rete INFN Parma un filtro con le regole di ACL specificate in questo documento. Il filtro ha funzionato la notte e nei fine settimana, mentre, durante il giorno, e` stato applicato un filtro con le sole regole antispam.

Dal mese di Aprile 1999 e` stata eliminata la temporizzazione, in modo da rendere completa la copertura temporale del filtro. E` stato inoltre aggiunto il Proxy telnet e ftp su di un server Linux.

Nell`ultimo anno non sono state segnalate intrusioni sulla rete locale.

Si sono invece verificate richieste da parte di utenti interni per una "apertura" del filtro verso Personal con funzioni di Ftp e Web server.