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

Интеграция ClamAV в PureFTPd для сканирования вирусов на Ubuntu 14.04 LTS

• 4 min read • Системное администрирование • Обновлено 25 Nov 2025
ClamAV + PureFTPd на Ubuntu 14.04
ClamAV + PureFTPd на Ubuntu 14.04

Этот пошаговый гид показывает, как подключить ClamAV к PureFTPd на Ubuntu 14.04 LTS: при каждом загрузке файла PureFTPd вызовет clamdscan и удалит обнаруженные вредоносные файлы. Подойдёт для локальных и небольших продакшен-серверов, но учтите устаревшую версию ОС — рассмотрите обновление.

Version 1.0
Author: Falko Timme, updated by Srijan Kishore

Важно: я не даю гарантий, что инструкция сработает во всех окружениях.

Предварительные требования

  • Рабочая установка PureFTPd на Ubuntu 14.04 LTS (например, с MySQL и квотами, как в документации по виртуальному хостингу).
  • Доступ root (выполните:
sudo su

чтобы стать root).

Замечание: Ubuntu 14.04 устарела; для безопасности и поддержки пакетов рекомендуется использовать более свежую LTS-версию, если это возможно.

Установка ClamAV

Установите пакеты ClamAV командой:

apt-get install clamav clamav-daemon clamav-data

Загрузите актуальные сигнатуры:

freshclam

Запустите демон ClamAV:

service clamav-daemon start

Если сервис не запускается, проверьте логи в /var/log/clamav/ и убедитесь, что freshclam завершился без ошибок.

Конфигурация PureFTPd для запуска скрипта при загрузке файлов

  1. Включите вызов скрипта загрузки, создав файл /etc/pure-ftpd/conf/CallUploadScript со строкой “yes”:
echo "yes" > /etc/pure-ftpd/conf/CallUploadScript
  1. Создайте скрипт /etc/pure-ftpd/clamav_check.sh, который будет запускать 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, чтобы он использовал этот скрипт при загрузках. Откройте /etc/default/pure-ftpd-common:
vi /etc/default/pure-ftpd-common

Найдите строку UPLOADSCRIPT и измените её так:

[...]
# UPLOADSCRIPT: if this is set and the daemon is run in standalone mode,
# pure-uploadscript will also be run to spawn the program given below
# for handling uploads. see /usr/share/doc/pure-ftpd/README.gz or
# pure-uploadscript(8)

# example: UPLOADSCRIPT=/usr/local/sbin/uploadhandler.pl
UPLOADSCRIPT=/etc/pure-ftpd/clamav_check.sh
[...]
  1. Перезапустите PureFTPd (если вы используете mysql-версию демона):
service pure-ftpd-mysql restart

После этого при каждой загрузке PureFTPd будет запускать /etc/pure-ftpd/clamav_check.sh с путём к загруженному файлу в $1. clamdscan проверит файл и удалит его при обнаружении угрозы.

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

  1. Убедитесь, что clamd отвечает: выполните локальную проверку тестового файла. Для теста можно использовать EICAR-файл (тестовый «вирус»). Создайте файл eicar.txt со стандартным EICAR-тест-контентом и загрузите его через FTP.
  2. Проверьте, что файл удалён автоматически и что в логах ClamAV есть запись об обнаружении.

Проверка службы ClamAV:

/usr/bin/clamdscan --version

Проверка логов:

tail -n 100 /var/log/clamav/clamav.log

Когда это может не сработать

  • Если clamd недоступен или не запущен, скрипт вернёт ошибку и файл не будет просканирован/удалён.
  • Если PureFTPd запущен в режиме, где CallUploadScript не поддерживается (например, определённые пакеты или сборки), механизм не сработает.
  • Права доступа: если процесс pure-uploadscript не имеет прав на удаление файла (владелец/разрешения), удаление не произойдёт.

Устранение неполадок (короткий чеклист)

  • Проверить, что /etc/pure-ftpd/conf/CallUploadScript содержит «yes».
  • Проверить права и исполнение /etc/pure-ftpd/clamav_check.sh.
  • Убедиться, что clamd запущен и отвечает (service clamav-daemon status).
  • Проверить логи PureFTPd и ClamAV на ошибки.

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

  • Использовать clamscan вместо clamdscan (более медленно, запускается каждый раз, не требует демона).
  • Интегрировать сканирование с помощью amavisd-new + ClamAV для почтовых шлюзов и более сложной обработки.
  • Отдельный поток сканирования: принимать файлы в карантинную директорию, где фоновой задачей (inotify/cron) происходит сканирование и перемещение/удаление.

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

  • Запускайте ClamAV под минимальными привилегиями; скрипт должен иметь только необходимые права.
  • Регулярно обновляйте сигнатуры через cron (freshclam).
  • Логируйте действия и интегрируйте оповещения при обнаружении — например, отправка почты или запись в централизованный лог.

Миграция и совместимость

Ubuntu 14.04 устарела — на новых версиях Ubuntu пакеты и расположение конфигураций могут отличаться. При миграции проверьте: пути к clamdscan, системные сервисы (systemd вместо SysV), и то, как ваша сборка PureFTPd поддерживает CallUploadScript.

Роль-based checklist

  • Системный администратор: установить пакеты, настроить демоны, обеспечить обновления сигнатур.
  • Оператор FTP: протестировать загрузку файлов, подтвердить удаление тестовых «вирусов».
  • Безопасность/инженер SOC: настроить мониторинг и оповещения.

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

  • Установите ClamAV и свежие сигнатуры.
  • Создайте скрипт, вызывающий clamdscan с опцией –remove.
  • Активируйте CallUploadScript в PureFTPd и укажите путь к скрипту в UPLOADSCRIPT.
  • Перезапустите PureFTPd и протестируйте.

Полезные ссылки

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

  • При загрузке тестового EICAR-файла PureFTPd вызывает clamdscan и файл удаляется; запись обнаружения появляется в логах ClamAV.

Глоссарий (1 строка)

  • clamdscan: клиент, обращающийся к демону clamd для быстрого сканирования файлов; –remove удаляет заражённые файлы.
Поделиться: 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 быстро