Интеграция ClamAV с PureFTPd на Fedora 12
Версия и автор
Version 1.0
Автор: Falko Timme
Следите за обновлениями в Twitter
Введение
Это руководство объясняет, как интегрировать антивирус ClamAV с FTP-сервером PureFTPd на системе Fedora 12. В результате каждый файл, загружаемый через PureFTPd, будет проверяться ClamAV и автоматически удаляться при обнаружении вредоносного кода.
Важно: я не даю гарантий, что инструкция сработает в вашей среде — всегда тестируйте в контролируемой среде перед применением в продакшене.
1 Предварительная заметка
У вас уже должна быть рабочая установка PureFTPd на сервере Fedora 12, например, как в руководстве по виртуальному хостингу с PureFTPd и MySQL. Понимание базовой работы PureFTPd и прав пользователей поможет при отладке.
2 Установка ClamAV
Установите пакеты ClamAV и сопутствующие компоненты:
yum install amavisd-new clamav clamav-data clamav-server clamav-update clamav-scannerClamd ожидает конфигурационный файл /etc/clamd.conf, который может отсутствовать — создадим симлинк на существующий файл amavisd:
ln -s /etc/clamd.d/amavisd.conf /etc/clamd.confСоздаём системные ссылки для автозапуска clamd и запускаем его:
chkconfig --levels 235 clamd.amavisd on
/etc/init.d/clamd.amavisd startПримечание: на Fedora 12 используется классический init; если вы переносите инструкцию на современные системы с systemd, используйте systemctl и unit-файлы.
3 Настройка PureFTPd для вызова скрипта загрузки
Откройте конфигурационный файл PureFTPd и включите CallUploadScript:
vi /etc/pure-ftpd/pure-ftpd.confНайдите и измените (или добавьте) строку:
CallUploadScript yesДалее создаём скрипт, который будет вызываться при загрузке файла. Создайте /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
touch /var/lock/subsys/localНаконец, перезапустите PureFTPd:
/etc/init.d/pure-ftpd restartПосле этого при попытке загрузить заражённый файл PureFTPd вызовет clamdscan, и файл будет удалён без дополнительного уведомления пользователю.
4 Практические рекомендации и отладка
- Логи: проверьте системные журналы (/var/log/messages, /var/log/maillog) и логи clamd для подробностей при проблемах.
- Права доступа: pure-uploadscript и clamd должны иметь права на чтение/удаление загружаемых файлов. Проверьте владельца и права директорий FTP.
- SELinux: если включён, убедитесь, что SELinux позволяет pure-uploadscript вызывать clamd и модифицировать файлы. При проблемах временно переключите в permissive для теста.
- Производительность: сканирование больших файлов задержит завершение загрузки. Рассмотрите лимиты по размеру или асинхронную обработку для больших объёмов трафика.
Когда это может не сработать:
- Если PureFTPd был собран без поддержки pure-uploadscript, опция CallUploadScript не сработает.
- Если clamd недоступен (ошибки конфигурации или права), скрипт может завершаться с ошибкой и не удалять заражённые файлы.
Альтернативы:
- Использовать on-access антивирус с FUSE/прокси для сканирования в реальном времени.
- Интеграция через amavisd-new для почтовой и файловой проверки в единой подсистеме.
Контрольный чек-лист для внедрения
- Установлены пакеты ClamAV и amavisd-new.
- Создан /etc/clamd.conf (симлинк на /etc/clamd.d/amavisd.conf).
- clamd настроен и запущен.
- Включена опция CallUploadScript в /etc/pure-ftpd/pure-ftpd.conf.
- Создан и проверен /etc/pure-ftpd/clamav_check.sh (исполняемый).
- pure-uploadscript запущен и добавлен в автозапуск (/etc/rc.local или аналог).
- Выполнено тестовое заражение (в контролируемой среде) и проверена реакция системы.
Критерии приёмки
- При загрузке тестового файла с вирусным сигнатурой файл удаляется автоматически.
- В логах видно срабатывание clamdscan для загруженных файлов.
- Система продолжает принимать легитимные файлы без ошибок прав доступа.
- Нагрузка на сервер остаётся в пределах приемлемого уровня при ожидаемых объёмах трафика.
Мини-инструкция (SOP) для администратора
- Сделать резервную копию конфигураций PureFTPd и clamd.
- Установить пакеты и создать симлинк /etc/clamd.conf.
- Запустить clamd и включить автозапуск.
- Включить CallUploadScript в конфигурации PureFTPd.
- Создать /etc/pure-ftpd/clamav_check.sh и сделать его исполняемым.
- Запустить pure-uploadscript и добавить в автозапуск.
- Провести тесты загрузки и мониторинг логов.
Безопасность и конфиденциальность
- Сканирование файлов потенциально затрагивает личные данные, содержащиеся в загружаемых файлах. Убедитесь, что политика конфиденциальности сервиса учитывает автоматическое сканирование.
- Храните обновления сигнатур актуальными (clamav-freshclam) для снижения ложных пропусков.
Краткий глоссарий (одно предложение)
- ClamAV — открытый антивирусный движок для обнаружения вредоносного ПО.
- clamd — демон ClamAV, обеспечивающий быстрый доступ к антивирусным функциям.
- clamdscan — клиент для clamd, использующий локальный демон для сканирования.
- PureFTPd — лёгкий и безопасный FTP-сервер с расширенными возможностями.
- pure-uploadscript — утилита, позволяющая PureFTPd вызывать внешние скрипты при загрузках.
Ссылки
- PureFTPD: http://www.pureftpd.org/
- ClamAV: http://www.clamav.net/
- Fedora: http://fedoraproject.org/
Итог
Интеграция ClamAV в PureFTPd на Fedora 12 даёт базовую защиту загружаемых файлов путём автоматического сканирования и удаления обнаруженных угроз. Для продакшен-среды рекомендуются дополнительные меры мониторинга, тестирования и учёт влияния на производительность.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента