Postfix + Антиспам во FreeBSD

Автор: Dark

Всё описанное здесь является как бы "шпаргалкой" для быстрой настройки почты. Если Вы в первый раз ставите почту почитайте как можно больше правильной документации. Приведены лишь основные параметры в настройке, которые не достаточно просто скопировать чтобы всё заработало.

1. Устанавливаем из портов:

root@localhost# cd /usr/ports/mail/postfix

root@localhost# make config

root@localhost# make install

Либо из пакетов:

root@localhost# pkg_add -vr postfix

Конечно в /etc/rc.conf сразу пишем:

sendmail_enable="NO"

postfix_enable="YES"

2. Главный конфигурационный файл постфикса находится в /usr/local/etc/postfix/main.cf - его и редактируем:

myhostname = mail.domain.ru

mydomain = domain.ru

myorigin = $mydomain

inet_interfaces = all

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

local_recipient_maps = unix:passwd.byname $alias_maps

unknown_local_recipient_reject_code = 550

mynetworks = 192.168.1.0/24, 127.0.0.0/8

alias_database = hash:/etc/aliases

home_mailbox = Maildir/

mail_spool_directory = /var/spool/mail

smtpd_banner = $myhostname ESMTP Windows Mail System 1.0

3. Запускаем newaliases для создания базы с алиасами ящиков и проверяем работает ли почта. Приходящие письма складываются в директории пользователей /home/user/.Maildir. Теперь можно заняться антиспамом, добавляем в main.cf:

# AntiSpam

strict_rfc821_envelopes = yes

strict_mime_encoding_domain = yes

disable_vrfy_command = yes

smtpd_client_restrictions = permit_mynetworks,

reject_rbl_client dsn.rfc-ignorant.org,

reject_rbl_client list.dsbl.org,

reject_rbl_client sbl.spamhaus.org,

reject_rbl_client dnsbl.njabl.org,

reject_rbl_client dynablock.njabl.org,

reject_rbl_client combined.njabl.org,

reject_rbl_client list.dsbl.org,

reject_rbl_client sbl-xbl.spamhaus.org,

reject_rbl_client ex.dnsbl.org,

permit

smtpd_helo_required = yes

smtpd_helo_restriction = permit_mynetworks,

reject_invalid_hostname,

reject_non_fqdn_hostname

smtpd_data_restrictions = reject_unauth_pipelining,

reject_multi_recipient_bounce,

permit

smtpd_delay_reject=no

4. За получение почты пользователями по протоколам pop3 или imap будет отвечать dovecot. Ставим из портов:

root@localhost# cd /usr/ports/mail/dovecot

root@localhost# make config

root@localhost# make install

Ну либо из пакетов:

root@localhost# pkg_add -vr dovecot

root@localhost# cd /usr/local/etc

root@localhost# cp dovecot.conf.sample dovecot.conf

root@localhost# touch /var/log/dovecot.log

5. ... и редактируем конфиг:

listen = *

ssl_disable = yes # если не испоkьзуем SSL, то обязательно

disable_plaintext_auth = no

log_path = /var/log/dovecot.log

login_greeting = Windows POP server.

default_mail_env = maildir:/home/%u/Maildir

6. В нашей простой конфигурации этого достаточно, осталось только дописать dovecot_enable="YES" в /etc/rc.conf и запустить:

/usr/local/etc/dovecot.sh start

Ну вот вообщем-то и всё. Тем не менее, крайне желательно поставить еще и Spamassassin. Дело это несложное, но благодаря Дмитрию Николаеву оно стало совсем простым. За что ему огромное спасибо. Итак качаем его скрипты либо здесь, либо с ounix.ru

Postfix у нас уже есть, ставим spamassassin:

root@localhost# cd /usr/ports/mail/p5-Mail-SpamAssassin

root@localhost# make install

Устанавливаем с DOMAINKEYS (DomainKeys support) и RAZOR (Add Vipul's Razor support), остальное по вкусу.

Прописываем в /etc/rc.conf spamd_enable="YES".

Распаковываем в любое место скачанные скрипты Дмитрия Николаева и запускаем install_sa.sh, скрипт всю работу выполнит сам.

В принципе, хоть и создается конфиг spamassassin-а скриптом, но лучше /usr/local/etc/mail/spamassassin/local.cf подредактировать следующим образом:

rewrite_header Subject *****SPAM*****

report_safe 0

required_score 5.0

skip_rbl_checks 1 # у нас этим занимается Postfix

use_razor2 1

use_dcc 1

use_pyzor 1

ok_languages en ru

ok_locales en ru

rewrite_subject 1

report_safe 0

use_terse_report 0

use_bayes 1

bayes_path /var/mail/bayes

auto_learn 1

skip_rbl_checks 0

use_razor2 1

dcc_add_header 1

dns_available yes

header LOCAL_RCVD Received =~ /.*(S+.domain.coms+[.*])/

describe LOCAL_RCVD Received from local machine

score LOCAL_RCVD -50

score DCC_CHECK 4.000

score RAZOR2_CHECK 2.500

score BAYES_99 4.300

score BAYES_90 3.500

score BAYES_80 3.000

Кстати, скрипт автоматом вставляет в main.cf постфикса строку header_checks = regexp:/usr/local/etc/postfix/header_checks с которой у меня постфикс работать не хочет, в моем случае, пришлось её закоментировать. Но вроде и так спам режет неплохо.

И напоследок:

root@localhost# /usr/local/etc/rc.d/sa-spamd.sh restart

Stopping spamd.

Waiting for PIDS: 53486 53487

Starting spamd.

root@localhost# postfix reload

postfix/postfix-script: refreshing the Postfix mail system

Последнее изменение: четверг, 8 мая 2008 г. 15:55:44

http://www.ounix.ru/index.php?page=article&id=17

Обновлено: 12.03.2015