Гид по технологиям

Интеграция ClamAV с PureFTPd для сканирования на вирусы на Debian Lenny

• 4 min read • Серверы • Обновлено 20 Nov 2025
Интеграция ClamAV с PureFTPd на Debian Lenny
Интеграция ClamAV с PureFTPd на Debian Lenny

Version 1.0
Автор: Falko Timme
Следите за автором в Twitter

Краткое объяснение

ClamAV — открытый антивирусный движок для сканирования файлов. PureFTPd — FTP-сервер. Мы добавим вызов clamdscan в процесс загрузки PureFTPd, чтобы автоматически проверять и удалять заражённые файлы.

Важно: данное руководство даёт рабочий пример, но не гарантирует полную безопасность в вашей среде.

Требования

  • Сервер Debian Lenny с установленным PureFTPd и доступом root.
  • Доступ к консоли и правам на редактирование файлов в /etc.

1 Установка ClamAV

Установите ClamAV и демон следующим образом:

aptitude install clamav clamav-daemon

2 Конфигурация PureFTPd: включение upload-скрипта

  1. Создайте файл конфигурации, который включает запуск upload-скрипта:
echo "yes" > /etc/pure-ftpd/conf/CallUploadScript
  1. Создайте скрипт, который будет вызываться PureFTPd при загрузке файла. Он запускает 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
  1. Укажите путь к скрипту в настройках демона PureFTPd. Отредактируйте файл:
vi /etc/default/pure-ftpd-common

Найдите (или добавьте) строку UPLOADSCRIPT и измените её на:

UPLOADSCRIPT=/etc/pure-ftpd/clamav_check.sh
  1. Перезапустите PureFTPd (в примере используется сборка с поддержкой MySQL):
/etc/init.d/pure-ftpd-mysql restart

После этого PureFTPd будет запускать скрипт для каждого загружаемого файла.

3 Как это работает

  • PureFTPd вызывает upload-скрипт и передаёт путь к загруженному файлу как аргумент ($1).
  • Скрипт вызывает clamdscan, который сканирует файл и удаляет его при обнаружении угроз (–remove).

Примечание: clamdscan использует демон clamd, поэтому убедитесь, что clamd запущен и доступен.

4 Тестирование

  1. Проверьте, что clamd запущен:
/etc/init.d/clamav-daemon status
  1. Загрузите тестовый файл и проверьте поведение. Для проверки детектирования можно использовать стандартный EICAR тест-файл (безопасный тестовый вектор) или загрузить известный чистый файл и убедиться, что он сохраняется.

  2. Проверьте логи PureFTPd и ClamAV, если файл не удалился:

  • /var/log/syslog
  • /var/log/daemon.log
  • лог clamd (обычно /var/log/clamav/clamav.log)

5 Критерии приёмки

  • При загрузке содержащего вредоносный код файла clamdscan обнаруживает угрозу и файл удаляется.
  • Для чистых файлов upload проходит без удаления.
  • В логах чётко видно вызов скрипта и результат сканирования.

6 Рекомендации безопасности и отладка

  • Убедитесь, что /etc/pure-ftpd/clamav_check.sh имеет права 755 и принадлежит root.
  • Проверьте, что clamd имеет доступ к файлу и права чтения.
  • Если clamdscan не доступен в указанном пути, найдите его с помощью which clamdscan и обновите скрипт.
  • Настройте обновление сигнатур (freshclam) и следите за его логами.

Важно: опция –remove удаляет файлы без дополнительного подтверждения. При тестировании можно временно убрать –remove и просматривать отчёты.

7 Альтернативные подходы

  • Сканирование на уровне файловой системы (inotify) — скрипт слушает события и сканирует файл после записи.
  • Сканирование при подаче на хранилище (например, при перемещении в конечный каталог).
  • Проксирование FTP-трафика через специализированный шлюз с интегрированным AV.

Каждый подход имеет плюсы и минусы: встроенный upload-скрипт прост и работает вне зависимости от клиента, но зависит от реализации демона FTP.

8 Чек-лист для администратора

  • Установлены clamav и clamav-daemon.
  • Включён CallUploadScript в /etc/pure-ftpd/conf/.
  • Создан и исполняем /etc/pure-ftpd/clamav_check.sh.
  • Указан UPLOADSCRIPT в /etc/default/pure-ftpd-common.
  • Перезапущен сервис PureFTPd и clamd.
  • Выполнены тестовые загрузки и проверены логи.

9 Возможные проблемы и решения

  • Проблема: Файлы не удаляются.
    Решение: Проверьте права на файл и пользователя, от имени которого выполняется скрипт. Проверьте доступ clamd к файлу.

  • Проблема: clamdscan не найден.
    Решение: Убедитесь, что пакет установлен и путь к clamdscan корректен.

  • Проблема: Высокая нагрузка на CPU при большом количестве загрузок.
    Решение: Рассмотрите очереди сканирования или выделение отдельного сервера для сканирования.

10 Дополнительно: примеры команд (шпаргалка)

  • Сделать файл исполняемым:
chmod 755 /etc/pure-ftpd/clamav_check.sh
  • Проверить статус clamd:
/etc/init.d/clamav-daemon status
  • Перезапустить PureFTPd:
/etc/init.d/pure-ftpd-mysql restart

Краткая сводка

В этой инструкции показано, как интегрировать ClamAV с PureFTPd на Debian Lenny через upload-скрипт. Решение простое в развертывании и даёт базовую защиту от заражённых файлов при загрузке. Для продакшена рекомендуются дополнительные меры: обновление сигнатур, мониторинг логов и масштабирование сканирования.

Ссылки

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро