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

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

• 3 min read • Linux • Обновлено 24 Nov 2025
ClamAV + PureFTPd на OpenSUSE 11.3
ClamAV + PureFTPd на OpenSUSE 11.3

Этот пошаговый гайд показывает, как подключить ClamAV к PureFTPd на OpenSUSE 11.3: при каждом загрузке файла через PureFTPd будет запускаться clamdscan, который удалит обнаруженные вредоносные файлы. Подготовьте PureFTPd, установите ClamAV, создайте скрипт проверки и добавьте автозапуск демона.

Важно: всегда тестируйте на тестовом сервере перед внедрением в продакшн.

Введение

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

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

Определение: clamd — демон ClamAV; clamdscan — утилита для проверки файлов через clamd.

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

Убедитесь, что PureFTPd уже настроен и работает на сервере OpenSUSE 11.3 (например, как в руководстве по виртуальному хостингу с PureFTPd и MySQL). Этот процесс предполагает наличие прав администратора (root).

Установка ClamAV

ClamAV устанавливается командой:

yast2 -i clamav clamav-db

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

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

Настройка PureFTPd

Откройте файл конфигурации PureFTPd и измените Umask и разрешите вызов скриптов загрузки:

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

В файле задайте Umask 133:022 (это гарантирует, что clamdscan сможет читать загруженные файлы) и включите CallUploadScript:

[...]
# 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
[...]

Создание скрипта проверки ClamAV

Создайте файл-скрипт, который будет вызываться при загрузке файла. Скрипт вызывает 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, чтобы он вызывал ваш скрипт при каждой загрузке файла:

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

Если запускать демона вручную неудобно, добавьте автозапуск при старте системы.

Автозапуск при загрузке системы

Откройте скрипт загрузки и добавьте команду запуска pure-uploadscript:

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

После внесённых изменений перезапустите PureFTPd, чтобы настройки вступили в силу:

/etc/init.d/pure-ftpd restart

Готово — теперь при каждой загрузке через PureFTPd файлы будут проверяться ClamAV, а обнаруженные вредоносные файлы будут удаляться.

Что делать в случае проблем

Important: прежде чем удалять файлы в продакшне, протестируйте поведение на тестовой среде и убедитесь, что Umask не мешает доступу к файлам.

Пошаговая проверка при ошибках:

  • Проверьте, работает ли демон clamd: /etc/init.d/clamd status или ps aux | grep clamd.
  • Запустите clamdscan вручную на тестовом файле: /usr/bin/clamdscan /путь/к/файлу.
  • Убедитесь, что pure-uploadscript запущен: ps aux | grep pure-uploadscript.
  • Посмотрите логи PureFTPd и системные логи для ошибок разрешений.

Возможные причины неработоспособности:

  • Неверный Umask в конфигурации PureFTPd — clamd не может прочитать файл.
  • Selinux/AppArmor или другие механизмы безопасности блокируют доступ.
  • Неправильно задан путь к скрипту или к clamdscan.

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

  • Вместо удаления файлов можно настроить отправку в карантин или перемещение в отдельную папку из скрипта.
  • Для высокой загрузки рассмотрите асинхронную проверку и очередь заданий (например, с Redis/queue), чтобы не блокировать FTP-сессию.
  • Рассмотрите коммерческие AV-решения с централизованным управлением базами сигнатур для корпоративных сред.

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

  • clamd успешно запущен и отвечает на проверки.
  • pure-uploadscript работает как демон и вызывает /etc/pure-ftpd/clamav_check.sh при загрузке.
  • Заражённые тестовые файлы корректно удаляются (или перемещаются в карантин).
  • Логи не содержат ошибок доступа или отказов.

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

  • Установлен clamav и clamav-db
  • clamd запущен и в автозагрузке
  • Umask в /etc/pure-ftpd/pure-ftpd.conf = 133:022
  • CallUploadScript = yes
  • /etc/pure-ftpd/clamav_check.sh присутствует и исполняемый
  • pure-uploadscript запущен и настроен на автозапуск
  • Перезапуск pure-ftpd выполнен и проверен

Краткое резюме

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

Ссылки

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