Il sito di Don Stefano Bortolato FDP

  • Increase font size
  • Default font size
  • Decrease font size
HomeTexts HowTo. Rkhunter

HowTo. Rkhunter

E-mailPrintPDF
Rkhunter è un programma cacciatore di Rootkit in grado di funzionare su sistemi Linux, BSD, Solaris e *NIX.
L'installazione e l'uso sono semplici, ma la documentazione non descrive operativamente la fase di tuning, di configurazione di cron e di logrotate indispensabili per un buon funzionamento ed evitare falsi positivi.
In questa guida viene descritta l'installazione, la configurazione, il tuning, la configurazione di cron e di logrotate per un corretto funzionamento.
Clicca qui per scaricare l'howto in formato DOC, ODT e PDF.

1. Premessa

Quanto descritto in questo howto va fatto quando il server è stato completato e prima di metterlo in produzione. Infatti creeremo una sorta di foto del sistema e ci servirà per rilevare le eventuali alterazioni prodotte da un attacker o da un rootkit.

Di seguito descriviamo la procedura di installazione. Segue la creazione del cron, per l'esecuzione automatica, la configurazione ed il tuning avanzato. Infine creeremo il logrotate per l'archiviazione automatica dei log.

In questa guida non entreremo nei dettagli dell'applicativo. Per ogni approfondimento si rimanda al sito e alla documentazione ufficiale http://rkhunter.sourceforge.net/ .

In fine tutte le seguenti operazioni vanno svolte come utenti root.

2. Requisiti

Per i requisiti specifici di Rkhunter e dei programmi di corredo necessari si rimanda a http://rkhunter.cvs.sourceforge.net/viewvc/rkhunter/rkhunter/files/README .

In aggiunta si richiede che il server sia in grado di inviare correttamente le email da terminale e abbia un accesso costante a internet.

3. Fase 1 : installazione

L'installazione può avvenire o dal pacchetto sorgente o direttamente dai repository della propria distribuzione. Si suggerisce di procedere, preferenzialmente, dal repository della propria distribuzione.

3.1. Da sorgente

  1. Posizionarsi nella directory temporanea

    # cd /tmp

  2. scaricare il tarball

    # wget http://downloads.sourceforge.net/rkhunter/rkhunter-<version>.tar.gz

  3. estrarre il pacchetto

    # tar zxf rkhunter-<version>.tar.gz

  4. accedere alla directory di Rkhunter

    # cd rkhunter-<version>

  5. dare l'istruzione di installazione

    # ./installer.sh --install

  6. rimuovere i file e il pacchetto sorgente

    # cd ..
    # rm -R rkhunter*

3.2. Su Debian e derivate

Da terminale dare l'istruzione

# apt-get install rkhunter

3.3. Su RedHat e derivate

Da terminale dare l'istruzione

# yum install rkhunter

3.4. Su OpenSuSE

Da terminale dare l'istruzione

# yast2 -i rkhunter

4. Fase 2: configurazione di cron

Procediamo con la creazione del cron. Servirà per l'esecuzione automatica, ma anche per i test di tuning.

  1. Apriamo l'editore vi per creare il file /etc/cron.daily/rkhunter.sh

    # vi /etc/cron.daily/rkhunter.sh

  2. inseriamo il seguente testo mettendo il corretto indirizzo email

    #!/bin/sh
    MSG=$(
    /usr/local/bin/rkhunter --versioncheck --nocolors > /dev/null
    /usr/local/bin/rkhunter --update --nocolors > /dev/null
    /usr/local/bin/rkhunter --cronjob --rwo --nocolors
    )
    if [ "$MSG" ]; then
    echo "$MSG" | /bin/mail -s "[rkhunter] daily run on `uname -n`" This e-mail address is being protected from spambots. You need JavaScript enabled to view it
    fi
    exit 0

  3. impostiamo i corretti permessi di esecuzione

    # chmod 700 /etc/cron.daily/rkhunter.sh

NOTA: il path assoluto di Rkhunter varia se l'installazione è avvenuta dai repository della propria distribuzione e dal tarball come descritto al titolo 3.1. Da sorgente. Nel caso di uso dei pacchetti della propria distro il path è /usr/bin/rkhunter . Nel caso si sia usato il tarball il path è /usr/local/bin/rkhunter . Per vedere il path si può usare la seguente istruzione:

# which rkhunter

5. Fase 3: configurazione e tuning di Rkhunter

Per configurare correttamente Rkhunter procederemo con una prima configurazione di base e procederemo a salveremo le proprietà del server. Quindi lanceremo la prima analisi per passare al tuning dettagliato. Concluderemo con l'ultima esecuzione di Rkhunter che non dovrà restituirci alcun positivo.

5.1. Configurazione base

  1. Editiamo il file /etc/rkhunter

    # vi /etc/rkhunter

  2. modifichiamo le due seguenti righe come qui di seguito, ma inseriamo un indirizzo email reale

    ...
    USER_FILEPROP_FILES_DIRS="/etc/rkhunter.conf.local"
    ...
    MAIL-ON-WARNING="This e-mail address is being protected from spambots. You need JavaScript enabled to view it "
    ...

  3. fotografiamo lo stato del server

    # rkhunter --propupd

NOTA: il comando rkhunter --properup è necessario ogni volta che modifichiamo rkhunter.conf, rkhunter.conf.local e/o uno dei file analizzati da Rkhunter.

5.2. Tuning dettagliato

Le diverse incarnazioni Unix hanno svariate differenze. Altre differenze sono date dalle configurazioni, dai software specifici del server e dall'hardware su cui gira. Pertanto dobbiamo procedere manualmente per insegnare ad Rkhunter quali sono i file e le proprietà corrette della macchina su cui gira. Per fare questo lanceremo una prima analisi. Otterremo l'elenco di ciò che Rkhunter non riconosce. Da questo elenco ricaveremo le informazioni da aggiungere nel database di default di Rkhunter e, infine, consolideremo lo stato.

  1. Lanciamo Rkhunter

    # /etc/cron.daily/rkhunter.sh

  2. leggiamo l'email inviata all'indirizzo specificato in /etc/cron.daily/rkhunter.sh . Troveremo un lungo elenco di falsi positivi. In realtà, questo lungo elenco, è raggruppabile in 3 soli tipi di errori: directory non conosciute, file non conosciuti, programmi non conosciuti.

    Le stesse informazioni ricevute via email le possiamo trovare nel log /var/log/rkhunter.log .

    A seconda del nostro computer e della configurazione potremmo trovare anche altre indicazioni di warning nel log

  3. lanciamo vi per editare il file /etc/rkhunter.conf.local

    # vi /etc/rkhunter.conf.local

  4. inseriamo il contenuto. Per le righe del log come

    Warning: Suspicious file types found in /dev:
    /dev/.udev/db/block:sdc: ASCII text

    inseriamo tante righe come le seguenti riportando per ciascuna il file sospetto. Rkhunter supporta i caratteri jolly

    ALLOWDEVFILE="dev/.udev/db/block*"

    Per le righe che dichiarano una directory nascosta come questa

    Warning: Hidden directory found: '/dev/.sysconfig'

    inseriamo una riga con tante voci quante le directory separate da uno spazio come nell'esempio seguente

    ALLOWHIDDENDIR="/dev/.sysconfig "

    Per le righe che dichiarano un'applicazione non attendibile come queste

    Warning: Application 'openssl', version '1.0.0', is out of date, and possibly a security risk.
    Warning: Application 'httpd', version '2.2.1', is out of date, and possibly a security risk.

    inserire una riga con tante voci quante le applicazioni sospette separate da uno spazio come nell'esempio seguente

    APP_WHITELIST="openssl httpd"

    il risultato finito avrà un aspetto come il seguente:

    APP_WHITELIST="openssl httpd"
    ALLOWDEVFILE="/dev/.sysconfig/network/*"
    ALLOWDEVFILE="/dev/.udev/db/block*"
    ALLOWDEVFILE="/dev/.udev/db/sound*"
    ALLOWDEVFILE="/dev/.udev/db/input*"
    ALLOWDEVFILE="/dev/.udev/db/usb*"
    ALLOWDEVFILE="/dev/.udev/db/drm*"
    ALLOWDEVFILE="/dev/.udev/db/pci*"
    ALLOWDEVFILE="/dev/.udev/db/serio*"
    ALLOWDEVFILE="/dev/.udev/db/net:eth0"
    ALLOWDEVFILE="/dev/.udev/rules.d/10-root-symlink.rules"
    ALLOWDEVFILE="/dev/shm/initrd_exports.sh"
    ALLOWDEVFILE="/dev/.udev/queue.bin"
    ALLOWHIDDENDIR="/dev/.sysconfig"
    ALLOWHIDDENFILE="/etc/.directory"

  5. diamo i corretti permessi al file

    # chmod 600 /etc/rkhunter.conf.local

5.3. Esecuzione di conferma

  1. Confermiamo e fotografiamo le modifiche effettuate

    # rkhunter --propupd

  2. lanciamo una scansione per avere conferma

    # /etc/cron.daily/rkhunter.sh

  3. se abbiamo dimenticato di inserire una o più righe di warning ci arriverà un'email con i file/directory/applicazioni che Rkhunter considera ancora sospetti. Ripetiamo le operazioni di aggiornamento di /etc/rkhunter.conf.local di rkhunter --propupd e /etc/cron.daily/rkhunter.sh . Appena istruito correttamente Rkhunter non ci giungerà più alcuna email.

    Arrivati a questo punto possiamo a configurare logrotate.

6. Fase 4: configurazione logrotate

L'ultimo passo consiste nel configurare logrotate perché gestisca automaticamente i log di Rkhunter.

  1. Lanciamo vi per editare il file /etc/logrotate.d/rkhunter

    # vi /etc/logrotate.d/rkhunter

  2. inseriamo il codice:

/var/log/rkhunter.log {
compress
dateext
maxage 365
rotate 20
missingok
notifempty
size +1024k
}

A questo punto abbiamo finito e possiamo mettere in produzione il nostro server dovutamente protetto dai Rootkit e da modifiche dannose ad opera di cracker.

7. Webgrafia

The Rootkit Hunter project, http://rkhunter.sourceforge.net/

RAVI SaiveInstall, Linux Rkhunter (Rootkit Hunter) in RHEL, CentOS and Fedora, http://www.tecmint.com/install-linux-rkhunter-rootkit-hunter-in-rhel-centos-and-fedora/

JOHN, Re: [Rkhunter-users] False suspicious file types warning , http://www.mail-archive.com/ This e-mail address is being protected from spambots. You need JavaScript enabled to view it /msg02621.html