столкнулся со следующей проблемой. использую связку Cyrus SASL_Cyrus IMAP+Postfix. Пользователей для авторизации по IMAP завожу через saslpasswd2. Этого же пользователя использую для SASL SMTP авторизации.вот его конфиг /etc/sasldb/smtpd.conf:
password_format: crypt pwcheck_method: auxprop log_level: 7 mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5
При попытке SASL SMTP авторизации Postfix не видит этого пользователя. В логах:
In: MAIL FROM:<user22@gate.ru> SIZE=1410
Out: 250 2.1.0 Ok
In: RCPT TO:<user22@gate.ru>
Out: 550 5.1.1 <user22@gate.ru>: Recipient address rejected: User unknown in local recipient table
если добавить этого пользователя через систему useadd user22, то письмо нормально доставляется. Это не вариант т.к. не хочется чтобы Linux засоряли пользовательские аккаунты.
как заставить Postfix адресовать почту аккаунтам из базы sasldb?
>[оверквотинг удален]
>
>In: RCPT TO:<user22@gate.ru>
>
>Out: 550 5.1.1 <user22@gate.ru>: Recipient address rejected: User unknown in local recipient table
>
>если добавить этого пользователя через систему useadd user22, то письмо нормально доставляется.
>Это не вариант т.к. не хочется чтобы Linux засоряли пользовательские аккаунты.
>
>
>как заставить Postfix адресовать почту аккаунтам из базы sasldb?а вы указали постфиксу где брать реципиентов ?
выложите main.cf
>[оверквотинг удален]
>>Out: 550 5.1.1 <user22@gate.ru>: Recipient address rejected: User unknown in local recipient table
>>
>>если добавить этого пользователя через систему useadd user22, то письмо нормально доставляется.
>>Это не вариант т.к. не хочется чтобы Linux засоряли пользовательские аккаунты.
>>
>>
>>как заставить Postfix адресовать почту аккаунтам из базы sasldb?
>
>а вы указали постфиксу где брать реципиентов ?
> выложите main.cfвот:
smtpd_recipient_restrictions = permit_sasl_authenticated,
permit_mynetworks,
rejectsmtpd_sender_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
smtpd_client_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain =
broken_sasl_auth_clients = yes
smtpd_tls_auth_only = no
smtpd_sasl_tls_security_options = $smtpd_sasl_security_options
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/ssl/smtpmail/smtpd.key
smtpd_tls_cert_file = /etc/ssl/smtpmail/smtpd.crt
smtpd_tls_CAfile = /etc/ssl/smtpmail/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
smtpd_sasl_application_name = smtpdcontent_filter = smtp-amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappingsmail_spool_directory = /var/spool
defer_transports =
mailbox_command =
mailbox_transport = cyrus
Можно создать файл со списком пользователей и подсунуть постфиксу:
local_recipient_maps = proxy:unix:passwd.byname, $alias_maps, hash:/путь/к/файлу/с/хэшем
Файл текстовый, потом из него postmap-ом создается хэш.
Вот здесь можно больше прочитать:
http://www.postfix.org/LOCAL_RECIPIENT_README.html
>Можно создать файл со списком пользователей и подсунуть постфиксу:
>local_recipient_maps = proxy:unix:passwd.byname, $alias_maps, hash:/путь/к/файлу/с/хэшем
>Файл текстовый, потом из него postmap-ом создается хэш.
>Вот здесь можно больше прочитать:
>http://www.postfix.org/LOCAL_RECIPIENT_README.htmlда в принципе есть варианты.
1. использовать aliases user1:user1. работает.
2. использовать hash:/путь/к/файлу/с/хэшем (КАК ДОЛЖЕН ВЫГЛЯДЕТЬ ФОРМАТ СОДЕРЖИМОГО Я НЕ ПОНЯЛ). но файл для хэша (не с хэшем уже) хранить пароль в открытом виде.
3. раскоментировать local_recipient_maps = и оставить пустым. но для спамеров это "золотое руно" т.к. unknown_local_recipient_reject_code = 550 перестает работать.
2ой вариант ближе. но по твоей ссылке пример содержимого hash:/ не знаю как создать.
>>Можно создать файл со списком пользователей и подсунуть постфиксу:
>>local_recipient_maps = proxy:unix:passwd.byname, $alias_maps, hash:/путь/к/файлу/с/хэшем
>2ой вариант ближе. но по твоей ссылке пример содержимого hash:/ не знаю
>как создать.Создаешь файл например /etc/postfix/users такого формата:
vasya OK
petya OK
.
.
.
Потом делаешь:
postmap /etc/postfix/users.db < /etc/postfix/users
и постмап создает файл с хэшем.
>[оверквотинг удален]
>
>Создаешь файл например /etc/postfix/users такого формата:
>vasya OK
>petya OK
>.
>.
>.
>Потом делаешь:
>postmap /etc/postfix/users.db < /etc/postfix/users
>и постмап создает файл с хэшем.спасибо. все получилось. однако в документации по Postfix, нигде нет упоминания про hash.
тока:local_recipient_maps = proxy:unix:passwd.byname $alias_maps
local_recipient_maps = $virtual_mailbox_maps
>спасибо. все получилось. однако в документации по Postfix, нигде нет упоминания про
>hash.Да нет, есть упоминание и на сайте и во встроеной документации. Там и просто можно текстовый файл использовать и регэкспы, только я не помню - как, а искать лень.