Postfix + Dovecot + LDAP

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
$Alchemist
сержант
Сообщения: 173
Зарегистрирован: 2008-06-26 13:38:17
Откуда: SPb
Контактная информация:

Postfix + Dovecot + LDAP

Непрочитанное сообщение $Alchemist » 2009-05-13 11:06:32

Настроил сабжевую связку, но вводить в энтэрпрайз пока не решаюсь т.к. есть некоторые сомнения (например почему-то не работает задержка sleep).
Кому не сложно, зацените конфиг пжста. Буду рад любым пожеланиям!

Код: Выделить всё

biff = no
append_dot_mydomain = no
readme_directory = no

# Укажем откуда брать алиасы и пользователей.
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
virtual_alias_maps = hash:/etc/postfix/virtual ldap:/etc/postfix/ldap-aliases.cf
smtpd_sender_login_maps = ldap:/etc/postfix/ldap-aliases.cf

# Сетевые настройки
mydomain = domain.spb.ru
myhostname = post
myorigin = $mydomain
mydestination = $myhostname, localhost, localhost.$myhostname, localhost.$mydomain, $mydomain
relayhost =
mynetworks = 127.0.0.0/8, 192.168.0.0/23
smtp_helo_name=$myhostname
smtpd_banner = $myhostname ESMTP True Mail Server
inet_protocols = ipv4
inet_interfaces = all

# Прикручиваем SASL авторизазацию через dovecot
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth-client
smtpd_sasl_auth_enable = yes
#smtpd_sasl_security_options = noanonymous, mutual_auth, noactive, nodictionary
smtpd_sasl_exceptions_networks=$mynetworks

# Почту будет раскладывать тоже dovecot
mailbox_transport = dovecot
mailbox_command = /usr/lib/dovecot/deliver
dovecot_destination_recipient_limit = 1
virtual_transport = dovecot

# Настройки ящиков
mailbox_size_limit = 1024000000
message_size_limit = 10240000
virtual_mailbox_base = /mail/mailboxes
recipient_delimiter = +

# Ограничения

smtpd_client_restrictions = permit_mynetworks,
                            permit_sasl_authenticated,
                            check_client_access ldap:/etc/postfix/ldap-aliases.cf
                            sleep 5,
                            reject_unknown_client_hostname,
                            reject_unauth_pipelining,
                            reject_rbl_client blackholes.mail-abuse.org,
                            reject_rbl_client dialups.mail-abuse.org,
                            reject_rbl_client relays.ordb.org,
                            reject_rbl_client dul.ru,
                            reject_rbl_client opm.blitzed.org,
                            reject_rbl_client list.dsbl.org,
                            reject_rbl_client sbl.spamhaus.org,
                            reject_rbl_client sbl-xbl.spamhaus.org,
                            reject_rbl_client zen.spamhaus.org,
                            reject_rbl_client cbl.abuseat.org,
                            reject_rbl_client dul.dnsbl.sorbs.net,
                            reject_rbl_client dnsbl.njabl.org,
                            reject_rbl_client dynablock.njabl.org,
                            reject_rbl_client bl.spamcop.net,
                            reject_rbl_client bl.csma.biz,
                            reject_rbl_client dnsbl.sorbs.net,
                            reject_rbl_client smtp.dnsbl.sorbs.net,
                            reject_rbl_client relays.ordb.org,
                            reject_rbl_client relays.mail-abuse.com,
                            reject_rbl_client dialups.mail-abuse.com,
                            reject_rbl_client combined.njabl.org

smtpd_recipient_restrictions = permit_mynetworks,
                                permit_sasl_authenticated,
                                reject_unauth_destination,
                                reject_unlisted_recipient,
                                reject_unknown_recipient_domain,
                                reject_non_fqdn_recipient,
                                reject_unverified_recipient

smtpd_sender_restrictions = permit_mynetworks,
                            reject_unknown_sender_domain,
                            reject_unlisted_sender,
                            reject_unverified_sender,
                            reject_non_fqdn_sender

smtpd_helo_restrictions = permit_mynetworks,
                            permit_sasl_authenticated,
                            reject_invalid_helo_hostname,
                            reject_unknown_helo_hostname,
                            reject_non_fqdn_helo_hostname

smtpd_data_restrictions = permit_mynetworks,
                            reject_multi_recipient_bounce,
                            reject_unauth_pipelining

smtpd_etrn_restrictions = permit_mynetworks,
                            reject

strict_rfc821_envelopes = yes
smtpd_reject_unlisted_sender = yes
smtpd_reject_unlisted_recipient=yes
disable_vrfy_command = yes
show_user_unknown_table_name = no
smtpd_helo_required = yes
smtp_always_send_ehlo = yes
smtp_never_send_ehlo=no
smtpd_delay_reject=no
address_verify_sender= <>
address_verify_negative_cache=yes
address_verify_poll_count=1
address_verify_positive_expire_time=31d
address_verify_positive_refresh_time=7d
address_verife_negative_expire_time=3d
address_verify_negative_refresh_time=2h
allow_untrusted_routing=no
resolve_null_domain=no
resolve_numeric_domain=no
smtpd_recipient_limit=100
smtp_quote_rfc821_envelope=yes
smtpd_soft_error_limit = 2
smtpd_error_sleep_time = ${stress?0}${stress:10s}
smtpd_hard_error_limit = ${stress?3}${stress:20}
smtpd_timeout = ${stress?30}${stress:300}

# Таймауты по RFC 2821
smtpd_timeout=5m
smtpd_starttls_timeout=5m
smtp_mail_timeout=5m
smtp_rcpt_timeout=5m
smtp_data_init_timeout=2m
smtp_data_xfer_timeout=3m
smtp_data_done_timeout=10m
maximal_queue_lifetime=4d
bounce_queue_lifetime=4d
queue_run_delay=30m
minimal_backoff_time=3h
maximal_backoff_time=5h

# Прикручиваем антивирь
content_filter = scan:127.0.0.1:10025
receive_override_options = no_address_mappings
Machines to Work,
People to Think.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

atrium
мл. сержант
Сообщения: 88
Зарегистрирован: 2008-08-19 15:35:47

Re: Postfix + Dovecot + LDAP

Непрочитанное сообщение atrium » 2009-05-14 9:24:49

А как ты определяешь, что пауза перед проверкой следующего ограничения не работает и вообще, зачем она тебе здесь нужна?
sleep seconds
Pause for the specified number of seconds and proceed with the next restriction in the list, if any. This may stop zombie mail when used as:

/etc/postfix/main.cf:
smtpd_client_restrictions =
sleep 1, reject_unauth_pipelining
smtpd_delay_reject = no
Могу ещё посоветовать:
http://www.lissyara.su/?id=1840
http://code.google.com/p/olpostfix/

Аватара пользователя
$Alchemist
сержант
Сообщения: 173
Зарегистрирован: 2008-06-26 13:38:17
Откуда: SPb
Контактная информация:

Re: Postfix + Dovecot + LDAP

Непрочитанное сообщение $Alchemist » 2009-05-14 17:07:42

atrium писал(а):А как ты определяешь, что пауза перед проверкой следующего ограничения не работает и вообще, зачем она тебе здесь нужна?
telnet mail.domail.ru 25
при установке паузы придется подождать указанное количество времени
Спасибо, частично использовал эту стстью, но у меня несколько другой случай - Ubuntu 9.04
Machines to Work,
People to Think.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Postfix + Dovecot + LDAP

Непрочитанное сообщение Alex Keda » 2009-05-14 20:01:45

сочувствую.
Убей их всех! Бог потом рассортирует...

atrium
мл. сержант
Сообщения: 88
Зарегистрирован: 2008-08-19 15:35:47

Re: Postfix + Dovecot + LDAP

Непрочитанное сообщение atrium » 2009-05-14 20:38:33

так sleep устанавливает паузу перед проверкой следующего ограничения. У тебя оно стоит в параметре client, т.е работает в момент установления соединения, но перед ним ещё куча ограничений, если одно из них удовлетворяет твоему случаю, то до sleep даже не доходит

Аватара пользователя
$Alchemist
сержант
Сообщения: 173
Зарегистрирован: 2008-06-26 13:38:17
Откуда: SPb
Контактная информация:

Re: Postfix + Dovecot + LDAP

Непрочитанное сообщение $Alchemist » 2009-05-15 9:55:02

atrium писал(а):так sleep устанавливает паузу перед проверкой следующего ограничения. У тебя оно стоит в параметре client, т.е работает в момент установления соединения, но перед ним ещё куча ограничений, если одно из них удовлетворяет твоему случаю, то до sleep даже не доходит
Действительно... тупанул :smile:
Machines to Work,
People to Think.

Аватара пользователя
$Alchemist
сержант
Сообщения: 173
Зарегистрирован: 2008-06-26 13:38:17
Откуда: SPb
Контактная информация:

Re: Postfix + Dovecot + LDAP

Непрочитанное сообщение $Alchemist » 2009-07-31 12:41:38

Подскажите пжста, как сделать исключение во всяких smtpd_recipient_restrictions для определенного списка доменов? mysql не используется.
Machines to Work,
People to Think.

atrium
мл. сержант
Сообщения: 88
Зарегистрирован: 2008-08-19 15:35:47

Re: Postfix + Dovecot + LDAP

Непрочитанное сообщение atrium » 2009-07-31 13:48:42

check_access_*

Аватара пользователя
$Alchemist
сержант
Сообщения: 173
Зарегистрирован: 2008-06-26 13:38:17
Откуда: SPb
Контактная информация:

Re: Postfix + Dovecot + LDAP

Непрочитанное сообщение $Alchemist » 2009-07-31 15:29:24

это понятно... :smile:

Код: Выделить всё

check_sender_access hash:/etc/postfix/sender_access
так?
и в каком виде добавлять домены в sender_access?
Machines to Work,
People to Think.

atrium
мл. сержант
Сообщения: 88
Зарегистрирован: 2008-08-19 15:35:47

Re: Postfix + Dovecot + LDAP

Непрочитанное сообщение atrium » 2009-08-03 5:58:07

Я бы посоветовал manual почитать :))
example.com OK
example.org REJECT

Аватара пользователя
$Alchemist
сержант
Сообщения: 173
Зарегистрирован: 2008-06-26 13:38:17
Откуда: SPb
Контактная информация:

Re: Postfix + Dovecot + LDAP

Непрочитанное сообщение $Alchemist » 2009-08-13 9:55:10

Спасибо! Ман читали всем селом ))

Еще задачка: нужно чтобы при отправки на некий алиас письма отсылались всем пользователям имеющим ящики в домене.
Доменов несколько, ящиков много, все время меняются... вручную не реально алиас редактировать.
Возможно ли рассылку средствами постфикса сделать? Ну или со скриптом просьба помочь...
Machines to Work,
People to Think.

atrium
мл. сержант
Сообщения: 88
Зарегистрирован: 2008-08-19 15:35:47

Re: Postfix + Dovecot + LDAP

Непрочитанное сообщение atrium » 2009-08-13 11:21:09

Пусть скрипт редактирует: извлекает всех юзеров, потом делает update поля содержащего списки пользователей для некого алиаса

Аватара пользователя
$Alchemist
сержант
Сообщения: 173
Зарегистрирован: 2008-06-26 13:38:17
Откуда: SPb
Контактная информация:

Re: Postfix + Dovecot + LDAP

Непрочитанное сообщение $Alchemist » 2009-08-17 12:47:44

Ок!
Подскажите пжста, как правильно обновить поле таблицы данными из другого поля другой таблицы?
Так все ясно:

Код: Выделить всё

update alias set destination="abc@domain.ru, cde@domain.ru" where alias="subscribe@domain.ru";
Но нужно что-то в этом духе:

Код: Выделить всё

update alias set destination="(select email from users)" where alias="subscribe@domain.ru";
Machines to Work,
People to Think.