Ce tutoriel explique comment vous pouvez intégrer ClamAV dans ProFTPd pour l'analyse antivirus sur un système Ubuntu 10.04. Ceci est réalisé via mod_clamav. En fin de compte, chaque fois qu'un fichier est téléchargé via ProFTPd, ClamAV vérifiera le fichier et le supprimera s'il s'agit d'un logiciel malveillant.
Je n'émets aucune garantie que cela fonctionnera pour vous !
1 Remarque préliminaire
Vous devriez avoir une configuration ProFTPd fonctionnelle sur votre serveur Ubuntu 10.04.
Étant donné que nous allons exécuter toutes les étapes de ce didacticiel avec les privilèges root, nous pouvons soit ajouter au début toutes les commandes de ce didacticiel avec la chaîne sudo, soit nous devenons root dès maintenant en tapant
sudo su
2 Installer ClamAV
ClamAV peut être installé comme suit :
aptitude install clamav clamav-daemon libclamav-dev
Nous devons maintenant reconfigurer ClamAV afin que Clamd utilise des connexions TCP au lieu d'un socket Unix local. Il est fortement recommandé d'éviter les connexions socket Unix lors de l'utilisation de la fonctionnalité Chroot de ProFTPd (DefaultRoot ~). La raison est que si mod_clamav doit se connecter à Clamd, le socket Unix n'est pas disponible dans l'environnement chroot.
Exécuter
dpkg-reconfigure clamav-base
... et répondez à ces questions comme suit (acceptez les valeurs par défaut pour toutes les autres questions) :
Type de socket :<-- TCP
Port TCP clamd écoutera sur :<-- 3310
Adresse IP clamd écoutera sur :<-- 127.0.0.1
Redémarrez ensuite Clamd et freshclam :
/etc/init.d/clamav-daemon restart
/etc/init.d/clamav-freshclam restart
Maintenant lancez
netstat -tap | grep clamd
... et vous devriez voir que Clamd écoute sur localhost via TCP :
[email protected] :~# netstat -appuyez | grep clamd
tcp 0 0 localhost.localdom:3310 * :* ÉCOUTER 7911/clamd
[email protected] :~#
3 Reconstruction de ProFTPd
Malheureusement, mod_clamav ne fait pas partie de ProFTPd par défaut, et il n'y a pas de package Ubuntu pour mod_clamav, nous devons donc reconstruire ProFTPd avec mod_clamav. Je vais utiliser le package source Ubuntu de ProFTPd et créer de nouveaux packages ProFTPd .deb avec le support mod_clamav.
Nous installons d'abord tous les packages nécessaires à la reconstruction de ProFTPd :
aptitude build-dep proftpd-dfsg
Nous avons également besoin des packages suivants :
aptitude installer libpam-devdpkg-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
Maintenant, nous téléchargeons le paquet source ProFTPd sur /usr/src :
cd /usr/src
apt-get source proftpd-dfsg
Ensuite, nous téléchargeons mod_clamav dans /usr/src et le décompressons :
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
Ensuite, nous copions les fichiers mod_clamav-0.11rc/mod_clamav.* dans le répertoire proftpd-dfsg-1.3.2c/contrib...
cp mod_clamav-0.11rc/mod_clamav.* proftpd-dfsg-1.3.2c/contrib
... et patcher les sources ProFTPd :
cd proftpd-dfsg-1.3.2c
correctif -p1 <../mod_clamav-0.11rc/proftpd.patch
Ensuite, nous devons éditer debian/rules :
vi debian/rules
Recherchez la section CONF_ARGS et ajoutez-y --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 [...] |
Nous pouvons maintenant reconstruire ProFTPd :
dpkg-buildpackage
Maintenant, nous remontons d'un répertoire, c'est là que les nouveaux packages .deb ont été créés :
cd ..
La commande
ls -l
vous montre les packages disponibles :
[email protected] :/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 racine racine 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 source racine 5115 2010-10-04 17:21 mod_clamav-0.11rc.tar.gz
-rw-r--r -- 1 src racine 930578 2010-10-04 17:38 proftpd-basic_1.3.2c-1_amd64.deb
-rw-r--r-- 1 src racine 630168 2010-10-04 17:38 proftpd -dev_1.3.2c-1_amd64.deb
drwxr-xr-x 14 racine racine 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 source racine 1138 2010-10-04 17:30 proftpd-dfsg_1.3.2c-1.dsc
-rw -r--r-- 1 src racine 3018899 2009-12-22 07:05 proftpd-dfsg_1.3.2c.orig.tar.gz
-rw-r--r-- 1 src racine 1408070 2010- 10-04 17 :38 proftpd-doc_1.3.2c-1_all.deb
-rw-r--r-- 1 source racine 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 src racine 304634 2010-10-04 17:38 proftpd-mod-sqlite_1.3.2c-1_amd64.deb
[email protected] :/usr/src#
Nous pouvons installer les nouveaux packages ProFTPd .deb comme suit :
dpkg -i proftpd*.deb
4 Configuration de ProFTPd
Nous devons maintenant configurer ProFTPd pour utiliser mod_clamav chaque fois qu'un fichier est téléchargé. Ouvrez /etc/proftpd/proftpd.conf...
vi /etc/proftpd/proftpd.conf
... et ajouter la strophe
ClamAV sur
ClamServer 127.0.0.1
ClamPort 3310
quelque part, par ex. sous le
AdminControlsEngine désactivé
rubrique :
[...] <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 [...] |
Redémarrez ProFTPd :
/etc/init.d/proftpd restart
Vérifiez maintenant si mod_clamav est chargé en exécutant :
proftpd -vv
mod_clamav doit être listé dans la sortie :
[email protected] :~# proftpd -vv
ProFTPD Version : 1.3.2c (maint)
Version Scoreboard : 01040002
Construit : Mon Oct 4 17:34:10 CEST 2010
Modules chargés :
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
[email protected ] :~#
C'est ça! Désormais, chaque fois que quelqu'un essaie de télécharger un logiciel malveillant sur votre serveur via ProFTPd, le ou les "mauvais" fichiers sont supprimés. Vous pouvez tester cela en téléchargeant le virus de test Eicar depuis http://www.eicar.org/anti_virus_test_file.htm; essayez de le télécharger sur votre serveur ProFTPd, et si tout se passe bien, il devrait être supprimé :
5 liens
- 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/