Introduzione
I servizi, che sui sistemi *NIX spesso sono chiamati demoni,
costituiscono una delle maggiori fonti di problemi per la sicurezza
di un sistema, sia che aprano porte di rete, sia che rimangano in
stand-by, in locale, in attesa di qualche input. I servizi
che aprono una porta di rete possono essere attaccati da remoto, gli
altri possono essere sfruttati da utenti del sistema, ad esempio,
per acquisire i privilegi di root.
L'istallazione della maggior parte delle distribuzioni Linux comporta
l'attivazione automatica di tutta una serie di servizi, in modo, se
vogliamo anche eccessivo, con l'obiettivo di non creare difficoltà
all'utente medio. Fanno eccezione quelle distribuzioni molto specialistiche,
tipo ASTARO, o quelle ultrapersonalizzabili, tipo GENTOO,
che istallano solo ciò che viene espressamente richiesto, ma in entrambe
i casi si tratta di software utilizzato, e utilizzabile, solo da esperti
(checchè ne dicano i loro estimatori più spinti).
L'istallazione e l'avvio in automatico di questi servizi è molto comoda
e solleva l'utente medio da tutti i complessi problemi di configurazione
del sistema, ma può comportare uno spreco di risorse e delle falle
di sicurezza.
Ovviamente la scelta di quali servizi usare è legata al tipo di uso
del computer che vogliamo fare. I possibili profili di utilizzo sono
quasi infiniti, per delimitare il discorso verrà preso in considerazione
il caso dell'utente medio di Linux che svolge principalmente le seguenti
attività possibili fonti di problemi di sicurezza:
- naviga in internet
- usa la posta elettronica
- usa programmi peer-to-peer
- fa qualche sito web
Regole generali
Per amministrare i "servizi" è necessario agire come root,
ma questo non significa che bisogna per forza essersi loggati come
tali. Si può entrare nell'interfaccia grafica come utente e poi acquisire
i poteri di root tramite il comando su - da console:
Password: <password>
a questo punto si avrà a disposizione un prompt da cui operare come
amministratore.
È bene lasciare attivi solo i servizi di cui si ha necessità, anche
se non tutti comportano gli stessi rischi per la sicurezza. In generale
si può dire che i più problematici sono quelli che aprono delle porte
di rete.
Se un servizio, che apre porte di rete, ci è necessario, lo
si deve proteggere tramite il firewall dalle connessioni esterne.
Avvio e arresto dei servizi
In quasi tutte le distribuzioni Linux, con l'eccezione di Slackware
e derivate, la gestione della fase di inizializzazione del sistema
e di avvio dei servizi avviene tramite lo schema denominato SystemV
(l'altro sistema è chiamato BSD). Una disamina di questi sistemi
di avvio esula completamente dall'argomento di questo articolo, basta
sapere che Linux può essere avviato o fermato con differenti configurazioni
dette run level, ve ne sono 7 numerate da 0 a 6 e corrispondono:
Spegnimento del sistema.
1
Avvio in modalità singolo utente, con il minimo del sistema possibile.
Questa modalità è usata per la soluzione dei problemi e il recupero.
2
Avvio in modalità multiutente senza servizi di rete.
3
Come sopra ma con servizi di rete.
4
Non utilizzato. Questo livello può essere usato per impostarne
uno personalizzato.
5
Avvio in modalità grafica, multiutente e con servizi di rete.
6
Riavvio del sistema.
Per cui un servizio può essere avviato o fermato in relazione ad uno
o più di questi run level
In fase di avvio del sistema
Per configurare la fase di avvio e arresto dei servizi, in modo automatico,
all'accensione e spegnimento del sistema, su RedHat e derivate, si
utilizza l'utility chkconfig.
Per avere la lista dei servizi utilizzabili e il loro stato:
....
iptables 0:off 1:off 2:off 3:on 4:on 5:on 6:off
....
che ci dice che il servizio iptables
se attivo viene arrestato) nei run level
attivato nei run level
Per modificare l'avvio e l'arresto:
# chkconfig -level <run levels> <servizio> <on|off>
Ad esempio se voglio che il servizio httpd
run
level
Se invece voglio che non venga avviato in automatico mai devo scrivere:
A sistema avviato
Potremmo avere la necessità di avviare, fermare, verificare lo stato
o riavviare un servizio a sistema già avviato. per fare ciò useremo
l'utility service che usa la seguente sintassi:
Il tipo di azioni possibili dipende dal servizio, l'elenco è ottenibile
digitando:
Le azioni più comuni sono: START, STOP, RESTART, STATUS.
Interfaccia grafica
RadHat mette a disposizione l'utility redhat-config-services
che consente di effettuare quasi tutte le operazioni viste prima tramite
un'interfaccia grafica.

Come possiamo vedere si tratta di uno strumento molto semplice, composto
da tre quadri. Quello a sinistra dove vi è la lista dei servizi. Il
quadro a destra in alto in cui compare una breve descrizione del servizio.
Quello a destra in basso in cui compare lo stato del servizio. Le
varie operazioni vengono svolte tramite i pulsanti AVVIARE,
ARRESTARE, RIAVVIARE. Purtroppo tramite l'interfaccia grafica non
è possibile usare le altre eventuali operazioni possibili.
Dopo aver introdotto, nel primo articolo di questa breve serie, alcune regole generali sui servizi o demoni linux, in quest'ultima parte vediamo quali sono, come venogno gestiti e a cosa servono i principali servizi di una macchina Linux.
Servizi critici
Non saranno trattati tutti i servizi di Linux (sono veramente tanti),
ma solo quelli che aprono porte di rete e che quindi sono più critici,
e quelli fondamentali per proteggere la macchina.
gestisce le funzioni di stampa con il moderno metodo Common
Unix Print System, che ha sostituito il vecchio "lp".
porta di rete:
Printing Protocol) è in ascolto sulla porta 631, sulla quale offre
anche un servizio di amministrazione via web.
consigli:
stampante in locale o in rete. In caso negativo, o nel caso che si
utilizzi il vecchio metodo disabilitare cups, anche per chiudere la
porta 631 su cui è in ascolto.
httpd
si tratta del celeberrimo Apache, cioè il webserver standard
di Linux. Viene utilizzato sia per fornire servizi web esterni e interni,
sia come ambiente di sviluppo per applicazioni web.
porta di rete:
porta 80.
consigli:
se non è utilizzato, se si usa solo per servizi interni o come ambiente
di sviluppo allora è necessario impostare il firewall in modo che respinga
qualunque tentativo di connessione dall'esterno della macchina.
iptables
è il servizio che gestisce il complesso sistema "netfilter"
di protezione, reindirizzamento dei pacchetti, ecc... in altre parole
il firewall. Questo programma si appoggia su un intero ramo di moduli
del kernel che gli conferiscono un'efficienza elevatissima.
porta di rete:
ma è in grado di controllarle tutte.
consigli:
sia collegata ad una rete.
lisa
servizio che consente la navigazione tramite browser all'interno
di un network utilizzando il protocollo TCP/IP, fornisce funzionalità
simili a quelle di Netbios di Windows.
porta di rete:
consigli:
può essere sostituito da altri molto più sicuri come Samba, nfs, ecc..
mysqld
servizio server del celeberrimo database RDBMS opensource
MySQL.
porta di rete:
consigli:
indiscutibili. È il più usato su internet e sta avanzando in ambito
SOHO. Attivare il servizio solamente se lo si sta utilizzando effettivamente,
poichè apre la porta 3306 con connessione non protetta. Se lo si usa
in locale o come ambiente di sviluppo si consiglia di impostare il firewall
in modo che non accetti connessioni dall'esterno su tale porta.
named
servizio relativo al protocollo DNS per la risoluzione dei
nomi, basato sul celeberrimo programma BIND. È uno dei servizi necessari
per la vita di internet, ma è uno dei più insicuri.
porta di rete:
consigli:
del nome di dominio, ad esempio shishii.com, in indirizzo IP) è uno
dei servizi essenziali per internet e qualuque rete complessa, però
sia per le caratteristiche intrinseche del protocollo DNS, sia per
la sua implementazione software ubiquitaria, BIND, è gravemente insicuro,
per cui si consiglia di attivare sul proprio computer questo servizio
solo se necessario, altrimenti è meglio ricorrere al vecchio ed affidabile
file /etc/hosts.
netfs
servizio dedicato al mount dei filesystem di rete quali NFS
(UNIX), SMB (Lan Manager/Windows), e NCP (NetWare/Novell).
consigli:
di rete per condividere files, altrimenti disattivare.
nfs
gestisce il protocollo di condivisione files in rete standard
UNIX cioè NFS. In realtà è composto da tre servizi in collaborazione:
rpc.mountd (gestisce il mount sul client dei volumi nfs remoti), nfsd
(gestisce le richieste dei client), rpc.rquotad (gestisce le quote
di spazio assegnato ai client sul server).
porta di rete:
consigli:
nfslock
gestisce le funzioni di lock sui volumi posti in share tramite
NFS e impedisce la corruzioni di files e partizioni a causa di accessi
concorrenti.
consigli:
nfs, altrimenti da disattivare.
ntpd
gestisce la sincronizzazione del timer del computer tramite query a dei server centrali utilizzando il protocollo NTP.
porta di rete:
consigli:
precisa e continua sincronizzazione del timer della macchina, altrimenti
è meglio evitare di avere la porta 123 aperta.
portmap
gestisce le connessioni RPC e quindi è necessario per l'uso
di tutti quei protocolli che ne fanno uso come NFS, NIS, CODA, ecc.
porta di rete:
consigli:
necessita. Infatti pur essendo, in tali casi, necessario è una delle
fonti maggiori di problemi di sicurezza per un sistema in rete, basti
dire che è una delle falle che viene cercata con maggiore "desiderio"
da Nmap.
postgresql
servizio che gestisce l'avvio, il fermo e il riavvio
del database RDBMS open source PostgreSQL.
porta di rete:
consigli:
indiscutibili. È usato su internet e sta avanzando in ambito SOHO.
Inoltre è più adatto di MySQL per grossi carichi di lavoro, anche
se è più lento. Attivare il servizio solamente se lo si ta utilizzando
effettivamente, poichè apre la porta 5432 con connessione non protetta.
Se lo si usa in locale o come ambiente di sviluppo si consiglia di
impostare il firewall in modo che non accetti connessioni dall'esterno
su tale porta.
sendmail
si tratta del servizio che gestisce il serve di posta MTA più usato al mondo "sendmail", usa il protocollo SMTP.
porta di rete:
consigli:
per la spedizione di posta, o come piattaforma di sviluppo per programmi
che inviano posta, ad esempio le applicazioni web. Altrimenti disabilitare
per evitare i molti problemi di sicurezza che sendmail si porta dietro.
smb
In realtà si tratta di due servizi che vengono lanciati "smbd"
e "nmbd"
la condivisione di files, directory, ecc. con macchine Windows.
porta di rete:
137, 138, 139, 445.
consigli:
per la condivisione con macchine Windows. In caso contrario disattivare
i servizi che come visto aprono molte porte delicate.
snmpd
Gestisce il protocollo Simple Network Manager Protocol, utilizzato
per tenere sotto controllo sistemi remoti e amministrarli.
porta di rete:
consigli:
tenuti sotto controllo e, in maniera limitata, amministrati da remoto.
Si tenga comunque presente che la versione 1 comunica in chiaro, e
quindi è molto insicura, la versione 2 prevede la funzione di crittografia
tramite MD5 relativamente debole. La prossima versione, 3, dovrebbe
risolvere questi ed altri problemi.
snmptrapd
Gestisce la funzione "trap" del protocollo suddetto,
tramite la quale è la macchina tenuta sotto controllo che prende l'iniziativa
delle comunicazione.
porta di rete:
consigli:
squid
Servizio relativo al più famoso proxy server HTTP e FTP open
source, l'omonimo "Squid".
porta di rete:
in genere: 3128, 8080, 8081.
consigli:
utile in tutti casi in cui si ha la necessità di ottimizzare e controllare
l'accesso ad internet.
sshd
Si tratta di uno dei servizi fondamentali per la rete, consente di aprire shell, trasferire files, ed altro su macchine remote, in completa sicurezza, tramite comunicazioni criptate in maniera efficace.
porta di rete:
consigli:
verso cui ci può essere la necessità di doversi collegare da remote
ed aprire una shell. Si possono anche effettuare upload, download,
amministrazione in sicurezza.
xfs
avvia il font server necessario per l'utilizzo dell'interfaccia
grafica "X".
porta di rete:
porta 7100.
consigli:
Linux in modalità grafica.
xinetd
chiamato anche il "superdemone" serve a fare avviare
e tenere sotto controllo tutta una serie di servizi minori e, tendenzialmente,
poco affidabili, quali: telnet, finger, time, rlogin, rcp, ecc.
porta di rete:
gestire servizi minori le porte impegnate dipendono da quali vengono
avviati.
consigli:
di spostare l'attenzione su quali servizi amministrati fargli avviare
e quali no.