Назад | Перейти на главную страницу

Настройка spammassin и clamav с Exim на ubuntu 16.04

Я искал помощь в настройке Spammassassin и ClamAV с Exim (на ubuntu-16.04), но все руководства ужасно устарели. Может ли кто-нибудь поделиться своей настройкой?

Правила могут быть довольно старыми, но процесс настройки практически не изменился. Спецификация Exim4 включает главу о Сканирование контента во время ACL это должно вас начать. Я считаю, что вам нужно установить exim4-daemon-heavy для сканирования на работу.

Это часть моей конфигурации. Я лишил некоторых исследовательских функций.

Как только вы установили clamav вам нужно раскомментировать строку в основном чтении конфигурации:

av_scanner = clamd:/var/run/clamav/clamd.ctl

Это будет в /etc/exim4/conf.d/main/02_exim4-config_options если вы используете раздельную конфигурацию, или /etc/exim4/exim4.conf.template если вы используете вариант с одним файлом конфигурации.

Самый простой способ выполнить сканирование - создать локальный acl данных. /etc/exim4/acls/40_local-config_check-data как это.

# --------------------------------------------------------------------
# Anti-Virus scanning
# This requires an 'av_scanner' setting in the main section.

# Defer if we find malware
defer
  malware = */defer_ok retry=60

# --- BEGIN EXISCAN configuration ---
# Invoke SpamAssassin to obtain $spam_score and $spam_report.
# SA: log messages emulate sa-exim output for eximstats
#
# If the message is classified as spam, and we have not previously
# set $acl_m_sa to indicate that we want to accept it anyway,
# reject it.

# Add a spam flag
warn
  spam = mail:true
  add_header = X-Spam-Connect-Host: $sender_fullhost
  add_header = X-Spam-Mail-From: $sender_address
  add_header = X-Spam-Recipients: $recipients
  add_header = X-Spam-Flag: ${if >= {$spam_score_int}{SPAM_LIMIT}{YES}{NO}}
  add_header = X-Spam-Level: ${tr{$spam_bar}{+}{*}}

# Add headers for data we will be reporting
warn
  condition = ${if >= {$spam_score_int}{SPAM_REPORT}}
  add_header = X-Spam-Report: $spam_report

# New Subject for BACN and SPAM
warn
  condition = ${if >= {$spam_score_int}{SPAM_IS_HAM}}
  add_header = X-Spam-Subject: $h_Subject
  remove_header = Subject
  add_header = Subject: ${if < {$spam_score_int}{SPAM_IS_BACN} \
      {BACN}{SPAM}} $spam_score: $h_Subject

# Blackhole serious Spam
discard
  condition = ${if eq {$acl_m_sa}{canreject}}
  condition = ${if >= {$spam_score_int}{SPAM_BLACKHOLE}}
  message = Discard recipients for this message spam $spam_score.
  logwrite = SA: Action: Blackholed message: score=$spam_score. \
      From \<$sender_address\> $sender_fullhost for $recipients

# Deny Spam
deny
  condition = ${if eq {$acl_m_sa}{canreject}}
  condition = ${if >= {$spam_score_int}{SPAM_REJECT}}
  message = This message looks like spam $spam_score.
  logwrite = SA: Action: permanently rejected message: score=$spam_score. \
      From \<$sender_address\> $sender_fullhost for $recipients

Вам нужно будет определить значения для пределов спама. Они входят в /etc/exim4/conf.d/main/00_local_macros или /etc/exim4/exim4.conf.localmacros в зависимости от метода файла конфигурации, который вы используете.

 # Spamassassin
SPAM_REPORT = -10
SPAM_IS_HAM = 25
SPAM_LIMIT = 35
SPAM_IS_BACN = 50
SPAM_REJECT = 100
SPAM_BLACKHOLE = 200

Переменная acl_m_sa установлен, чтобы указать, является ли это сообщением постмастера / оскорбления или отправлено пользователю. Это задокументировано в примечаниях к sa-exim пакет. Вы можете предпочесть использовать sa-exim а не EXISCAN часть ACL выше.