Il primo passo è quello di verificare che all'accensione del sistema vengano avviati solo i servizi effettivamente utilizzati. Sia su Windows che su Linux, difatti, l'installazione standard installa e configura per l'avvio automatico molti servizi che non verranno mai utilizzati. Alcuni esempi:
- la gestione delle reti wireless, del bluetooth, degli infrarossi su macchine che non hanno tali tipi di periferiche;
- il client DHCP su macchine che hanno una configurazione IP fissa;
- il servizio FAX
Questi sono solo alcuni dei molti servizi che vengono utilizzati solo saltuariamente, e che quindi non è il caso di avviare automaticamente alla partenza del sistema operativo. Un accurato controllo dei servizi può rivelare molti di questi intrusi.
Su un server Windows, è possibile impostare i servizi (Pannello di controllo / Strumenti di amministrazione / Servizi) in modalità di avvio manuale per assicurarsi che partano solo quando vengono effettivamente richiesti. Il termine manuale può trarre in inganno: infatti, se impostiamo un servizio in tale modalità non significa che possa essere avviato solo da un intervento umano, ma anche da un altro programma o servizio di sistema che ne faccia richiesta.
Su un server Linux la gestione degli script di avvio varia leggermente a seconda delle distribuzioni. Nel classico sistema SysV, avremo per ogni runlevel
una serie di script di avvio o arresto del servizio. È possibile configurare tali script di avvio manualmente o tramite gli appositi strumenti (ad esempio chkconfig
su Fedora, update-rc.d
su Debian).
Programmare spegnimento e avvio dei servizi
Molti servizi sono utilizzati solo in un dato periodo della giornata. Ad esempio, il servizio Samba - per l'accesso da Windows ai file sul server - è solitamente utilizzato solo in orario di ufficio; per cui durante la notte, quando nessuno è collegato, lo si potrebbe anche disattivare.
Su Windows, i comandi per fermare e avviare un servizio sono rispettivamente net stop [nome del servizio]
e net start [nome del servizio]
. Consiglio: digitando semplicemente net start
da un prompt dei comandi, sarà possibile visualizzare l'elenco dei servizi attualmente avviati.
Inserendo questi comandi in un file batch, e poi automatizzandone l'esecuzione tramite le Operazioni Pianificate, è possibile spegnere i servizi la sera quando tutti hanno finito di lavorare, e riavviarli la mattina prima che il personale arrivi.
Sui server Linux, i servizi si fermano e si avviano in diversi modi. Su Fedora esistono i comandi service [nome del servizio] stop
e service [nome del servizio] start
, mentre su Debian bisogna chiamare direttamente il nome dello script di avvio: /etc/init.d/[nome del servizio] stop
e /etc/init.d/[nome del servizio] start
.
Usando crontab, potremo pianificare l'arresto e l'avvio anche sui nostri server Linux.
Raggruppamento dei servizi
Su Linux, abbiamo una possibilità in più. Il servizio inetd (Internet Services Daemon) e la sua recente evoluzione xinetd gestiscono infatti i servizi di rete in maniera ottimizzata.
Invece che attivare automaticamente all'avvio i vari servizi che rispondono alle chiamate di rete (ad esempio Apache sulla porta 80, il server FTP sulla porta 21, e così via) è possibile fare in modo che un unico servizio (inetd, appunto) risponda a tutte le chiamate di rete e richieda di volta in volta l'attivazione del servizio associato.