Tento tutoriál vysvětluje, jak můžete integrovat ClamAV do ProFTPd pro skenování virů v systému Ubuntu 10.04. Toho je dosaženo pomocí mod_clamav. Nakonec, kdykoli se soubor nahraje přes ProFTPd, ClamAV soubor zkontroluje a smaže jej, pokud se jedná o malware.
Neposkytuji žádnou záruku, že to pro vás bude fungovat!
1 předběžná poznámka
Na svém serveru Ubuntu 10.04 byste měli mít funkční nastavení ProFTPd.
Protože všechny kroky z tohoto tutoriálu spustíme s právy root, můžeme buď před všechny příkazy v tomto tutoriálu přidat řetězec sudo, nebo se staneme rootem hned teď zadáním
sudo su
2 Instalace ClamAV
ClamAV lze nainstalovat následovně:
aptitude install clamav clamav-daemon libclamav-dev
Nyní musíme překonfigurovat ClamAV tak, aby Clamd používal připojení TCP místo místního Unixového soketu. Důrazně se doporučuje vyhnout se Unixovým soketům, když používáte funkci Chroot ProFTPd (DefaultRoot ~). Důvodem je, že pokud se mod_clamav potřebuje připojit k Clamd, Unixový socket není v chroot prostředí k dispozici.
Spustit
dpkg-reconfigure clamav-base
... a na tyto otázky odpovězte následovně (přijměte výchozí hodnoty pro všechny ostatní otázky):
Typ soketu:<-- TCP
TCP port clamd bude naslouchat na:<-- 3310
IP adresa clamd bude naslouchat na:<-- 127.0.0.1
Poté restartujte Clamd a freshclam:
/etc/init.d/clamav-daemon restart
/etc/init.d/clamav-freshclam restart
Nyní spusťte
netstat -tap | grep clamd
... a měli byste vidět, že Clamd naslouchá na localhost přes TCP:
[e-mail chráněný]:~# netstat -tap | grep clamd
tcp 0 0 localhost.localdom:3310 *:* POSLECHNOUT 7911/clamd
[e-mailem chráněno>]:~
3 Přestavba ProFTPd
Bohužel mod_clamav není ve výchozím nastavení součástí ProFTPd a pro mod_clamav neexistuje žádný balíček Ubuntu, takže musíme znovu sestavit ProFTPd pomocí mod_clamav. Použiji zdrojový balíček Ubuntu ProFTPd a vytvořím nové balíčky ProFTPd .deb s podporou mod_clamav.
Nejprve nainstalujeme všechny balíčky, které jsou potřeba k přestavbě ProFTPd:
aptitude build-dep proftpd-dfsg
Potřebujeme také následující balíčky:
aptitude install libpam-devdpkg-dev libmysqlclient-dev debhelper libpq-dev libldap2-dev libwrap0-dev libcap2-dev autotools-dev libncurses5-dev dpatch libacl1-dev libacl1-dev unibattr1-dev libattr1-dev libattr1-dev
Nyní stáhneme zdrojový balíček ProFTPd do /usr/src:
cd /usr/src
apt-get source proftpd-dfsg
Dále stáhneme mod_clamav do /usr/src a rozbalíme jej:
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
Poté zkopírujeme soubory mod_clamav-0.11rc/mod_clamav.* do adresáře proftpd-dfsg-1.3.2c/contrib...
cp mod_clamav-0.11rc/mod_clamav.* proftpd-dfsg-1.3.2c/contrib
... a opravte zdroje ProFTPd:
cd proftpd-dfsg-1.3.2c
patch -p1 <../mod_clamav-0.11rc/proftpd.patch
Dále musíme upravit debian/rules:
vi debian/rules
Prohledejte sekci CONF_ARGS a přidejte do ní --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 [...] |
Nyní můžeme znovu sestavit ProFTPd:
dpkg-buildpackage
Nyní přejdeme o jeden adresář výše, tam byly vytvořeny nové balíčky .deb:
cd ..
Příkaz
ls -l
zobrazí dostupné balíčky:
[e-mail chráněný]:/usr/src# ls -l
celkem 7500
drwxr-xr-x 24 kořenový kořen 4096 2010-04-29 14:00 linux-headers-2.6.32-21
drwxr-xr-x 7 kořenový kořen 4096 2010-04-29 14:00 linux-headers-2.6.32-21-server
drwxr-xr-x 2 501 4-509 20 401 20 :22 mod_clamav-0.11rc
-rw-r--r-- 1 kořen 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 kořen src ft 1 630168 pro 4 p4 630168 pro 4 p401 -dev_1.3.2c-1_amd64.deb
drwxr-xr-x 14 kořenový kořen 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 kořen src 1 ft 3 3.20-2010 .3.2c-1.diff.gz
-rw-r--r-- 1 kořen src 1138 2010-10-04 17:30 proftpd-dfsg_1.3.2c-1.dsc
-rw -r--r-- 1 kořen src 3018899 2009-12-22 07:05 proftpd-dfsg_1.3.2c.orig.tar.gz
-rw-r--r-- 1 kořen src 7 140108 10-04 17 :38 proftpd-doc_1.3.2c-1_all.deb
-rw-r--r-- 1 kořen src 315326 2010-10-04 17:38 proftpd-mod-ldap_1.3.2c-1_amd6 br />-rw-r--r-- 1 kořen 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 ft p-04762 2010 10 mod-pgsql_1.3.2c-1_amd64.deb
-rw-r--r-- 1 kořen src 304634 2010-10-04 17:38 proftpd-mod-sqlite_1.3.2c-1_amd6>[email protected]:/usr/src#
Nové balíčky .deb ProFTPd můžeme nainstalovat následovně:
dpkg -i proftpd*.deb
4 Konfigurace ProFTPd
Nyní musíme nakonfigurovat ProFTPd tak, aby používal mod_clamav při každém nahrávání souboru. Otevřete /etc/proftpd/proftpd.conf...
vi /etc/proftpd/proftpd.conf
... a přidejte sloku
ClamAV na
ClamServer 127.0.0.1
ClamPort 3310
někde, např. pod
AdminControlsEngine vypnutý
sekce:
[...] <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 [...] |
Restartujte ProFTPd:
/etc/init.d/proftpd restart
Nyní zkontrolujte, zda je načten mod_clamav spuštěním:
proftpd -vv
mod_clamav by měl být uveden ve výstupu:
[e-mail chráněno]:~# proftpd -vv
Verze ProFTPD: 1.3.2c (maint)
Verze srovnávacího přehledu: 01040002
Vyrobeno: Po říjnu 4 17:34:10 CEST >
Načtené moduly:
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
/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_clanav.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
[e-mail chráněný ]:~#
A je to! Nyní, kdykoli se někdo pokusí nahrát malware na váš server prostřednictvím ProFTPd, budou „špatné“ soubory smazány. Můžete to otestovat stažením testovacího viru Eicar z http://www.eicar.org/anti_virus_test_file.htm; zkuste jej nahrát na váš server ProFTPd, a pokud vše půjde dobře, mělo by být smazáno:
5 odkazů
- ProFTPd:http://www.proftpd.org/
- mod_clamav:http://www.thrallingpenguin.com/resources/mod_clamav.htm
- ClamAV:http://www.clamav.net/
- Ubuntu:http://www.ubuntu.com/