ClamAV

- http://www.clamav.net/ -

ClamAV est un antivirus libre que nous utilisons le plus souvent dans un serveur de messagerie pour scanner les mails à la recherche de vers, virus, spam, ... C'est donc un outil de l'AUF pour la lutte contre la propagation des virus et aussi des spams.

Les sources officielles se trouvent sur http://www.clamav.net

Du côté de notre distro préférée, le projet debian-volatile se charge de maintenir les paquets qu'il faut pour que notre ClamAV fonctionne et soit à peu près à jour comme il faut.

Donc, il faut avoir cette entrée dans le fichier sources.list de tous tes serveurs de messagerie :

deb http://volatile.debian.org/debian-volatile lenny/volatile main

Deux sous-programmes :

- freshclam : qui se charge des mises à jour de la base de définitions des virus

- clamd : qui fait le vrai boulot, scanne les fichiers à la recherche de virus

Il faut donc installer les paquets clamav-daemon et clamav-freshclam.

Les fichiers de configurations sont dans /etc/clamav et sont :

/etc/clamav/clamd.conf

C’est le principal fichier de configuration, c’est lui qui précise les paramètres comme le type de fichiers à scanner ou ne pas scanner et les options qui vont avec, les fichiers où écrire les logs, la taille maximale des fichiers à scanner, …

Pour ce fichier, les options pouvant être retenues sont :

   1 ##
   2 ## Gestion des Logs
   3 ##
   4 ##
   5 
   6 # Le fichier de log 
   7 LogFile /var/log/clamav/clamd.log
   8 
   9 # Protéger le fichier de log contre les écritures concurrentes
  10 LogFileUnlock false
  11 # Permet d'éviter de lancer plusieurs clamav avec le même fichier de log
  12 
  13 # Désactiver la gestion de la rotation par clamav, et laisser logrotate le faire
  14 LogFileMaxSize 0
  15 # Normalement, sur une lenny, c'est déjà bien géré
  16 
  17 # Log time with each message, je préfère ; ça fait quelques octets en plus par log, 
  18 # mais j'imagine vraiment mal des logs sans heures.
  19 LogTime true
  20 
  21 # Normal non, on va pas se mettre à logguer les trucs clean
  22 LogClean no
  23 
  24 # On log déjà dans /var/log/clamav/clamd.log
  25 LogSyslog no
  26 
  27 # Specify the type of syslog messages
  28 # En plus, on n'en a pas besoin, donc peut être mis en comment
  29 LogFacility LOG_LOCAL6
  30 
  31 # A mettre à yes seulement pendant la phase de test
  32 LogVerbose no
  33 
  34 ##
  35 ## Gestion du processus
  36 ##
  37 ##
  38 
  39 # Facile
  40 PidFile /var/run/clamav/clamd.pid
  41 
  42 # Cette option est vraiment optionnelle. Ça précise juste le répertoire temporaire
  43 TemporaryDirectory /tmp
  44 
  45 # Chemin vers le répertoire de la base de données
  46 DatabaseDirectory /var/lib/clamav
  47 
  48 # Charger uniquement les définitions officielles publiées par le projet ClamAV : 
  49 # je garde à no parce que c'est la config par défaut.
  50 OfficialDatabaseOnly no
  51 
  52 # Dans ma config, je mets cette option en commentaire, parce que je fais communiquer
  53 # clamav et exim par une autre méthode avec IP et port réseau.
  54 #LocalSocket /var/run/clamav/clamd.ctl
  55 
  56 # Paramètres en commentaire aussi chez moi, mais à activer optionnellement chez les 
  57 # utilisateurs de LocalSocket
  58 #LocalSocketGroup clamav
  59 #LocalSocketMode 660
  60 #FixStaleSocket yes
  61 
  62 # Moi j'utilise plutôt ça, au lieu de LocalSocket :
  63 # L'adresse IP et le port sur lequel écoute clamav
  64 TCPAddr 127.0.0.1
  65 TCPSocket 3310
  66 
  67 # Maximum length the queue of pending connections may grow to :
  68 MaxConnectionQueueLength 15
  69 
  70 # Close the connection when the data size limit is exceeded.
  71 # The value should match your MTA's limit for a maximum attachment size.
  72 StreamMaxLength 10M
  73 
  74 # Maximum number of threads running at the same time.
  75 MaxThreads 12
  76 
  77 # Cette option spécifie le temps en secondes après lequel clamd ferme la
  78 # connexion si le client ne réagit plus
  79 CommandReadTimeout 5
  80 
  81 # This option specifies how long to wait (in miliseconds) if the send buffer is full.
  82 # Keep this value low to prevent clamd hanging
  83 SendBufTimeout 200
  84 
  85 # Maximum number of queued items (including those being processed by MaxThreads threads)
  86 # It is recommended to have this value at least twice MaxThreads if possible.
  87 MaxQueue 100
  88 
  89 # Waiting for a new job will timeout after this time (seconds).
  90 IdleTimeout 30
  91 
  92 # Profondeur max des répertoires scannés
  93 MaxDirectoryRecursion 15
  94 
  95 # Follow directory symlinks. Ça c'est des coups à faire planter son clamav en mettant yes.
  96 FollowDirectorySymlinks no
  97 
  98 # Follow regular file symlinks.
  99 FollowFileSymlinks no
 100 
 101 # Scan files and directories on other filesystems.
 102 CrossFilesystems yes
 103 
 104 # Perform a database check, toutes les 10 mn
 105 SelfCheck 600
 106 
 107 # Run as clamav user.
 108 User clamav
 109 
 110 # Initialize supplementary group access (clamd must be started by root).
 111 AllowSupplementaryGroups no
 112 
 113 # Stop daemon when libclamav reports out of memory condition.
 114 ExitOnOOM yes
 115 
 116 # Don't fork into background ?
 117 Foreground no
 118 
 119 # Disable debug messages in libclamav ?
 120 Debug no
 121 
 122 # Remove temporary files ? (for debug purposes).
 123 LeaveTemporaryFiles no
 124 
 125 # Detect Possibly Unwanted Applications.
 126 DetectPUA no
 127 
 128 # In some cases (eg. complex malware, exploits in graphic files, and others),
 129 # ClamAV uses special algorithms to provide accurate detection. This option
 130 # controls the algorithmic detection.
 131 # Je le laisse donc à yes comme eux
 132 AlgorithmicDetection yes
 133 
 134 ##
 135 ## Executable files
 136 ##
 137 
 138 # PE = Portable Executable, exécutable de Windows
 139 # This option allows ClamAV to perform a deeper analysis of executable files 
 140 ScanPE yes
 141 
 142 # Executable and Linking Format is a standard format for UN*X executables.
 143 # This option allows you to control the scanning of ELF files.
 144 ScanELF yes
 145 
 146 # With this option clamav will try to detect broken executables (both PE and
 147 # ELF) and mark them as Broken.Executable.
 148 # Je le garde à no comme eux
 149 DetectBrokenExecutables no
 150 
 151 ##
 152 ## Documents
 153 ##
 154 
 155 # This option enables scanning of OLE2 files, such as Microsoft Office
 156 # documents and .msi files.
 157 ScanOLE2 yes
 158 
 159 # This option enables scanning within PDF files.
 160 ScanPDF yes
 161 
 162 ##
 163 ## Mail files
 164 ##
 165 
 166 
 167 # Enable internal e-mail scanner.
 168 ScanMail yes
 169 
 170 # WARNING: This option may open your system to a DoS attack.
 171 #          Never use it on loaded servers.
 172 ScanPartialMessages no
 173 
 174 # Avec cette option, ClamAV essaiera de détecter les tentatives de phishing
 175 PhishingSignatures yes
 176 
 177 # Scanne URLs trouvés dans les emails à la recherche de tentative de phishing
 178 PhishingScanURLs yes
 179 
 180 # Bloquer les SSL qui ne coïncident pas dans les USLs ?
 181 # This can lead to false positives.
 182 PhishingAlwaysBlockSSLMismatch no
 183 
 184 # Ne pas bloquer les URLs masqués
 185 PhishingAlwaysBlockCloak no
 186 
 187 # If an archive contains both a heuristically detected
 188 # virus/phish, and a real malware, the real malware will be reported
 189 HeuristicScanPrecedence no
 190 
 191 ##
 192 ## Data Loss Prevention (DLP)
 193 ##
 194 
 195 # Enable the DLP module ?
 196 StructuredDataDetection no
 197 
 198 ##
 199 ## HTML
 200 ##
 201 
 202 # Scanne de l'HTML
 203 ScanHTML yes
 204 
 205 ##
 206 ## Archives
 207 ##
 208 
 209 # Scanne l'archive et le fichier compressé
 210 ScanArchive yes
 211 
 212 # Ne pas bloquer les archives chiffrées 
 213 ArchiveBlockEncrypted no
 214 
 215 ##
 216 ## Limites
 217 ##
 218 
 219 # The options below protect your system against Denial of Service attacks
 220 # using archive bombs.
 221 
 222 # Taille maximum de chaque fichier reçu
 223 # Autrement dit, si en décompressant une archive, on trouve une taille de 
 224 # plus de 100M, on scannera seulement jusqu'au 100M
 225 MaxScanSize 100M
 226 
 227 # Taille maximum de chaque unité de fichier scannée
 228 # S'applique sur l'archive, et chaque fichier de l'archive
 229 MaxFileSize 10M
 230 
 231 # La profondeur d'archivement autorisée (si on peut l'appeler comme ça)
 232 MaxRecursion 15
 233 
 234 # Nombre de fichiers maximum à scanner dans une archive
 235 MaxFiles 10000
 236 
 237 ##
 238 ## Clamuko settings
 239 ##
 240 
 241 # Enable Clamuko ?
 242 # Je le mettrai à yes le jour je comprendrai et saurai comment ça marche ;-)
 243 ClamukoScanOnAccess no

/etc/clamav/freshclam.conf

C’est le fichier de configuration de freshclam. Il précise les paramètres de mise à jour automatique de l’antivirus (toutes les 2h), les serveurs proxy, si nécessaire, le nombre de tentatives de mise à jour, les fichiers logs, ...

Pour ce fichier, les options à retenir en plus de la config par défaut sont :

   1 # By default when started freshclam drops privileges and switches to the
   2 # "clamav" user. This directive allows you to change the database owner.
   3 DatabaseOwner clamav
   4 
   5 # Initialize supplementary group access (freshclam must be started by root).
   6 AllowSupplementaryGroups no
   7 
   8 # Path to the log file (make sure it has proper permissions)
   9 UpdateLogFile /var/log/clamav/freshclam.log
  10 
  11 # Maximum size of the log file.
  12 # Value of 0 disables the limit.
  13 # Gérer avec logrotate
  14 LogFileMaxSize 0
  15 
  16 # Comme d'habitude, je log avec le temps
  17 LogTime yes
  18 
  19 # Pas de bruit inutile
  20 #LogVerbose no
  21 # Bon, bizarrement je l'ai mis à yes. Donc ça ne génère pas autant d'octets que ça.
  22 LogVerbose yes
  23 
  24 # Use system logger : NO
  25 LogSyslog no
  26 
  27 # This option allows you to save the process identifier of the daemon
  28 PidFile /var/run/clamav/freshclam.pid
  29 
  30 # Path to the database directory.
  31 # WARNING: It must match clamd.conf's directive!
  32 # ATTENTION : pareil que celui de clamd.conf
  33 DatabaseDirectory /var/lib/clamav/
  34 
  35 # Use DNS to verify virus database version. Freshclam uses DNS TXT records
  36 # to verify database and software versions. With this directive you can change
  37 # the database verification domain.
  38 # WARNING: Do not touch it unless you're configuring freshclam to use your
  39 # own database verification domain.
  40 DNSDatabaseInfo current.cvd.clamav.net
  41 
  42 # Où XY représente le country code de votre pays
  43 # DatabaseMirror db.XY.clamav.net 
  44 # Par exemeple :
  45 DatabaseMirror db.sn.clamav.net 
  46 
  47 # database.clamav.net is a round-robin record which points to our most 
  48 # reliable mirrors. It's used as a fall back in case db.XY.clamav.net is 
  49 # not working.
  50 # En gros, à ne pas modifier
  51 DatabaseMirror database.clamav.net
  52 
  53 # How many attempts to make before giving up.
  54 MaxAttempts 5
  55 
  56 # With this option you can control scripted updates. It's highly recommended
  57 # to keep it enabled.
  58 ScriptedUpdates yes
  59 
  60 # Ne pas compresser la base de données locale
  61 CompressLocalDatabase no
  62 
  63 # Number of database checks per day is 24 (Chaque heure)
  64 Checks 24
  65 
  66 # Send the RELOAD command to clamd.
  67 NotifyClamd /etc/clamav/clamd.conf
  68 
  69 # Don't fork into background ?
  70 Foreground no
  71 
  72 # Enable debug messages in libclamav ? Ça va pas non ?
  73 Debug no
  74 
  75 # Timeout in seconds when connecting to database server.
  76 ConnectTimeout 60
  77 
  78 # Timeout in seconds when reading from database server.
  79 ReceiveTimeout 60

Quelques outils pour vérifier que clamav fonctionne bien

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
SCAN /home/roger/
/home/roger/: OK
Connection closed by foreign host.

/etc/clamav/freshclam.conf: OK
/etc/clamav/clamd.conf.ucf-dist: OK
/etc/clamav/freshclam.conf.ucf-dist: OK
/etc/clamav/clamd.conf: OK

----------- SCAN SUMMARY -----------
Known viruses: 762708
Engine version: 0.96
Scanned directories: 4
Scanned files: 4
Infected files: 0
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 2.614 sec (0 m 2 s)

/tmp: OK

----------- SCAN SUMMARY -----------
Infected files: 0
Time: 0.002 sec (0 m 0 s)

Sources :

ClamAV http://www.yerbynet.com/Cours.html exim google


CatégorieLogiciel CatégorieRecommandationsARI

ClamAV (dernière édition le 2010-05-05 16:32:18 par RogerYerbanga)