Guida tecnica · 4 min read · Jan 03, 2026

Mailscanner/Exim Gateway Con Guida Communigate PRO - Pagina 3

FuzzyOCR

Memorizzeremo gli hash delle immagini in un database mysql per migliorare le prestazioni in modo che le immagini che abbiamo già scansionato non vengano scansionate di nuovo poiché l’OCR è un’attività che richiede molte risorse.

Crea Database MySQL

Lo script sql crea il database e le tabelle e aggiunge un utente fuzzyocr con la password fuzzyocr:

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

Cambia la password:

mysqladmin -u fuzzyocr -p fuzzyocr password

Impostazioni di Base

Modifica /etc/mail/spamassassin/FuzzyOCR.cf e imposta le opzioni di 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

Fai Usare FuzzyOCR al Database

Modifica il file /etc/mail/spamassassin/FuzzyOCR.cf e aggiungi:

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

Configura Razor

Registrati nel tuo sistema razor:

razor-admin -register

Configura Clamav

Configurazione di Base

Questa installazione di clamav utilizzerà sia le firme ufficiali che le firme sanesecurity che vengono utilizzate per combattere lo spam di immagini e pdf, così come gli attacchi di phishing.

Aggiungi l’utente clamav al gruppo exim:

usermod -G exim clamav

Configura clamd per ascoltare il socket unix:

LocalSocket /var/run/clamav/clamd.socket

Configura clamd per avviarsi all’avvio:

chkconfig --level 345 clamd on

SELinux

Affinché clamav possa funzionare in modalità enforcing, dobbiamo aggiungere alcuni moduli di policy localizzati. La policy di esempio è qui sotto:

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 };

Il modulo può essere scaricato da http://www.topdog-software.com/files/clamlocal.te.gz.

Costruisci e installa il modulo:

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

Configura Mailwatch

Patch Per Rilascio Migliorato

Questa patch fa sì che mailwatch rilasci messaggi tramite mailfeeder reinserendo il messaggio effettivo attraverso il server smtp per farlo apparire come il messaggio originale che è stato inviato, a differenza del rilascio predefinito di mailwatch che invia la mail rilasciata come allegato dall’account 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

Configura La Directory Base

Poiché stiamo installando mailwatch in /var/www/html invece di /var/www/html/mailscanner, dobbiamo apportare modifiche al file di configurazione conf.php per riflettere questo:

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

Configura Per Database

Imposta le seguenti opzioni in 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');

Quarantena

Imposta questo nel file conf.php:

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

Installa lo script di pulizia della quarantena

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

Disabilita lo script cron installato da mailscanner /etc/cron.daily/clean.quarantine

$disabled = 1;

SELinux

Affinché mailwatch funzioni in modalità enforcing, dobbiamo installare un modulo di policy selinux personalizzato. La sorgente del modulo è qui sotto:

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 sorgente del modulo può essere scaricata da http://www.topdog-software.com/files/mailwatch.te.gz.

Costruisci e installa il modulo:

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

Collegati al tuo server http://hostname/ login, fai clic sul menu “Strumenti/Collegamenti” ? “Aggiorna database GeoIP” e fai clic su “Esegui ora”.

Monitor della Coda di Posta

Installa lo script di monitoraggio:

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

Modifica per il nuovo layout della directory:

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

``
Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.