Avanti Indietro Indice

5.1 Ridurre i punti di ingresso

L'idea di base è quella di eliminare tutto ciò che in rete potrebbe essere facilmente attaccato. Potreste quindi voler seguire le indicazioni contenute nelle prossime sezioni.

inetd.conf

In questo file sono indicati alcuni servizi di rete che dovranno essere attivi sulla vostra macchina. Alcune distribuzioni, invece dello standard inetd, utilizzano xinetd che fa uso di una struttura a directory e di un diverso file di configurazione. Se la vostra distribuzione utilizza inetd.conf, vi dovrebbe bastare commentare tutte le righe che servono per attivare servizi che non vi interessa offrire, inserendo un ``#'' all'inizio della riga stessa. Un tipico file inetd.conf al termine dell'installazione di debian (a secondo di quello che È stato installato) potrebbe essere simile al seguente:

# [...]
#
#:INTERNAL: Internal services
echo            stream  tcp     nowait  root    internal
echo            dgram   udp     wait    root    internal
chargen         stream  tcp     nowait  root    internal
chargen         dgram   udp     wait    root    internal
discard         stream  tcp     nowait  root    internal
discard         dgram   udp     wait    root    internal
daytime         stream  tcp     nowait  root    internal
daytime         dgram   udp     wait    root    internal
time            stream  tcp     nowait  root    internal
time            dgram   udp     wait    root    internal

#:STANDARD: These are standard services.
ftp             stream tcp nowait root /usr/sbin/tcpd /usr/sbin/proftpd

#:BOOT: Tftp service is provided primarily for booting.  Most sites
# run this only on machines acting as "boot servers."
#tftp           dgram   udp     wait    nobody  /usr/sbin/tcpd  /usr/sbin/in.tftpd /boot

# [...]
La maggior parte di questi servizi (il nome indicato nella prima colonna), sono servizi *nix standard, forniti per motivi di conformità con altri sistemi *nix e per lo più inutili.

Nel nostro caso, il firewall non offrirà alcun servizio, nel senso che non vi sarà installato alcun server, salvo, forse, per il server ``ssh'' per l'amministrazione remota. Dovremmo quindi provvedere a commentare tutte le righe inserendo un cancelletto all'inizio della riga, come mostrato per il servizio ``tftp''.

Nel caso decidiate di lasciare alcuni servizi aperti, fate attenzione alla quinta colonna, che contiene i privilegi con cui il programma verrà eseguito, e alla sesta, che contiene il programma da eseguire. A parte i programmi indicati come internal, la maggior parte delle volte vedrete in sesta colonna il comando ``/usr/sbin/tcpd''. Questo, in gergo, viene definito un ``wrapper''. Quello che fa questo comando, infatti, è semplicemente eseguire ciò che viene indicato nella colonna successiva. L'utilità del wrapper è che prima di eseguire il comando indicato, quando riceverà una connessione, questo si occuperà di effettuare alcune verifiche decidendo se bloccare o consentire l'utilizzo del servizio.

Le decisioni di questo wrapper sono normalmente basate sul contenuto del file /etc/hosts.allow e /etc/hosts.deny. Maggiori informazioni sul formato di questo file possono essere reperite sulla pagina di manuale di ``hosts_access'' e ``hosts_options''.

Directory /etc/init.d

In questa directory sono normalmente contenute due categorie di script:

In Debian e in altre distribuzioni con un sistema di boot conforme a quello di System V, in /etc (o /etc/rc.d) esistono altre directory chiamate rc0.d, rc1.d, rc2.d e così via. Queste directory contengono dei link simbolici agli script in ``init.d'' che dovranno essere eseguiti quando si passa rispettivamente a runlevel 0, 1, 2 e così via.

Ogni runlevel, poi, può essere utilizzato in modo diverso e gli può venire assegnato un particolare significato. Ad esempio, l'operazione di shutdown consiste nel passaggio dal runlevel corrente al runlevel 0 (per cui, tutti gli script in rc0.d verranno utilizzati per bloccare i vari servizi e per eseguire le operazioni di spegnimento), il runlevel 2 è quello standard che viene eseguito quando si accende il computer, ed il 6 viene usato per il reboot.

Per rendere più sicuro il nostro firewall, dovremmo quindi prodigarci per evitare che durante l'accensione vengano avviati dei servizi che potrebbero essere utilizzati contro di noi.

Il metodo normalmente utilizzato è quello di eliminare i link simbolici (con un semplice rm) relativi a servizi che non ci interessano dalla directory relativa al runlevel utilizzato per avviare il sistema (normalmente ``rc2.d'', almeno in Debian). Alcune distribuzioni utilizzano metodi più esotici per gestire questi link simbolici, per cui vi conviene dare un'occhiata alla documentazione che vi è stata fornita.

In Debian per esempio, è possibile utilizzare lo script ``update-rc.d'', con qualcosa di simile a:

  update-rc.d apache remove
per evitare che apache venga caricato durante l'avvio o lo shutdown. Un'altra alternativa potrebbe essere quella di rimuovere del tutto apache (probabilmente inutile se non lo si fa partire a boot-up), con il solito:
  apt-get --purge remove apache
Per avere un elenco dei programmi attivi che offrono servizi in rete, potreste voler utilizzare il comando netstat, con
  # netstat -npla |less
che vi dovrebbe indicare le porte rimaste aperte ed i relativi processi.

Demoni

In generale comunque, per i servizi che deciderete di lasciare attivi, ricordatevi dove possibile di:

Per ciò che offre servizi in rete, se vi voleste veramente divertire, potreste utilizzare delle porte diverse rispetto quelle standard: se metteste per esempio ssh sulla porta 42 piuttosto che sulla 54, potreste evitare tutti quegli scanner che mandano pacchettini in giro per la rete alla ricerca di particolari versioni di particolari software da poter facilmente bucare. Certo, questo puó creare parecchia confusione anche dal punto di vista dell'amministrazione (soprattutto se ogni volta utilizzate una porta diversa), ma a lungo andare potrebbe dimostrarsi una utile contromisura. Attenzione però che se il demone che state utilizzando contiene dei bachi di sicurezza, questo continuerà ad averne anche se deciderete di utilizzare una diversa porta.

Per cambiare impostazioni come la porta, i privilegi che il demone dovrà avere o per cambiare i banner di benvenuto, riferitevi alla documentazione specifica fornita col demone installato.


Avanti Indietro Indice