Как интегрировать 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
- Откройте файл конфигурации 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 права читать загруженные файлы, не делая их общедоступными.
- Создайте скрипт, который будет вызываться при загрузке файла. Создадим /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- Запустите 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 restart4. Проверка работоспособности
- Попробуйте загрузить тестовый файл.
- Проверьте логи clamd и pure-uploadscript при возникновении проблем.
- Убедитесь, что загруженные вредоносные файлы удаляются (или обрабатываются по нужной вам политике).
Когда этот метод может не сработать
- Если clamd не имеет прав читать файлы — проверьте права и Umask.
- Если PureFTPd был собран без поддержки pure-uploadscript — этот метод неприменим.
- Если файл слишком большой, clamdscan может потреблять много времени или памяти.
Альтернативные подходы
- Использовать сторонний прокси или gateway для FTP с встроенным антивирусом.
- Запускать периодическую проверку (cron) каталога загрузок вместо проверки при загрузке.
- Использовать другие антивирусные движки через интеграцию (например, коммерческие решения) в зависимости от требований к обнаружению.
Практическая методология (мини-процесс)
- Резервная копия конфигураций PureFTPd и скриптов.
- Установка ClamAV и запуск clamd.
- Настройка Umask и CallUploadScript в pure-ftpd.conf.
- Создание скрипта проверки и тестовый запуск pure-uploadscript.
- Автозапуск при старте системы и стресс-тесты на загрузку.
Чек-лист для администратора
- Установлен пакет 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. Подходит для серверов, где требуется базовая автоматическая защита от известных угроз. При необходимости рассмотрите более сложные или коммерческие решения.
Полезные ссылки
- PureFTPD: http://www.pureftpd.org/
- ClamAV: http://www.clamav.net/
- OpenSUSE: http://www.opensuse.org/
Часто задаваемые вопросы
Как проверить, что clamd действительно сканирует файлы?
Проверьте логи clamd и загрузите тестовый файл. Можно временно добавить флаг –verbose в вызов clamdscan для диагностики.
Можно ли вместо удаления просто помещать вредоносные файлы в карантин?
Да. Замените опцию –remove на перемещение файла в специальную папку и реализуйте политику карантина в скрипте.
Глоссарий (одно предложение)
- Umask: маска прав по умолчанию для вновь создаваемых файлов/каталогов.
- pure-uploadscript: вспомогательная утилита PureFTPd для обработки загруженных файлов.
- clamdscan: утилита, которая использует демон clamd для сканирования файлов.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента