Mentre l'accesso dell'utente ai controlli amministrativi è una questione importante per gli amministratori del sistema all'interno di una organizzazione, mantenere le tabelle sulle quali i servizi di rete sono attivi, è di fondamentale importanza per qualsiasi utente che installa e opera un sistema Linux.
Molti servizi, con Red Hat Enterprise Linux, si comportano come server di rete. Se un servizio di rete è in esecuzione su di una macchina, un'applicazione del server chiamata daemon è in ascolto per collegamenti su una o più porte. In questo caso, ogni server dovrebbe essere trattato come un probabile mezzo tramite il quale si effettua un attacco.
I servizi a loro volta possono rappresentare molti rischi per i sistemi Linux. Di seguito viene riportata una lista di alcune problematiche:
Attacchi di tipo Denial of Service (DoS) — Inondando di richieste un servizio, un attacco di tipo denial of service può portare un sistema ad un blocco quando lo stesso cerca di registrare e rispondere ogni singola richiesta.
Attacchi di vulnerabilità dello script — Se un server usa degli script per eseguire delle azioni, come comunemente fatto dai Web server, un cracker può effettuare un attacco su script scritti in modo non corretto. Questi attacchi alla vulnerabilità degli script, può portare ad una condizione di buffer overflow o permettere ad un aggressore di modificare i file presenti sul sistema.
Attacchi Buffer Overflow — I servizi che si collegano alle porte numerate da 0 a 1023, devono essere eseguiti come un utente amministrativo. Se l'applicazione possiede un buffer overflow sfruttabile, un aggressore può ottenere accesso al sistema, eseguendo il demone come un utente normale. A causa dell'esistenza di buffer overflows sfruttabili, i cracker useranno tool automatizzati per identificare le le vulnerabilità del sistema, e una volta ottenuto l'accesso, essi useranno dei rootkit automatizzati per mantenere il loro accesso al sistema.
![]() | Nota |
|---|---|
La minaccia delle vulnerabilità dei buffer overflow viene mitigata in Red Hat Enterprise Linux grazie all'uso di ExecShield, una segmentazione della memoria eseguibile e della tecnologia di protezione supportata dai kernel di tipo uni- e multi-processori compatibili con x86. ExecShield riduce il rischio del buffer overflow, separando la memoria virtuale in segmenti eseguibili e non eseguibili. Qualsiasi codice che cerca di essere eseguito esternamente al segmento eseguibile (come ad esempio codici maliziosi infiltrati da un exploit del buffer overflow), attiva un errore nella segmentazione e quindi ne consegue una sua interruzione. Execshield include altresì un supporto per la tecnologia No eXecute (NX) su piattaforme AMD64 e eXecute Disable (XD) su sistemi Itanium e Intel® EM64T. Le suddette tecnologie lavorano in unione con ExecShield, per prevenire l'esecuzione di codici maliziosi all'interno della porzione eseguibile della memoria virtuale, con una granularità di 4kb di codice, abbassando il rischio di un attacco da parte di exploit invisibili del buffer overflow. Per maggiori informazioni su ExecShield e sulle tecnologie NX e XD, consultate il whitepaper intitolato Miglioramenti della sicurezza con Red Hat Enterprise Linux v.3, Update 3, disponibile su: |
Per limitare l'esposizione agli attacchi attraverso la rete, tutti i servizi che non vengono usati, devono essere disabilitati.
Per aumentare la sicurezza, molti servizi di rete installati con Red Hat Enterprise Linux sono, per default, selezionati su off. Tuttavia ci sono comunque delle eccezioni:
cupsd — Il server di stampa di default per Red Hat Enterprise Linux.
lpd — Un server di stampa alternato.
xinetd — Un super server che controlla i collegamenti per un host di server subordinati, come ad esempio vsftpd, telnet.
sendmail — L'agente di trasporto di posta Sendmail è abilitato per default, ma è in ascolto per collegamenti solo dal localhost.
sshd — Il server OpenSSH, il quale è un sostituto sicuro per Telnet.
Quando decidete se lasciare o meno questi servizi in esecuzione, è consigliabile usare un pò di buon senso e seguire una implementazione sicura. Per esempio, se non è disponibile una stampante, non lasciate in esecuzione cupsd. La stessa cosa vale per portmap. Se non montate i volumi NFSv3 o usate NIS (il servizio ypbind), allora disabilitate portmap.
Red Hat Enterprise Linux presenta tre programmi usati per selezionare o deselezionare (on-off) i servizi. Essi sono Strumento di configurazione dei servizi (system-config-services), ntsysv, e chkconfig. Per informazioni sull'uso di questi strumenti, controllare il capitolo Controllo dell'accesso al servizio in Red Hat Enterprise Linux System Administration Guide.
Se non siete sicuri a quale scopo potete usare un servizio, lo Strumento di configurazione dei servizi possiede un campo di descrizione illustrato in Figura 4-3, il quale potrebbe aiutarvi.
Non è sufficiente controllare quali sono i servizi di rete disponibili ad iniziare al momento dell'avvio. Gli amministratori di sistema più spigliati, dovrebbero controllare quali sono le porte aperte e in ascolto. Controllare la Sezione 5.8 per maggiori informazioni.
Potenzialmente, ogni servizio di rete non è sicuro. Ecco perchè è sempre una buona regola disabilitare i servizi che non vengono usati. Ogni giorno vengono rilevati degli exploit che a loro volta causano una emissione di patch. È importante quindi, mantenere aggiornati i pacchetti associati con qualsiasi servizio della rete. Controllare Capitolo 3 per maggiori informazioni.
Alcuni protocolli della rete sono meno sicuri di altri. Questo include tutti i servizi che effettuano quanto segue:
Passaggio in chiaro sulla rete dei nomi utente e delle password— Molti protocolli di vecchia concezione, come ad esempio Telnet e FTP, non codificano la sessione di autenticazione e dovrebbero essere evitati se possibile.
Passare informazioni sensibili non cifrate su di una rete — Molti protocolli passano dati in chiaro attraverso la rete. Questi protocolli includono Telnet, FTP, HTTP, e SMTP. Molti file system di rete, come NFS e SMB, passano, attraverso la rete, tutti i dati in chiaro. È responsabilità dell'utente limitare il tipo di dati da trasmettere.
Inoltre, i servizi dump della memoria remota, come netdump, inoltrano in chiaro attraverso la rete i contenuti della memoria. I Memory dump possono contenere delle password o delle entry per il database e altre informazioni sensibili.
Altri servizi come finger e rwhod rivelano informazioni inerenti gli utenti del sistema.
I seguenti esempi, includono servizi non sicuri:
rlogin
rsh
telnet
vsftpd
Tutti i programmi della shell ed i login remoti (rlogin, rsh, e telnet) dovrebbero essere evitati in favore di SSH. (consultare la Sezione 4.7 per maggiori informazioni su sshd).
Per la sicurezza del sistema, FTP non è così pericoloso come le shell remote, ma i server FTP devono essere configuratI con attenzione e controllati, in modo da evitare problemi. Consultare la Sezione 5.6 per maggiori informazioni su come rendere sicuri i server FTP.
I servizi che devono essere implementati con particolare attenzione e con l'uso di firewall sono:
finger
identd
netdump
netdump-server
nfs
rwhod
sendmail
smb (Samba)
yppasswdd
ypserv
ypxfrd
Maggiori informazioni su come rendere sicuri i servizi di rete, sono disponibili su Capitolo 5.
La sezione successiva indica gli strumenti disponibili per impostare un firewall semplice.