Installer K/ClamAV sous Linux ?

mercredi 12 avril 2006

ClamAV Logo En lisant les nouvelles ce matin, j'ai appris que des programmeurs avaient réalisé un virus crossplatform en Assembleur. Il fonctionne aussi bien sous Windows que sous Linux, et peut servir de base à d'autres auteurs de virus pour mettre en oeuvre leur savoir destructeur. Heureusement, ce virus-là n'en est pas réellement un, c'est plutot un guide donnant les lignes directrices pour une comaptibilité avec les deux systèmes. Ca m'a donné une idée: installer l'antivirus ClamAV, opensource et gratuit. Ce n'était pas par nécessité, puisque je n'ai aucune peur de ce virus, que je sais quand comment et pourquoi je suis susceptible de me faire infecter, et que le poste sur lequel j'ai réalisé l'installation peut se permettre de planter et de voir son système réinstallé après formatage. Non, si j'ai installé cet antivirus, ce n'était que pour le tester. Et bien, je n'ai pas été déçu ! En effet, l'installation de l'interface graphique, KlamAV (qui se détâche de ClamAV, celui-ci s'exécutant normalement en ligne de commande), est un vrai parcours du combattant. C'est donc tout naturellement que j'ai entrepris d'écrire cet article qui aura pour but d'expliquer comment installer et configurer ClamAV et l'interface KlamAV sous Linux. Dernière précision avant de commencer: les étapes décrites sont basées sur une OpenSuse 10; elles demeurent valables pour la plupart des grosses distributions (RedHat, Mandrake/Mandriva, etc.), mais seront peut être légèrement différentes pour les distributions basées sur Debian.

ClamAV Logo
En lisant les nouvelles ce matin, j’ai appris que des programmeurs avaient réalisé un virus crossplatform en Assembleur. Il fonctionne aussi bien sous Windows que sous Linux, et peut servir de base à d’autres auteurs de virus pour mettre en oeuvre leur savoir destructeur. Heureusement, ce virus-là n’en est pas réellement un, c’est plutot un guide donnant les lignes directrices pour une comaptibilité avec les deux systèmes. Ca m’a donné une idée: installer l’antivirus ClamAV, opensource et gratuit. Ce n’était pas par nécessité, puisque je n’ai aucune peur de ce virus, que je sais quand comment et pourquoi je suis susceptible de me faire infecter, et que le poste sur lequel j’ai réalisé l’installation peut se permettre de planter et de voir son système réinstallé après formatage. Non, si j’ai installé cet antivirus, ce n’était que pour le tester. Et bien, je n’ai pas été déçu ! En effet, l’installation de l’interface graphique, KlamAV (qui se détâche de ClamAV, celui-ci s’exécutant normalement en ligne de commande), est un vrai parcours du combattant. C’est donc tout naturellement que j’ai entrepris d’écrire cet article qui aura pour but d’expliquer comment installer et configurer ClamAV et l’interface KlamAV sous Linux. Dernière précision avant de commencer: les étapes décrites sont basées sur une OpenSuse 10; elles demeurent valables pour la plupart des grosses distributions (RedHat, Mandrake/Mandriva, etc.), mais seront peut être légèrement différentes pour les distributions basées sur Debian.

Première étape: Installation du moteur ClamAV

Paradoxalement, c’est l’étape la plus simple. Mais cela vaut la peine de faire quelques efforts pour obtenir une belle interface graphique, car ClamAV en ligne de commande est un peu spartiate !

Avant tout, il faut récupérer le logiciel. Vous le trouverez:
- Sur le site officiel (source)
- Sur un FTP non-officiel (RPM)

Pour installer le RPM, vous n’aurez normalement aucun problème: téléchargement sur le bureau par exemple, (double)clic sur l’icône du RPM, clic sur le bouton «Installer», mot de passe root, on attend quelques secondes et c’est fini. Je vous conseille d’installer ClamAV par ce moyen, sauf si vous avez envie de le compiler.

Pour compiler ClamAV depuis les sources, ce n’est pas bien difficile. Il vous faut cependant avoir installé le compileur et les librairies nécessaires. L’installation se déroule normalement:

<pre>./configure make sudo make install [Un mot de passe adminsitrateur (root) est demandé ici]</pre>
<p>En avant pour une explication, une bonne fois pour toutes:
1) Ces commandes sont à taper dans le terminal. Si un mot de passe est demandé, il faut bien entendu le fournir (il n’apparaît pas à l’écran pendant qu’on l’écrit, pour des raisons de sécurité).
2) Il ne faut pas s’affoler si «tout plein» de messages défilent à l’écran: ignorez-les, tant que ça défile c’est que tout va bien. Si au contraire cela ne défile plus, deux possibilités: c’est fini, il y a un problème. S’il y a un problème, dans 99% des cas, ce sera un dépendance non satisfaite.
3) Les logiciels que vous installez ont besoin de bibliothèques («lib» pour «libraries»). Si une de ces bibliothèques est absente, le logiciel ne s’installera pas (ne se compilera pas). Il vous faudra trouver la bibliothèque manquante pour résoudre le conflit de dépendance, et pouvoir compiler le logiciel.
4) Pour trouver le maillon manquant, la meilleure solution reste le gestionnaire de paquetages de votre distribution (gestionnaire de RPM). Pour Mandriva, pensez aussi à URPMI. Si vous ne pouvez obtenir le paquetage nécessaire par ce moyen, allez faire un tour sur http://rpmfind.net
5) N’oubliez pas: il y a toujours un problème, mais il n’est pas toujours difficile à résoudre. Quand on a l’habitude (au bout de 4 ou 5 logiciels compilés…) on repère le fichier manquant en un coup d’oeil et on l’obtient/installe en 2 minutes. Il faut garder son calme (c’est parfois difficile avec Linux!) et procéder méthodiquement.

Deuxième étape: obtenir KlamAV et Dazuko

Vous devez obtenir KlamAV lui-même pour commencer:
- Depuis le site officiel (installer)
- Séparément en deux parties: depuis le site officiel (source) et avec Dazuko (sources)

Petite explication. KlamAV est fourni sous la forme d’un «installer»: un script avec interface graphique à la Windows, qui permet d’installer le logiciel en cliquant plusieurs fois sur «suivant». Mais à la différence des logiciels Windows de ce type, «l’installer» de KlamAV ne vous exonère pas de la phase de préparation de l’installation (recherche des dépendances notamment). Il ne fait qu’automatiser les étapes de configuration et de compilation. Il en découle qu’utiliser l’installer ou non revient exactement au même pour ce qui est des ennuis que nous allons rencontrer. La seul intérêt de l’installer est qu’il contient déjà les sources de KlamAV et de Dazuko, élément nécessaire à l’installation, et qu’il s’occupe de les compiler pour vous «si tout va bien». Nous allons par la suite utiliser cet «installer», et la suite de cet article aura pour but unique de faire en sorte que «tout aille bien».

Si vous décidez de ne pas utiliser l’installer, ce n’est pas vraiment plus compliqué. Vous devrez installer Dazuko manuellement (./configure, make, make install) après avoir suivi la troisième étape de cet article, puis installer KlamAV, soit en passant par le script d’installation (sh install.sh), soit par la procédure normale (./configure && make && su -c ‘make install’).

Troisième étape: préparation de l’installation de Dazuko

Avant de lancer l’installation, il faut préparer le terrain. Et cela, le script d’installation ne le fait pas. C’est à vous de le faire.

Pour installer Dazuko, il vous faut posséder les sources du noyau linux (kernel-sources). Ce n’est pas compliqué: lancez votre gestionnaire de RPM (de KDE, de Mandriva, Yast pour Suse, etc, toutes les distributions grand public en ont un), et recherchez «kernel». Une des entrées sera certainement «kernel-sources» ou quelque chose de ressemblant. Si le gestionnaire indique que les sources sont déjà installées, c’est bon, sinon installez les (vous aurez besoin du CD/DVD de votre distribution, et d’à peu près 200 Mo sur le disque).

Mais avoir les sources n’est pas tout, encore faut-il pouvoir les exploiter. Pour cela, vous devez posséder un compileur. Ou plutot LE compileur, le fameur «gcc». Rendez-vous de nouveau dans votre gestionnaire de paquetages, et recherchez «gcc». En règle générale, vous aurez besoin des éléments suivants:

  • gcc (version 4+)
  • gcc-c++ (version identique à celle de "gcc")
  • gpp (idem)
  • libgcc (idem!)

Une fois les sources installées, vous devez le configurer. C’est un peu plus difficile. Ouvrez une fenêtre de terminal, et tapez:

<pre>cd /usr/src/linux make cloneconfig make modules_prepare</pre>
<p>La dernière ligne devrait être quelque chose dans le genre (SUSE):
<pre> CHK /usr/src/linux-2.6.13-15/include/linux/version.h<br /> make[1]: `arch/i386/kernel/asm-offsets.s' is up to date.<br /></pre>
Sinon, refaire un «make modules_prepare».

Si plus loin lors de la compilation (make) de KlamAV, vous avez le message suivant (ou un message approchant), c’est que cette étape n’a pas été réalisée, ou a été mal réalisée: /bin/sh scripts/basic/fixdep: File not found.

Vous devrez ensuite configurer Module.symvers, absent des sources par défaut:

<pre>cp /boot/symvers-2.6.13-15-i386-default.gz /usr/src/linux<br /> mv symvers-2.6.13-15-i386-default.gz Module.symvers.gz<br /> gunzip /usr/src/linux/Module.symvers.gz<br /> make modules_prepare<br /></pre>
<p>Si plus loin lors de la compilation (make) de KlamAV, vous avez le message suivant (ou un message approchant), c’est que cette étape n’a pas été réalisée, ou a été mal réalisée: /bin/sh scripts/modules/Module.symvers: File not found.

C’est terminé pour Dazuko. Si vous avez décidé d’installer Dazuko et KlamAV séparément, sans utiliser «l’installer» de KlamAV, vous pouvez dors et déjà installer Dazuko. En revanche, si vous suivez à la lettre cet article, attendez un peu, il nous reste quelques petites choses à régler avant de lancer l’installation conjointe des deux éléments.

Quatrième étape: préparation de l’installation de KlamAV

Nous devons satisfaire quelques dépendances. Pour cela, il faut installer les paquetages suivants, avec le gestionnaire de RPM de votre distribution:
<ul> <li />kdelibs3-devel <li />kdebase3-devel <li />kdebindings3 <li />qt3-devel-tools <li />qt3-extensions <li />qt3-static <li />libjpeg-devel <li />curl-devel </ul> <p>

Le fichier libcurl.so est nécessaire à l’installation. Il faut vérifier qu’il est bien présent. Rendez-vous pour cela dans /usr/lib/ et tapez find libcurl*. Vous devriez obtenir une liste contenant ce fichier. Si c’est le cas c’est bon ! Sinon (comme c’est le cas avec SUSE) vous devrez effectuer la manipulation suivante: vérifiez qu’il y a dans la liste libcurl.so.3 et/ou libcurl.so.3.0.0. Vous avez ensuite le choix entre deux possibilités: la première est plus «clean», la seconde est plus sûre. 1) Créez un lien logique: ln -s libcurl.so.3.0.0 libcurl.so, ou 2) recopiez le fichier: cp libcurl.so.3.0.0 libcurl.so.

Cinquième étape: installation assistée de KlamAV

Nous pouvons maintenant installer KlamAV avec l’installeur fourni. Avant de commencer, vous devrez peut être taper en ligne de commande modprobe dazuko, pour le lancer s’il ne l’est pas.

Lancez l’installeur en cliquant simplement dessus. Il se chargera de créer pour vous le compte utilisateur «clamav» avant de lancer une interface graphique dans laquelle il vous suffira effectivement de cliquer sur «suivant» et d’attendre que le travail se fasse tout seul.

Une fois l’installation terminée, vous pourrez trouver KlamAV à l’emplacement suivant (faut y penser…):
/usr/local/kde/bin/klamav

Vous pouvez ajouter cette dernière ligne au menu K où créer une icone sur votre bureau.

Petite précision finale: si cela ne fonctionne plus après avoir redémarré la machine, c’est probablement parce que Dazuko n’est pas lancé. Dans ce cas, modprobe dazuko dans une fenêtre de terminal.