5.13. Rendere sicuri i servizi RPC
Disabilitate RPC se non ne fate uso.
RPC (Remote Procedure Call) è un protocollo che i programmi possono utilizzare per richiedere servizi da altri programmi che si trovano su computer diversi da quello locale. Il servizio portmap
controlla i servizi RPC mediante la combinazione della numerazione assegnata ai programmi RPC con i numeri delle porte assegnate dal protocollo DARPA. RPC deve essere in esecuzione per eseguire chiamate RPC.
I servizi basati su RPC hanno avuto un pessimo record circa i buchi di sicurezza, anche se non portmapper stesso (nonostante fornisca informazioni ad un attaccante remoto). Notate che alcuni degli attacchi DDoS (Distributed Denial of service) utilizzano exploit RPC per accedere al sistema ed agire come un cosiddetto agente/gestore.
RPC vi occorre solamente se state utilizzando un servizio basato su RPC. I servizi più comuni basati su RPC sono NFS (Network File System) e NIS (Network Information System). Vedete la sezione precedente per maggiori informazioni riguardo NIS. Anche il FAM (File Alteration Monitor) fornito dal pacchetto fam è un servizio RPC, che dipende da portmap.
I servizi NFS sono abbastanza importanti in alcune reti. Se è il vostro caso, allora occorre trovare un bilanciamento tra la sicurezza e l'usabilità della vostra rete (potete leggere di più riguardo la sicurezza di NFS nel
http://www.tldp.org/HOWTO/NFS-HOWTO.html (
/usr/share/doc/HOWTO/en-txt/NFS-HOWTO.txt.gz
)).
5.13.1. Disabilitare completamente i servizi RPC
Disabilitare portmap è abbastanza semplice, ci sono diversi metodi. Il più semplice in un sistema Debian 3.0 e successivi rilasci è quello di disinstallare il pacchetto
portmap. Se state eseguendo una versione più vecchia di Debian dovrete disabilitare il servizio come avete visto in
Sezione 3.5.1, «Disabilitare i servizi attivi in modalità demone», perché il programma è parte del pacchetto
netbase (che non può essere disinstallato senza danneggiare il sistema).
Notate che alcuni ambienti desktop, in particolare GNOME, utilizzano i servizi RPC ed hanno bisogno di portmap per alcune delle loro funzionalità di gestione file. Se è il vostro caso, potete limitare l'accesso ai servizi RPC come descritto sotto.
5.13.2. Limitare l'accesso ai servizi RPC
Sfortunatamente, in alcuni casi rimuovere i servizi RPC dal sistema non rappresenta una soluzione. Alcuni servizi locali in ambito desktop (come fam di SGI) sono basati su RPC e necessitano di un portmapper locale. Questo significa che in alcune situazioni, utenti che installano un ambiente desktop (ad esempio GNOME) installerano anche portmapper.
Ci sono diversi modi per limitare l'accesso a portmapper ed ai servizi RPC:
Bloccare l'accesso a questi servizi utilizzando dei wrapper TCP, da quando portmapper (ed alcuni servizi RPC) vengono compilati con
libwrap
(consultate
Sezione 4.12, «Usare i tcpwrapper»). Questo significa che è possibile bloccare l'accesso ai servizi tramite la configurazione dei wrapper tcp
hosts.allow
e
hosts.deny
.
Dalla versione 5-5, il pacchetto
portmap può essere configurato per rimanere in ascolto solamente sull'interfaccia di loopback. Per fare questo, occorre modificare
/etc/default/portmap
, decommentando la riga seguente:
#OPTIONS="-i 127.0.0.1"
e fare un restart del portmapper. È sufficiente questo per permettere ai servizi locali RPC di essere in esecuzione ed allo stesso tempo impedire l'accesso remoto al sistema (consultate, comunque,
Sezione 4.18.5, «Disabilitare la questione weak-end host»).