
Установка и настройка Postfix из портов во freeBSD
Postfix создавался как альтернатива Sendmail и он быстро работает, легок в администрировании, и безопасный.
Для начала установить нужно SpamAssassin, поставлю я его из портов:
# cd /usr/ports/mail/p5-Mail-SpamAssassin # make all install clean
В меню установки я отключаю “SPAMC” и выбираю “GNUPG“, “MYSQL“, “RAZOR”.
Создам нового юзера “vscan”
# pw groupadd vscan # pw useradd -n vscan -c Amavisd\ User -d /var/amavisd -g vscan -m # passwd vscan
Затем вводим 2 раз пасс.
Создам файлик и отредактирую его:
# ee /usr/local/etc/mail/spamassassin/local.cf
use_bayes 1 bayes_store_module Mail::SpamAssassin::BayesStore::MySQL bayes_sql_dsn DBI:mysql:maia bayes_sql_username vscan bayes_sql_password vscan_password auto_whitelist_factory Mail::SpamAssassin::SQLBasedAddrList user_awl_dsn DBI:mysql:maia user_awl_sql_username vscan user_awl_sql_password vscan_password bayes_auto_expire 0 # Change 192.168.1.* to your actual internal/external address(es). internal_networks 192.168.1.0/24 trusted_networks 192.168.1/24
Настраиваем отчеты для RAZOR
# su - vscan # razor-admin -discover # razor-admin -create # razor-admin -register -l -user=username@domain.tld -pass=some_password # exit
Замечание!!!! Пользователь о котором я говорил выше, должен уже созданным пользователем, ящик которого вы проверяете. Это нужно системе razor2 для идентификации и отправки отчетов о спаме.
Установка и настройка Postfix из портов во freeBSD
# cd /usr/ports/mail/postfix # make install clean
В меню параметров выбираем “DOVECOT“, “TLS“, “BDB“, “MySQL“ и “VDA”. НЕ ЗАБЫВАЕМ ОБ ЭТОМ!
После установки постфикса, вылетит строка с надписью «Would you like to activate Postfix in (хотите ли вы активировать Postfix в) /etc/mail/mailer.conf [n]?», пишем «y» и жмем «Enter».
Теперь, чтобы избежать путаницы с другими приложениями, которые используют постфиксный синтаксис сделаем быструю символическую ссылку:
# ln -s /usr/local/etc/postfix /etc/postfix
Добавляем в автозапуск:
# echo 'postfix_enable="YES" ' >> /etc/rc.conf
Создам файлик и отредактирую его:
# ee /etc/periodic.conf
Добавим в файл следующие строки.
daily_clean_hoststat_enable="NO" daily_status_mail_rejects_enable="NO" daily_status_include_submit_mailq="NO" daily_submit_queuerun="NO"
Создаю безопасный SMTP SSL сертификат:
# mkdir -p /etc/ssl/postfix # cd /etc/ssl/postfix # openssl req -new -x509 -nodes -out smtpd.pem -keyout smtpd.pem -days 3650 # chmod 640 /etc/ssl/postfix/smtpd.pem # chgrp -R postfix /etc/ssl/postfix
После чего начнем редактирование конфигурации:
# ee /usr/local/etc/postfix/main.cf
... #ALIAS DATABASE alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases #Учтите что это размер сообщения целиком, а не только его вложения message_size_limit = 10240000 # SOFT BOUNCE # # The soft_bounce parameter provides a limited safety net for # testing. When soft_bounce is enabled, mail will remain queued that # would otherwise bounce. This parameter disables locally-generated # bounces, and prevents the SMTP server from rejecting mail permanently # (by changing 5xx replies into 4xx replies). However, soft_bounce # is no cure for address rewriting mistakes or mail routing mistakes. # soft_bounce = no # SASL CONFIG # broken_sasl_auth_clients = yes smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, # Пришлось убрать, не у всех хостов есть # reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unauth_destination, reject_unauth_pipelining, reject_invalid_hostname, # Убрал так как не работают # reject_rbl_client list.dsbl.org, # reject_rbl_client bl.spamcop.net, # reject_rbl_client sbl-xbl.spamhaus.org smtpd_sasl_auth_enable = yes smtpd_sasl_authenticated_header = yes smtpd_sasl_local_domain = $myhostname smtpd_sasl_security_options = noanonymous smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth # TLS CONFIG # smtp_use_tls = yes smtpd_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_key_file = /etc/ssl/postfix/smtpd.pem smtpd_tls_cert_file = /etc/ssl/postfix/smtpd.pem smtpd_tls_CAfile = /etc/ssl/postfix/smtpd.pem smtpd_tls_loglevel = 0 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom # MySQL Configuration # virtual_alias_maps = proxy:mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf virtual_gid_maps = static:125 virtual_mailbox_base = /usr/local/virtual virtual_mailbox_domains = proxy:mysql:/usr/local/etc/postfix/mysql_virtual_domains_maps.cf virtual_mailbox_limit = 51200000 virtual_mailbox_maps = proxy:mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf virtual_minimum_uid = 125 virtual_transport = virtual virtual_uid_maps = static:125 # Additional for quota support # vda patch в портах FreeBSD по умолчанию накладывается # Установка и настройка Postfix из портов во freeBSD # Do we use Courier maildir++ quotas? # Default: no virtual_maildir_extended = yes #virtual_mailbox_limit_inbox = yes virtual_create_maildirsize = yes virtual_mailbox_extended = yes virtual_mailbox_limit_maps = proxy:mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_limit_maps.cf proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps virtual_mailbox_limit_override = yes virtual_maildir_limit_message = Sorry, this user has overdrawn their diskspace quota. Please try again later. virtual_overquota_bounce = yes ... #Строку ниже заремил (прим переводчика) #myhostname = host.domain.tld ... #Строку ниже заремил (прим переводчика) #mydomain = domain.tld ... #Строку ниже заремил (прим переводчика), перестала отправляться локальная почта #mydestination = localhost.$mydomain, localhost ... relay_domains = proxy:mysql:/usr/local/etc/postfix/mysql_relay_domains_maps.cf ...
Отредактирую файлик master.cf:
# ee /usr/local/etc/postfix/master.cf
... smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject ...
Создаю и после этого редактирую файл mysql_virtual_alias_maps.cf:
# ee /usr/local/etc/postfix/mysql_virtual_alias_maps.cf
user = postfix password = postfix_sql_password hosts = localhost dbname = postfix query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
Создаю и после этого редактирую файл mysql_virtual_domains_maps.cf:
# ee /usr/local/etc/postfix/mysql_virtual_domains_maps.cf
user = postfix password = postfix_sql_password hosts = localhost dbname = postfix query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '0' and active = '1'
Создаю и после этого редактирую файл /mysql_virtual_mailbox_maps.cf:
# ee /usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf
user = postfix password = postfix_sql_password hosts = localhost dbname = postfix query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'
Создаю и после этого редактирую файл mysql_virtual_mailbox_limit_maps.cf:
# ee /usr/local/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
user = postfix password = postfix_sql_password hosts = localhost dbname = postfix query = SELECT quota FROM mailbox WHERE username='%s'
Создаю и после этого редактирую файл mysql_relay_domains_maps.cf:
# ee /usr/local/etc/postfix/mysql_relay_domains_maps.cf
user = postfix password = postfix_sql_password hosts = localhost dbname = postfix query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '1'
Обеспечиваем полную безопасность файликов с пасами:
# chmod 640 /usr/local/etc/postfix/mysql_* # chgrp postfix /usr/local/etc/postfix/mysql_*
Редактируем файл /etc/aliases
Меняем root на свой почтовый адрес для доставки системных сообщений.
root: you@your-domain.tld
Создаем файл aliases.db
# ee /usr/bin/newaliases
Создаем папку для вирт почтовых ящиков
# mkdir /usr/local/virtual # chown -R postfix:postfix /usr/local/virtual # chmod -R 700 /usr/local/virtual
Установка и настройка Postfix из портов во freeBSD выполнена на 100%. Очень хороший FTP сервис, я советую именно его.