Postfix SMTP неясности с реализацией

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
---nebo---
старшина
Сообщения: 424
Зарегистрирован: 2008-11-01 21:06:23
Откуда: Киев
Контактная информация:

Postfix SMTP неясности с реализацией

Непрочитанное сообщение ---nebo--- » 2009-11-05 23:02:09

Существует почтовый сервер на базе Postfix.
Домен для которого поизводится прием почты (например) domen.org.

Существует следующая задача. Нужно чтобы:
1) пользователи сервера(те у которых есть ящик на сервере) погли отправлять почту как для СВОЕГО домена(проблем нету) так и для других доменов(тобиш наш сервак был для них релеем). Тут первая сложность: в настройках Postfix указывается для кого релееть, так вот это делается, я так понял, по IP

Код: Выделить всё

mynetworks_style = subnet
, тоесть параметр mynetworks определяет список "доверенных" SMTP клиентов(для которых доступен Relay access),
а у меня пользователи удаленные и соответственно у всех разные IP. Как разрулить?

2) от всех других пользователей ( других SMTP серверов) он должен получать почту ТОЛЬКО для собственного домена domen.org. Тоесть здесь всем из п.1 нужно разрешить Relay, а остальным запретить.
...участки под застройку в живописном месте Интернет

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

kerilka
сержант
Сообщения: 193
Зарегистрирован: 2008-11-18 18:38:48

Re: Postfix SMTP неясности с реализацией

Непрочитанное сообщение kerilka » 2009-11-06 0:15:03

тут вариант - только аутентификация) иначе никак)

Аватара пользователя
---nebo---
старшина
Сообщения: 424
Зарегистрирован: 2008-11-01 21:06:23
Откуда: Киев
Контактная информация:

Re: Postfix SMTP неясности с реализацией

Непрочитанное сообщение ---nebo--- » 2009-11-06 1:11:34

kerilka писал(а):тут вариант - только аутентификация) иначе никак)
такой вариант рассматривался, таким образом с пользователями я вопрос решу, а как быть если соеденяется другой SMTP сервер? Его(их) я не смогу аутентифицировать.

Ситуация достаточно стандартная, как мне кажется. Ведь каждый мыльник должен получать письма от других SMTP серверов для своего домена и в то же время позволять использовать себя как relay только для определенной группы пользователей(пользователей этого почтовика).
...участки под застройку в живописном месте Интернет

kerilka
сержант
Сообщения: 193
Зарегистрирован: 2008-11-18 18:38:48

Re: Postfix SMTP неясности с реализацией

Непрочитанное сообщение kerilka » 2009-11-06 9:25:11

Вы, возможно, удивитесь - но по умолчанию так всегда и работает, поэтому в конфиге Вы и указываете параметр mydomain. В этом случае параметр mynetworks можно опустить, по факту оставить 127.0.0.1.
Всех остальных заставить аутентифицироваться.

В итоге для Вашего домена постфикс будет получать почту от всех (не внимая, авторизирован пользователь или нет), также будет происходить и с теми доменами, на которые разрешен relay.

Для всех остальных доменов - либо авторизирован, либо relay access denied :)

Или у Вас имеются ремоут сервера, которые используют Ваш почтовик как smarthost? Тогда адреса серверов включить в mynetworks :)

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: Postfix SMTP неясности с реализацией

Непрочитанное сообщение skeletor » 2009-11-06 13:08:04

---nebo--- писал(а):Существует почтовый сервер на базе Postfix.
Домен для которого поизводится прием почты (например) domen.org.

Существует следующая задача. Нужно чтобы:
1) пользователи сервера(те у которых есть ящик на сервере) погли отправлять почту как для СВОЕГО домена(проблем нету) так и для других доменов(тобиш наш сервак был для них релеем). Тут первая сложность: в настройках Postfix указывается для кого релееть, так вот это делается, я так понял, по IP

Код: Выделить всё

mynetworks_style = subnet
, тоесть параметр mynetworks определяет список "доверенных" SMTP клиентов(для которых доступен Relay access),
а у меня пользователи удаленные и соответственно у всех разные IP. Как разрулить?

2) от всех других пользователей ( других SMTP серверов) он должен получать почту ТОЛЬКО для собственного домена domen.org. Тоесть здесь всем из п.1 нужно разрешить Relay, а остальным запретить.
1 - неверно! Этот параметр не определяет релей и к нему не имеет никакого отношения.
mynetworks_style используется в restrictions, где задаются параметры кому можно и куда отправлять. В частности параметр permit mynetwork как раз и указывает, что разрешить моей сетке (а сетка может быть сеткой или одним IP, то есть IP самого сервака).
Что касается релея, то за него отвечают много параметров. Узнать их можно командой

Код: Выделить всё

postconf -d | grep relay
. Обычно используют только этот

Код: Выделить всё

relay_domains
, где перечислены домены, для которых возможен релей.
Что касется пункта 2, то тут можно использовать restriction class.

ivan__
сержант
Сообщения: 234
Зарегистрирован: 2009-08-11 15:48:32
Откуда: Питер

Re: Postfix SMTP неясности с реализацией

Непрочитанное сообщение ivan__ » 2009-11-06 15:44:47

---nebo--- писал(а):Существует почтовый сервер на базе Postfix.
Домен для которого поизводится прием почты (например) domen.org.

Существует следующая задача. Нужно чтобы:
1) пользователи сервера(те у которых есть ящик на сервере) погли отправлять почту как для СВОЕГО домена(проблем нету) так и для других доменов(тобиш наш сервак был для них релеем). Тут первая сложность: в настройках Postfix указывается для кого релееть, так вот это делается, я так понял, по IP

Код: Выделить всё

mynetworks_style = subnet
, тоесть параметр 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,
настраиваешь авторизацию, и все пользователи должны будут авторизооваться, прежде чем что-то отправлять.

Аватара пользователя
---nebo---
старшина
Сообщения: 424
Зарегистрирован: 2008-11-01 21:06:23
Откуда: Киев
Контактная информация:

Re: Postfix SMTP неясности с реализацией

Непрочитанное сообщение ---nebo--- » 2009-11-06 18:15:31

Обычно используют только этот

Код: Выделить всё

relay_domains
, где перечислены домены, для которых возможен релей.
но ведь пользователи должны будут отправлять письма куда-угодно, не могу же я вручную(или как то автоматически) составить список всех в мире почтовых доменов :smile:

или как это делается правильно на реальных почтовиках?

Если я настрою, что мой сервер будет делай 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? как тогда я получу почту?
...участки под застройку в живописном месте Интернет

kerilka
сержант
Сообщения: 193
Зарегистрирован: 2008-11-18 18:38:48

Re: Postfix SMTP неясности с реализацией

Непрочитанное сообщение kerilka » 2009-11-06 18:19:49

:)

Все, кто авторизовался - могут слать письма куда угодно!!! relay_domains, это список доменов, куда можно слать, не авторизовываясь!! по факту опен релей для этих доменов! Иначе сказать - для Ваших доменов, для которых Ваш почтовик принимает почту. И ничего более :)

Аватара пользователя
---nebo---
старшина
Сообщения: 424
Зарегистрирован: 2008-11-01 21:06:23
Откуда: Киев
Контактная информация:

Re: Postfix SMTP неясности с реализацией

Непрочитанное сообщение ---nebo--- » 2009-11-06 18:44:06

kerilka писал(а)::)

Все, кто авторизовался - могут слать письма куда угодно!!! relay_domains, это список доменов, куда можно слать, не авторизовываясь!! по факту опен релей для этих доменов! Иначе сказать - для Ваших доменов, для которых Ваш почтовик принимает почту. И ничего более :)
авторизированный пользователь отправляет почту на хххх@gmail.com и в логах наблюдаю

Код: Выделить всё

Relay access denied
...участки под застройку в живописном месте Интернет

ivan__
сержант
Сообщения: 234
Зарегистрирован: 2009-08-11 15:48:32
Откуда: Питер

Re: Postfix SMTP неясности с реализацией

Непрочитанное сообщение ivan__ » 2009-11-06 19:35:07

---nebo--- писал(а):
а если будет соединение к моему серваку от другого SMTP? как тогда я получу почту?
Как и все получают. Авторизация производится только когда через твой сервер отправляют почту другому серверу.
---nebo--- писал(а):
авторизированный пользователь отправляет почту на хххх@gmail.com и в логах наблюдаю
Relay access denied
Чего-то не так настроил значит. Выкладывай main.cf

Alex_hha
лейтенант
Сообщения: 755
Зарегистрирован: 2005-11-06 18:25:26
Контактная информация:

Re: Postfix SMTP неясности с реализацией

Непрочитанное сообщение Alex_hha » 2009-11-06 20:19:47

Как и все получают. Авторизация производится только когда через твой сервер отправляют почту другому серверу.
уж очень упрощенное и не совсем корректное описание. Авторизация производится всегда, если уж на то пошло.
а если будет соединение к моему серваку от другого SMTP? как тогда я получу почту?
для доменов в mydestination он принимает без всяких аутентификации
Чего-то не так настроил значит. Выкладывай main.cf
лучше вывод postconf -n ;)

Аватара пользователя
---nebo---
старшина
Сообщения: 424
Зарегистрирован: 2008-11-01 21:06:23
Откуда: Киев
Контактная информация:

Re: Postfix SMTP неясности с реализацией

Непрочитанное сообщение ---nebo--- » 2009-11-06 20:41:21

Код: Выделить всё

# 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>
...участки под застройку в живописном месте Интернет

Alex_hha
лейтенант
Сообщения: 755
Зарегистрирован: 2005-11-06 18:25:26
Контактная информация:

Re: Postfix SMTP неясности с реализацией

Непрочитанное сообщение Alex_hha » 2009-11-06 20:47:14

smtpd_client_restrictions = permit_sasl_authenticated , reject
учитывая это и то, что клиент не включил аутентификацию у себя в MUA все работает согласно твоим правилам.

Кстати, с такой настройкой, тебе смогут отправить ТОЛЬКО после аутентификации, т.е. с mail.ru к тебе письмо никогда не дойдет

Аватара пользователя
---nebo---
старшина
Сообщения: 424
Зарегистрирован: 2008-11-01 21:06:23
Откуда: Киев
Контактная информация:

Re: Postfix SMTP неясности с реализацией

Непрочитанное сообщение ---nebo--- » 2009-11-06 21:17:21

Alex_hha писал(а):
smtpd_client_restrictions = permit_sasl_authenticated , reject
учитывая это и то, что клиент не включил аутентификацию у себя в MUA все работает согласно твоим правилам.

Кстати, с такой настройкой, тебе смогут отправить ТОЛЬКО после аутентификации, т.е. с mail.ru к тебе письмо никогда не дойдет
Тогда, мне кажется, я могу сделать по другому:
оставить smtpd_client_restrictions - по умолчанию, и сервер будет примать для СЕБЯ почту от ВСЕХ.
Этот вопрос решен.

А как заставить его(сервер) делать RELAY только для зарегистрированых пользователей(тоесть тех, у кого ящики на нем висят)?
Потому что так пользователи будут слать сообщения только друг другу.
...участки под застройку в живописном месте Интернет

Аватара пользователя
---nebo---
старшина
Сообщения: 424
Зарегистрирован: 2008-11-01 21:06:23
Откуда: Киев
Контактная информация:

Re: Postfix SMTP неясности с реализацией

Непрочитанное сообщение ---nebo--- » 2009-11-06 22:08:02

Уже решид задачу.
Почтовик принимает почту для своего домена от всех, а собственно пользоваться ним как 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
...участки под застройку в живописном месте Интернет