Archive for June 26th, 2007

da “Il piccolo sistemista”, Garzanti Editori

June 26th, 2007 | Category: tmrc

tutto e’ cominciato stamattina.

N. mi chiama: “Suuuugo?”

Io: “Si’?”

N. “Nagios dice che e’ morto il server web su [CENSORED]

(chissa’ come mai sono diventato cosi’ riservato)

Tosto mi ci collego in ssh. Il server web stava girando. Certo, il tutto era di una lentezza mostruosa, cosa che mi ha indotto a usare top, free, ps, cazzi e mazzi.

La cosa piu’ importante di quel server e’ il radius. Stava funzionando.

In effetti non poteva non funzionare.

Se fosse morto pure quello, da quel posto li’ mi avrebbero gia’ chiamato i Nagios umani (cioe’ le segretarie).

Cosi’ decido di usare rkhunter e chkrootkit, giusto per stare piu’ apposto con la coscienza.

chkrootkit mi ha sparato una lista di file sospetti troppo lunga per essere vera.

L’ho fatta vedere a E., c’abbiamo riso sopra insieme, e morta li’.

rkhunter invece mi ha trovato 3 checksum BAD: insmod, depmod e modinfo.

Mi e’ sembrato strano. L’ultima volta (e unica, a dir la verita’) che ho trovato dei binari taroccati ce n’erano molti di piu’.

Insomma, pensavo piu’ a un falso positivo.

Rootkit Hunter has found some bad or unknown hashes. This can happen due to replaced
binaries or updated packages (which give other hashes). Be sure your hashes are
up-to-date (rkhunter –update). If you’re in doubt about these hashes, contact
us through the Rootkit Hunter mailinglist at [email protected].

Cosi’ sono giunto allo script “hashupd.sh”, che ha lo scopo di aggiornare il database degli hash dei vari binari.

Purtroppo non e’ stato immediato usarlo đŸ™‚

root@CENSORED:/home/sugo# sh hashupd.sh
[FATAL] /usr/local/rkhunter/lib/rkhunter/db/os.dat not writable, exiting.

Ahhh, il classico errore di permessi… Ma:

root@CENSORED:/home/sugo# ls -lF /usr/local/rkhunter/lib/rkhunter/
total 16
drwxr-xr-x 2 root root 4096 Jun 25 22:45 db/
drwxr-xr-x 2 root root 4096 Jun 25 20:32 docs/
drwxr-xr-x 2 root root 4096 Jun 25 20:32 scripts/
drwxr-xr-x 2 root root 4096 Jun 26 00:40 tmp/

..da qui in poi tutta una serie di cazzi infiniti, paranoie, lsattr, chattr, etc…

L’unica era forse dare un’occhiata allo script e vedere un po’ di che cazzo aveva bisogno:

# 2. Functions. Easy readable code.
show_help() { echo -en “hashupd for Rootkit Hunter\nargs: \n -q: quiet, only errors shown,\n -c : supply path and
configuration file,\n -d : supply path to database directory (if not found in rkhunter.conf),\n -t
ory name>: supply path to temp directory (if not found in rkhunter.conf),\n -m : email new or changed
sums to address so you can send it to the maintainer.\n* ${progn} is an unofficial, but community-supported, helper applic
ation for adding and changing\nRootkit Hunter database information.\nFor support please see [email protected]
e.net\nPlease send new hashes for inclusion in Rootkit Hunter to [email protected]\n\n”; }
is_writable() { case “$1″ in d) check_int=”7″;; f) check_int=”6”;; esac; perm=$(stat -c %a “$2” 2>/dev/null); case “${#perm
}” in 3) check_pos=”${perm:0:1}”;; 4) check_pos=”${perm:1:1}”;; esac; if [ “$check_pos” != “$check_int” ]; then echo “[FATA
L] “$2″ not writable, exiting.”; exit 1; fi; }

La parte in neretto era quella interessata, ma diciamocelo francamente: non avevo minimamente voglia di CAPIRLA.

Alla fine ho svoltato su google un tizio che aveva avuto il mio stesso errore, e uno gli ha risposto:

Can you try 'stat -c %a /usr/local/rkhunter/lib/rkhunter/db' and let me
know what it says please.

stat: command not found.

Bene.

Il pacchetto coreutils non c’era.

Ho avuto la pessima idea di provare a metterlo con swaret. Su una Slackware 9.0.

Durante l’operazione ho letto che si vociferava di aggiornare le glibc. Mi sono spaventato e ho fatto control+c.

Ottimo.

Da qui in poi l’aria che si respirava era questa:

root@CENSORED:~# ls
/bin/ls: error while loading shared libraries: libacl.so.1: cannot open shared object file: No such file or directory

root@CENSORED:/home/sugo# mv
mv: error while loading shared libraries: libacl.so.1: cannot open shared object file: No such file or directory

root@CENSORED:/home/sugo# cp
cp: error while loading shared libraries: libacl.so.1: cannot open shared object file: No such file or directory

Insomma, avevo rotto tutto.

Per fortuna esiste IL BACKUP, non a caso il nostro server di backup si chiama “salvatore” đŸ™‚

Ho ripristinato i binari, e tutto e’ tornato a funzionare.

p.s. fanculo alle installazioni “a risparmio” đŸ™‚ đŸ™‚

7 comments