Linux: alcuni consigli per irrobustire le difese del nostro server

Se siete maniaci della sicurezza informatica (come il sottoscritto) e pensate che aver configurato una DMZ comprensiva di screened router, interior router, bastion host (con iptables) ed IDS non sia assolutamente sufficiente per mettere al sicuro la vostra LAN, ecco alcuni consigli pratici per rendere difficile la vita al cracker di turno.

La prima cosa da fare è installare sul nostro sistema alcuni tool che ci permettono di monitorare in modo abbastanza semplice le entry relative ai diversi file di log (ad esempio syslog). Il tool che personalmente consiglio è Swatch (acronimo di Simple watcher). Il suo modo di operare è il seguente: “legge” in tempo reale i file di log e vi avvisa (ad esempio mediante mail) quando trova una stringa degna di nota. 

Per installarlo basta digitare il comando:

nightfly@nightbox:~$ sudo apt-get install swatch

Una volta fatto ciò dobbiamo creare il file di configurazione associato all’applicativo in questione e posizionarlo all’interno della nostra home. Il nome di tale file dovrà essere .swatchrc (il punto all’inizio del filename indica che si tratta di un file nascosto).

Non mi soffermerò ad elencare le varie espressioni regolari che possono essere impostate all’interno del file di configurazione di swatch, in quanto una spiegazione abbastanza esaustiva la potete trovare clickando su questo link.

Bene, adesso le operazioni di lettura dei log non dovrebbero essere più così noiose e stressanti; possiamo quindi passare alla fase successiva e cioè all’installazione di un File Integrity Checker.

Questi tool non fanno altro che verificare la mancata modifica di alcuni file sensibili rispetto ad una baseline (cioè una sorta di “fotografia” scattata al nostro sistema durante l’installazione degli applicativi in questione).

Il file integrity checker che vi consiglio è tripwire. Vediamo come installarlo e successivamente come configurarlo in modo corretto.

Per l’installazione basta digitare:

 nightfly@nightbox:~$ sudo apt-get install tripwire

Durante la fase di installazione vi chiederà di impostare una site passphrase ed una local passphrase. Fatto ciò create l’immagine del sistema digitando:

 nightfly@nightbox:~$ sudo tripwire --init

Otterrete un output simile al seguente:

Please enter your local passphrase:
Parsing policy file: /etc/tripwire/tw.pol
Generating the database...
*** Processing Unix File System ***
Performing integrity check...
Nel caso alcuni file specificati in tw.pol non esistono il comando visualiza messaggi di errori
### Warning: File system error.
### Filename: /var/lock/subsys/portmap
### No such file or directory
### Continuing...
### Warning: File system error.
### Filename: /var/lock/subsys/httpd
### No such file or directory
.....
# la locazione del file database è definita nel file di configurazione tw.cfg
Wrote database file: /var/lib/tripwire/GIOVE.twd
The database was successfully generated.

Ecco fatto, adesso periodicamente (collegandoci al server da remoto oppure attraverso un’azione settata mediante cron) possiamo eseguire un controllo sull’integrità dei nostri file, semplicemente digitando:

nightfly@nightbox:~$ tripwire --check

Bene, ora vediamo come scansionare il nostro sistema alla ricerca di rootkit e malware vari. A tal scopo sono stati creati due tool che svolgono questa operazione in modo egregio: chkrootkit e rkhunter.

Per installare chkrootkit basta digitare il comando:

nightfly@nightbox:~$ sudo apt-get install chkrootkit

mentre per installare rkhunter il comando è il seguente:

nightfly@nightbox:~$ sudo apt-get install rkhunter

Per eseguire chkrootkit basta digitare:

nightfly@nightbox:~$ sudo chkrootkit | less

mentre per eseguire rkhunter occorre digitare:

 nightfly@nightbox:~$ sudo rkhunter -c

dove la flag -c sta per “check”.

Inoltre, il risultato della scansione eseguita con rkhunter potrà essere visualizzato in un secondo momento accedendo in lettura al file /var/log/rkhunter.log (usate il comando less per leggere il log un pò alla volta).

Ora non mi resta che darvi alcuni consigli pratici su come individuare eventuali intrusioni nel caso in cui tutti i tool elencati in precedenza abbiano fallito:

1) monitorare le connessioni attive mediante un semplice netstat;

2) verificare che l’IP del server non sia stato inserito all’interno del database consultabile all’indirizzo http://www.dshield.org/ipinfo.html. In caso affermativo è probabile che il nostro server sia stato utilizzato come testa di ponte per un attacco malevolo.

3) individuare picchi anomali di banda;

4) rilevare la cancellazione o la modifica dei log di sistema.

Infine, alcuni comandi diagnostici molto utili per individuare eventuali intrusioni sono last (elenca gli eventuali reboot/crash/halt del sistema) e lastlog (lista gli utenti che si sono loggati al sistema, con relativo tempo di log ed ora in cui è avvenuta la connessione).

Credo che questa miniguida possa terminare qui, in quanto non spetta a me insegnarvi i vari trucchi del mestiere (assimilabili esclusivamente mediante esperienza personale). A presto.

Linux: alcuni consigli per irrobustire le difese del nostro serverultima modifica: 2008-09-09T10:48:51+02:00da nazarenolatella
Reposta per primo quest’articolo