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

Интеграция ClamAV с ProFTPd на Debian Lenny

• 4 min read • Серверы • Обновлено 23 Nov 2025
ClamAV + ProFTPd на Debian Lenny
ClamAV + ProFTPd на Debian Lenny

Краткое содержание

  • Что нужно: сервер Debian Lenny с рабочим ProFTPd.
  • Итог: при каждой загрузке ProFTPd передаёт файл clamd; обнаруженные угрозы удаляются.

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

Убедитесь, что ProFTPd уже установлен и работает на вашем сервере Debian Lenny. Это руководство предполагает доступ к shell с правами root или sudo. “Clamd” — демон ClamAV, который выполняет сканирование по запросу.

2 Установка ClamAV

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

aptitude install clamav clamav-daemon libclamav-dev

Затем нужно переконфигурировать ClamAV, чтобы clamd использовал TCP, а не Unix-сокет. При использовании chroot (например, DefaultRoot в ProFTPd) Unix-сокет недоступен внутри chroot, поэтому рекомендуется TCP.

Запустите:

dpkg-reconfigure clamav-base

Ответьте на вопросы следующим образом (остальные значения оставьте по умолчанию):

Socket type: <– TCP
TCP port clamd will listen on: <– 3310
IP address clamd will listen on: <– 127.0.0.1

Перезапустите демоны ClamAV:

/etc/init.d/clamav-daemon restart
/etc/init.d/clamav-freshclam restart

Проверьте, что clamd слушает на localhost:3310:

netstat -tap | grep clamd

Ожидемый вывод (пример):

server1:~# netstat -tap | grep clamd
tcp        0      0 localhost.localdom:3310 *:*                     LISTEN      29430/clamd
server1:~#

3 Пересборка ProFTPd с mod_clamav

По умолчанию mod_clamav не входит в пакеты ProFTPd Debian. Мы используем исходники ProFTPd, добавим модуль в contrib и соберём .deb-пакеты.

Установите зависимости для сборки ProFTPd:

aptitude build-dep proftpd

Если не установлен, добавьте libpam-dev:

aptitude install libpam-dev

Скачайте исходники ProFTPd в /usr/src:

cd /usr/src
apt-get source proftpd

Скачайте mod_clamav и распакуйте:

wget --no-check-certificate https://secure.thrallingpenguin.com/redmine/attachments/download/1/mod_clamav-0.11rc.tar.gz
tar xzvf mod_clamav-0.11rc.tar.gz

Скопируйте файлы модуля в каталог contrib исходников ProFTPd:

cp mod_clamav-0.11rc/mod_clamav.* proftpd-dfsg-1.3.1/contrib

Примените патч к исходникам ProFTPd:

cd proftpd-dfsg-1.3.1
patch -p1 < ../mod_clamav-0.11rc/proftpd.patch

Отредактируйте debian/rules — добавьте флаг –with-modules=mod_clamav в CONF_ARGS. Найдите секцию CONF_ARGS и добавьте модуль, например:

[...]
CONF_ARGS := --prefix=/usr \
             --with-includes=$(shell pg_config --includedir):$(shell mysql_config --include|sed -e 's/-I//') \
             --mandir=/usr/share/man --sysconfdir=/etc/$(NAME) --localstatedir=/var/run --libexecdir=/usr/lib/$(NAME) \
             --enable-sendfile --enable-facl --enable-dso --enable-autoshadow --enable-ctrls --with-modules=mod_readme \
             --enable-ipv6 --enable-nls --with-modules=mod_clamav
[...]

После правок соберите пакеты:

dpkg-buildpackage

Перейдите на уровень выше и установите созданные .deb-пакеты:

cd ..
ls -l

(Вы увидите список созданных файлов .deb в каталоге /usr/src.)

Установите их:

dpkg -i proftpd*.deb

Важно: сборка может зависеть от архитектуры и версий пакетов. Если сборка падает, смотрите логи debuild/dpkg-buildpackage и установите недостающие -dev зависимости.

4 Настройка ProFTPd для использования mod_clamav

Откройте конфигурацию ProFTPd:

vi /etc/proftpd/proftpd.conf

Добавьте блок конфигурации mod_clamav (например ниже секции mod_ctrls_admin):


   ClamAV on
   ClamServer 127.0.0.1
   ClamPort 3310

Пример размещения в файле:

[...]

AdminControlsEngine off



   ClamAV on
   ClamServer 127.0.0.1
   ClamPort 3310


#
# Alternative authentication frameworks
#
#Include /etc/proftpd/ldap.conf
Include /etc/proftpd/sql.conf
[...]

Перезапустите ProFTPd:

/etc/init.d/proftpd restart

Проверьте, загружен ли модуль:

proftpd -vv

В выводе должен присутствовать модуль mod_clamav.c, например:

server1:~# proftpd -vv
 - ProFTPD Version: 1.3.1 (stable)
 -   Scoreboard Version: 01040002
 -   Built: Fri Oct 1 03:31:03 CEST 2010
 -     Module: mod_core.c
 -     Module: mod_xfer.c
 -     Module: mod_auth_unix.c
 -     Module: mod_auth_file/0.8.3
 -     Module: mod_auth.c
 -     Module: mod_ls.c
 -     Module: mod_log.c
 -     Module: mod_site.c
 -     Module: mod_delay/0.6
 -     Module: mod_dso/0.4
 -     Module: mod_auth_pam/1.0.1
 -     Module: mod_clamav.c
 -     Module: mod_cap/1.0
 -     Module: mod_ctrls/0.9.4
 -     Module: mod_lang/0.8
server1:~#

Теперь при загрузке файла через ProFTPd модуль отправит его на clamd. При обнаружении вредоносного содержимого файл будет удалён.

Тестирование

Скачайте тестовый файл EICAR и попробуйте загрузить его на сервер через FTP. Если всё настроено верно, файл будет удалён модулем.

Тестовая загрузка EICAR — результат, чтобы показать, что заражённый файл удалён сервером

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


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

  • Если clamd недоступен на указанном IP/порту или слушает только Unix-сокет.
  • При ошибках прав доступа внутри chroot (ProFTPd не может обратиться к сокету).
  • Если модуль не был корректно включён при сборке ProFTPd.
  • Если политика удаляет или помещает файл в карантин не так, как вы ожидаете — проверьте логи.

Совет: проверьте логи /var/log/clamav/ и /var/log/proftpd/ для диагностики.

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

  • Использовать внешний сканер на стороне хранения (scan-on-access) вместо интеграции в FTP-сервер.
  • Настроить upload-скрипт (например, hook post-upload) для передачи файлов на отдельный сканер.
  • Перенести сервис FTP на более современные решения с поддержкой модулей безопасности.

Выбор зависит от архитектуры, требований к задержке и ответственности за хранение.

Критерии приёмки (тесты)

  • При загрузке EICAR файл обнаруживается и удаляется.
  • proftpd -vv показывает mod_clamav.c в списке модулей.
  • netstat подтверждает, что clamd слушает 127.0.0.1:3310.
  • Логи не содержат ошибок прав доступа или отказов соединения при загрузках.

Чек-листы по ролям

  • Системный администратор:

    • Установить clamav, clamav-daemon, libclamav-dev.
    • Переконфигурировать clamd на TCP.
    • Пересобрать ProFTPd с модулем и установить .deb.
    • Перезапустить службы и проверить статусы.
  • Безопасность / Compliance:

    • Подтвердить удаление/карантин заражённых файлов.
    • Задокументировать поведение системы при обнаружении угроз.
    • Проверить соответствие политике хранения и уведомлений.
  • DevOps / CI:

    • Автоматизировать сборку пакета (скрипты сборки).
    • Добавить тесты развертывания и интеграции.

Короткий глоссарий (1‑строчные определения)

  • ClamAV — свободный антивирусный движок для обнаружения вредоносного ПО.
  • clamd — демон ClamAV, который сканирует файлы по запросу.
  • mod_clamav — модуль ProFTPd, позволяющий интегрировать scannирование через clamd.
  • chroot / DefaultRoot — ограничение пользователей в корне их домашнего каталога.

Рекомендации по безопасности и приватности

  • Не открывайте clamd на внешние интерфейсы — ограничьте адрес 127.0.0.1 или внутренней сетью.
  • Логи могут содержать пути к файлам — соблюдайте политику хранения логов и доступ к ним.
  • Обновляйте базы вирусных сигнатур и сам ClamAV регулярно (freshclam).

Резюме

Интеграция ClamAV в ProFTPd через mod_clamav обеспечивает автоматическое сканирование загружаемых файлов и удаление обнаруженных угроз. Процесс включает установку ClamAV, перевод clamd на TCP, пересборку ProFTPd с модулем, настройку конфигурации и тестирование загрузок. Следуйте чек-листам и проверяйте логи для стабильной работы.

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