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

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

• 4 min read • Linux • Обновлено 20 Nov 2025
Интеграция ClamAV с PureFTPd на CentOS 5.4
Интеграция ClamAV с PureFTPd на CentOS 5.4

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

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

Краткое описание задачи

В этом руководстве показано, как интегрировать антивирус ClamAV в PureFTPd на системе CentOS 5.4. В результате при каждом загрузке файла через PureFTPd ClamAV проверит файл и удалит его, если он окажется вредоносным. Я не даю гарантий, что всё сработает в вашей среде — тестируйте на стенде перед продакшеном.

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

У вас должен быть рабочий PureFTPd на сервере CentOS 5.4, например, как в руководстве «Virtual Hosting With PureFTPd And MySQL (Incl. Quota And Bandwidth Management) On CentOS 5.3». Новая версия CentOS 5.4 также совместима с этими инструкциями.

2 Установка ClamAV

ClamAV отсутствует в стандартных репозиториях CentOS, поэтому включим репозиторий RPMforge:

rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
cd /tmp  
wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm  
rpm -ivh rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm

После этого можно установить ClamAV и демон clamd:

yum install clamav clamd

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

chkconfig --levels 235 clamd on  
/usr/bin/freshclam

Запускаем демон:

/etc/init.d/clamd start

Важно: freshclam обновляет подписи вирусов. Рекомендуется настроить cron или системный таймер для регулярных обновлений, иначе сканирование будет бесполезным при устаревших сигнатурах.

3 Конфигурация PureFTPd

Откройте конфигурационный файл 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 [...] |

Далее создаём скрипт /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

Запустите 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

Пример /etc/rc.local:

| #!/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 |

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

/etc/init.d/pure-ftpd restart

Теперь при загрузке через PureFTPd подозрительные файлы будут молча удаляться демоном clamdscan.

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

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

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

  • Интеграция at-access сканера на уровне файловой системы (например, через ClamAV + fanotify/inotify) — сканирует не только через FTP.
  • Прокси-сканирование на уровне сетевого шлюза (например, HTTP/FTP прокси с антивирусной проверкой).
  • Сохранение заражённых файлов в карантинную директорию, а не мгновенное удаление — полезно для форензики.

Мини-методология проверки и приёмки

  1. Подготовка стенда: клонируйте продакшен-конфигурацию.
  2. Установка и настройка ClamAV + PureFTPd как в инструкции.
  3. Тестовые загрузки: чистые файлы, тестовый EICAR, архивы, бинарники.
  4. Проверка логов: /var/log/messages, журналы pure-uploadscript, вывод clamd.
  5. Утверждение: приёмка, когда >90% тестовых угроз корректно обнаруживаются и удаляются, а легитимные файлы не блокируются.

Роли и чеклист для ответственных

  • Системный администратор:
    • Установить RPMforge и ClamAV, включить clamd в автозагрузку.
    • Добавить pure-uploadscript в /etc/rc.local и перезапустить службы.
  • Офицер по безопасности:
    • Проверить политику удаления файлов, согласовать карантин и уведомления.
    • Настроить регулярное обновление баз (freshclam) и мониторинг обновлений.
  • Оператор поддержки:
    • Тестировать загрузки пользователей, отслеживать ложные срабатывания, держать шаблоны для отчётов.

Безопасность и рекомендации по жёсткой настройке

  • Запускайте clamd с минимально необходимыми привилегиями и под отдельным системным пользователем, если это возможно.
  • Логи: ограничьте доступ к логам и хранениям, чтобы атакующий не мог скрыть следы.
  • Карантин: вместо автоматического удаления храните заражённые файлы в изолированной папке и уведомляйте администратора.
  • Обновления: настройте cron для /usr/bin/freshclam хотя бы раз в сутки.

Совместимость и заметки по миграции

  • Инструкция рассчитана на CentOS 5.4 и PureFTPd со включённой поддержкой pure-uploadscript.
  • На современных дистрибутивах (CentOS 7/8, AlmaLinux, Rocky) конфигурация сервисов, systemd-юниты и пути могут отличаться — используйте systemd-юнит вместо /etc/rc.local и проверьте пакетные репозитории для актуальной версии ClamAV.

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

  • clamd: демон ClamAV, выполняющий сканирование в реальном времени;
  • clamdscan: клиентская утилита, посылающая файлы на clamd для проверки;
  • pure-uploadscript: компонент PureFTPd, вызывающий скрипт при загрузке файла.

Тестовые сценарии и критерии приёмки

  • Сценарий 1: загрузка EICAR тест-файла — ожидается обнаружение и удаление.
  • Сценарий 2: загрузка обычного текстового файла — не должно быть удаления.
  • Сценарий 3: загрузка архива с заражённым файлом — проверьте, распаковывает ли clamdscan архивы по умолчанию; если нет — настройте дополнительную проверку.

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

4 Ссылки

Итог

Интеграция ClamAV и PureFTPd по схеме pure-uploadscript + clamdscan даёт простой и рабочий фильтр для FTP-загрузок. Это решение эффективно как базовый уровень защиты, но имеет ограничения — регулярно обновляйте сигнатуры, тестируйте на предмет ложных срабатываний и рассматривайте дополнения (карантин, сетевое сканирование) для повышения надёжности.

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