URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 79823
[ Назад ]

Исходное сообщение
"Cyrus SASL+Postfix и пользователи"

Отправлено vladimirks , 15-Апр-08 10:02 
столкнулся со следующей проблемой. использую связку 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?


Содержание

Сообщения в этом обсуждении
"Cyrus SASL+Postfix и пользователи"
Отправлено mario , 15-Апр-08 11:25 
>[оверквотинг удален]
>
>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


"Cyrus SASL+Postfix и пользователи"
Отправлено vladimirks , 15-Апр-08 11:37 
>[оверквотинг удален]
>>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,
                               reject

smtpd_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 = smtpd

content_filter = smtp-amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings

mail_spool_directory = /var/spool
defer_transports =
mailbox_command =
mailbox_transport = cyrus


"Cyrus SASL+Postfix и пользователи"
Отправлено skgennady , 15-Апр-08 12:09 
Можно создать файл со списком пользователей и подсунуть постфиксу:
local_recipient_maps = proxy:unix:passwd.byname, $alias_maps, hash:/путь/к/файлу/с/хэшем
Файл текстовый, потом из него postmap-ом создается хэш.
Вот здесь можно больше прочитать:
http://www.postfix.org/LOCAL_RECIPIENT_README.html


"Cyrus SASL+Postfix и пользователи"
Отправлено vladimirks , 15-Апр-08 12:29 
>Можно создать файл со списком пользователей и подсунуть постфиксу:
>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:/ не знаю как создать.



"Cyrus SASL+Postfix и пользователи"
Отправлено skgennady , 15-Апр-08 12:37 
>>Можно создать файл со списком пользователей и подсунуть постфиксу:
>>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
и постмап создает файл с хэшем.


"Cyrus SASL+Postfix и пользователи"
Отправлено vladimirks , 15-Апр-08 12:47 
>[оверквотинг удален]
>
>Создаешь файл например /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


"Cyrus SASL+Postfix и пользователи"
Отправлено skgennady , 15-Апр-08 15:05 
>спасибо. все получилось. однако в документации по Postfix, нигде нет упоминания про
>hash.

Да нет, есть упоминание и на сайте и во встроеной документации. Там и просто можно текстовый файл использовать и регэкспы, только я не помню - как, а искать лень.