存在は知りつつもいまだ入れていていなかったchkrootkit。 せっかく休みなので導入。
# cd /usr/local/src # wget http://tw.chkrootkit.org/chkrootkit.tar.gz # tar zxf chkrootkit.tar.gz # mv chkrootkit-0.43 /usr/local/chkrootkit # cd /usr/local/chkrootkit # make sense # ./chkrootkit
このままだと
./chkrootkit: line 725: [: /var/www/cgi-bin: binary operator expected
というエラーが大量に吐き出されたので、 <http://forum.ev1servers.net/showthread.php?threadid=39024&highlight=chkrootkit+line+725>のパッチを当てる。
# cat | patch -l --- chkrootkit.orig 2004-07-26 00:35:39.000000000 +0900 +++ chkrootkit 2004-07-26 00:37:50.000000000 +0900 @@ -374,7 +374,9 @@ shell.cgi alin.cgi httpd.cgi linux.cgi sh.cgi take.cgi bogus.cgi alia.cgi all4one.cgi \ zxcvbnm.cgi secure.cgi ubb.cgi" for i in ${BACKDOORS}; do - [ -f ${CGIDIR}/$i ] && echo ${CGIDIR}/$i + for j in ${CGIDIR}; do + [ -f $j/$i ] && echo $j/$i + done done ### rsha @@ -720,9 +722,10 @@ BACKDOORS="number.cgi void.cgi psid becys.cgi nobody.cgi bash.zk.cgi alya.cgi \ shell.cgi alin.cgi httpd.cgi linux.cgi sh.cgi take.cgi bogus.cgi alia.cgi all4one.cgi \ zxcvbnm.cgi secure.cgi ubb.cgi" - files="" for i in $BACKDOORS; do - [ -f ${CGIDIR}/$i ] && files="${files} ${CGIDIR}/$i" + for j in ${CGIDIR}; do + [ -f $j/$i ] && files="${files} $j/$i" + done done if [ "${files}" = "" ]; then if [ "${QUIET}" != "t" ]; then echo "nothing found"; fi
これで普通に動くようになったので、あとはログ取りの設定。
# touch /var/log/chkrootkit.log # chmod 600 /var/log/chkrootkit.log # vi /etc/cron.daily/chkrootkit #!/bin/sh echo `date -I` >> /var/log/chkrootkit.log /usr/local/chkrootkit/chkrootkit -q |grep -e INFECTED -e Warning 1>>/var/log/chkrootkit.log 2>/dev/null # chmod +x /etc/cron.daily/chkrootkit # vi /etc/logrotate.d/chkrootkit /var/log/chkrootkit.log { missingok }
結果は特に問題ないようだ。とりあえず一安心。