Интеграция ClamAV в ProFTPd на Ubuntu 10.04

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

UbuntuЭтот материал объясняет, как можно интегрировать ClamAV в ProFTPd для проверки на вирусы на основе системы Ubuntu server 10.04. Это осуществимо за счет mod_clamav. В конце концов, всякий раз, когда файл начинает загружаться через ProFTPd, ClamAV будет проверять их и удалять их в случае если он является вредоносной программой.

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

Вы должны иметь рабочий ProFTPd установленный на Ubuntu server 10.04.

Мы должны будем выполнять все шаги из этого учебника с привилегиями администратора (root) или как говорится супер пользователя, установим пользователя root прямо сейчас, введя:

  • sudo su

Установка ClamAV

ClamAV может быть установлен следующим образом:

  • aptitude install clamav clamav-daemon libclamav-dev

Теперь мы должны перенастроить ClamAV, так что бы Clamd использовал TCP соединения, а не локальный сокет Unix. Настоятельно рекомендуется избегать соединения сокет Unix при использовании функции Chroot в ProFTPd (DefaultRoot ~). Причина в том, что если mod_clamav необходимо подключиться к Clamd, сокет Unix не предоставляется в изолированной среде.

Выполним:

  • dpkg-reconfigure clamav-base

... и ответим на эти вопросы, как представлено ниже (для всех других вопросов примите значения по умолчанию ):

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

Затем перезагрузите Clamd и Freshclam:

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

Теперь запустим:

  • netstat -tap | grep clamd

... и вы увидите, что 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:

  • aptitude build-dep proftpd-dfsg

Нам также необходимо следующие пакеты:

  • aptitude install libpam-dev dpkg-dev libmysqlclient-dev debhelper libpq-dev libldap2-dev libwrap0-dev libcap2-dev autotools-dev libncurses5-dev dpatch libacl1-dev libattr1-dev unixodbc-dev libsqlite3-dev

Сейчас мы скачать пакет ProFTPd с источника /usr/src:

  • cd /usr/src
  • apt-get source proftpd-dfsg

Далее скачаем mod_clamav в /usr/src и распакуйте его:

  • 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

Теперь мы копируем mod_clamav-0.11rc/mod_clamav.*файлы в proftpd-dfsg-1.3.2c/contrib каталог ...

  • cp mod_clamav-0.11rc/mod_clamav.* proftpd-dfsg-1.3.2c/contrib

... и патч ProFTPd источников:

  • cd proftpd-dfsg-1.3.2c
  • patch -p1 < ../mod_clamav-0.11rc/proftpd.patch

Далее мы должны изменить debian/rules:

  • nano 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:

  • dpkg-buildpackage

Теперь еще на один каталог вверх, где были созданы новые *.deb пакеты, посмотрим доступные пакеты:

  • cd ..
  • ls -l
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 пакеты следующим образом:

  • dpkg -i proftpd*.deb

Настройка ProFTPd

Теперь мы должны настроить ProFTPd используя mod_clamav всякий раз, когда загружаем файл. Откроем /etc/proftpd/proftpd.conf:

  • nano /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:

  • /etc/init.d/proftpd restart
  • proftpd -vv

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, "плохой" файл (ы) будут удалены.


Обмениваться, хранить, передавать Ваши файлы стало просто как никогда.
yandex-disk
Читать подробнее: для чего Yandex-Диск проекту Mini-Server. Практика установки, настройки и использования сетевого хранилища на Ubuntu server LTS 12.04 в статье Резервное копирование сервера Ubuntu на Яндекс Диск.

>> Ubuntu 12.04 + Nginx Скачать сервер
>> Fedora 15 Скачать сервер
>> Простой Debian 6.0.6 Скачать сервер
>> CentOS 6.0 и
+ (5.6) другой
Скачать сервер
>> OpenSUSE 11.4
MAX
Скачать сервер

Вход на сайт

ВНИМАНИЕ!

Регистрация на сайте только по согласованию с администратором ресурса. Обращаться через форму обратной связи.