Comme indiqué sur le site de ClamAV, il y a des problèmes avec les anciennes versions de ClamAV qui se bloquent suite à la non mise à jour des virus. Sous Mac OS X Server 10.4, la dernière version fournie par Apple fait partie des versions bloquées.
Cet article est basé sur le document suivant (en anglais)
Cet article concerne seulement les versions de Mac OS X Server 10.4 supérieures à la version 10.4.7. Il ne faut pas faire ces manipulations sur un Mac OS X Server 10.5 ou 10.6.
Cet article a été écrit suite au problème que vous avez peut-être rencontré si vous avez activé le contrôle anti-virus de votre serveur de messagerie sur un Mac OS X Server 10.4. En effet, les développeurs de ClamAV on fait une mise à jour critique de celui-ci qui bloque les versions trop anciennes incompatibles avec les nouveaux fichiers de définition de virus. J’expliquerais ici comment mettre à jour ClamAV pour ne plus avoir ce problème.
Les versions de ClamAV installées avec Mac OS X Server vont de la 0.88.5 (sous 10.4.7) à la 0.94 (sous 10.4.11), les deux peuvent facilement être mis à jour en 0.95 qui est le minimum à avoir pour que cela fonctionne à nouveau. Je mettrais ici à jour en 0.96.
Le problème est donc de mettre à jour ClamAV sans que la liaison avec Mac OS X Server ne soit cassée.
Pour télécharger les sources de ClamAV, faites les commandes suivantes :
mkdir -p /srcTmp
cd /srcTmp
curl -O http://surfnet.dl.sourceforge.net/project/clamav/clamav/0.96/clamav-0.96.tar.gz
tar xzf clamav-0.96.tar.gz
cd clamav-0.96
Il faut ensuite, si vous avez un Mac PowerPC appliquer des patchs.
curl -o ppcpatch.txt https://wwws.clamav.net/bugzilla/attachment.cgi?id=1243
patch -p1 <ppcpatch.txt
Enfin, il faut compiler clamav :
Pour les Macs PowerPC :
gcc_select 3.3
./configure --prefix=/usr/local --mandir=/usr/local/share/man --sysconfdir=/private/etc/spam/clamav/new --enable-bigstack --with-user=clamav --enable-static --with-group=clamav --with-dbdir=/var/clamav --datadir=/var/clamav
make
sudo make install
Pour les Macs Intel :
gcc_select 4.0
CFLAGS="-O0"
CXXFLAGS="-O0"
./configure --prefix=/usr/local --mandir=/usr/local/share/man --sysconfdir=/private/etc/spam/clamav/new --enable-bigstack --with-user=clamav --enable-static --with-group=clamav --with-dbdir=/var/clamav --datadir=/var/clamav --disable-llvm
make
sudo make install
Voici une procédure pour installer des fichiers de configuration adaptés à Mac OS X Server :
cd /srcTmp
curl -O http://downloads.topicdesk.com/docextras/clamav_extras_104_096.tar.gz
tar xzf clamav_extras_104_096.tar.gz
cd clamav_extras_104_096
sudo chown root:wheel ./*
mkdir -p /private/etc/spam/clamav/new
sudo cp *.conf /private/etc/spam/clamav/new
sudo cp *.plist /System/Library/LaunchDaemons
sudo mkdir -p /var/clamav/tmp
sudo chown clamav:clamav /var/clamav/tmp
Maintenant, il faut désactiver la version Apple et activer la nouvelle version :
sudo /bin/launchctl unload -w /System/Library/LaunchDaemons/org.clamav.freshclam.plist
sudo /bin/launchctl load -w /System/Library/LaunchDaemons/net.clamav.freshclam.plist
sudo /bin/launchctl unload /System/Library/LaunchDaemons/org.amavis.amavisd.plist
sudo /bin/launchctl load /System/Library/LaunchDaemons/org.amavis.amavisd.plist
Si vous voyes l’erreur « Workaround Bonjour : Unknown error : 0 », vous pouvez l’ignorer sans problème.
Il est maintenant préférable de redémarrer pour que ClamAV se relance correctement avec son nouveau format de base de donnée.
Après le redémarrage, vous pouvez vérifier que la bonne version de ClamAV est lancée.
Si vous aviez désactivé la recherche de virus dans ServerAdmin à cause du problème cité au début de l’article, vous pouvez maintenant le réactiver.
En cas de problème, vous pouvez désactiver ClamAV. Pour cela, vous pouvez taper les commandes ci-dessous :
sudo /bin/launchctl unload -w /System/Library/LaunchDaemons/net.clamav.freshclam.plist
sudo /bin/launchctl unload /System/Library/LaunchDaemons/org.amavis.amavisd.plist
Sous certaines conditions, la version 0.96 peut ne pas marcher avec votre configuration. Si c’est le cas, appliquez les manipulations ci-dessus en remplaçant le numéro de version 0.96 par 0.95.3 dans toutes les commandes.
Cette nouvelle version apporte les fonctionnalités suivantes :