freebsd установка anti-virus clamav и применение

Дата | 01.08.2015

Заказчик попросил перенести сайт с шаред-хостинга на впс из-за частого появления вирусов на сайте.
Сайт на движке joomla 2.5.
Перед тем как перенести, я проверил тремя антивирусами: антивирус касперского 6, eset nod и на самой впске куда перенес сайт установил clamav антивирус, вот о нем я и расскажу сейчас.
Его установить и использовать очень просто.
Сервер у нас под управлением системой FreeBSD 10
Ставим антивирус.
Сперва обновим порты в системе, что бы более свежую версию поставить.

# portsnap fetch extract update
# pkg2ng

Теперь ставим сам антивирус.

# cd /usr/ports/security/clamav
# make install clean

Готово.
Оповестим систему, что мы антивирус хотим использовать и запускать его после перезагрузки сервера автоматически.

# grep clam /etc/rc.conf
# Эта запись нужна, что бы можно было запускать обновления антивирусных баз.
clamav_freshclam_enable="YES"
# А эта, для самого запуска антивируса.
clamav_clamd_enable="YES"

Запускает сам антивирус.

# service clamav-clamd start

Запускаем утилиту обновления баз clamav.

# service clamav-freshclam start

Запустим в ручную обновления баз антивируса.

# freshclam

Сканируем на вирусы.
У меня сайт лежит в корневой вэб директории /usr/local/www
ключ r Означает рекурсивно проверять выбранную директорию, то-есть каждую директорию в ней.
ключ l Положить отчет о проверки в файл /root/clamav_virus
ключ i Вывод информации на экран/консоль.
Если мы хотим, что бы антивирус перемещал зараженные файлы в определенную директорию, то нужно добавить такой ключ —move=/mnt/VIRUS/ , где /mnt/VIRUS/, это та самая директория, в которую и будит наш кламав перемещать зараженные файлы.
Можно конечно сразу, на лету удалять файлы зараженные. для этого добавляем ключ -remove , но я этого не рекомендую делать, а вдруг удалите важное, потом жалеть будете.

# clamscan -r -i -l /root/clamav_virus --move=/mnt/VIRUS/ /usr/local/www

Отчет вы увидите в таком виде.

# cat /root/clamav_virus
-------------------------------------------------------------------------------
----------- SCAN SUMMARY -----------
Known viruses: 3918711
Engine version: 0.98.7
Scanned directories: 4328
Scanned files: 49402
Infected files: 0
Data scanned: 1560.13 MB
Data read: 4058.22 MB (ratio 0.38:1)
Time: 133.067 sec (2 m 13 s)

В итоге вирусов нет!
Всему виной дыра в компоненте com_adsmanager джумле.
В joomla 2.5.29 компоненте com_adsmanager обнаружена критическая уязвимость, хакер с помощью этой уязвимости может загрузить на сайт веб-шеллы, бэкдоры и т.д.
Для проверки этой уязвимости можно воспользоваться такой сконфигурированной ссылкой.
Все что до com_adsmanager версии 3.10 можно так взломать

http://ваш_сайт/index.php?option=com_adsmanager&task=upload&tmpl=component
если мы видим такое, то уязвимость работает.
"jsonrpc" : "2.0", "error" : {"code": 100, "message": "tempfile."}, "id" : "id"}

В nginx я закрыл так эту уязвимость.
Добавил локейшен.

location ~ ^/tmp/ {
        return 403;
}

В апаче думаю будит достаточно такой записи.

RewriteRule ^tmp/ - [F]

Проверяем

http://ваш_сайт/index.php?option=com_adsmanager&task=upload&tmpl=component
{"jsonrpc" : "2.0", "error" : {"code": 100, "message": "Failed to open temp directory."}, "id" : "id"}

И о чудо, доступ закрыт.
Либо в самом коде php.

/usr/local/www/мой_сайт/components/com_adsmanager/controller.php
$fileName = preg_replace('/[^\w\._]+/', '', $fileName);
# Добавляем проверку.
$ext = strrpos($fileName, '.');
$fileName_b = strtolower(substr($fileName, $ext+1));
      if (!in_array($fileName_b,array("jpg","jpeg","gif","png"))) {
               exit();
      }

Проверяем, после, должна открыться пустая страница.
Вот как бы и все.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *