Здравствуй, многоуважаемый 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-авторизацию!
>Задача: Ввести smtp авторизацию. МОжно как для двух этих доменов, так
>и для одного second.test.ru (для test.ru не обязательно). Даю конфиги:
А что Вы понимаете под "smtp авторизация для домена"?
>>Задача: Ввести smtp авторизацию. МОжно как для двух этих доменов, так
>>и для одного second.test.ru (для test.ru не обязательно). Даю конфиги:
>А что Вы понимаете под "smtp авторизация для домена"?Чтобы пользователь мог отправить почту только аторизовавшись на сервере. Т.е. аутентификация SMTP
Ставьте Cyrus SASL. Доков в Инете полно. В чем проблема?
>Ставьте Cyrus SASL. Доков в Инете полно. В чем проблема?Ставлю, проблема в том, что как сказать SASL или postfix, что файлы паролей уже есть и создавать их не нужно! Мне приглашать всех своих 100 полльзователей писать свои пароли? :)))))
При создании файлов паролей с помощью htpasswd использовался MD5?
>При создании файлов паролей с помощью htpasswd использовался MD5?Не могу скать точно. Могу дать его содержимое:
temp:dFnEQ9QeKKDls
делалось #htpasswd имя_файла имя_пользователся
>temp:dFnEQ9QeKKDls
Используется стандартная системная функция crypt(). Никогда этим не занимался, поэтому могу только предполагать.
1. Преобразовать формат crypt() в md5. В Cyrus SASL использовать shadow.
2. Найти модуль pam, который понимает формат crypt(). В Cyrus SASL использовать pam.
>>temp:dFnEQ9QeKKDls
>Используется стандартная системная функция crypt(). Никогда этим не занимался, поэтому могу только
>предполагать.
>1. Преобразовать формат crypt() в md5. В Cyrus SASL использовать shadow.
>2. Найти модуль pam, который понимает формат crypt(). В Cyrus SASL использовать
>pam.А почему испоьзовать shadow? нельзя ли passwd? И еще вопросец? Можно ли использовать smtp-авторизацию только для одного из этих доменов?
> А почему испоьзовать 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) и получает ответ (да/нет).
У меня пароли лежат в отдельных файлах. Как сказать SASL, что файл паролей - лежит именно здесь?
> У меня пароли лежат в отдельных файлах. Как сказать SASL,
>что файл паролей - лежит именно здесь?
Так в этом и проблема. И не только где лежит, но и в каком формате. Если бы найти модуль pam, который его понимает. Но этого я пока не знаю.
>> У меня пароли лежат в отдельных файлах. Как сказать 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 на этот фай
> Хе. Вот 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:dFnEQ9QeKKDlsman htpasswd
переделываю для того, чтобы pop3 сервер знал, как отдавать почту.
auth-flatfile-passwd-file: /var/mail/domains/$(domain)Значит формат у них один и тот же? :) Раз делается глупым копированием в другой файл
Тогда из какого файла Вы приводили вот это?
temp:dFnEQ9QeKKDls
> переделываю для того, чтобы pop3 сервер знал, как отдавать почту.
>
>auth-flatfile-passwd-file: /var/mail/domains/$(domain)
>
>Значит формат у них один и тот же? :) Раз делается глупым
>копированием в другой файл
файл, откуда я брал temp - я делал утилитой htpasswd. Но если у них форматы разные почему из понимает pop3 сервер?
>А что Вы понимаете под "smtp авторизация для домена"?
Я так понял он хотел чтобы логин/пароль из AD брался.Хотя автор пишет
> соответственно:
> файл паролей для second.test.ru и test.ru одинаков по формату и делается
> командой htpasswd (утилита к апаче).Может это какой то новый метод авторизации?
>Я так понял он хотел чтобы логин/пароль из AD брался.нет, домен имеется ввиду не AD. А просто, обычный интернет-домен
>
>Хотя автор пишет
>> соответственно:
>> файл паролей для second.test.ru и test.ru одинаков по формату и делается
>> командой htpasswd (утилита к апаче).
>
>Может это какой то новый метод авторизации?
это авторизация ля pop3 соединений (чтобы пользователь брал свою почту) :)))
А может быть не париться? Запустить на этой же машинке на интерфейсе другой постфикс и релеить через первый? :)