Guide technique · 4 min read · Jan 03, 2026

Mailscanner/Exim Gateway Avec Communigate PRO Guide - Page 3

FuzzyOCR

Nous allons stocker les hachages d’images dans une base de données mysql pour améliorer les performances afin que les images que nous avons déjà scannées ne soient pas scannées à nouveau, car l’OCR est une activité gourmande en ressources.

Créer une base de données MySQL

Le script sql crée la base de données et les tables et ajoute un utilisateur fuzzyocr avec le mot de passe fuzzyocr :

mysql -p < /usr/local/src/devel/FuzzyOcr.mysql

Changer le mot de passe :

mysqladmin -u fuzzyocr -p fuzzyocr password

Paramètres de base

Modifier /etc/mail/spamassassin/FuzzyOCR.cf et définir les options de base :

focr_path_bin /usr/bin:/usr/local/bin  
focr_minimal_scanset 1  
focr_autosort_scanset 1  
focr_enable_image_hashing 3  
focr_logfile /tmp/FuzzyOcr.log

Faire en sorte que FuzzyOCR utilise la base de données

Modifier le fichier /etc/mail/spamassassin/FuzzyOCR.cf et ajouter :

focr_mysql_db FuzzyOcr  
focr_mysql_hash Hash  
focr_mysql_safe Safe  
focr_mysql_user fuzzyocr  
focr_mysql_pass password  
focr_mysql_host localhost  
focr_mysql_port 3306  
focr_mysql_socket /var/lib/mysql/mysql.sock

Configurer Razor

Enregistrer votre système razor :

razor-admin -register

Configurer Clamav

Configuration de base

Cette installation de clamav utilisera à la fois les signatures officielles ainsi que les signatures sanesecurity qui sont utilisées pour combattre le spam d’images et de pdf ainsi que les attaques de phishing.

Ajouter l’utilisateur clamav au groupe exim :

usermod -G exim clamav

Configurer clamd pour écouter le socket unix :

LocalSocket /var/run/clamav/clamd.socket

Configurer clamd pour démarrer au démarrage :

chkconfig --level 345 clamd on

SELinux

Pour que clamav puisse fonctionner en mode d’application, nous devons ajouter quelques modules de politique localisés. La politique d’exemple est ci-dessous :

module clamlocal 1.0;
require {
        class dir { add_name read remove_name search write };
        class file { create getattr lock read write append };
        type clamd_t;
        type clamd_var_log_t;
        type logwatch_t;
        type proc_t;
        type sysctl_kernel_t;
        type var_spool_t;
        type var_t;
        type var_log_t;
        role system_r;
};
allow clamd_t proc_t:file { getattr read };
allow clamd_t sysctl_kernel_t:dir search;
allow clamd_t sysctl_kernel_t:file read;
allow clamd_t var_spool_t:dir read;
allow clamd_t var_spool_t:file { getattr read };
allow clamd_t var_t:dir { add_name read remove_name write };
allow clamd_t var_t:file { create getattr lock read write };
allow logwatch_t clamd_var_log_t:dir { read search };
allow clamd_t var_log_t:file append;
allow clamd_t var_t:dir { read write };

Le module peut être téléchargé depuis http://www.topdog-software.com/files/clamlocal.te.gz.

Construire et installer le module :

wget http://www.topdog-software.com/files/clamlocal.te.gz  
gunzip clamlocal.te.gz  
checkmodule -M -m -o clamlocal.mod clamlocal.te  
semodule_package -o clamlocal.pp -m clamlocal.mod  
semodule -i clamlocal.pp

Configurer Mailwatch

Patch pour version améliorée

Ce patch permet à mailwatch de libérer des messages via mailfeeder en réinjectant le message réel à travers le serveur smtp pour le faire apparaître comme le message original qui a été envoyé, contrairement à la libération par défaut de mailwatch qui envoie le mail libéré en tant que pièce jointe depuis le compte postmaster.

wget http://www.topdog-software.com/files/mailwatch_release.patch.gz  
gunzip mailwatch_release.patch.gz  
cd /var/www/html  
patch -i ../mailwatch_release.patch

Configurer le répertoire de base

Puisque nous installons mailwatch dans /var/www/html au lieu de /var/www/html/mailscanner, nous devons apporter des modifications au fichier de configuration conf.php pour refléter cela :

define(MAILWATCH_HOME, '/var/www/html');

Configurer pour la base de données

Définir les options suivantes dans conf.php :

define(DB_TYPE, 'mysql');
define(DB_USER, 'mailwatch');
define(DB_PASS, 'password');
define(DB_HOST, 'localhost:/var/lib/mysql/mysql.sock');
define(DB_NAME, 'mailscanner');

Quarantaine

Définir cela dans le fichier conf.php :

define(QUARANTINE_USE_FLAG, true);
define(QUARANTINE_DAYS_TO_KEEP, 30);

Installer le script de nettoyage de la quarantaine

cp /usr/local/src/mailwatch-1.0.4/tools/quarantine_maint.php /usr/local/bin/  
chmod +x /usr/local/bin/quarantine_maint.php  
ln -s /usr/local/bin/quarantine_maint.php /etc/cron.daily

Désactiver le script cron installé par mailscanner /etc/cron.daily/clean.quarantine

$disabled = 1;

SELinux

Pour que mailwatch fonctionne en mode d’application, nous devons installer un module de politique selinux personnalisé. La source du module est ci-dessous :

module mailwatch 1.0;

require {
        class dir { getattr read search };
        class file { getattr read execute execute_no_trans ioctl };
        class lnk_file { read getattr };
        class tcp_socket name_connect;
        type spamc_exec_t;
        type clamd_t;
        type getty_t;
        type hostname_exec_t;
        type initrc_t;
        type unconfined_t;
        type var_spool_t;
        type etc_mail_t;
        type ls_exec_t;
        type smtp_port_t;
        type spamassassin_exec_t;
        type httpd_sys_content_t;
        type httpd_t;
        type mysqld_t;
        type lib_t;
};

allow httpd_t clamd_t:dir getattr;
allow httpd_t hostname_exec_t:file getattr;
allow httpd_t var_spool_t:dir read;
allow httpd_t var_spool_t:file { getattr ioctl read };
allow httpd_t spamc_exec_t:file { execute execute_no_trans getattr read ioctl };
allow httpd_t etc_mail_t:dir { search getattr read };
allow httpd_t etc_mail_t:file { getattr read ioctl };
allow httpd_t etc_mail_t:lnk_file { getattr read };
allow httpd_t hostname_exec_t:file { execute read execute_no_trans };
allow httpd_t unconfined_t:dir { getattr search read };
allow httpd_t unconfined_t:file { read };
allow httpd_t initrc_t:dir { getattr search read };
allow httpd_t initrc_t:file read;
allow httpd_t ls_exec_t:file { execute read getattr execute_no_trans };
allow httpd_t spamassassin_exec_t:file { execute getattr read execute_no_trans ioctl };
allow mysqld_t httpd_sys_content_t:dir { getattr read search };
allow mysqld_t httpd_sys_content_t:file { read getattr };
allow httpd_t smtp_port_t:tcp_socket name_connect;
allow httpd_t lib_t:file execute_no_trans;

La source du module peut être téléchargée depuis http://www.topdog-software.com/files/mailwatch.te.gz.

Construire et installer le module :

wget http://www.topdog-software.com/files/mailwatch.te.gz  
gunzip mailwatch.te.gz  
checkmodule -M -m -o mailwatch.mod mailwatch.te  
semodule_package -o mailwatch.pp -m mailwatch.mod  
semodule -i mailwatch.pp

GeoIP

Connectez-vous à votre serveur http://hostname/ login, cliquez sur le menu “Outils/Liens” ? “Mettre à jour la base de données GeoIP” et cliquez sur “Exécuter maintenant”.

Moniteur de file d’attente de mails

Installer le script de surveillance :

cp /usr/local/src/mailwatch-1.0.4/mailq.php /usr/local/bin  
chmod +x /usr/local/bin/mailq.php  
crontab -e  
0-59 * * * * /usr/local/bin/mailq.php

Modifier pour la nouvelle disposition du répertoire :

if(flock($fl, LOCK_EX + LOCK_NB)) {
 require "/var/www/html/functions.php";
Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.