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

Интеграция ClamAV с PureFTPd на CentOS 6.2

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

Кому подходит эта инструкция

  • Системным администраторам, которые управляют FTP-серверами на CentOS 6.2.
  • Тем, кто использует PureFTPd и хочет автоматически сканировать загрузки на наличие вирусов.

1 Вводная заметка

Предполагается, что у вас уже настроен PureFTPd на CentOS 6.2, например, как в руководстве «Virtual Hosting With PureFTPd And MySQL (Incl. Quota And Bandwidth Management) On CentOS 6.2». Эта инструкция дополняет существующую настройку антивирусной проверкой загрузок.

2 Установка ClamAV

ClamAV отсутствует в официальных репозиториях CentOS 6, поэтому включите репозиторий EPEL (если ещё не включён):

rpm --import https://fedoraproject.org/static/0608B895.txt  
wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm  
rpm -ivh epel-release-6-5.noarch.rpm

Установите утилиту для приоритетов пакетов:

yum install yum-priorities

Отредактируйте /etc/yum.repos.d/epel.repo и добавьте priority=10 в секцию [epel]:

| [epel] name=Extra Packages for Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [...] |

Установите ClamAV и демона:

yum install clamav clamd

Создайте ссылки автозапуска для clamd и обновите базы:

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

Запустите clamd:

/etc/init.d/clamd start

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

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

  1. Включите опцию CallUploadScript в конфигурации 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. # Don't enable this option if you don't actually use pure-uploadscript. CallUploadScript yes [...] |

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

  1. Перезапустите PureFTPd:
/etc/init.d/pure-ftpd restart

После этого каждое загруженное через PureFTPd файл будет передан clamdscan; если файл обнаружен как вредоносный, он будет удалён (–remove).

Проверка и тестирование (минимальная методология)

  • Убедитесь, что clamd запущен и отвечает: проверьте /var/log/clamav/clamd.log (или системный лог).
  • Проверьте, что freshclam обновил сигнатуры без ошибок.
  • Сделайте тестовую загрузку безопасным EICAR-файлом (стандартный тестовый файл для антивирусов). Ожидаемое поведение: clamdscan удаляет файл и PureFTPd регистрирует событие.
  • Проверьте права и владельца скрипта /etc/pure-ftpd/clamav_check.sh: он должен быть исполняемым и доступным для пользователя, под которым запускается pure-uploadscript.

Важно: если у вас включён SELinux, временно отключите его для теста (setenforce 0) или настройте метки/политику, чтобы pure-uploadscript и clamd могли читать и удалять файлы. Анализ логов audit (audit.log) поможет выявить блокировки.

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

  • ClamAV успешно обновляет базы (freshclam без ошибок).
  • При загрузке EICAR-файла он удаляется автоматически.
  • Логи PureFTPd и clamd содержат записи о проверке/удалении.
  • Нет ошибок прав доступа или SELinux, препятствующих работе скрипта.

Роли и контрольный список

  • Системный администратор:
    • Установить EPEL и пакеты clamav, clamd.
    • Настроить автозапуск clamd и pure-uploadscript.
    • Проверить права на скрипт и работу clamd.
  • Инженер безопасности:
    • Проверить результаты сканирования и журналы.
    • Подготовить процедуру кварантина/удаления и уведомления.
  • Оператор резервного копирования:
    • Убедиться, что автоматическое удаление не нарушит процессы восстановления.

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

  • Если вы не хотите удалять файлы автоматически, замените опцию –remove в скрипте на перемещение в карантинную папку и уведомление администратора.
  • Для больших объёмов загрузок и высокой нагрузки рассмотрите интеграцию с внешним прокси-сканером или отложенное асинхронное сканирование (чтобы не задерживать пользователей).
  • На серверах с systemd (не применимо для CentOS 6.2) запуск и управление сервисами делают через systemctl; для CentOS 6.2 используются init-скрипты.

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

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

Процедура при обнаружении вредоносного файла (инцидентный план)

  1. Просмотрите логи clamd и PureFTPd, чтобы зафиксировать источник и время загрузки.
  2. Если файл удалён автоматически, восстановите из резервной копии при необходимости и проанализируйте вторичный перенос/сценарии заражения.
  3. Если система скомпрометирована, изолируйте пользователя/аккаунт и временно ограничьте доступ.
  4. Обновите базы сигнатур и выполните полную проверку подозрительных директорий.

Короткая памятка (cheat sheet)

  • Включить EPEL -> yum install clamav clamd
  • Запустить freshclam -> /usr/bin/freshclam
  • Включить CallUploadScript в pure-ftpd.conf
  • Создать /etc/pure-ftpd/clamav_check.sh с clamdscan –remove
  • Запустить pure-uploadscript -B -r /etc/pure-ftpd/clamav_check.sh
  • Перезапустить pure-ftpd

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

  • ClamAV — открытый антивирусный движок для обнаружения вредоносного ПО.
  • clamd — демон ClamAV, выполняет сканирование запросов.
  • freshclam — инструмент обновления баз сигнатур ClamAV.
  • pure-uploadscript — утилита PureFTPd для вызова скрипта при загрузке.

Ссылки

Резюме

Интеграция ClamAV и PureFTPd на CentOS 6.2 позволяет автоматически сканировать и удалять вредоносные файлы при загрузке. Проверьте обновление сигнатур, права доступа и поведение при включённом SELinux. При необходимости замените автоматическое удаление на карантин и уведомления.

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