Этот материал объясняет, как можно интегрировать ClamAV в ProFTPd для проверки на вирусы на основе системы Ubuntu server 10.04. Это осуществимо за счет mod_clamav. В конце концов, всякий раз, когда файл начинает загружаться через ProFTPd, ClamAV будет проверять их и удалять их в случае если он является вредоносной программой.
Предварительные замечания
Вы должны иметь рабочий ProFTPd установленный на Ubuntu server 10.04.
Мы должны будем выполнять все шаги из этого учебника с привилегиями администратора (root) или как говорится супер пользователя, установим пользователя root прямо сейчас, введя:
|
Установка ClamAV
ClamAV может быть установлен следующим образом:
|
Теперь мы должны перенастроить ClamAV, так что бы Clamd использовал TCP соединения, а не локальный сокет Unix. Настоятельно рекомендуется избегать соединения сокет Unix при использовании функции Chroot в ProFTPd (DefaultRoot ~). Причина в том, что если mod_clamav необходимо подключиться к Clamd, сокет Unix не предоставляется в изолированной среде.
Выполним:
|
... и ответим на эти вопросы, как представлено ниже (для всех других вопросов примите значения по умолчанию ):
Socket type: - TCP TCP port clamd will listen on: - 3310 IP address clamd will listen on: - 127.0.0.1
Затем перезагрузите Clamd и Freshclam:
|
Теперь запустим:
|
... и вы увидите, что Clamd прослушивает локальный через TCP:
root@server1:~# netstat -tap | grep clamd tcp 0 0 localhost.localdom:3310 *:* LISTEN 7911/clamd root@server1:~#
Восстановление ProFTPd
К сожалению mod_clamav не является частью ProFTPd по умолчанию, и нет никаких пакетов Ubuntu для mod_clamav, поэтому мы должны восстановить ProFTPd с mod_clamav. Я буду использовать пакет Ubuntu источник ProFTPd и строить новые ProFTPd *.deb пакеты с mod_clamav поддержки.
Сначала установим все пакеты, которые необходимы для восстановления ProFTPd:
|
Нам также необходимо следующие пакеты:
|
Сейчас мы скачать пакет ProFTPd с источника /usr/src:
|
Далее скачаем mod_clamav в /usr/src и распакуйте его:
|
Теперь мы копируем mod_clamav-0.11rc/mod_clamav.*файлы в proftpd-dfsg-1.3.2c/contrib каталог ...
|
... и патч ProFTPd источников:
|
Далее мы должны изменить debian/rules:
|
Ищем раздел CONF_ARGS и добавим к нему --with-modules=mod_clamav:
[...] 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 [...]
Теперь мы можем восстановить ProFTPd:
|
Теперь еще на один каталог вверх, где были созданы новые *.deb пакеты, посмотрим доступные пакеты:
|
root@server1:/usr/src# ls -l total 7500 drwxr-xr-x 24 root root 4096 2010-04-29 14:00 linux-headers-2.6.32-21 drwxr-xr-x 7 root root 4096 2010-04-29 14:00 linux-headers-2.6.32-21-server drwxr-xr-x 2 501 501 4096 2009-04-20 10:22 mod_clamav-0.11rc -rw-r--r-- 1 root src 5115 2010-10-04 17:21 mod_clamav-0.11rc.tar.gz -rw-r--r-- 1 root src 930578 2010-10-04 17:38 proftpd-basic_1.3.2c-1_amd64.deb -rw-r--r-- 1 root src 630168 2010-10-04 17:38 proftpd-dev_1.3.2c-1_amd64.deb drwxr-xr-x 14 root root 4096 2010-10-04 17:37 proftpd-dfsg-1.3.2c -rw-r--r-- 1 root src 4522 2010-10-04 17:38 proftpd-dfsg_1.3.2c-1_amd64.changes -rw-r--r-- 1 root src 98674 2010-10-04 17:30 proftpd-dfsg_1.3.2c-1.diff.gz -rw-r--r-- 1 root src 1138 2010-10-04 17:30 proftpd-dfsg_1.3.2c-1.dsc -rw-r--r-- 1 root src 3018899 2009-12-22 07:05 proftpd-dfsg_1.3.2c.orig.tar.gz -rw-r--r-- 1 root src 1408070 2010-10-04 17:38 proftpd-doc_1.3.2c-1_all.deb -rw-r--r-- 1 root src 315326 2010-10-04 17:38 proftpd-mod-ldap_1.3.2c-1_amd64.deb -rw-r--r-- 1 root src 305076 2010-10-04 17:38 proftpd-mod-mysql_1.3.2c-1_amd64.deb -rw-r--r-- 1 root src 306848 2010-10-04 17:38 proftpd-mod-odbc_1.3.2c-1_amd64.deb -rw-r--r-- 1 root src 304762 2010-10-04 17:38 proftpd-mod-pgsql_1.3.2c-1_amd64.deb -rw-r--r-- 1 root src 304634 2010-10-04 17:38 proftpd-mod-sqlite_1.3.2c-1_amd64.deb root@server1:/usr/src#
Мы можем установить новые ProFTPd *.deb пакеты следующим образом:
|
Настройка ProFTPd
Теперь мы должны настроить ProFTPd используя mod_clamav всякий раз, когда загружаем файл. Откроем /etc/proftpd/proftpd.conf:
|
... и добавим строки
ClamAV on ClamServer 127.0.0.1 ClamPort 3310
где-нибудь, например, ниже:
AdminControlsEngine от
Пример:
[...]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:
|
mod_clamav должен вывести:
root@server1:~# proftpd -vv ProFTPD Version: 1.3.2c (maint) Scoreboard Version: 01040002 Built: Mon Oct 4 17:34:10 CEST 2010 Loaded modules: mod_ifsession/1.0 mod_dynmasq/0.2.1 mod_wrap2_file/1.2 mod_wrap2/2.0.6 mod_ban/0.5.3 mod_load/1.0.1 mod_rewrite/0.7 mod_wrap.c mod_quotatab_radius.c mod_quotatab_file.c mod_quotatab/1.3.0 mod_radius/0.9 mod_tls/2.2.2 mod_ctrls_admin/0.9.5 mod_lang/0.9 mod_ctrls/0.9.4 mod_cap/1.0 mod_clamav.c mod_auth_pam/1.1 mod_ident/1.0 mod_dso/0.4 mod_facts/0.1 mod_delay/0.6 mod_site.c mod_log.c mod_ls.c mod_auth.c mod_auth_file/0.8.3 mod_auth_unix.c mod_xfer.c mod_core.c root@server1:~#
Вот и все! Теперь всякий раз, когда кто-то пытается загрузить вредоносные программы на серверу с помощью ProFTPd, "плохой" файл (ы) будут удалены.