Sicurezza su Linux – Configurazioni Iniziali

In questo articolo vediamo configurazioni da fare per aumentare la sicurezza su Linux

Password Deboli
Un primo punto fondamentale per garantire la sicurezza di un sistema è forzare l’utilizzo di password che presentino una certa complessita.
Avere una password complicata per l’utente root non è sufficiente se poi è consentito agli utenti di utilizzare password estremamente semplici.
Un modo per garantire che le password abbiano una certa complessità è utilizzare i moduli PAM inserendo nel file /etc/pam.d/password le seguenti linee

passwd password requisite /usr/lib/security/pam_cracklib.so retry=3
passwd password required /usr/lib/security/pam_pwdb.so use_authtok

In secondo luogo è necessario modificare le password di default di applicativi o servizi.

Utenti e Gruppi non utilizzati
Spesso è utile anche rimuovere dal sistema gli utenti che vengono creati dal sistema ma che non sono utilizzati.
Gli utenti che è possibile rimuovere dipendono dall’utilizzo che si fa del sistema
Questo è un elenco di utente che di solito è possibile rimuovere

adm        Usato per tool di diagnostica
desktop        Utente relativo a KDE
ftp        L’utente di default per il servizio ftp
games        Utente games
gdm        Utente relativo al servizio GDM
gopher        Utente del servizo Gopher
identd        Utente relativo al servizio ident
news        Utente news
nfsnobody    Utente utilizzato dal nfs
nscd        Utenete del sevizio nscd
operator    Utente operator
proxy        Utente proxy
rpc        Utente utilizzato da rpc
rpcuser        Utente utilizzato da rpc
sync        utente sync
telnetd        utente del servizio telnet
uucp        utente uucp
xfs        utente di x font server

Il comando da utilizzare per l’eliminazione degli utenti è il seguente

server# userdel adm

Questo è un elenco di gruppi che di solito è possibile rimuovere

lp
news
uucp
proxy
operator
list
irc
src
staff
games
gdm
telnetd
gopher
ftp
nscf
rpc
rpcuser
nfsnobody
xfs
desktop

Il comando da utilizzare per l’eliminazione dei gruppi è il seguente

server# groupdel news

Limitare l’uso del comando su
Un’altra configurazione utile consiste nel limitare l’utilizzo del comando su a alcuni utenti.
Per fare questo è sufficiente modificare il file /etc/pam.d/su e togliere il commento dalla seguente linea

auth       required     /lib/security/$ISA/pam_wheel.so use_uid

In questo modo solo gli utenti membri del gruppo wheel potranno utilizzare su.
Tramite l’opzione group= è possibile speficare un gruppo diverso sa wheel che può utilizzare il comando.

auth       required     /lib/security/$ISA/pam_wheel.so use_uid group=supporto

In questo modo solo gli utenti membri del gruppo supporto potranno utilizzare su.

Configurare Inittab
Il file /etc/inittab contiene diverse configurazioni importanti e quindi deve essere verificato con attenzione.

Risulta consigliabile commentare in questo file la linea che gestisce il riavvio del sistema quando si preme control+alt+canc

# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now

Una soluzione alternativa all’eliminazione di questa linea è quella di inserire l’opzione -a

# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -a -t3 -r now

In questo modo il comando l’esecuzione del comando shutdown è possibile solo per gli utenti specificati nel file /etc/shutdown.allowed e quindi, se un utente che non è specificato in questo file preme control+alt+canc, il risultato sarà un errore

per rendere effettive le modifiche è necessario eseguire il comando

server# init q

A questo punto è necessario impostare i corretti permessi sul file

server# chown root:root /etc/inittab

La sequenza di boot
L’ordine in cui vengono avviati e fermati i servizi è importante ai fini della sicurezza.
Infatti è bene che servizi come iptables e syslog che gestiscono il firewall e la registrazione dei log vengano avviati prima che sia attivata la rete.

Accesso alla console
Una prina cosa dafare è  limitare il numero di console a cui è possibile accedere con l’utente root andando a modificare il file /etc/securetty.
Semplicemente bisogna commentare le linee che fanno riferimento alle console alle quali non vogliamo sia possibile loggarsi come root.
Una volta fatto questo bisogna assicurarsi che l’accesso a questo file sia limitato all’utente root

server# chown root:root /etc/securetty
server# chmode 0600 /etc/securetty

Inoltre in alcune distribuzione come Fedora all’utente non root che si logga via console sono dati permessi di eseguire programmi che normalmente un utente non root non può esegure.
Questi programmi sono definiti nella directory /etc/security/console.apps e possono essere rimossi con il seguente comando

server# rm -f /etc/security/console.apps/*

Login screen
Per nascondere le informazioni di sistema a chi si collega  al sitema è necessario andare a modificare il contenuto dei file /etc/issue e /etc/issue.net.
In questi file è bene che sia inserito un messaggio di avvertimento relativo all’uso non autorizzato del server e che vengano rimosse tutte le informazioni relative al sistema operativo.
Una volta effettuate le modifiche è necessario verificare che il file sia modificabile solo da root

server# chown root:root /etc/issue /etc/issue.net
server# chmod 0600 /etc/issue /etc/issue.net

Sudo
Sudo permette a utenti non root di eseguire dei comandi come se fossero root.
Per limitare gli utenti e i file è possibile modificare il file /etc/sudoers utilizzando il comando visudo

supporto ALL=/sbin/shutdown

Questa linea indica che l’utente supporto può eseguire shutdown come se fosse l’utente root su tutti gli host come è specificato da ALL

Sudo permette anche di specificare un utente diverso da root che viene usato quando si lancia un comando

supporto ALL=(mysql) /usr/local/bin/mysqld

Questa linea indica che l’utente supporto può eseguire mysqld come se fosse l’utente mysql

Sudo permette anche di specificare un gruppo invece che un singolo utente

%supporto ALL=/sbin/shutdown

Questa linea indica che tutti i membri del gruppo supporto possono eseguire shutdown come se fossero root

per eseguire un comando utilizzando sudo basta semplicemente scrivere sudo prima del nome del comando in questo modo il sistema chiederà la password dell’utente e se questo utente rientra tra quelli autorizzati il comando verrà eseguito come root.