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

Интеграция ClamAV с PureFTPd на Fedora 12

• 4 min read • Администрирование • Обновлено 20 Nov 2025
Интеграция ClamAV с PureFTPd на Fedora 12
Интеграция ClamAV с PureFTPd на Fedora 12

Версия и автор

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

Введение

Это руководство объясняет, как интегрировать антивирус ClamAV с FTP-сервером PureFTPd на системе Fedora 12. В результате каждый файл, загружаемый через PureFTPd, будет проверяться ClamAV и автоматически удаляться при обнаружении вредоносного кода.

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

1 Предварительная заметка

У вас уже должна быть рабочая установка PureFTPd на сервере Fedora 12, например, как в руководстве по виртуальному хостингу с PureFTPd и MySQL. Понимание базовой работы PureFTPd и прав пользователей поможет при отладке.

2 Установка ClamAV

Установите пакеты ClamAV и сопутствующие компоненты:

yum install amavisd-new clamav clamav-data clamav-server clamav-update clamav-scanner

Clamd ожидает конфигурационный файл /etc/clamd.conf, который может отсутствовать — создадим симлинк на существующий файл amavisd:

ln -s /etc/clamd.d/amavisd.conf /etc/clamd.conf

Создаём системные ссылки для автозапуска clamd и запускаем его:

chkconfig --levels 235 clamd.amavisd on
/etc/init.d/clamd.amavisd start

Примечание: на Fedora 12 используется классический init; если вы переносите инструкцию на современные системы с systemd, используйте systemctl и unit-файлы.

3 Настройка PureFTPd для вызова скрипта загрузки

Откройте конфигурационный файл PureFTPd и включите CallUploadScript:

vi /etc/pure-ftpd/pure-ftpd.conf

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

CallUploadScript yes

Далее создаём скрипт, который будет вызываться при загрузке файла. Создайте /etc/pure-ftpd/clamav_check.sh со следующим содержимым:

#!/bin/sh
/usr/bin/clamdscan --remove --quiet --no-summary "$1"

Сделайте скрипт исполняемым:

chmod 755 /etc/pure-ftpd/clamav_check.sh

Запустите демон pure-uploadscript, который будет вызывать наш скрипт при каждой загрузке:

pure-uploadscript -B -r /etc/pure-ftpd/clamav_check.sh

Чтобы не запускать демон вручную при каждой загрузке системы, добавьте запуск в /etc/rc.local:

vi /etc/rc.local

Добавьте в файл строку (пример):

/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 Практические рекомендации и отладка

  • Логи: проверьте системные журналы (/var/log/messages, /var/log/maillog) и логи clamd для подробностей при проблемах.
  • Права доступа: pure-uploadscript и clamd должны иметь права на чтение/удаление загружаемых файлов. Проверьте владельца и права директорий FTP.
  • SELinux: если включён, убедитесь, что SELinux позволяет pure-uploadscript вызывать clamd и модифицировать файлы. При проблемах временно переключите в permissive для теста.
  • Производительность: сканирование больших файлов задержит завершение загрузки. Рассмотрите лимиты по размеру или асинхронную обработку для больших объёмов трафика.

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

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

Альтернативы:

  • Использовать on-access антивирус с FUSE/прокси для сканирования в реальном времени.
  • Интеграция через amavisd-new для почтовой и файловой проверки в единой подсистеме.

Контрольный чек-лист для внедрения

  • Установлены пакеты ClamAV и amavisd-new.
  • Создан /etc/clamd.conf (симлинк на /etc/clamd.d/amavisd.conf).
  • clamd настроен и запущен.
  • Включена опция CallUploadScript в /etc/pure-ftpd/pure-ftpd.conf.
  • Создан и проверен /etc/pure-ftpd/clamav_check.sh (исполняемый).
  • pure-uploadscript запущен и добавлен в автозапуск (/etc/rc.local или аналог).
  • Выполнено тестовое заражение (в контролируемой среде) и проверена реакция системы.

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

  • При загрузке тестового файла с вирусным сигнатурой файл удаляется автоматически.
  • В логах видно срабатывание clamdscan для загруженных файлов.
  • Система продолжает принимать легитимные файлы без ошибок прав доступа.
  • Нагрузка на сервер остаётся в пределах приемлемого уровня при ожидаемых объёмах трафика.

Мини-инструкция (SOP) для администратора

  1. Сделать резервную копию конфигураций PureFTPd и clamd.
  2. Установить пакеты и создать симлинк /etc/clamd.conf.
  3. Запустить clamd и включить автозапуск.
  4. Включить CallUploadScript в конфигурации PureFTPd.
  5. Создать /etc/pure-ftpd/clamav_check.sh и сделать его исполняемым.
  6. Запустить pure-uploadscript и добавить в автозапуск.
  7. Провести тесты загрузки и мониторинг логов.

Безопасность и конфиденциальность

  • Сканирование файлов потенциально затрагивает личные данные, содержащиеся в загружаемых файлах. Убедитесь, что политика конфиденциальности сервиса учитывает автоматическое сканирование.
  • Храните обновления сигнатур актуальными (clamav-freshclam) для снижения ложных пропусков.

Краткий глоссарий (одно предложение)

  • ClamAV — открытый антивирусный движок для обнаружения вредоносного ПО.
  • clamd — демон ClamAV, обеспечивающий быстрый доступ к антивирусным функциям.
  • clamdscan — клиент для clamd, использующий локальный демон для сканирования.
  • PureFTPd — лёгкий и безопасный FTP-сервер с расширенными возможностями.
  • pure-uploadscript — утилита, позволяющая PureFTPd вызывать внешние скрипты при загрузках.

Ссылки

Итог

Интеграция ClamAV в PureFTPd на Fedora 12 даёт базовую защиту загружаемых файлов путём автоматического сканирования и удаления обнаруженных угроз. Для продакшен-среды рекомендуются дополнительные меры мониторинга, тестирования и учёт влияния на производительность.

Поделиться: 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 быстро