LINUX.ORG.RU
решено ФорумAdmin

Принцип работы postfix

 ,


0

2

Добрый день. По наследству от хз кого достался сервер на freeBSD, среди прочих функций он выполняет функцию mail-сервера. postfix + dovecot Моя задача на сегодняшний день выглядит так: разобраться с принципами его работы и обеспечить работоспособность на как можно больший период времени :-) Сложности:

  • freeBSD до сего дня в глаза не видел, все как-то задач подобных не стояло.
  • Сотрудника, который мог бы гипотетически исправить мой косяк, в организации не существует.
  • С настройкой почтовых серверов дел ранее не имел.

Понятно, что я пасусь на сайте с документацией. Тем не менее, я решил написать сюда за помощью.

Итак: правильно ли я понимаю, что в текущей конфигурации БД не используется, и для создания «почтового ящика» я должен создать пользователя в системе? Вопрос возник потому, что известные мне ящики соответствуют каталогам в /home. При этом от su id user по одному из пользователей (который гарантированно имеет настроенную почту) выдает «no such user». В каждом хомяке есть Maildir, файла vboxusers locate vboxusers не выдает.

address_verify_map = btree:$data_directory/verify_cache
alternate_config_directories =

command_directory = /usr/local/sbin
command_execution_directory =
config_directory = /usr/local/etc/postfix
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix
execution_directory_expansion_filter = 
1234567890!@%-_=+:,./abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
html_directory = /usr/local/share/doc/postfix

mail_spool_directory = /var/mail
manpage_directory = /usr/local/man
multi_instance_directories =
postscreen_cache_map = btree:$data_directory/postscreen_cache
process_id_directory = pid
queue_directory = /var/spool/postfix
readme_directory = /usr/local/share/doc/postfix
require_home_directory = no
sample_directory = /usr/local/etc/postfix
tls_random_exchange_name = ${data_directory}/prng_exch

recipient_bcc_maps = hash:/usr/local/etc/postfix/conf.d/bcc
soft_bounce = no
mail_owner = postfix
default_privs = nobody
myhostname = a.donapt.aaanet.ru
myorigin = a.donapt.aaanet.ru.
append_dot_mydomain = no
mydomain = localhost
inet_interfaces = all
inet_protocols = ipv4
proxy_interfaces =
mydestination = localhost a.donapt.aaanet.ru
local_recipient_maps =
relay_domains = 
relayhost = 
relay_recipient_maps =
in_flow_delay = 1s

# VIRTUAL PART
smtpd_sender_login_maps = regexp:/usr/local/etc/postfix/conf.d/protect-domains.re
mynetworks = 127.0.0.0/8 10.0.0.0/8 192.168.0.0/16

virtual_transport = lmtp:inet:127.0.0.1:24
virtual_mailbox_maps = hash:/usr/local/etc/postfix/conf.d/mailbox-maps
virtual_mailbox_domains = hash:/usr/local/etc/postfix/conf.d/mailbox-domains

# rewrite
local_header_rewrite_clients =
remote_header_rewrite_domain =

alias_maps = hash:/etc/aliases
alias_database = /etc/aliases
recipient_delimiter = +
home_mailbox = 
mailbox_command = 
mailbox_transport =
smtpd_banner = $myhostname ESMTP

setgid_group = maildrop

# sasl
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = no
smtpd_sasl_type = dovecot
smtpd_sasl_path = inet:127.0.0.1:113

# others
transport_maps =  
smtpd_delay_reject = yes

# security
mail_name = MTA

# tls
smtpd_tls_received_header = yes
smtp_tls_fingerprint_digest = sha1
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_security_options = noanonymous

# limits
# 28 MB = 21MB + 7MB [1/3]
message_size_limit =  29360128 
smtpd_recipient_limit =	250
smtpd_recipient_overshoot_limit = 250
default_destination_recipient_limit = 50

# antispam
strict_rfc821_envelopes = yes
disable_vrfy_command = yes
smtpd_helo_required = yes
show_user_unknown_table_name = no
smtp_always_send_ehlo = yes

# restrics
smtpd_sender_restrictions =
    permit_mynetworks
    permit_sasl_authenticated
    reject_invalid_helo_hostname
    reject_non_fqdn_helo_hostname
    reject_unknown_helo_hostname
    reject_unknown_client_hostname

smtpd_recipient_restrictions =
    reject_non_fqdn_recipient
    reject_unknown_recipient_domain
    reject_non_fqdn_sender
    reject_unknown_sender_domain
    permit_mynetworks
    permit_sasl_authenticated
    reject_unauth_pipelining
    reject_unauth_destination
    reject_unlisted_recipient

smtpd_relay_restrictions =
	permit_mynetworks
	permit_sasl_authenticated
	defer_unauth_destination

Извините, вопрос действительно ламерский, но... :-(



Последнее исправление: cetjs2 (всего исправлений: 4)

Ответ на: комментарий от kemechedzhiev

Смотри mailbox-maps и mailbox-domains.

PS: Фряха от линукса не сильно отличается, пока ты не лезешь собирать ядро или конфигурять фаерволы с роутингом.

svr4
()
Ответ на: комментарий от svr4

mailbox-maps содержит список ящиков в виде user@donapt.aaanet.ru OK
mailbox-domains содержит только donapt.aaanet.ru OK

Мне надо руками туда писать себя, в mailbox-maps? Или нет?

kemechedzhiev
() автор топика

freeBSD до сего дня в глаза не видел, все как-то задач подобных не стояло.
Сотрудника, который мог бы гипотетически исправить мой косяк, в организации не существует.
С настройкой почтовых серверов дел ранее не имел.

И что, за это деньги платят?

vlb ★★★
()
Ответ на: комментарий от vlb

Вай нот? Вполне вероятно, что поднимавший эту фряху - вышел на пенсию или просто уволился, бюджета на закрытие вакансии не дали, поэтому теперь эникей будет админить сам.

svr4
()
Ответ на: комментарий от vlb

Я вот даже не знаю, что вам ответить на это. Пожалуй, ничего.

kemechedzhiev
() автор топика
Ответ на: комментарий от gh0stwizard

Круто. Уже скачал, буду читать :-)
Спасибо за рекомендацию!

kemechedzhiev
() автор топика
Ответ на: комментарий от Toshik

посмотри кто висит на 24м порту. скорее всего придется и от dovecot-а документацию штудировать.

Довекот так не подключают.

vlb ★★★
()
Ответ на: комментарий от vlb

Довекот так не подключают.

то что обычно так не делают, не значит что так нельзя сделать: http://wiki2.dovecot.org/HowTo/PostfixDovecotLMTP

The LMTP service can be bound to both INET or Unix sockets.

конечно на 24м порту может висеть еще один smtpd с другим конфигом (см. master.cf), но что-то мне подсказывает что там именно dovecot

Toshik
()

По наследству от хз кого достался сервер на freeBSD, среди прочих
функций он выполняет функцию mail-сервера. postfix + dovecot
Моя задача на сегодняшний день выглядит так: разобраться с
принципами его работы и обеспечить работоспособность

http://forum.lissyara.su/viewtopic.php?f=20&t=3700
Тут же есть полезная картинка (Postfix - MTA, Divecot - MDA).

В принципе, в плане озвученного вопроса, важно изучение Postfix и Divecot (их работа практически не зависит от ОС), изучение же ОС важно в плане обеспечения работы сервера в принципе.

AS ★★★★★
()
Ответ на: комментарий от Toshik

Посмотрел, на 24 порту никого нет.
Вот как выглядит это:

PORT    STATE SERVICE
25/tcp  open  smtp
110/tcp open  pop3
143/tcp open  imap
443/tcp open  https
587/tcp open  submission

kemechedzhiev
() автор топика
Ответ на: комментарий от AS

Картинка отличная, спасибо. Еще, надо сказать, сильно помогает рекомендованная выше книга Гильдебрандта и Кеттера.

kemechedzhiev
() автор топика
Ответ на: комментарий от kemechedzhiev

Вам доставляет удовольствие Ваше высокомерие?

У меня нет никакого высокомерия.

Посмотрел, на 24 порту никого нет.

А ты в master.cf не посмотрел?

vlb ★★★
()
Ответ на: комментарий от vlb

Вот, собственно, master.cf. Я не увидел там dovecot.

# Postfix master process configuration file.  For details on the format
# of the file, see the master(5) manual page (command: "man 5 master").
#
# Do not forget to execute "postfix reload" after editing this file.
#
# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
smtp      inet  n       -       n       -       -       smtpd
587      inet  n       -       n       -       -       smtpd
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#smtp      inet  n       -       n       -       1       postscreen
#smtpd     pass  -       -       n       -       -       smtpd
#dnsblog   unix  -       -       n       -       0       dnsblog
#tlsproxy  unix  -       -       n       -       0       tlsproxy
#submission inet n       -       n       -       -       smtpd
#  -o syslog_name=postfix/submission
#  -o smtpd_tls_security_level=encrypt
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$mua_client_restrictions
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
#  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
#smtps     inet  n       -       n       -       -       smtpd
#  -o syslog_name=postfix/smtps
#  -o smtpd_tls_wrappermode=yes
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$mua_client_restrictions
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
#  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
#628       inet  n       -       n       -       -       qmqpd
pickup    unix  n       -       n       60      1       pickup
cleanup   unix  n       -       n       -       0       cleanup
qmgr      unix  n       -       n       300     1       qmgr
#qmgr     unix  n       -       n       300     1       oqmgr
tlsmgr    unix  -       -       n       1000?   1       tlsmgr
rewrite   unix  -       -       n       -       -       trivial-rewrite
bounce    unix  -       -       n       -       0       bounce
defer     unix  -       -       n       -       0       bounce
trace     unix  -       -       n       -       0       bounce
verify    unix  -       -       n       -       1       verify
flush     unix  n       -       n       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       n       -       -       smtp
relay     unix  -       -       n       -       -       smtp
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       n       -       -       showq
error     unix  -       -       n       -       -       error
retry     unix  -       -       n       -       -       error
discard   unix  -       -       n       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       n       -       -       lmtp
anvil     unix  -       -       n       -       1       anvil
scache    unix  -       -       n       -       1       scache
#
# ====================================================================
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
#
# Many of the following services use the Postfix pipe(8) delivery
# agent.  See the pipe(8) man page for information about ${recipient}
# and other message envelope options.
# ====================================================================
#
# maildrop. See the Postfix MAILDROP_README file for details.
# Also specify in main.cf: maildrop_destination_recipient_limit=1
#
#maildrop  unix  -       n       n       -       -       pipe
#  flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
#
# ====================================================================
#
# Recent Cyrus versions can use the existing "lmtp" master.cf entry.
#
# Specify in cyrus.conf:
#   lmtp    cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4
#
# Specify in main.cf one or more of the following:
#  mailbox_transport = lmtp:inet:localhost
#  virtual_transport = lmtp:inet:localhost
#
# ====================================================================
#
# Cyrus 2.1.5 (Amos Gouaux)
# Also specify in main.cf: cyrus_destination_recipient_limit=1
#
#cyrus     unix  -       n       n       -       -       pipe
#  user=cyrus argv=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
#
# ====================================================================
#
# Old example of delivery via Cyrus.
#
#old-cyrus unix  -       n       n       -       -       pipe
#  flags=R user=cyrus argv=/cyrus/bin/deliver -e -m ${extension} ${user}
#
# ====================================================================
#
# See the Postfix UUCP_README file for configuration details.
#
#uucp      unix  -       n       n       -       -       pipe
#  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
#
# ====================================================================
#
# Other external delivery methods.
#
#ifmail    unix  -       n       n       -       -       pipe
#  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
#
#bsmtp     unix  -       n       n       -       -       pipe
#  flags=Fq. user=bsmtp argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
#
#scalemail-backend unix -       n       n       -       2       pipe
#  flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store
#  ${nexthop} ${user} ${extension}
#
#mailman   unix  -       n       n       -       -       pipe
#  flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
#  ${nexthop} ${user}
kemechedzhiev
() автор топика

Так, с добавлением пользователей я разобрался. Без БД, тупо системные пользователи с индексированием mailbox_map. Как я до этого раньше не дошел - ХЗ. Но тупил, как теперь понятно, жестко.

Теперь буду настраивать свою машину (с железом поновее). Засуну юзеров в БД (postgreSQL скорее всего), а главное - включу SMTP TLS. Вопросов больше нет, спасибо за терпение и помощь!

kemechedzhiev
() автор топика
Ответ на: комментарий от kemechedzhiev

Закрыто.
telnet 192.168.1.7 24

Я вроде бы просил

# telnet localhost 24

Разницу понял?

vlb ★★★
()
Ответ на: комментарий от kemechedzhiev

Вот, собственно, master.cf. Я не увидел там dovecot.

И не должно быть. Dovecot работает сам по себе, Postfix - сам по себе. Если Postfix и Dovecot могут работать с одним и тем же форматом mail storage, то Postfix может сам складывать туда почту, если нет, то у Postfix может быть прописан локальный транспорт в Dovecot по LMTP либо через tcp-сокет, либо через unix-socket (вероятно, какое-то приложение-доставщик ещё может быть у Dovecot, похожее на procmail; это в качестве ещё одного варианта). На этом вся связь между ними заканчивается.

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 2)
Ответ на: комментарий от AS

вероятно, какое-то приложение-доставщик ещё может быть у Dovecot, похожее на procmail;

/usr/lib/dovecot/deliver

vlb ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.