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

Интеграция ClamAV в PureFTPd на Fedora 18

4 min read Серверы Обновлено 27 Nov 2025
ClamAV + PureFTPd на Fedora 18 — интеграция
ClamAV + PureFTPd на Fedora 18 — интеграция

1 Предварительное примечание

На сервере уже должна быть рабочая установка PureFTPd (например, как в руководстве Virtual Hosting With PureFTPd And MySQL (Incl. Quota And Bandwidth Management) On Fedora 18). Эта инструкция дополняет PureFTPd утилитой сканирования ClamAV: при каждой загрузке файл проверяется clamd и при обнаружении угрозы удаляется.

Важно: сохраняйте резервные копии и информируйте пользователей о политике автоматического удаления заражённых файлов.

2 Установка ClamAV

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

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

Далее создайте ссылки автозапуска для службы clamd и запустите её:

systemctl enable clamd.amavisd.service  
systemctl start clamd.amavisd.service

Пояснение: clamd — это демон, отвечающий за быстрые локальные проверки; clamdscan использует его для сканирования файлов.

3 Настройка PureFTPd

  1. Откройте конфигурацию PureFTPd и включите вызов скрипта загрузки:
vi /etc/pure-ftpd/pure-ftpd.conf

| [...] # If your pure-ftpd has been compiled with pure-uploadscript support, # this will make pure-ftpd write info about new uploads to # /var/run/pure-ftpd.upload.pipe so pure-uploadscript can read it and # spawn a script to handle the upload. CallUploadScript yes [...] |

  1. Создайте скрипт проверки, который будет запускать 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. Запустите pure-uploadscript в фоновом режиме — он будет читать данные о загрузках и вызывать ваш скрипт:
pure-uploadscript -B -r /etc/pure-ftpd/clamav_check.sh
  1. Чтобы демоном запускался автоматически после перезагрузки, добавьте вызов в /etc/rc.local:
vi /etc/rc.local

…и вставьте строку /usr/sbin/pure-uploadscript -B -r /etc/pure-ftpd/clamav_check.sh, например:

| #!/bin/sh # # 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. /usr/sbin/pure-uploadscript -B -r /etc/pure-ftpd/clamav_check.sh touch /var/lock/subsys/local |

Если /etc/rc.local отсутствует — создайте его и сделайте исполняемым:

chmod 755 /etc/rc.local

Наконец, перезапустите PureFTPd:

systemctl restart pure-ftpd.service

После этого при каждой загрузке через PureFTPd файл будет автоматически просканирован, и при обнаружении сигнатуры вредоносного ПО он будет удалён.

4 Мини-методика внедрения (пошаговая)

  1. Создайте резервную копию конфигураций PureFTPd и важных данных.
  2. Установите ClamAV и запустите clamd.
  3. Подключите CallUploadScript в конфиге PureFTPd.
  4. Разработайте скрипт обработки (clamav_check.sh) и протестируйте его вручную на разных файлах.
  5. Запустите pure-uploadscript в фоне и добавьте в автозапуск.
  6. Проведите функциональное и нагрузочное тестирование (см. Критерии приёмки).

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

  • clamd успешно запускается и отвечает на локальные запросы.
  • pure-uploadscript запускается как демон и вызывает ваш скрипт при загрузке.
  • При загрузке тестовых «эмулированных» вирусов (EICAR или аналог) файлы удаляются автоматически.
  • Журналы (systemd, /var/log/clamav и PureFTPd) не содержат ошибок обработки.

6 Чек-листы по ролям

Администратор сервера:

  • сделать бэкап конфигов;
  • установить пакеты ClamAV;
  • настроить и протестировать clamd;
  • настроить автозапуск pure-uploadscript.

DevOps/инженер поддержки:

  • настроить мониторинг службы clamd;
  • добавить алерты при падении pure-uploadscript;
  • проверить логи по расписанию.

Контент-менеджер/владелец сайта:

  • уведомить пользователей об автоматическом удалении заражённых файлов;
  • подготовить политику обработки спорных случаев.

7 Когда это не сработает (контрпримеры)

  • Если clamd не запущен или недоступен локально, clamdscan вернёт ошибку и обработка не выполнится.
  • Скрипт с опцией –remove удаляет файл мгновенно; если вы хотите карантин вместо удаления, текущая команда не подойдёт.
  • ClamAV не гарантирует 100% обнаружения нового ПО-вредонос — это сигнатурная (и эвристическая) система с возможными ложными отрицаниями.

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

  • Интеграция с внешними AV-сканерами по API (например, облачные сервисы) — позволяет детектировать больше, но требует сетевого доступа и может быть дороже.
  • Настроить отдельный «карантинный» каталог и перемещать туда подозрительные файлы вместо удаления.
  • Использовать дополнение на уровне MTA (если загрузки проходят через почтовый канал) или отдельный агент DLP для корпоративной среды.

9 Отладка и распространённые проблемы

  • Проверка статуса clamd:
systemctl status clamd.amavisd.service
  • Тестирование clamdscan вручную:
/usr/bin/clamdscan --no-summary /path/to/testfile
  • Просмотрите логи ClamAV в /var/log/clamav и системные логи через journalctl.
  • Если pure-uploadscript не запускается — проверьте права на /etc/pure-ftpd/clamav_check.sh и наличие интерпретатора в первой строке (#!/bin/sh).

Совет: сначала запустите скрипт вручную с путём к тестовому файлу, чтобы убедиться в ожидаемом поведении удаления.

10 Соображения по безопасности и конфиденциальности

  • Просканированные файлы могут содержать персональные данные — продумайте retention и политику логирования в соответствии с локальным законодательством о защите данных.
  • Убедитесь, что скрипт и его логика не дают возможности выполнения произвольного кода от имени root (проверяйте права и владельца).
  • Если вы решите хранить подозрительные файлы, обеспечить к ним ограниченный доступ.

11 Фактбокс

  • Платформа: Fedora 18 (инструкции ориентированы на systemd-era Fedora).
  • Основной инструмент: ClamAV (clamd + clamdscan).
  • Обработчик интеграции: pure-uploadscript + CallUploadScript в pure-ftpd.conf.

12 Ссылки

13 Резюме

Интеграция ClamAV в PureFTPd на Fedora 18 даёт простой автоматический механизм очистки загружаемых файлов. Внедряя решение, следуйте пошаговой методике, тестируйте поведение на эмуляторах угроз и продумывайте политику обработки спорных случаев.

Важно: перед внедрением в продакшен выполните тестирование и проинформируйте пользователей об изменении поведения загрузок.

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