Информационные технологииStfw.Ru 🔍

Конфигурация postfix

crash
🕛 12.01.2007, 12:29
Подробнее о postfix можно узнать на http://www.postfix.org
Ниже описан процесс инсталляции и конфигурации.
Так как я больше занимаю FreeBSD, то я напишу как ставит на ней.
# cd /usr/ports/mail/postfix
# make all install
После установки советую прочесть файл /usr/ports/mail/postfix/pkg-message в котором описано как сделать, чтобы postfix был MTA по умолчанию:

To enable postfix rcNG startup script please add postfix_enable="YES" in
your rc.conf

If you not need sendmail anymore, please add in your rc.conf:

sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"

And you can disable some sendmail specific daily maintenance routines in your
/etc/periodic.conf file:

daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"

If you are using SASL, you need to make sure that postfix has access to read
the sasldb file. This is accomplished by adding postfix to group mail and
making the /usr/local/etc/sasldb* file(s) readable by group mail (this should
be the default for new installs).

If you are upgrading from postfix version prior to 2.0, please see the README
files for recommended changes to your configuration.

Сам конфигурационный файл очень простой. Вот пример рабочего файла (возможно вам придется поенять пути):
# /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

#Обманываем всех об установленном МТА

mail_name = MDaemon 7.1.2

#Хост вашего почтового сервера

myhostname = host.domain.ru

#Имя домена

mydomain = domain.ru

# Каким сетям мы разрешаем слать через нас почту

mynetworks = 192.168.0.0/16, 127.0.0.0/8, 10.64.0.0/16, 10.150.0.0/16, 10.151.0.0/16, 10.152.0.0/16

#Максимальный размер одного письма

message_size_limit = 12000000

smtp_host_lookup = native, dns



myorigin = $mydomain

inet_interfaces = $myhostname, localhost

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

relay_domains = $mydestination

default_transport = smtp

#Указываем в этом файле как отсылать почту для конкретного домена.

transport_maps = hash:/usr/local/etc/postfix/transport

alias_database = hash:/etc/aliases # Указываем файл aliases

mailbox_command = /usr/local/bin/procmail

#тоже самое что и aliases

virtual_maps = hash:/usr/local/etc/postfix/virtual

relocated_maps = hash:/usr/local/etc/postfix/relocated

header_checks = regexp:/usr/local/etc/postfix/header_checks

body_checks = regexp:/usr/local/etc/postfix/body_checks



#Запрашиваем HELO/EHLO при соединение с нашим сервером.

#Если у имени, которое нам сказали нет MX или А запись то пусть гуляют.

smtpd_helo_required = yes

strict_rfc821_envelope = yes

smtpd_helo_restrictions = permit_mynetworks,reject_unknown_hostname,reject_invalid_hostname,reject_non_fqdn_hostname



#Почту для несуществующих пользователе перенаправить по адресу, указанному в luser_relay.

#Если пользователь не сущесвтуе и был отлуп при RCPT,

#то расскоментируем первую строку и коментируем 2 и 3 строку.

#На самом деле я здесь сделал бяку, только никому не говорите)

#local_recipient_maps = $alias_maps unix:passwd.byname

local_recipient_maps =

luser_relay = kolesov@domain.ru



queue_run_delay = 1000

maximal_queue_lifetime= 1

bounce_queue_lifetime = 1

minimal_backoff_time = 1000

maximal_backoff_time = 4000



#При телнете на 25 порт, увидят эту надпись. Пусть ломают винду)

smtpd_banner = $myhostname MDaemon 7.1.2 on Windows 2000 Server READY



smtpd_client_restrictions = permit_mynetworks

smtpd_sender_restrictions = hash:/usr/local/etc/postfix/access
permit_mynetworks
check_relay_domains
reject_unknown_address
reject_invalid_hostname
reject_non_fqdn_sender
reject_invalid_hostname
reject

smtpd_recipient_restrictions = regexp:/usr/local/etc/postfix/regexp_access
permit_mynetworks
check_relay_domains
permit_mx_backup
reject_non_fqdn_sender
reject_non_fqdn_recipient
reject_unknown_sender_domain
reject_unknown_client
reject



local_destination_concurrency_limit = 2

default_destination_concurrency_limit = 10

debug_peer_level = 3

debug_peer_list =

debugger_command =
PATH=/usr/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id & sleep 5

host.domain.ru следует сменить на имя вашего хоста, domain.ru на имя вашего домена.
Если вы будете отправлять почту через smtp Вашего хостера, то в файл main.cf надо добавить строку relayhost = relay1.yourprovider.com.

Для работы 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 - n - - smtpd
pickup fifo n - n 60 1 pickup
cleanup unix n - 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
error unix - - n - - error
local unix - n n - - local
cyrus unix - n n - - pipe
flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
uucp unix - n n - - pipe
flags=F user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
filter unix - n n - - pipe
relay unix - - n - - smtp
flush unix n - n 1000? 0 flush
trace unix - - n - 0 bounce
verify unix - - n - 1 verify
proxymap unix - - n - - proxymap
anvil unix - - n - 1 anvil
scache unix - - n - 1 scache
discard unix - - n - - discard
tlsmgr unix - - n 1000? 1 tlsmgr


Вот собственно и все. После этого мы запускаем postfix и смотрим что творится в логах.
#tail -f /var/log/mailllog

Вот пример файла transport, для отправки почты в локальной сети не через Internet, а сразу на сервер по локалке:
mgok.alrosa-mir.ru smtp:10.64.40.16:25
host1.domain.ru smtp:10.64.48.16:25
host2.domain.ru smtp:10.64.64.16:25
host3.domain.ru smtp:10.64.76.16:25
host4.domain.ru smtp:10.64.80.16:25
host5.domain.ru smtp:10.151.20.16:25
host6.domain.ru smtp:10.151.60.16:25
host7.domain.ru smtp:10.152.24.16:25
host8.domain.ru smtp:10.152.44.16:25
host9.domain.ru smtp:192.168.2.10:25


PS. Для того чтобы сделать hash файла надо сделать комнаду postmap filename. Пример файл transport: postmap transport.
Перезагрузка postfix: postfix reload.

Unix   Теги:

Читать IT-новости в Telegram

Читайте также:

Конфигурация Apache 2.x.x

Информационные технологии
Мы в соцсетях ✉