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

Как интегрировать ClamAV в PureFTPd для проверки на вирусы в OpenSUSE 11.2

• 4 min read • Серверы • Обновлено 20 Nov 2025
Интеграция ClamAV с PureFTPd на OpenSUSE 11.2
Интеграция ClamAV с PureFTPd на OpenSUSE 11.2

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

Введение

Это руководство объясняет, как интегрировать ClamAV в PureFTPd для проверки загруженных файлов на сервере OpenSUSE 11.2. В итоге каждый файл, загруженный через PureFTPd, будет проверяться ClamAV и удаляться в случае обнаружения вредоносного кода.

Определение терминов: ClamAV — свободный антивирусный движок; PureFTPd — FTP-сервер с богатым функционалом; clamd — демон ClamAV для быстрого сканирования.

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

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

  • У вас уже должен быть работающий PureFTPd на OpenSUSE 11.2.
  • У вас есть права root или sudo для установки пакетов и правки системных файлов.

2. Установка ClamAV

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

yast2 -i clamav clamav-db

Далее создайте системные хуки автозапуска для clamd и запустите демон:

chkconfig --add clamd  
/etc/init.d/clamd start

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

3. Настройка PureFTPd

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

Внутри файла найдите и установите параметры примерно так:

[...]
# File creation mask. : .
# 177:077 if you feel paranoid.

Umask                       133:022
[...]
# 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
[...]

Пояснение: Umask 133:022 даёт clamdscan права читать загруженные файлы, не делая их общедоступными.

  1. Создайте скрипт, который будет вызываться при загрузке файла. Создадим /etc/pure-ftpd/clamav_check.sh:
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

Чтобы демон запускался автоматически при загрузке системы, добавьте команду в /etc/init.d/boot.local:

vi /etc/init.d/boot.local

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

#! /bin/sh
#
# Copyright (c) 2002 SuSE Linux AG Nuernberg, Germany.  All rights reserved.
#
# Author: Werner Fink <[email protected]>, 1996
#         Burchard Steinbild, 1996
#
# /etc/init.d/boot.local
#
# script with local commands to be executed from init on system startup
#
# Here you should add things, that should happen directly after booting
# before we're going to the first run level.
#
/usr/sbin/pure-uploadscript -B -r /etc/pure-ftpd/clamav_check.sh

Наконец, перезапустите PureFTPd, чтобы применить изменения:

/etc/init.d/pure-ftpd restart

4. Проверка работоспособности

  • Попробуйте загрузить тестовый файл.
  • Проверьте логи clamd и pure-uploadscript при возникновении проблем.
  • Убедитесь, что загруженные вредоносные файлы удаляются (или обрабатываются по нужной вам политике).

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

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

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

  • Использовать сторонний прокси или gateway для FTP с встроенным антивирусом.
  • Запускать периодическую проверку (cron) каталога загрузок вместо проверки при загрузке.
  • Использовать другие антивирусные движки через интеграцию (например, коммерческие решения) в зависимости от требований к обнаружению.

Практическая методология (мини-процесс)

  1. Резервная копия конфигураций PureFTPd и скриптов.
  2. Установка ClamAV и запуск clamd.
  3. Настройка Umask и CallUploadScript в pure-ftpd.conf.
  4. Создание скрипта проверки и тестовый запуск pure-uploadscript.
  5. Автозапуск при старте системы и стресс-тесты на загрузку.

Чек-лист для администратора

  • Установлен пакет clamav и clamav-db.
  • clamd запущен и включён в chkconfig.
  • В /etc/pure-ftpd/pure-ftpd.conf установлены Umask 133:022 и CallUploadScript yes.
  • /etc/pure-ftpd/clamav_check.sh создан и имеет права 755.
  • pure-uploadscript настроен и добавлен в /etc/init.d/boot.local.
  • Перезапуск pure-ftpd выполнен и проверен функционал.

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

  • Загруженные через PureFTPd вредоносные файлы удаляются автоматически.
  • Желаемые операции проходили успешно при тестовой загрузке.
  • Нет нежелательных блокировок или потери легитимных файлов при нормальных сценариях.

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

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

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

Часто задаваемые вопросы

Как проверить, что clamd действительно сканирует файлы?

Проверьте логи clamd и загрузите тестовый файл. Можно временно добавить флаг –verbose в вызов clamdscan для диагностики.

Можно ли вместо удаления просто помещать вредоносные файлы в карантин?

Да. Замените опцию –remove на перемещение файла в специальную папку и реализуйте политику карантина в скрипте.

Глоссарий (одно предложение)

  • Umask: маска прав по умолчанию для вновь создаваемых файлов/каталогов.
  • pure-uploadscript: вспомогательная утилита PureFTPd для обработки загруженных файлов.
  • clamdscan: утилита, которая использует демон clamd для сканирования файлов.
Поделиться: 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 быстро