Серверы чаще всего подвергаются атакам и сканируются на уязвимости ежедневно. Помимо работающего межсетевого экрана и регулярных обновлений системы нужно проверять систему на возможное вторжение.
Инструменты, представленные ниже делают комплексную проверку вашего сервера на наличии вирусов, вредоносного кода, руткитов. Они должны запускаться регулярно, например каждую ночь и отправлять отчеты о сканировании на ваш e-mail.
Вы также можете использовать Chkrootkit, Rkhunter и ISPProtect для проверки сервера в случае подозрительной активности вроде высокой нагрузки, подозрительных процессов.
Ниже будут представлены три инструмента для сканирования Linux сервера на руткиты и вирусы:
Все три инструмента требуют наличия root прав.
chkrootkit — Linux rootkit scanner
Chkrootkit это классический сканер на наличие руткитов. Он проверяет ваш сервер на наличие подозрительных процессов и проверяет нет ли на сервере известных руткитов.
Chkrootkit может быть установлен с помощью пакетного менеджера вашего дистрибутива. Для Debian/Ubuntu это делается так:
apt-get install chkrootkit
Вы также можете загрузить Chkrootkit в виде исходных кодов с сайта разработчика (www.chkrootkit.org) и установить его вручную:
wget —passive-ftp ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
tar xvfz chkrootkit.tar.gz
cd chkrootkit-*/
make sense
После чего, переместите директорию chkrootkit куда-либо (например /usr/local/chkrootkit):
cd ..
mv chkrootkit-<Версия chkrootkit>/ /usr/local/chkrootkit
и создайте символическую ссылку, для простого доступа:
ln -s /usr/local/chkrootkit/chkrootkit /usr/local/bin/chkrootkit
После этого вы можете проверить сервер с помощью chkrootkit выполнив следующую команду:
chkrootkit
Иногда в отчете бывают ложные срабатывания, например:
Checking `bindshell’… INFECTED (PORTS: 465)
Не волнуйтесь об этих сообщениях, этот порт занят SMTPS (Secure SMTP) — вашим почтовым сервером, поэтому срабатывание на него может быть ложным.
Вы можете запускать chkrootkit через cron и получать результаты сканирования на свой e-mail. Для начала найдем путь, куда установлен chkrootkit с помощью команды:
which chkrootkit
Например:
root@server1:/tmp/chkrootkit-0.50# which chkrootkit
/usr/sbin/chkrootkit
Chkrootkit установлен в /usr/sbin/chkrootkit, нам потребуется этот путь для создания cron задачи:
Выполните:
crontab -e
И добавьте следующую строку:
0 3 * * * /usr/sbin/chkrootkit 2>&1 | mail -s «chkrootkit output of my server» you@yourdomain.com)
Это будет запускать chkrootkit каждую ночь, в 3 часа ночи. Замените путь к chkrootkit и e-mail на свои
Lynis — Универсальный инструмент аудита и сканер на наличие руткитов
Lynis (он же rkhunter) это инструмент для аудита безопасности Linux и BSD систем. Он выполняет детальный аудит множества аспектов безопасности и особенностей конфигурации вашей системы. Загрузим исходные коды последней версии Lynis с сайта разработчика (https://cisofy.com/download/lynis/):
cd /tmp
wget https://cisofy.com/files/lynis-2.1.1.tar.gz
tar xvfz lynis-2.1.1.tar.gz
mv lynis /usr/local/
ln -s /usr/local/lynis/lynis /usr/local/bin/lynis
Это установит lynis в директорию /usr/local/lynis/ и создаст символическую ссылку для быстрого доступа. Перед сканированием требуется обновить базу данных:
lynis update info
После чего вы можете просканировать систему на наличие руткитов следующей командой:
lynis audit system
Lynis выполнит несколько проверок и остановится, чтобы вы смогли прочитать результат. Для продолжения сканирования требуется нажать Enter
В конце сканирования вам будет предоставлен суммарный отчет о сканировании, а также набор рекомендаций:
Для запуска Lynis в неинтерактивном режиме, добавьте опцию —quick:
lynis —quick
Для запуска Lynis автоматически, создайте cron задачу следующего вида:
0 3 * * * /usr/local/bin/lynis —quick 2>&1 | mail -s «lynis output of my server» you@yourdomain.com)
Это запустит lynis каждую ночь в 3 часа ночи. Замените e-mail адрес на свой.
ISPProtect — Сканер сайтов на вирусы
ISPProtect это антивирусный сканер для вебсерверов, он сканирует файлы ваших сайтов и CMS (WordPress,Joomla,Drupal и др.). Сайты — самая уязвимая часть на сервере, поэтому для них требуется регулярная проверка на наличие вирусов.
ISPProtect имеет 3 сканирующих модуля: модуль сигнатур вредоносного кода (подобно антивирусу), эвристический модуль и модуль проверки устаревших CMS. ISPProtect это проепритарное ПО, но он имеет пробную версию, позволяющую проверить и очистить зараженную систему.
ISPProtect требуется PHP для работы, он имеется на большинстве серверов. Если вы не можете использовать командную строку PHP, установите соответствующий пакет:
apt-get install php5-cli
для Debian и Ubuntu или:
yum install php
для Fedora и CentOS.
После чего, выполните следующие команды, для установки ISPProtect:
mkdir -p /usr/local/ispprotect
chown -R root:root /usr/local/ispprotect
chmod -R 750 /usr/local/ispprotect
cd /usr/local/ispprotect
wget http://www.ispprotect.com/download/ispp_scan.tar.gz
tar xzf ispp_scan.tar.gz
rm -f ispp_scan.tar.gz
ln -s /usr/local/ispprotect/ispp_scan /usr/local/bin/ispp_scan
Теперь можно запустить ISPProtect:
ispp_scan
Сканер автоматически проверит обновления и запросит ключ (введите слово «trial» вместо ключа), а также спросит путь к сайтам (обычно это /var/www).
Please enter scan key: <— trial
Please enter path to scan: <— /var/www
После этого начнется сканирование сайтов. Внизу будет показан прогресс сканирования. В результате вам будет показан список зараженных файлов, а также список файлов, где будут результаты сканирования.
After the scan is completed, you will find the results also in the following files:
Malware => /usr/local/ispprotect/found_malware_20161401174626.txt
Wordpress => /usr/local/ispprotect/software_wordpress_20161401174626.txt
Joomla => /usr/local/ispprotect/software_joomla_20161401174626.txt
Drupal => /usr/local/ispprotect/software_drupal_20161401174626.txt
Mediawiki => /usr/local/ispprotect/software_mediawiki_20161401174626.txt
Contao => /usr/local/ispprotect/software_contao_20161401174626.txt
Magentocommerce => /usr/local/ispprotect/software_magentocommerce_20161401174626.txt
Woltlab Burning Board => /usr/local/ispprotect/software_woltlab_burning_board_20161401174626.txt
Cms Made Simple => /usr/local/ispprotect/software_cms_made_simple_20161401174626.txt
Phpmyadmin => /usr/local/ispprotect/software_phpmyadmin_20161401174626.txt
Typo3 => /usr/local/ispprotect/software_typo3_20161401174626.txt
Roundcube => /usr/local/ispprotect/software_roundcube_20161401174626.txt
Starting scan level 1 …
Для запуска ISPProtect автоматически требуется ключ лицензии, а также создание cron задачи:
0 3 * * * root /usr/local/ispprotect/ispp_scan —update && /usr/local/ispprotect/ispp_scan —path=/var/www —email-results=root@localhost —non-interactive —scan-key=AAA-BBB-CCC-DDD
Замените e-mail, путь и ключ на свои. Ключ можно купить здесь
На этом все 🙂