Недавно с моим другом произошла неприятная история. Он где-то подцепил трояна, который спер пароли FTP доступа к одному из его сайтов, и в результате злоумышленник смог залить вредоносный код в html и js файлы на его VDS. Мы проблему определили довольно оперативно, и также быстро ее устранили.
Чтобы эта неприятная ситуация не повторялась, я написал маленький скриптик:
/usr/bin/find /home -mtime -1 -print | mail -s “Modified Files” root@localhost >/dev/null 2>&1
Он работает какое-то время, и пересылает на заданную почту список файлов, которые были изменены за последние сутки. В этом случае команда find просматривает все файлы рекурсивно, начиная с директории /home. Это выглдит примерно так:
/home/user1/data
/home/user1/data/logs
/home/user1/data/logs/site1.tld.access.log
/home/user1/data/logs/site2.tld.access.log
/home/user1/data/logs/site2.tld.error.log
/home/user1/data/logs/site2.tld.access.log.0.gz
/home/user1/data/logs/site3.tld.access.log.0.gz
/home/user1/data/logs/site3.tld.error.log
/home/user1/data/logs/site3.tld.access.log
/home/user1/data/logs/site1.tld.access.log.0.gz
/home/user1/data/logs/site3.tld.error.log.0.gz
/home/user1/data/etc
/home/user1/data/etc/site1.tld.webalizer.current
/home/user1/data/etc/site1.tld.webalizer.hist
/home/user1/data/etc/site3.tld.webalizer.current
/home/user1/data/etc/site3.tld.webalizer.hist
/home/user1/data/etc/site2.tld.webalizer.current
/home/user1/data/etc/site2.tld.webalizer.hist
/home/user1/data/www/site3.tld/webstat/usage.png
/home/user1/data/www/site3.tld/webstat/index.html
/home/user1/data/www/site3.tld/webstat/daily_usage_201001.png
/home/user1/data/www/site3.tld/webstat/hourly_usage_201001.png
/home/user1/data/www/site3.tld/webstat/usage_201001.html
/home/user1/data/www/site3.tld/webstat/ctry_usage_201001.png
/home/user2/data
/home/user2/data/logs
/home/user2/data/logs/user2.tld.error.log
/home/user2/data/logs/user2.tld.access.log
/home/user2/data/logs/user2.tld.error.log.0.gz
/home/user2/data/logs/user2.tld.access.log.0.gz
/home/user2/data/etc
/home/user2/data/etc/user2.tld.webalizer.current
/home/user2/data/etc/user2.tld.webalizer.hist
/home/user2/data/www/user2.tld/webstat/index.html
/home/user2/data/www/user2.tld/webstat/usage.png
/home/user2/data/www/user2.tld/webstat/daily_usage_201001.png
/home/user2/data/www/user2.tld/webstat/hourly_usage_201001.png
/home/user2/data/www/user2.tld/webstat/usage_201001.html
/home/user2/data/www/user2.tld/webstat/ctry_usage_201001.png
/home/user4/data/logs
/home/user4/data/logs/site3.tld.access.log
/home/user4/data/logs/site3.tld.access.log.0.gz
/home/user4/data/logs/site3.tld.error.log
/home/user4/data/etc
/home/user4/data/etc/site3.tld.webalizer.current
/home/user4/data/etc/site3.tld.webalizer.hist
/home/user4/data/www/site3.tld/webstat/index.html
/home/user4/data/www/site3.tld/webstat/usage.png
/home/user4/data/www/site3.tld/webstat/daily_usage_201001.png
/home/user4/data/www/site3.tld/webstat/hourly_usage_201001.png
/home/user4/data/www/site3.tld/webstat/usage_201001.html
/home/user4/data/www/site3.tld/webstat/ctry_usage_201001.png
Как видим, сейчас никакого криминала не наблюдается. Изменились только логи и статистика, что и должно происходить раз в сутки. Если же файлы поменялись без моего ведома, я это увижу. Скрипт можно запихнуть в cron, и запускать раз в сутки.