Установка и конфигурирование postfix во FreeBSD

Что такое postfix? Если ответить коротко, то postfix - это MTA (Mail Transfer Agent).

Подробнее о postfix можно узнать на http://www.postfix.org/

Ниже описан процесс инсталляции и конфигурации.

Соберем postfix:

# cd /usr/ports/mail/postfix

# make all install

ВНИМАНИЕ! Если вы ХОТИТЕ использовать postfix вместо sendmail сделайте:

# make replace

ВНИМАНИЕ! Во время инсталляции postfix будет добавлен пользователь postfix.

Если вы использовали sendmail, замените строку в /etc/rc.conf с sendmail_enable="YES" на sendmail_enable="NO" и после этого напишите /usr/local/etc/rc.d/postfix.sh (как это сделать описано ниже)

Напишем конфигурационные файлы:

# /usr/local/etc/postfix/main.cf

# Config file for postfix mail system.

#

queue_directory = /var/spool/postfix

command_directory = /usr/local/sbin

daemon_directory = /usr/local/libexec/postfix

mail_owner = postfix

default_privs = nobody

myhostname = yourhost.yourdomain.com

mydomain = yourdomain.com

mynetworks = 192.168.1.0/24, 127.0.0.0/8

myorigin = $mydomain

inet_interfaces = $myhostname, localhost

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

default_transport = smtp

alias_database = hash:/etc/aliases

mailbox_command = /usr/local/bin/procmail

smtpd_banner = $myhostname ESMTP READY

smtpd_client_restrictions = permit_mynetworks, reject_unknown_client

smtpd_sender_restrictions = permit_mynetworks, reject_unknown_address, reject_non_fqdn_sender, reject_invalid_hostname

smtpd_recipient_restrictions = permit_mynetworks, permit_mx_backup, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_sender_domain, check_relay_domains, reject_unknown_client, reject

local_destination_concurrency_limit = 2

default_destination_concurrency_limit = 10

debug_peer_level = 2

debugger_command =

PATH=/usr/bin:/usr/X11R6/bin

xxgdb $daemon_directory/$process_name $process_id & sleep 5

Сохраним этот файл как /usr/local/etc/postfix/main.cf

ВНИМАНИЕ! yourhost.yourdomain.com следует сменить на имя вашего хоста, yourdomain.com на имя вашего домена, если у вас есть доступ на relay вашего провайдера, то вам следует добавить строку в /usr/local/etc/postfix/main.cf:

relayhost = relay1.yourprovider.com

где relay1.yourprovider.com и есть relay вашего провайдера.

ВНИМАНИЕ! В параметре mynetworks следует указать ваши реальные сети.

ВНИМАНИЕ! Все конфигурационные файлы postifix находятся в /usr/local/etc/postfix.

Напишем /usr/local/etc/postfix/master.cf:

# /usr/local/etc/postfix/master.cf

#

#==========================================================================

# service type private unpriv chroot wakeup maxproc command + args

# (yes) (yes) (yes) (never) (50)

#

#==========================================================================

smtp inet n - y - - smtpd

pickup fifo n n n 60 1 pickup

cleanup unix - - n - 0 cleanup

qmgr fifo n - n 300 1 qmgr

rewrite unix - - n - - trivial-rewrite

bounce unix - - n - 0 bounce

defer unix - - n - 0 bounce

smtp unix - - n - - smtp

showq unix n - n - - showq

local unix - n n - - local

cyrus unix - n n - - pipe

flags=R user=cyrus argv=/cyrus/bin/deliver -e -q -m ${extension} ${user}

uucp unix - n n - - pipe

flags=F user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)

Сохраним этот файл как /usr/local/etc/postfix/master.cf

Напишем скрипт для запуска postfix из /usr/local/etc/rc.d:

#!/bin/sh

[ -x /usr/local/sbin/postfix ] && /usr/local/sbin/postfix start && echo -n ' postfix'

Сохраним скрипт в файле /usr/local/etc/rc.d/postfix.sh

Сделаем его выполняемым:

# chmod 500 /usr/local/etc/rc.d/postfix.sh

Установим procmail для локальной доставки почты:

# cd /usr/ports/mail/procmail

# make all install

И, наконец, запускаем postfix:

# /usr/local/sbin/postfix start

Некоторое время следует последить за работой postfix, периодически заглядывая в /var/log/maillog:

# tail -f /var/log/maillog

Обновлено: 12.03.2015