Интеграция ClamAV с PureFTPd для сканирования вирусов на Mandriva 2010.0
TL;DR
ClamAV можно подключить к PureFTPd через pure-uploadscript: при загрузке файлов PureFTPd вызывает скрипт, который запускает clamdscan и удаляет заражённые файлы. В статье приведены шаги установки, конфигурации, автозапуска и проверки работоспособности.
Версия и автор
Version 1.0
Author: Falko Timme
Следите за мной в Twitter
О чём статья
Это руководство показывает, как интегрировать ClamAV в PureFTPd для сканирования загружаемых файлов на сервере Mandriva 2010.0. В итоге при каждой загрузке через PureFTPd ClamAV проверит файл и удалит его, если он является вредоносным. Гарантий не даётся — проверяйте на тестовом окружении.
1 Предварительная заметка
У вас должен быть рабочий PureFTPd на Mandriva 2010.0, например, как в руководстве «Virtual Hosting With PureFTPd And MySQL (Incl. Quota And Bandwidth Management) On Mandriva 2009.1». Практика для 2009.1 применима и к 2010.0.
2 Установка ClamAV
Установите ClamAV и демон сканирования:
urpmi clamd clamavСоздайте ссылки автозапуска для clamd и freshclam и запустите их:
chkconfig clamd on
chkconfig freshclam on
/etc/init.d/clamd startОбновите базы и запустите обновление как сервис:
freshclam
/etc/init.d/freshclam startВажно: убедитесь, что базы обновляются регулярно. Если freshclam не работает, сканирование не найдёт новых сигнатур.
3 Настройка PureFTPd
Откройте конфигурационный файл PureFTPd и включите поддержку CallUploadScript — это позволит pure-uploadscript получать информацию о новых загрузках и запускать обработчик.
vi /etc/pure-ftpd/pure-ftpd.confНайдите (или добавьте) строку и установите:
CallUploadScript yesСкрипт проверки ClamAV
Создайте файл-обработчик, который будет вызывать clamdscan при загрузке файла.
vi /etc/pure-ftpd/clamav_check.shДобавьте в него содержимое:
#!/bin/sh
/usr/bin/clamdscan --remove --quiet --no-summary "$1"Сделайте скрипт исполняемым:
chmod 755 /etc/pure-ftpd/clamav_check.shПримечание: параметр –remove заставляет clamdscan удалять обнаруженные вредоносные файлы. Если вы предпочитаете сохранять файлы и перемещать их в карантин, замените опцию на соответствующую реализацию (mv, quarantine folder и т. п.).
Запуск pure-uploadscript
Запустите pure-uploadscript как демона, чтобы он вызывал ваш скрипт при каждой загрузке:
pure-uploadscript -B -r /etc/pure-ftpd/clamav_check.shЧтобы демон запускался при загрузке системы, добавьте вызов в /etc/rc.local:
vi /etc/rc.localДобавьте строку (пример содержимого файла):
#!/bin/sh
#
### BEGIN INIT INFO
# Provides: rc.local
# X-Mandriva-Compat-Mode
# Default-Start: 2 3 4 5
# Short-Description: Local initialization script
# Description: This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
### END INIT INFO
/usr/sbin/pure-uploadscript -B -r /etc/pure-ftpd/clamav_check.sh
touch /var/lock/subsys/localЗатем перезапустите PureFTPd:
/etc/init.d/pure-ftpd restartТеперь при загрузке файлов через PureFTPd clamdscan будет проверять файлы и удалять те, которые сочтёт вредоносными.
Важно: действие удаления происходит без уведомления клиента. Рассмотрите логирование и/или перемещение файлов в карантин вместо немедленного удаления, если требуется аудит.
4 Критерии приёмки
- При загрузке тестового заражённого файла он должен быть обнаружен clamd и удалён (или перемещён в карантин).
- В логах сервера должны появляться записи о запуске pure-uploadscript и выполнении clamav-скрипта.
- Обновление баз virus definitions должно выполняться успешно (freshclam).
5 Отладка и откат
- Проверьте наличие демона clamd: ps aux | grep clamd.
- Запустите скан вручную: /usr/bin/clamdscan /путь/к/файлу.
- Просмотрите логи: /var/log/messages или системный журнал.
- Если интеграция нарушает приёмы загрузки, удалите строку из /etc/rc.local и завершите процесс pure-uploadscript.
Откат: удалите/деактивируйте CallUploadScript в /etc/pure-ftpd/pure-ftpd.conf и перезапустите PureFTPd.
6 Когда это не сработает
- Если clamd не запущен или базы устарели, файлы не будут корректно проверены.
- При больших объёмах загрузок последовательный вызов clamdscan может стать узким местом по производительности.
- Некоторые типы архивов или полиморфные угрозы могут не распознаваться сразу.
7 Альтернативные подходы
- Использовать clamd в режиме демона и инструменты с поддержкой on-access, чтобы снизить накладные расходы.
- Настроить отдельный сервис, который асинхронно проверяет загруженные файлы и уведомляет пользователя/админа.
- Применять интеграцию на уровне прокси/веб-сервера, если FTP не единственный источник загрузок.
8 Мини‑чеклист ролей для внедрения
- Админ: установить clamd и настроить автообновление баз.
- Админ: включить CallUploadScript и разместить обработчик.
- Тестировщик: загрузить тестовые файлы и проверить поведение.
- Сетевой инженер: проверить влияние на пропускную способность при пиковых загрузках.
9 Короткий глоссарий (1 строка)
- clamd: демон ClamAV для быстрого сканирования.
- clamdscan: клиент для сканирования файлов через clamd.
- pure-uploadscript: утилита PureFTPd для вызова скриптов при загрузках.
10 Ссылки
- PureFTPD: http://www.pureftpd.org/
- ClamAV: http://www.clamav.net/
- Mandriva: http://www.mandriva.com/
Итог
Интеграция ClamAV и PureFTPd через pure-uploadscript даёт простой способ проверять загружаемые файлы и удалять заражённые. Тщательно протестируйте решение, настройте логирование и подумайте о карантине вместо немедленного удаления для аудита.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента