Sicurezza: Facciamo un po di hardening su linux

Sicurezza

Qualsiasi sistemista sà quanto è difficile manutenere i server che erogano servizi Internet. Ogni giorno andare a verificare i log, lanciare software di verifica per scovare eventuali falle nei sistemi, documentarsi sugli ultimi aggiornamenti ed eventualmente applicarli. Il tutto in maniera trasparente all’utente la cui unica preoccupazione è che l’email che ha inviato deve arrivare a destinazione, ed ignora tutto il lavoro necessario per farlo.

Ora in commercio ci sono tanti software anche blasonati che permettono di agevolare moltissimo il lavoro di un sistemista, Windows o Linux che sia. Ma anche che è alle prime armi e magari installa un server per imparare, respettando alcune regole basilari può dormire sonni abbastanza tranquilli.

Il primo passo da fare è quello di scegliere una buona distribuzione per server. Sostanzialmente tutte le distribuzioni linux sono più o meno equivalenti, l’unica differenza è che le distribuzioni pensate per i server non installano niente che non gli venga detto di installare. Il principio che adottano e di non installare il superfluo, aumenterebbe solo le probabilità di bucare il proprio server.

Io personalmente uso Slackware da diversi anni con discreta soddisfazione, ma anche Ubuntu Server è molto essenziale.

Una volta scelta la distribuzione linux, il passo successivo è di installarla. Ubuntu server installa veramente solo l’essenziale, il resto bisogna installarlo a suon di apt-ge. Con Slackware bisogna disattivare qualche pacchetto in fase di installazione. Completata anche questa fase iniziamo col creare un utente non privilegiato, con cui accederemo al sistema. Se c’è necessità di accedere come root si usa il comando su. Mi raccomando, usate password diverse per l’utente amministratore e per quello non privilegiato, ed utilizzate password abbastanza complesse.

Ora è il momento di verificare la configurazione del demone inet, perchè spesso le distribuzioni attivano dei demoni che al giorno d’oggi non vengono più usati, come quelli per il servizio finger, echo, etc. Disattivate quello che non vi serve.Ora passiamo ai wrappers.

I wrappers (tcpd e udpd) permetto di limitare l’accesso ai servizi locali a determinati indirizzi ip. Per configurarli dobbiamo operare sui file hosts.allow e hosts.deny. Operate prima su hosts.allow aggiungendo la riga relativa al servizio ssh (che usate per accedere al vostro server) seguito dauno o più indirizzi IP che abitualmente usate per collegarvi alla console del vostro server. Passo successivo è di aggiungere un bel ALL:ALL nel file hosts.deny. In questo modo bloccherete tutti i servizi che non avete espressamente abilitato nel file hosts.allow.

Ora siamo  a metà dell’opera. Il passo successivo è quello di configurare il firewall intregrato nel kernel di linux. La logica è quella di avere protezioni ridondate su livelli software differenti. Il primo livello di accesso al server è il traffico di rete quindi bloccate tutto il traffico da e per il server con le seguenti righe:

iptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -P OUTPUT DROP

Dopo di che inserite tutte le regole necessarie al funzionamento dei servizi che volete erogare col Vostro server.

Vi consiglio di fare la messa a punto delle regole di firewall dalla console locale del vostro server, perchè se vi accedete in remoto, dopo questi comandi vi si bloccherà la console e non ci sarà più modo di recuperare il controllo del server se non dalla console locale, per cui attenzione.

A questo punto avete protetto anche il secondo livello di accesso al server con i wrappers.

Ora gli step successivi riguardano i singoli demoni ed ogni demone ha la sua sintassi di configurazione. Le regole da seguire per configurare qualsiasi demone è di usare sempre utenti non privilegiati per l’esecuzione dei demoni e nel caso in cui questi offrano la funzione chroot per limitare l’accesso al file sistem usatela.

Spero di esservi stato di aiuto nel configurare un server più sicuro, un saluto e alla prossima.

Scritto da

Share