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

Исходное сообщение
"POSTFIX+SASL"

Отправлено sda , 07-Окт-05 15:45 
  Здравствуй, многоуважаемый ALL! Обращаюсь к тебе, т.к. не нашел выхода из моей ситуации, вернее даже входа в нее :)
  Опишу ситуацию! Сейчас: Стоит postfix (имеет один реальный ip), на нем крутится доставка для двух доменов (test.ru, second.test.ru). Все работает прекрасно. Задача: Ввести smtp авторизацию. МОжно как для двух этих доменов, так и для одного second.test.ru (для test.ru не обязательно). Даю конфиги:

/etc/postfix/main.cf:

soft_bounce = no
bounce_size_limit = 50000
message_size_limit = 3145728
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mail_owner = postfix
default_privs = nobody
myhostname = mx.test.ru
mydomain = test.ru
inet_interfaces = 172.18.2.22, xxx.xxx.xxx.xxx, 127.0.0.1, 192.168.1.100
mydestination = $myhostname, $mydomain, localhost.$mydomain
local_recipient_maps = $alias_maps unix:passwd.byname
unknown_local_recipient_reject_code = 550
mynetworks = 172.18.2.0/24, 172.18.4.0/24, 127.0.0.0/8, 10.0.0.0/16
relay_domains = $mydestination
virtual_maps = hash:/etc/postfix/virtusertable
alias_maps = hash:/etc/mail/aliases
in_flow_delay = 1s
alias_database = hash:/etc/mail/aliases
smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
local_destination_concurrency_limit = 2
default_destination_concurrency_limit = 20
debug_peer_level = 2
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         xxgdb $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
setgid_group = postdrop
html_directory = /usr/local/services/apache/htdocs/postfix
manpage_directory = /usr/local/man
sample_directory = /etc/postfix
readme_directory = /usr/local/services/apache/htdocs/postfix/readme
smtpd_helo_required = yes
smtpd_delay_reject = yes
disable_vrfy_command = yes
maps_rbl_reject_code = 550
smtp_always_send_ehlo = yes
default_process_limit=500
maximal_queue_lifetime = 5h
delay_warning_time = 2h
bounce_queue_lifetime = 5h
smtp_skip_4xx_greeting = yes
smtp_skip_5xx_greeting = no
access_map_reject_code = 550
reject_code = 550
unknown_client_reject_code = 550
smtpd_helo_restrictions =
                        permit_mynetworks,
                        reject_invalid_hostname,
                        reject_non_fqdn_hostname
smtpd_sender_restrictions =
                        reject_unknown_sender_domain,
                        reject_non_fqdn_sender
smtpd_client_restrictions =
                        check_client_access hash:/etc/postfix/client_access,
                        reject_rbl_client list.dsbl.org,
                        reject_rbl_client dul.ru,
                        reject_rbl_client dynablock.wirehub.net,
                        reject_rbl_client dnsbl.njabl.org,
                        reject_rbl_client relays.ordb.org,
                        reject_rbl_client sbl.spamhaus.org,
                        reject_rbl_client bl.spamcop.net
smtpd_recipient_restrictions =
                        check_client_access hash:/etc/postfix/client_access,
                        reject_rbl_client list.dsbl.org,
                        reject_rbl_client dul.ru,
                        reject_rbl_client dynablock.wirehub.net,
                        reject_rbl_client dnsbl.njabl.org,
                        reject_rbl_client relays.ordb.org,
                        reject_rbl_client sbl.spamhaus.org,
                        reject_rbl_client bl.spamcop.net,
                        permit_mynetworks,
                        reject_unauth_destination,
                        reject_invalid_hostname,
                        reject_unknown_sender_domain,
                        reject_non_fqdn_recipient,
                        check_helo_access hash:/etc/postfix/helo_checks,
                        reject_unknown_recipient_domain
smtpd_recipient_limit = 10
mailbox_size_limit = 10485760

  /etc/postfix/virtusertable:

temp@second.ucc.ru                temp.second.ucc.ru

Забирается почта tpop3d:

его конфиг:

listen-address: 172.18.2.22:110, 192.168.1.100:110
timeout-seconds: 600
mailbox: bsd:/var/mail/vhosts/$(domain)/$(local_part)
auth-pam-mail-group: mail
auth-pam-mail-user: mail
auth-flatfile-enable: yes
auth-flatfile-passwd-file: /var/mail/domains/$(domain)
auth-flatfile-mail-user: mail
auth-flatfile-mail-group: mail

соответственно:
файл паролей для second.test.ru и test.ru одинаков по формату и делается командой htpasswd (утилита к апаче).

Помогите настроить smtp-авторизацию!


Содержание

Сообщения в этом обсуждении
"POSTFIX+SASL"
Отправлено jonatan , 07-Окт-05 16:16 
>Задача: Ввести smtp авторизацию. МОжно как для двух этих доменов, так
>и для одного second.test.ru (для test.ru не обязательно). Даю конфиги:
А что Вы понимаете под "smtp авторизация для домена"?

"POSTFIX+SASL"
Отправлено sda , 07-Окт-05 16:18 
>>Задача: Ввести smtp авторизацию. МОжно как для двух этих доменов, так
>>и для одного second.test.ru (для test.ru не обязательно). Даю конфиги:
>А что Вы понимаете под "smtp авторизация для домена"?

  Чтобы пользователь мог отправить почту только аторизовавшись на сервере. Т.е. аутентификация SMTP



"POSTFIX+SASL"
Отправлено jonatan , 07-Окт-05 16:24 
Ставьте Cyrus SASL. Доков в Инете полно. В чем проблема?

"POSTFIX+SASL"
Отправлено sda , 07-Окт-05 16:27 
>Ставьте Cyrus SASL. Доков в Инете полно. В чем проблема?

Ставлю, проблема в том, что как сказать SASL или postfix, что файлы паролей уже есть и создавать их не нужно! Мне приглашать всех своих 100 полльзователей писать свои пароли? :)))))



"POSTFIX+SASL"
Отправлено jonatan , 07-Окт-05 16:33 
При создании файлов паролей с помощью htpasswd использовался MD5?

"POSTFIX+SASL"
Отправлено sda , 07-Окт-05 16:39 
>При создании файлов паролей с помощью htpasswd использовался MD5?

  Не могу скать точно. Могу дать его содержимое:

temp:dFnEQ9QeKKDls

делалось #htpasswd имя_файла имя_пользователся



"POSTFIX+SASL"
Отправлено jonatan , 07-Окт-05 17:11 
>temp:dFnEQ9QeKKDls
Используется стандартная системная функция crypt(). Никогда этим не занимался, поэтому могу только предполагать.
1. Преобразовать формат crypt() в md5. В Cyrus SASL использовать shadow.
2. Найти модуль pam, который понимает формат crypt(). В Cyrus SASL использовать pam.

"POSTFIX+SASL"
Отправлено sda , 07-Окт-05 17:13 
>>temp:dFnEQ9QeKKDls
>Используется стандартная системная функция crypt(). Никогда этим не занимался, поэтому могу только
>предполагать.
>1. Преобразовать формат crypt() в md5. В Cyrus SASL использовать shadow.
>2. Найти модуль pam, который понимает формат crypt(). В Cyrus SASL использовать
>pam.

  А почему испоьзовать shadow? нельзя ли passwd? И еще вопросец? Можно ли использовать smtp-авторизацию только для одного из этих доменов?



"POSTFIX+SASL"
Отправлено jonatan , 07-Окт-05 17:27 
>  А почему испоьзовать shadow? нельзя ли passwd? И еще вопросец?
А что, у Вас пароли в /etc/passwd? В cyrus-sasl2 passwd заменен на getpwent.

man saslauthd

     getpwent   (All platforms)

                Authenticate using the getpwent() library function. Typically
                this authenticates against the local password file. See your
                systems getpwent(3) man page for details.

     shadow     (AIX, Irix, Linux, Solaris)

                Authenticate against the local "shadow password file".  The
                exact mechanism is system dependent.  saslauthd currently
                understands the getspnam() and getuserpw() library routines.

Т.е. saslauthd для этих методов использует соответствующие системные вызовы.
>Можно ли использовать smtp-авторизацию только для одного из этих доменов?
smtpd не различает домен. Он передает полученные логин/пароль программе (saslauthd) и получает ответ (да/нет).


"POSTFIX+SASL"
Отправлено sda , 07-Окт-05 17:31 
  У меня пароли лежат в отдельных файлах. Как сказать SASL, что файл паролей - лежит именно здесь?

"POSTFIX+SASL"
Отправлено jonatan , 07-Окт-05 17:36 
>  У меня пароли лежат в отдельных файлах. Как сказать SASL,
>что файл паролей - лежит именно здесь?
Так в этом и проблема. И не только где лежит, но и в каком формате. Если бы найти модуль pam, который его понимает. Но этого я пока не знаю.

"POSTFIX+SASL"
Отправлено sda , 07-Окт-05 17:45 
>>  У меня пароли лежат в отдельных файлах. Как сказать SASL,
>>что файл паролей - лежит именно здесь?
>Так в этом и проблема. И не только где лежит, но и
>в каком формате. Если бы найти модуль pam, который его понимает.
>Но этого я пока не знаю.

  Хе. Вот pop3-сервер почему то имеет функцию просматривать файлы, сделанные htpasswd. Да, и еще. К примеру: в /etc/passwd есть запись
sda:$1$NZ90uVR9$N5otDPXkIIGxP4TliPxi50:1000:0::0:0:Dmitry A. Sysoev:/home/sda:/usr/local/bin/bash

Когда я ее переделываю для опции virtual_host получается:
sda:$1$NZ90uVR9$N5otDPXkIIGxP4TliPxi50

то бишь пароли не меняются! Только все лишнее убирается. Т.е. алгоритм шифрования такой же, как и в /etc/passwd. Осталось только найти, как указать SASL на этот фай



"POSTFIX+SASL"
Отправлено jonatan , 07-Окт-05 17:51 
>  Хе. Вот pop3-сервер почему то имеет функцию просматривать файлы, сделанные
>htpasswd. Да, и еще. К примеру: в /etc/passwd есть запись
>sda:$1$NZ90uVR9$N5otDPXkIIGxP4TliPxi50:1000:0::0:0:Dmitry A. Sysoev:/home/sda:/usr/local/bin/bash
>
>Когда я ее переделываю для опции virtual_host получается:
>sda:$1$NZ90uVR9$N5otDPXkIIGxP4TliPxi50
Что значит переделываете?
>то бишь пароли не меняются! Только все лишнее убирается. Т.е. алгоритм шифрования
>такой же, как и в /etc/passwd. Осталось только найти, как указать
>SASL на этот фай
В /etc/passwd давно используется MD5. Сравните с содержимым Вашего файла
temp:dFnEQ9QeKKDls

man htpasswd


"POSTFIX+SASL"
Отправлено sda , 07-Окт-05 17:55 
  переделываю для того, чтобы pop3 сервер знал, как отдавать почту.
auth-flatfile-passwd-file: /var/mail/domains/$(domain)

Значит формат у них один и тот же? :) Раз делается глупым копированием в другой файл


"POSTFIX+SASL"
Отправлено jonatan , 07-Окт-05 17:59 
Тогда из какого файла Вы приводили вот это?
temp:dFnEQ9QeKKDls

"POSTFIX+SASL"
Отправлено sda , 07-Окт-05 18:11 
>  переделываю для того, чтобы pop3 сервер знал, как отдавать почту.
>
>auth-flatfile-passwd-file: /var/mail/domains/$(domain)
>
>Значит формат у них один и тот же? :) Раз делается глупым
>копированием в другой файл


файл, откуда я брал temp - я делал утилитой htpasswd. Но если у них форматы разные почему из понимает pop3 сервер?



"POSTFIX+SASL"
Отправлено jonatan , 07-Окт-05 16:26 

"POSTFIX+SASL"
Отправлено ALex_hha , 07-Окт-05 16:18 
>А что Вы понимаете под "smtp авторизация для домена"?
Я так понял он хотел чтобы логин/пароль из AD брался.

Хотя автор пишет
> соответственно:
> файл паролей для second.test.ru и test.ru одинаков по формату и делается
> командой htpasswd (утилита к апаче).

Может это какой то новый метод авторизации?



"POSTFIX+SASL"
Отправлено sda , 07-Окт-05 16:24 
>Я так понял он хотел чтобы логин/пароль из AD брался.

нет, домен имеется ввиду не AD. А просто, обычный интернет-домен
>
>Хотя автор пишет
>> соответственно:
>> файл паролей для second.test.ru и test.ru одинаков по формату и делается
>> командой htpasswd (утилита к апаче).
>
>Может это какой то новый метод авторизации?
   это авторизация ля pop3 соединений (чтобы пользователь брал свою почту) :)))



"POSTFIX+SASL"
Отправлено sda , 07-Окт-05 18:13 
  А может быть не париться? Запустить на этой же машинке на интерфейсе другой постфикс и релеить через первый? :)