Настройка · 3 min read · Jan 03, 2026
Mailscanner/Exim Gateway With Communigate PRO Guide - Page 3
FuzzyOCR
Мы будем хранить хеши изображений в базе данных mysql, чтобы улучшить производительность, чтобы изображения, которые мы уже отсканировали, не сканировались снова, так как OCR является ресурсозатратной деятельностью.
Создание базы данных MySQL
SQL-скрипт создает базу данных и таблицы и добавляет пользователя fuzzyocr с паролем fuzzyocr:
mysql -p < /usr/local/src/devel/FuzzyOcr.mysqlИзмените пароль:
mysqladmin -u fuzzyocr -p fuzzyocr passwordОсновные настройки
Отредактируйте /etc/mail/spamassassin/FuzzyOCR.cf и установите основные параметры:
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
Настройка FuzzyOCR для использования базы данных
Отредактируйте файл /etc/mail/spamassassin/FuzzyOCR.cf и добавьте:
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
Настройка Razor
Зарегистрируйте вашу систему razor:
razor-admin -registerНастройка Clamav
Базовая конфигурация
Эта установка clamav будет использовать как официальные сигнатуры, так и сигнатуры sanesecurity, которые используются для борьбы с изображениями и pdf-спамом, а также с фишинг-атаками.
Добавьте пользователя clamav в группу exim:
usermod -G exim clamavНастройте clamd для прослушивания unix-сокета:
LocalSocket /var/run/clamav/clamd.socketНастройте clamd для запуска при загрузке:
chkconfig --level 345 clamd onSELinux
Чтобы clamav мог работать в режиме принуждения, нам нужно добавить некоторые локализованные модули политики. Пример политики приведен ниже:
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 };
Модуль можно скачать с http://www.topdog-software.com/files/clamlocal.te.gz.
Соберите и установите модуль:
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Настройка Mailwatch
Патч для улучшенного релиза
Этот патч заставляет mailwatch выпускать сообщения через mailfeeder, повторно вводя фактическое сообщение через smtp-сервер, чтобы оно выглядело как оригинальное сообщение, которое было отправлено, в отличие от стандартного релиза mailwatch, который отправляет выпущенное письмо в виде вложения от имени почтового администратора.
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Настройка базового каталога
Поскольку мы устанавливаем mailwatch в /var/www/html вместо /var/www/html/mailscanner, нам нужно внести изменения в конфигурацию conf.php, чтобы отразить это:
define(MAILWATCH_HOME, '/var/www/html');
Настройка для базы данных
Установите следующие параметры в 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');
Карантин
Установите это в файл conf.php:
define(QUARANTINE_USE_FLAG, true);
define(QUARANTINE_DAYS_TO_KEEP, 30);
Установите скрипт очистки карантина
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Отключите установленный скрипт cron для mailscanner /etc/cron.daily/clean.quarantine
$disabled = 1;SELinux
Чтобы mailwatch работал в режиме принуждения, нам нужно установить пользовательский модуль политики selinux. Исходный код модуля приведен ниже:
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;
Исходный код модуля можно скачать с http://www.topdog-software.com/files/mailwatch.te.gz.
Соберите и установите модуль:
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.ppGeoIP
Подключитесь к вашему серверу http://hostname/ войдите, нажмите на меню “Инструменты/Ссылки” ? “Обновить базу данных GeoIP” и нажмите “Запустить сейчас”.
Монитор очереди почты
Установите скрипт мониторинга:
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Отредактируйте для новой структуры каталога:
if(flock($fl, LOCK_EX + LOCK_NB)) {
require "/var/www/html/functions.php";
``Get new posts in your inbox
No spam. Unsubscribe anytime.