LINUX.ORG.RU
ФорумAdmin

пересылка почты между почтовыми серверами

 


0

1

Например есть почтовый сервер host1.com который является нулевой mx записью для этого домена - host1.com. Когда мы отправляем письмо от пользователя user1@host1.com к пользователю user2@host1.com то всё понятно. Пользователь user1@host1.com должен пройти авторизацию (при правильной настройке почтового сервера) и только после этого он может отправить письмо пользователю user2@host1.com
Но представим, что второй пользователь заведён на другом почтовом сервере - user2@host2.com который так же является нулевой mx записью для своего домена host2.com. Теперь попытаемся отправить письмо от первого пользователя user1@host1.com ко второму пользователю user2@host2.com.
Произойдёт следующее, первый авторизуется на своём почтовом сервере host1.com, потом этот сервер свяжется со вторым почтовым сервером host2.com и передаст ему письмо для второго пользователя user2@host2.com
Теперь представим что на самом деле никакого первого пользователя и первого почтового сервера нет, я беру и соединяюсь телнетом по 25 порту со вторым почтовым сервером. mail from: указываю user1@host1.com rcpt to: указываю user2@host2.com, при этом второй почтовый сервер host2.com никак не сможет проверить есть на самом деле пользователь user1@host1.com или его нет, host1.com на самом ли деле является почтовым сервером или нет. По идее он просто должен принять письмо для пользователя user2@host2.com и всё.
В результате получается так что для рассылки спама не надо искать серверов с открытым релеем или взламывать чей то почтовый ящик. Но на самом деле таким образом отправить письмо не удалось, написало что нет авторизации, только не понятно какого пользователя первого или второго.
Если кто знает подскажите пожалуйста почему не получается таким образом отправить письмо, где я не прав?

★★

Я, вроде, знаю, как почта работает. Но тут столько букв... Даже я не въехал. :-) Сформулируй попроще, что спросить хотел.

Или вот картинку глянь: http://forum.lissyara.su/viewtopic.php?f=20&t=3700#p247843

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 1)
Ответ на: комментарий от AS

Интересует вопрос отправки почты одного почтового сервера другому.
Если я соединяюсь телнетом с почтовым сервером host2.com и отправляю письмо пользователю user2@host2.com от пользователя User1@host1.com. Как сервер host2.com узнает на самом деле есть пользователь user1@host1.com или нет.
Я ведь от кого могу что угодно написать и тем самым рассылать спам даже через серверы с закрытым релеем.

v4567 ★★
() автор топика
Ответ на: комментарий от v4567

Как сервер host2.com узнает на самом деле есть пользователь user1@host1.com или нет.

Может никак не узнавать, а может использовать механизм smtp callback. С точки зрения именно протокола по барабану, что у тебя в mail from передаётся. Это важно только с точки зрения защиты от спама или технического мусора. Для отправки важно только кто ты. То есть, авторизация, либо разрешённые диапазоны IP. Хотя с точки зрения smtp и это не важно, но без этого, как раз, будет открытый релей.

При этом, если ты будешь так спам рассылать, то владельцу сервера пожалуются, а он тебя и без обратного E-Mail вычислит. Если у него голова есть и он знает, кому и что разрешал.

AS ★★★★★
()
Ответ на: комментарий от AS

Для отправки важно только кто ты. То есть, авторизация

в том то и дело, каким образом пользователь user1@host1.com сможет пройти авторизацию на сервере host2.com Ведь его на почтовом сервере host2.com нет.

v4567 ★★
() автор топика
Ответ на: комментарий от v4567

я становлюсь телентом на 25 порт на сервер host2.com и отправляю письмо от пользователя user1@host1.com к пользователю user2@host2.com
Откуда сервер host2.com узнает есть на самом деле пользователь user1@host1.com или нет.

v4567 ★★
() автор топика
Ответ на: комментарий от v4567

каким образом пользователь user1@host1.com сможет пройти авторизацию на сервере host2.com

Любым доступным. Ты картинку смотрел ? Там, где «чужой» красным выделено.

Ведь его на почтовом сервере host2.com нет.

Это совершенно не важно.

AS ★★★★★
()
Ответ на: комментарий от v4567

я становлюсь телентом на 25 порт на сервер host2.com и отправляю письмо от пользователя user1@host1.com к пользователю user2@host2.com
Откуда сервер host2.com узнает есть на самом деле пользователь user1@host1.com или нет.

А, вон ты про что. Тогда только smtp callback: https://en.wikipedia.org/wiki/Callback_verification

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 2)

Если сервер к которому ты телнетом подключаешься требует обязательного starttls, то тут ты и обломаешься. Потом, чтобы настроенный грамотно сервер не дал тебе отлуп, тебе надо подделать spf и скорее всего dkim. И примет этот сервер письмо только для своего существующего пользователя в своём домене, а не отработает релеем.
А ещё забавно в логах смотреть, как сервер с грейлистом пытается слать письмо серверу с калбэком. :)

imul ★★★★★
()
Ответ на: комментарий от imul

А ещё забавно в логах смотреть, как сервер с грейлистом пытается слать письмо серверу с калбэком. :)

Да ничего страшного. Просто чуть дольше. И то, если грейлист не в том месте включили.

AS ★★★★★
()
Ответ на: комментарий от AS

А если я написал такую программку которая при запросе от сервера host2.com о пользователе user1@host1.com говорит что всё нормально такой пользователь есть, то тогда письмо будет отправлено?
И как мне видится почтовый сервер host2.com может посмотреть mx запись - на предмет, какой почтовый сервер обслуживает домен host1.com и если это будет один и тот же серве host1.com, то можно узнать его ip адрес и сравнить его с ip от которого произошло соединение если они разные то откинуть письмо. Даже если будет другой почтовый сервер который обслуживает домен host1.com например host3.com То можно узнать его ip и сравнить с ip с которого произошло соединени, если разные то откинуть письмо.
К чему это я всё говорю. Я создал сервер с открытым релеем, подконектился к нему телнетом на 25 порт и попытался на ukr.net отправить письмо и после rcpt to: пользователь ukr.net получил вот такой ответ:
553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)

v4567 ★★
() автор топика
Ответ на: комментарий от v4567

А если я написал такую программку которая при запросе от сервера host2.com

А с чего ты решил, что этот host2.com тебя будет спрашивать, а не mx для домена host1.com ?

И как мне видится почтовый сервер host2.com может посмотреть mx запись - на предмет, какой почтовый сервер обслуживает домен host1.com

Если вести речь про smtp callback, то именно это он и будет делать.

Я создал сервер с открытым релеем
553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)

Значит не создал. Проверяй настройки и делай так, чтобы тебе можно было через него отправлять.

AS ★★★★★
()
Ответ на: комментарий от v4567

А если я написал такую программку которая при запросе от сервера host2.com о пользователе user1@host1.com говорит что всё нормально такой пользователь есть, то тогда письмо будет отправлено?

Host2.com будет c колбэком ломиться к серверу host1.com, а не в твою программу. Или твоя программа слушает 25 порт на host1.com?

И как мне видится почтовый сервер host2.com может посмотреть mx запись - на предмет, какой почтовый сервер обслуживает домен host1.com и если это будет один и тот же серве host1.com, то можно узнать его ip адрес и сравнить его с ip от которого произошло соединение если они разные то откинуть письмо. Даже если будет другой почтовый сервер который обслуживает домен host1.com например host3.com То можно узнать его ip и сравнить с ip с которого произошло соединени, если разные то откинуть письмо.

Ты только что изобрёл SPF

Я создал сервер с открытым релеем
553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)

Не, не создал.

imul ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.