Есть:
Slackware 10.2, Postfix, sasl2, PostgreSQL все последнее и пропатченное.
Все собрано ручками по мануалу и даже работает (сертификаты выдает, пароли запрашивает)НО!!!
Если зверь не включил в клиенте аутенификацию на отправку - то система его спокойно пропускает, не запрашивая ни имени ни номера противогаза...:)
Нужно - Что бы любого зверя система проверяла. С любого интерфейса домена и т.д.
Может тут как то DNS примешан? Он у меня только будет через прова потом настроен. А тестю все через hosts.В чем затык?
В конфиге postfix (main.cf) есть smtpd_sender_restrictions. Во-первых прочитать, что это такое. А во-вторых искать параметр типа permit_sasl_authentificated или как-то так.
>В конфиге postfix (main.cf) есть smtpd_sender_restrictions. Во-первых прочитать, что это такое.>во-вторых искать параметр типа permit_sasl_authentificated или как-то так.
Выставлено!
>>В конфиге postfix (main.cf) есть smtpd_sender_restrictions. Во-первых прочитать, что это такое.
>
>>во-вторых искать параметр типа permit_sasl_authentificated или как-то так.
>
>Выставлено!
smtpd_sender_restrictions = reject_authenticated_sender_login_mismatchЧерез тебя могут слать только авторизировавшиеся. Почту к тебе могут слать все.
>>>В конфиге 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/8smtpd_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.rusmtpd_sender_restrictions = permit_sasl_authenticated,
reject_authenticated_sender_login_mismatchtransport_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_filesmtpd_helo_required = yes
disable_vrfy_command = yes
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_etrn_restrictions = reject
# Вот часть моего работающего конфига. Давайте искать разницу.
# Кстати, после изменений в конфиге не забывайте 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.cfvirtual_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_mapsrelay_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_hostnamesmtpd_client_restrictions = permit_mynetworks,
reject_rhsbl_client sbl.spamhaus.org,
reject_rhsbl_client dnsbl.sorbs.netsmtpd_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.orgsmtpd_recipient_restrictions = permit_mynetworks,
reject_unknown_recipient_domain,
reject_non_fqdn_recipient,
permit_sasl_authenticated,
reject_unauth_destination,
reject_unlisted_recipient
без smtpd_sender_login_maps не будет работать reject_sender_login_mismatch.
>без smtpd_sender_login_maps не будет работать reject_sender_login_mismatch.
А вот за это огромное СПАСИБО! :)
>без 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 не будет работать 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 мог отправлять письма нескольких ящиков (то есть владел несколькими ящиками), необходимо соответствующим образом менять структуру БД. А в таком случае логин не может совпадать с адресом ящика.
>"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_mapsuser = 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/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 требует аутентификацию".
>В настройках клиента не забудьте включить "сервер smtp требует аутентификацию".
а спамеры тоже будут выставлять эту галочку у себя? Тогда не понимаю какой от нее толк, если без этой опции он будет всех пропускать?
>а спамеры тоже будут выставлять эту галочку у себя? Тогда не понимаю
>какой от нее толк, если без этой опции он будет всех
>пропускать?
Спамеры будут получать следующий ответ:
NOQUEUE: reject: RCPT from dem.2gu[192.168.1.50]: 553 <dem@sunline.net>: Sender address rejected: not logged in
>>а спамеры тоже будут выставлять эту галочку у себя? Тогда не понимаю
>>какой от нее толк, если без этой опции он будет всех
>>пропускать?
>Спамеры будут получать следующий ответ:
>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
Простите за настойчивость, но у меня еще вопрос.
Как включить квотирование почтовых ящиков виртуальных пользователей.
Почитал, вроде бы как для virtual обычное ковтирование черезmaildirmake -q 10000000S /user/mail/ не работатет?
А вот еще один вопрос.
Это правильно что при аутентификации по tls сертификат высылается клиенту 2 раза? или в чем баг?
1 раз до аутентификации
2 раз после.
Бред
>А вот еще один вопрос.
>Это правильно что при аутентификации по tls сертификат высылается клиенту 2 раза?
>или в чем баг?
> 1 раз до аутентификации
> 2 раз после.
>Бреднужен log
>нужен logвроде бы как сам разобрался. Но если кому интерестно:
1. раз как - запрос как положено,"Веришь ли ты етому сертификату?"
2. раз (для Thunderbird) "Security Error: Domain Name Mismatch".ну и как это убрать, мне нужно что бы со всех доменов можно было отправлять.
(Аля хостинг).
>
>ну и как это убрать, мне нужно что бы со всех доменов
>можно было отправлять.
>(Аля хостинг).мультидоменный сертификат чтоли нужен???
>>
>>ну и как это убрать, мне нужно что бы со всех доменов
>>можно было отправлять.
>>(Аля хостинг).
>
>мультидоменный сертификат чтоли нужен???
Если бы я зна что тут надо...
Клиенты пишут, аля "Может между вами кто то вклинился, вы уверены?" и повторно выдает тот же сертификат для ознакомления и подтверждения.Принимаю все предложения и предположения и мысли...
Я думаю, что это происходит потому, что в сертификате указан домен сервера, отличный от того, который выдает postfix. Т. е. нужно проверить на предмет соответствия информации в postfix/main.cf и pop3d.cnf. Если ошибка действительно в этом, то нужно пересоздать сертификат.
а если потребуется мультидоменный сертификат, то посмотри сюда
http://www.opennet.me/openforum/vsluhforumID1/62746.html#19
Всем огромное спасибо!
Но вот вопрос, чем теперь это все хозяйство (виртуальные домены) считать?
Желательно мне конечно с разделением на мир и "свой" траффик.
Поделитесь опытом.