Страница 1 из 1
Postfix SMTP неясности с реализацией
Добавлено: 2009-11-05 23:02:09
---nebo---
Существует почтовый сервер на базе Postfix.
Домен для которого поизводится прием почты (например) domen.org.
Существует следующая задача. Нужно чтобы:
1) пользователи сервера(те у которых есть ящик на сервере) погли отправлять почту как для СВОЕГО домена(проблем нету) так и для других доменов(тобиш наш сервак был для них релеем). Тут первая сложность: в настройках Postfix указывается для кого релееть, так вот это делается, я так понял, по IP
, тоесть параметр mynetworks определяет список "доверенных" SMTP клиентов(для которых доступен Relay access),
а у меня пользователи удаленные и соответственно у всех разные IP. Как разрулить?
2) от всех других пользователей ( других SMTP серверов) он должен получать почту ТОЛЬКО для собственного домена domen.org. Тоесть здесь всем из п.1 нужно разрешить Relay, а остальным запретить.
Re: Postfix SMTP неясности с реализацией
Добавлено: 2009-11-06 0:15:03
kerilka
тут вариант - только аутентификация) иначе никак)
Re: Postfix SMTP неясности с реализацией
Добавлено: 2009-11-06 1:11:34
---nebo---
kerilka писал(а):тут вариант - только аутентификация) иначе никак)
такой вариант рассматривался, таким образом с пользователями я вопрос решу, а как быть если соеденяется другой SMTP сервер? Его(их) я не смогу аутентифицировать.
Ситуация достаточно стандартная, как мне кажется. Ведь каждый мыльник должен получать письма от других SMTP серверов для своего домена и в то же время позволять использовать себя как relay только для определенной группы пользователей(пользователей этого почтовика).
Re: Postfix SMTP неясности с реализацией
Добавлено: 2009-11-06 9:25:11
kerilka
Вы, возможно, удивитесь - но по умолчанию так всегда и работает, поэтому в конфиге Вы и указываете параметр mydomain. В этом случае параметр mynetworks можно опустить, по факту оставить 127.0.0.1.
Всех остальных заставить аутентифицироваться.
В итоге для Вашего домена постфикс будет получать почту от всех (не внимая, авторизирован пользователь или нет), также будет происходить и с теми доменами, на которые разрешен relay.
Для всех остальных доменов - либо авторизирован, либо relay access denied
Или у Вас имеются ремоут сервера, которые используют Ваш почтовик как smarthost? Тогда адреса серверов включить в mynetworks

Re: Postfix SMTP неясности с реализацией
Добавлено: 2009-11-06 13:08:04
skeletor
---nebo--- писал(а):Существует почтовый сервер на базе Postfix.
Домен для которого поизводится прием почты (например) domen.org.
Существует следующая задача. Нужно чтобы:
1) пользователи сервера(те у которых есть ящик на сервере) погли отправлять почту как для СВОЕГО домена(проблем нету) так и для других доменов(тобиш наш сервак был для них релеем). Тут первая сложность: в настройках Postfix указывается для кого релееть, так вот это делается, я так понял, по IP
, тоесть параметр mynetworks определяет список "доверенных" SMTP клиентов(для которых доступен Relay access),
а у меня пользователи удаленные и соответственно у всех разные IP. Как разрулить?
2) от всех других пользователей ( других SMTP серверов) он должен получать почту ТОЛЬКО для собственного домена domen.org. Тоесть здесь всем из п.1 нужно разрешить Relay, а остальным запретить.
1 - неверно! Этот параметр не определяет релей и к нему не имеет никакого отношения.
mynetworks_style используется в restrictions, где задаются параметры кому можно и куда отправлять. В частности параметр permit mynetwork как раз и указывает, что разрешить моей сетке (а сетка может быть сеткой или одним IP, то есть IP самого сервака).
Что касается релея, то за него отвечают много параметров. Узнать их можно командой
. Обычно используют только этот
, где перечислены домены, для которых возможен релей.
Что касется пункта 2, то тут можно использовать restriction class.
Re: Postfix SMTP неясности с реализацией
Добавлено: 2009-11-06 15:44:47
ivan__
---nebo--- писал(а):Существует почтовый сервер на базе Postfix.
Домен для которого поизводится прием почты (например) domen.org.
Существует следующая задача. Нужно чтобы:
1) пользователи сервера(те у которых есть ящик на сервере) погли отправлять почту как для СВОЕГО домена(проблем нету) так и для других доменов(тобиш наш сервак был для них релеем). Тут первая сложность: в настройках Postfix указывается для кого релееть, так вот это делается, я так понял, по IP
, тоесть параметр mynetworks определяет список "доверенных" SMTP клиентов(для которых доступен Relay access),
а у меня пользователи удаленные и соответственно у всех разные IP. Как разрулить?
2) от всех других пользователей ( других SMTP серверов) он должен получать почту ТОЛЬКО для собственного домена domen.org. Тоесть здесь всем из п.1 нужно разрешить Relay, а остальным запретить.
Устанавливаешь
mynetworks = 127.0.0.0/8
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
настраиваешь авторизацию, и все пользователи должны будут авторизооваться, прежде чем что-то отправлять.
Re: Postfix SMTP неясности с реализацией
Добавлено: 2009-11-06 18:15:31
---nebo---
Обычно используют только этот
, где перечислены домены, для которых возможен релей.
но ведь пользователи должны будут отправлять письма куда-угодно, не могу же я вручную(или как то автоматически) составить список всех в мире почтовых доменов
или как это делается правильно на реальных почтовиках?
Если я настрою, что мой сервер будет делай Relay для всех и куда угодно, то его смогут использовать "левые" люди. Значит Relay нужно делать только для зареганых пользователей.
Устанавливаешь
mynetworks = 127.0.0.0/8
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
настраиваешь авторизацию, и все пользователи должны будут авторизооваться, прежде чем что-то отправлять.
а если будет соединение к моему серваку от другого SMTP? как тогда я получу почту?
Re: Postfix SMTP неясности с реализацией
Добавлено: 2009-11-06 18:19:49
kerilka
Все, кто авторизовался - могут слать письма куда угодно!!! relay_domains, это список доменов, куда можно слать, не авторизовываясь!! по факту опен релей для этих доменов! Иначе сказать - для Ваших доменов, для которых Ваш почтовик принимает почту. И ничего более

Re: Postfix SMTP неясности с реализацией
Добавлено: 2009-11-06 18:44:06
---nebo---
kerilka писал(а):
Все, кто авторизовался - могут слать письма куда угодно!!! relay_domains, это список доменов, куда можно слать, не авторизовываясь!! по факту опен релей для этих доменов! Иначе сказать - для Ваших доменов, для которых Ваш почтовик принимает почту. И ничего более

авторизированный пользователь отправляет почту на хххх@gmail.com и в логах наблюдаю
Re: Postfix SMTP неясности с реализацией
Добавлено: 2009-11-06 19:35:07
ivan__
---nebo--- писал(а):а если будет соединение к моему серваку от другого SMTP? как тогда я получу почту?
Как и все получают. Авторизация производится только когда через твой сервер отправляют почту другому серверу.
---nebo--- писал(а):авторизированный пользователь отправляет почту на хххх@gmail.com и в логах наблюдаю
Relay access denied
Чего-то не так настроил значит. Выкладывай main.cf
Re: Postfix SMTP неясности с реализацией
Добавлено: 2009-11-06 20:19:47
Alex_hha
Как и все получают. Авторизация производится только когда через твой сервер отправляют почту другому серверу.
уж очень упрощенное и не совсем корректное описание. Авторизация производится всегда, если уж на то пошло.
а если будет соединение к моему серваку от другого SMTP? как тогда я получу почту?
для доменов в mydestination он принимает без всяких аутентификации
Чего-то не так настроил значит. Выкладывай main.cf
лучше вывод postconf -n

Re: Postfix SMTP неясности с реализацией
Добавлено: 2009-11-06 20:41:21
---nebo---
Код: Выделить всё
# postconf -n
alias_database = hash:/usr/local/etc/postfix/aliases
alias_maps = hash:/usr/local/etc/postfix/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/local/sbin
config_directory = /usr/local/etc/postfix
content_filter = clamsmtpd:[127.0.0.1]:10023
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix
debug_peer_level = 2
home_mailbox = mail/
html_directory = no
mail_owner = postfix
mailq_path = /usr/local/bin/mailq
manpage_directory = /usr/local/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks_style = host
newaliases_path = /usr/local/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = no
receive_override_options = no_address_mappings
relay_domains = $mydestination
sample_directory = /usr/local/etc/postfix
sendmail_path = /usr/local/sbin/sendmail
setgid_group = maildrop
smtpd_client_restrictions = permit_sasl_authenticated , reject
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
unknown_local_recipient_reject_code = 550
Пытаюсь отправить письмо для СВОЕГО домена от пользователя с ДРУГОГО домена. У меня, как видно из вывода postconf -n, стоит аутентификация по логину и паролю, НО
для доменов в mydestination он принимает без всяких аутентификации
, в логах
Код: Выделить всё
NOQUEUE: reject: RCPT from nebo.domen.org[1хх.ххх.х.12]: 554 5.7.1 <nebo.domen.org[1хх.ххх.х.12]>: Client host rejected: Access denied; from=<somebody@post.org> to=<user@domen.org> proto=SMTP helo=<nebo>
Re: Postfix SMTP неясности с реализацией
Добавлено: 2009-11-06 20:47:14
Alex_hha
smtpd_client_restrictions = permit_sasl_authenticated , reject
учитывая это и то, что клиент не включил аутентификацию у себя в MUA все работает согласно твоим правилам.
Кстати, с такой настройкой, тебе смогут отправить ТОЛЬКО после аутентификации, т.е. с mail.ru к тебе письмо никогда не дойдет
Re: Postfix SMTP неясности с реализацией
Добавлено: 2009-11-06 21:17:21
---nebo---
Alex_hha писал(а):smtpd_client_restrictions = permit_sasl_authenticated , reject
учитывая это и то, что клиент не включил аутентификацию у себя в MUA все работает согласно твоим правилам.
Кстати, с такой настройкой, тебе смогут отправить ТОЛЬКО после аутентификации, т.е. с mail.ru к тебе письмо никогда не дойдет
Тогда, мне кажется, я могу сделать по другому:
оставить smtpd_client_restrictions - по умолчанию, и сервер будет примать для СЕБЯ почту от ВСЕХ.
Этот вопрос решен.
А как заставить его(сервер) делать RELAY только для зарегистрированых пользователей(тоесть тех, у кого ящики на нем висят)?
Потому что так пользователи будут слать сообщения только друг другу.
Re: Postfix SMTP неясности с реализацией
Добавлено: 2009-11-06 22:08:02
---nebo---
Уже решид задачу.
Почтовик принимает почту для своего домена от всех, а собственно пользоваться ним как SMTP сервером могут только его пользователи(проверка по логину и паролю).
Код: Выделить всё
# postconf -n
alias_database = hash:/usr/local/etc/postfix/aliases
alias_maps = hash:/usr/local/etc/postfix/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/local/sbin
config_directory = /usr/local/etc/postfix
content_filter = clamsmtpd:[127.0.0.1]:10023
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix
debug_peer_level = 2
home_mailbox = mail/
html_directory = no
mail_owner = postfix
mailq_path = /usr/local/bin/mailq
manpage_directory = /usr/local/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks_style = host
newaliases_path = /usr/local/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = no
receive_override_options = no_address_mappings
relay_domains = $mydestination
sample_directory = /usr/local/etc/postfix
sendmail_path = /usr/local/sbin/sendmail
setgid_group = maildrop
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated , reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
unknown_local_recipient_reject_code = 550