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

Исходное сообщение
"postfix,sasl2, tls, smtp аутентификация "

Отправлено dem , 05-Фев-06 13:52 
Есть:
Slackware 10.2, Postfix, sasl2, PostgreSQL все последнее и пропатченное.
Все собрано ручками по мануалу и даже работает (сертификаты выдает, пароли запрашивает)

НО!!!

Если зверь не включил в клиенте аутенификацию на отправку - то система его спокойно пропускает, не запрашивая ни имени ни номера противогаза...:)

Нужно - Что бы любого зверя система проверяла. С любого интерфейса домена и т.д.
Может тут как то DNS примешан? Он у меня только будет через прова потом настроен. А тестю все через hosts.

В чем затык?


Содержание

Сообщения в этом обсуждении
"postfix,sasl2, tls, smtp аутентификация "
Отправлено Stant , 05-Фев-06 15:54 
В конфиге postfix (main.cf) есть smtpd_sender_restrictions. Во-первых прочитать, что это такое. А во-вторых искать параметр типа permit_sasl_authentificated или как-то так.
                      


"postfix,sasl2, tls, smtp аутентификация "
Отправлено dem , 05-Фев-06 17:21 
>В конфиге postfix (main.cf) есть smtpd_sender_restrictions. Во-первых прочитать, что это такое.

>во-вторых искать параметр типа permit_sasl_authentificated или как-то так.

Выставлено!



"postfix,sasl2, tls, smtp аутентификация "
Отправлено Jelis , 05-Фев-06 23:58 
>>В конфиге postfix (main.cf) есть smtpd_sender_restrictions. Во-первых прочитать, что это такое.
>
>>во-вторых искать параметр типа permit_sasl_authentificated или как-то так.
>
>Выставлено!


smtpd_sender_restrictions = reject_authenticated_sender_login_mismatch

  Через тебя могут слать только авторизировавшиеся. Почту к тебе могут слать все.


"postfix,sasl2, tls, smtp аутентификация "
Отправлено dem , 06-Фев-06 19:35 
>>>В конфиге postfix (main.cf) есть smtpd_sender_restrictions. Во-первых >>>во-вторых искать параметр типа permit_sasl_authentificated или как-то так.
>smtpd_sender_restrictions = reject_authenticated_sender_login_mismatch
>
>  Через тебя могут слать только авторизировавшиеся. Почту к тебе могут
>слать все.

Вот мой конфиг. Пропускает сковзняком всех кому не лень чет отправить!
Задобал!

mail_owner = postfix
default_privs = nobody
myhostname = sun.sun.net
mydomain = sun.net
myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks_style = host
mynetworks = 127.0.0.0/8

smtpd_recipient_restrictions =
                permit_sasl_authenticated,
                permit_mynetworks,
                reject_unauth_destination,
                reject_non_fqdn_recipient,
                reject_rbl_client list.dsbl.org,
                reject_rbl_client relays.ordb.org,
                reject_rbl_client dynablock.wirehub.net,
                reject_rbl_client blackholes.wirehub.net,
                reject_rbl_client dnsbl.njabl.org,
                reject_rbl_client dialups.mail-abuse.org,
                reject_rbl_client dul.ru

smtpd_sender_restrictions = permit_sasl_authenticated,
                reject_authenticated_sender_login_mismatch

transport_maps = pgsql:/etc/postfix/sql/transport.pgsql
virtual_mailbox_base = /var/mail/virtual
virtual_mailbox_maps = pgsql:/etc/postfix/sql/users.pgsql
virtual_alias_maps = pgsql:/etc/postfix/sql/aliases.pgsql
virtual_uid_maps = pgsql:/etc/postfix/sql/uids.pgsql
virtual_gid_maps = pgsql:/etc/postfix/sql/gids.pgsql
relay_domains = $transport_maps
local_recipient_maps = $virtual_mailbox_maps $transport_maps


smtpd_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_local_domain =

#TLS
smtp_use_tls = yes
smtp_tls_key_file = /etc/ssl/server.pem
smtp_tls_cert_file = $smtp_tls_key_file
smtp_tls_CAfile = $smtp_tls_key_file
smtp_tls_note_starttls_offer = yes
smtp_tls_loglevel = 1
smtpd_tls_auth_only = yes
smtpd_use_tls = yes
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
smtpd_tls_key_file = /etc/ssl/server.pem
smtpd_tls_cert_file = $smtpd_tls_key_file
smtpd_tls_CAfile = $smtpd_tls_key_file

smtpd_helo_required = yes
disable_vrfy_command = yes
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_etrn_restrictions = reject


"postfix,sasl2, tls, smtp аутентификация "
Отправлено Stant , 06-Фев-06 19:48 
# Вот часть моего работающего конфига. Давайте искать разницу.
# Кстати, после изменений в конфиге не забывайте postfix reload (иногда,
# нужен даже postfix stop/start)
###

alias_maps = hash:/etc/mail/aliases
alias_database = hash:/etc/mail/aliases
transport_maps = mysql:/usr/local/etc/postfix/maps/recipient-transport.cf

virtual_mailbox_maps = mysql:/usr/local/etc/postfix/maps/recipient-maildir.cf
virtual_alias_maps = mysql:/usr/local/etc/postfix/maps/alias-recipient.cf
smtpd_sender_login_maps = mysql:/usr/local/etc/postfix/maps/sender-login.cf
local_recipient_maps = $virtual_mailbox_maps

relay_domains = $transport_maps
relay_recipient_maps = $virtual_mailbox_maps $virtual_alias_maps

## security ###############################################

maps_rbl_reject_code = 554

disable_vrfy_command = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_helo_required = yes


## smtpd restrictions ######################################

smtpd_helo_restrictions = permit_mynetworks,
                          permit_sasl_authenticated,
                          reject_invalid_hostname,
                          reject_unknown_hostname,
                          reject_non_fqdn_hostname

smtpd_client_restrictions = permit_mynetworks,
                            reject_rhsbl_client sbl.spamhaus.org,
                            reject_rhsbl_client dnsbl.sorbs.net

smtpd_sender_restrictions = permit_mynetworks,
                            reject_unknown_sender_domain,
                            reject_non_fqdn_sender,
                            reject_sender_login_mismatch,
                            permit_sasl_authenticated,
                            reject_rhsbl_sender dsn.rfc-ignorant.org

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


"postfix,sasl2, tls, smtp аутентификация "
Отправлено Stant , 06-Фев-06 19:52 
без smtpd_sender_login_maps не будет работать reject_sender_login_mismatch.

"postfix,sasl2, tls, smtp аутентификация "
Отправлено dem , 07-Фев-06 13:56 
>без smtpd_sender_login_maps не будет работать reject_sender_login_mismatch.


А вот за это огромное СПАСИБО! :)


"postfix,sasl2, tls, smtp аутентификация "
Отправлено dem , 10-Фев-06 14:27 
>без smtpd_sender_login_maps не будет работать reject_sender_login_mismatch.


Почти заработало, вот только сервак постоянно отвечает (правда не на всех клиентах)

Sender address rejected: not logged in;
Далее по тексту...
generic_checks: name=reject_unauthenticated_sender_login_mismatch status=2
postfix/smtpd[14583]: generic_checks: name=reject_sender_login_mismatch status=2

Вот тут и вопрос у меня возник, что у Вас в

sender-users.cf

прописано?

Я думал что smtpd.conf - достаточно... Ан нет :(


"postfix,sasl2, tls, smtp аутентификация "
Отправлено Stant , 10-Фев-06 14:50 
>>без smtpd_sender_login_maps не будет работать reject_sender_login_mismatch.
>
>
>Почти заработало, вот только сервак постоянно отвечает (правда не на всех клиентах)
>
>
>Sender address rejected: not logged in;
>Далее по тексту...
>generic_checks: name=reject_unauthenticated_sender_login_mismatch status=2
>postfix/smtpd[14583]: generic_checks: name=reject_sender_login_mismatch status=2
>
>Вот тут и вопрос у меня возник, что у Вас в
>
>sender-users.cf
>
>прописано?
>
>Я думал что smtpd.conf - достаточно... Ан нет :(

в smtpd_sender_login_maps написано почти то же, что и в virtual_mailbox_maps.

Разница вот в чем. virtual_mailbox_maps, нужен, чтобы по RCPT TO узнать maildir. smtpd_sender_login_maps нужен для того, чтобы по MAIL FROM узнать логин и затем сверить с логином, по которому прошла sasl-аутентификация.

В конфигах у меня отличие только в том, что where_field = login для smtpd_sender_login_maps, а не where_field = maildir, как для virtual_mailbox_maps.

"Sender address rejected: not logged in; " происходит, когда кто-то залогинился под user1, а отправить письмо хочет с ящика user2. Если необходимо, чтобы user1 мог отправлять письма нескольких ящиков (то есть владел несколькими ящиками), необходимо соответствующим образом менять структуру БД. А в таком случае логин не может совпадать с адресом ящика.



"postfix,sasl2, tls, smtp аутентификация "
Отправлено dem , 10-Фев-06 15:53 
>"Sender address rejected: not logged in; " происходит, когда кто-то залогинился под
>user1, а отправить письмо хочет с ящика user2. Если необходимо, чтобы
>user1 мог отправлять письма нескольких ящиков (то есть владел несколькими ящиками),
>необходимо соответствующим образом менять структуру БД. А в таком случае логин
>не может совпадать с адресом ящика.

вот структура таблицы зверей и ящиков. (PostgreSQL)
table users:
      login       |  password   |      maildir      | expired |     comment      | id
------------------+-------------+-------------------+---------+------------------+----
dem@sunline.net  | Pass        | sunline.net/dem/  |       0 | General mailbox  |  1


вот мой файлик sender-users.pgsql на кот. я завожу smtpd_sender_login_maps

user = postfix
password = SupresECRET
table = users
select_field = login # - терзают смутные сомнения
where_field = login # - тут тоже..
additional_conditions = and expired = '0'
hosts = localhost

и вот что пишет лог при smtpd -v при отправке письма самому себе...
А присвоение нескольких ящиков одному зверю.. я думал что aliases для того и придуманы. НЕТ?

maps_find: smtpd_sender_login_maps: pgsql:/etc/postfix/sql/sender-users.pgsql(0,100): dem@sunline.net = dem@sunline.net
postfix/smtpd[14771]: mail_addr_find: dem@sunline.net -> dem@sunline.net
postfix/smtpd[14771]: NOQUEUE: reject: RCPT from dem.2gu[192.168.1.50]: 553 <dem@sunline.net>: Sender address rejected: not logged in; from=<dem@sunline.net> to=<dem@sunline.net> proto=ESMTP helo=<dem>
postfix/smtpd[14771]: generic_checks: name=reject_unauthenticated_sender_login_mismatch status=2
postfix/smtpd[14771]: generic_checks: name=reject_sender_login_mismatch status=2
postfix/smtpd[14771]: > dem.2gu[192.168.1.50]: 553 <dem@sunline.net>: Sender address rejected: not logged in


"postfix,sasl2, tls, smtp аутентификация "
Отправлено Stant , 10-Фев-06 18:26 
В логах не видно, что клиент прошел аутентификацию. Должна быть строчка вроде этой:
> postfix/smtpd[54181]: 5EE2A11731: client=unknown[xxx.xxx.xxx.xxx], sasl_method=PLAIN, sasl_username=mail@xxxx.ru

Это контролируется следующими настройками:
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes

В настройках клиента не забудьте включить "сервер smtp требует аутентификацию".


"postfix,sasl2, tls, smtp аутентификация "
Отправлено ALex_hha , 16-Фев-06 15:53 
>В настройках клиента не забудьте включить "сервер smtp требует аутентификацию".
а спамеры тоже будут выставлять эту галочку у себя? Тогда не понимаю какой от нее толк, если без этой опции он будет всех пропускать?



"postfix,sasl2, tls, smtp аутентификация "
Отправлено Stant , 16-Фев-06 16:02 
>а спамеры тоже будут выставлять эту галочку у себя? Тогда не понимаю
>какой от нее толк, если без этой опции он будет всех
>пропускать?
Спамеры будут получать следующий ответ:
NOQUEUE: reject: RCPT from dem.2gu[192.168.1.50]: 553 <dem@sunline.net>: Sender address rejected: not logged in


"postfix,sasl2, tls, smtp аутентификация "
Отправлено hidded , 28-Май-08 09:37 
>>а спамеры тоже будут выставлять эту галочку у себя? Тогда не понимаю
>>какой от нее толк, если без этой опции он будет всех
>>пропускать?
>Спамеры будут получать следующий ответ:
>NOQUEUE: reject: RCPT from dem.2gu[192.168.1.50]: 553 <dem@sunline.net>: Sender address rejected: not logged in

Правильное слово: reject_authenticated_sender_login_mismatch


"postfix,sasl2, tls, smtp аутентификация "
Отправлено dem , 17-Фев-06 16:26 
Простите за настойчивость, но у меня еще вопрос.
Как включить квотирование почтовых ящиков виртуальных пользователей.
Почитал, вроде бы как для virtual обычное ковтирование через

maildirmake -q 10000000S /user/mail/ не работатет?


"postfix,sasl2, tls, smtp аутентификация "
Отправлено dem , 14-Фев-06 18:01 
А вот еще один вопрос.
Это правильно что при аутентификации по tls сертификат высылается клиенту 2 раза? или в чем баг?
1 раз до аутентификации
2 раз после.
Бред



"postfix,sasl2, tls, smtp аутентификация "
Отправлено Stant , 14-Фев-06 18:06 
>А вот еще один вопрос.
>Это правильно что при аутентификации по tls сертификат высылается клиенту 2 раза?
>или в чем баг?
> 1 раз до аутентификации
> 2 раз после.
>Бред

нужен log


"postfix,sasl2, tls, smtp аутентификация "
Отправлено dem , 14-Фев-06 18:39 
>нужен log

вроде бы как сам разобрался. Но если кому интерестно:

1. раз как - запрос как положено,"Веришь ли ты етому сертификату?"
2. раз (для Thunderbird) "Security Error: Domain Name Mismatch".

ну и как это убрать, мне нужно что бы со всех доменов можно было отправлять.
(Аля хостинг).



"postfix,sasl2, tls, smtp аутентификация "
Отправлено Александр , 17-Фев-06 17:20 
>
>ну и как это убрать, мне нужно что бы со всех доменов
>можно было отправлять.
>(Аля хостинг).

мультидоменный сертификат чтоли нужен???


"postfix,sasl2, tls, smtp аутентификация "
Отправлено dem , 17-Фев-06 21:44 
>>
>>ну и как это убрать, мне нужно что бы со всех доменов
>>можно было отправлять.
>>(Аля хостинг).
>
>мультидоменный сертификат чтоли нужен???


Если бы я зна что тут надо...
Клиенты пишут, аля "Может между вами кто то вклинился, вы уверены?" и повторно выдает тот же сертификат для ознакомления и подтверждения.

Принимаю все предложения и предположения и мысли...


"postfix,sasl2, tls, smtp аутентификация "
Отправлено Stant , 18-Фев-06 12:36 
Я думаю, что это происходит потому, что в сертификате указан домен сервера, отличный от того, который выдает postfix. Т. е. нужно проверить на предмет соответствия информации в postfix/main.cf и pop3d.cnf. Если ошибка действительно в этом, то нужно пересоздать сертификат.


"postfix,sasl2, tls, smtp аутентификация "
Отправлено Александр , 20-Фев-06 07:39 
а если потребуется мультидоменный сертификат, то посмотри сюда
http://www.opennet.ru/openforum/vsluhforumID1/62746.html#19

"postfix,sasl2, tls, smtp аутентификация "
Отправлено dem , 28-Фев-06 13:04 
Всем огромное спасибо!
Но вот вопрос, чем теперь это все хозяйство (виртуальные домены) считать?
Желательно мне конечно с разделением на мир и "свой" траффик.
Поделитесь опытом.