本教程将介绍如何将ClamAV集成到ProFTPd中,以便在Debian Lenny系统上进行病毒扫描。 这是通过mod_clamav实现的。 最后,每当通过ProFTPd上传文件时,ClamAV将检查文件,如果是恶意软件,将其删除。
我不会保证这将为您工作!
1初步说明
您应该在Debian Lenny服务器上安装一个有效的ProFTPd设置。
2安装ClamAV
ClamAV可以安装如下:
aptitude install clamav clamav-daemon libclamav-dev
现在我们必须重新配置ClamAV,以便Clamd使用TCP连接而不是本地的Unix套接字。 强烈建议在使用ProFTPd( DefaultRoot〜
)的Chroot功能时避免使用Unix套接字连接。 原因是如果mod_clamav需要连接到Clamd,则在chroot环境中Unix套接字不可用。
跑
dpkg-reconfigure clamav-base
...并回答以下问题(接受所有其他问题的默认值):
套接字类型:
< - TCP
TCP端口clamd将监听:
< - 3310
IP地址clamd将监听:
< - 127.0.0.1
然后重新启动Clamd和freshclam:
/etc/init.d/clamav-daemon restart
/etc/init.d/clamav-freshclam restart
现在跑
netstat -tap | grep clamd
...你应该看到Clamd是通过TCP监听本地主机的:
server1:~# netstat -tap | grep clamd
tcp 0 0 localhost.localdom:3310 *:* LISTEN 29430/clamd
server1:~#
3重建ProFTPd
不幸的是,mod_clamav默认不是ProFTPd的一部分,并且没有Debian的mod_clamav包,所以我们必须用mod_clamav重建ProFTPd。 我将使用ProFTPd的Debian源代码包,并使用mod_clamav支持构建新的ProFTPd .deb软件包。
首先我们安装重建ProFTPd所需的所有软件包:
aptitude build-dep proftpd
我们还需要以下软件包(由于某些原因不能由以前的命令安装...):
aptitude install libpam-dev
现在我们将ProFTPd源码包下载到/ usr / src中
:
cd /usr/src
apt-get source proftpd
接下来我们将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.1 / contrib目录
中...
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
:
vi 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
显示可用包:
server1:/usr/src# ls -l
total 5472
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-01 03:28 mod_clamav-0.11rc.tar.gz
-rw-r--r-- 1 root src 195066 2010-10-01 03:32 proftpd_1.3.1-17lenny4_all.deb
-rw-r--r-- 1 root src 690228 2010-10-01 03:32 proftpd-basic_1.3.1-17lenny4_i386.deb
drwxr-xr-x 13 root root 4096 2010-10-01 03:32 proftpd-dfsg-1.3.1
-rw-r--r-- 1 root src 107998 2010-10-01 03:29 proftpd-dfsg_1.3.1-17lenny4.diff.gz
-rw-r--r-- 1 root src 1103 2010-10-01 03:29 proftpd-dfsg_1.3.1-17lenny4.dsc
-rw-r--r-- 1 root src 3305 2010-10-01 03:32 proftpd-dfsg_1.3.1-17lenny4_i386.changes
-rw-r--r-- 1 root src 2662056 2007-10-16 01:02 proftpd-dfsg_1.3.1.orig.tar.gz
-rw-r--r-- 1 root src 1255660 2010-10-01 03:32 proftpd-doc_1.3.1-17lenny4_all.deb
-rw-r--r-- 1 root src 213004 2010-10-01 03:32 proftpd-mod-ldap_1.3.1-17lenny4_i386.deb
-rw-r--r-- 1 root src 203562 2010-10-01 03:32 proftpd-mod-mysql_1.3.1-17lenny4_i386.deb
-rw-r--r-- 1 root src 203512 2010-10-01 03:32 proftpd-mod-pgsql_1.3.1-17lenny4_i386.deb
server1:/usr/src#
我们可以安装新的ProFTPd .deb软件包,如下所示:
dpkg -i proftpd*.deb
4配置ProFTPd
现在我们必须将ProFTPd配置为在上传文件时使用mod_clamav。 打开/etc/proftpd/proftpd.conf
...
vi /etc/proftpd/proftpd.conf
...并添加节
<IfModule mod_clamav.c>
ClamAV on
ClamServer 127.0.0.1
ClamPort 3310
</IfModule>
在某处,例如在下面
<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>
部分:
[...] <IfModule mod_ctrls_admin.c> AdminControlsEngine off </IfModule> <IfModule mod_clamav.c> ClamAV on ClamServer 127.0.0.1 ClamPort 3310 </IfModule> # # Alternative authentication frameworks # #Include /etc/proftpd/ldap.conf Include /etc/proftpd/sql.conf [...] |
重启ProFTPd:
/etc/init.d/proftpd restart
现在检查mod_clamav是否通过运行加载:
proftpd -vv
mod_clamav应该在输出中列出:
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将恶意软件上传到您的服务器时,“坏”文件将被删除。 您可以通过从http://www.eicar.org/anti_virus_test_file.htm下载Eicar测试病毒来测试 。 尝试将其上传到您的ProFTPd服务器,如果一切正常,应该删除它:
5链接
- ProFTPd: http : //www.proftpd.org/
- mod_clamav: http : //www.thrallingpenguin.com/resources/mod_clamav.htm
- ClamAV: http : //www.clamav.net/
- Debian: http : //www.debian.org/