Через telnet идет подключение к 25 порту с главного домена и всех поддоменов. Как устранить?
Здравствуйте!
Ситуация такова, что есть основной домен и много поддоменов, в числе которых почтовый mail.domain.ru
Когда пробую телнетить главный домен (или любые поддомены) и 25 порт, то идет подключение, а такого быть не должно.
К 25 порту должно быть подключение только с mail.domain.ru
Есть также 2 IPv4 и 2 IPv6, и при попытке телнетить уже их тоже идет подключение через 25 порт.
Вероятно некорректно настроены DNS-записи/BIND/EXIM. Прошу помочь разобраться в ситуации.
Александр, файрволл в панели управления работает только с IP-адресами.
Не подключаться, а прослушиваться 25 порт должен только с mail.domain.ru, но не с главного домена и всех прочих поддоменов.
Как-то так.
Не понятно почему телнетятся все поддомены и главный домен по 25 порту.
порт не может "прослушиваться только с mail.domain.ru", у порта нет такой функции.
Не принимать подключения у почтового клиента - означает подключиться, проверить удаленный IP, если не совпал - отключиться.
Если это сделано на уровне firewall - тогда уже можно и так. Но непонятно какими инструментами настроено такое ограничение. Ни примера конфига, ни как это планировалось сделать - неясно.
Пробуем:
host yandex.ru Получаем:
yandex.ru has address 77.88.55.80
yandex.ru has address 5.255.255.60
yandex.ru has address 77.88.55.77
yandex.ru has address 5.255.255.5
yandex.ru has IPv6 address 2a02:6b8:a::a
yandex.ru mail is handled by 10 mx.yandex.ru.
Пробуем:
telnet yandex.ru 25 Получаем:
Trying 5.255.255.5...
Trying 5.255.255.60...
Trying 77.88.55.80...
Trying 2a02:6b8:a::a...
Trying 77.88.55.77...
telnet: Unable to connect to remote host: Connection timed out
Connection failed: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 77.88.55.77:25
Теперь в моем случае....
Пробуем:
host domain.ru Получаем:
domain.ru has address 1.2.3.4
domain.ru has address 5.6.7.8
domain.ru has IPv6 address 1:2:3:4::
domain.ru has IPv6 address 5:6:7:8::
domain.ru mail is handled by 10 mail.domain.ru.
Пробуем:
telnet domain.ru 25 Получаем:
Trying 1.2.3.4...
Connected to domain.ru.
Escape character is '^]'.
220 mail.domain.ru ESMTP Exim 4.95 Ubuntu Thu, 10 Nov 2022 00:03:37 +0300
__________________________
Т.е. у того же яндекса подключения по 25 порту нет через его основной домен, но есть только через поддомен mx.yandex.ru
А у меня с любого поддомена и основного домена есть подключение по 25 порту.
> давайте попробую объяснить с примерами.
ну давайте с примерами.
host yandex.ru
Получаем:
yandex.ru has address 77.88.55.80
yandex.ru has address 5.255.255.60
yandex.ru has address 77.88.55.77
yandex.ru has address 5.255.255.5
yandex.ru has IPv6 address 2a02:6b8:a::a
yandex.ru mail is handled by 10 mx.yandex.ru.
Так если у yandex.ru вам четко пишут, что MX у них это не yandex.ru а mx.yandex.ru, то почему вы ожидаете что 25 порт у них должен быть открыт на yandex.ru?
Делайте вот так и все сразу понятно:
$ telnet mx.yandex.ru 25
Trying 77.88.21.249...
Connected to mx.yandex.ru.
Escape character is '^]'.
Saboteur, вопрос не об этом, а о том, почему У МЕНЯ 25 порт открыт на основном домене и всех поддоменах в отличие от яндекса, где только для mx.yandex.ru
У меня тоже есть поддомен для почты mail.domen.ru
Вы путаете понятие "открытый порт" и "поднятый сервис".
В зоне яндекса черным по белому указано, что у них почтовый домен это mx.yandex.ru, поэтому и почтовый сервер у них поднят только там, а на других серверах/балансерах НЕ ПОДНЯТ.
Это не тоже самое, что "порт закрыт".
Чем больше знаю, тем лучше понимаю, как мало знаю.
Потому что у Яндекса его почтовый сервер mx.yandex.ru сидит на отдельном его собственном IP, на котором он и отвечает на 25-ом порту.
А у вас IP-адрес один для всего: и для основного домена со всеми его поддоменами, и для mail.domen.ru с его 25-ым портом.
Когда на этот IP на 25-ый порт прилетает запрос на соединение, сетевая подсистема не знает, к какому поддомену или домену создаётся соединение, она знает только IP и порт 25. Поэтому заблокировать "а не тот домен!" не получится.
Выносите почтовый сервер на отдельный IP, к которому будет привязан только mail.domen.ru - и тогда не будут доступны 25-ые порты на других доменах.
Добрый вечер.
Т.е. mail.domain.ru надо полностью прописывать как совершенно отдельный и обособленный сайт от domain.ru? Даже общие NS не должны быть с одним IP?
AUser0, спасибо. А кроме почтового домена еще нужно какие-то повесить на тот же IP? smtp.domain.ru или pop.domain.ru?
Хотя я их даже в Thunderbird нигде не прописывал, везде mail.domain.ru с определенными портами, и все работает. Не знаю даже, корректно ли это...
TRIG, стойте, а разве smtp и pop3 относятся к почтовой системе? Ой, относятся! Ну тогда и их тоже на этот IP, потому что это всё и есть почтовый сервер.
P.S. Но проще, что бы не забивать пользователям головы разными доменными именами, везде использовать mail.domene.mnu. Разные имена нужны очень крупным провайдерам, что бы снижать нагрузку на, ну и перескакивать по IP-шкам.
AUser0, я действительно не знал, спасибо! обычно все эти поддомены создаются автоматически при добавлении нового домена, а я как-то и значения им не придавал...
А где связь между портами и доменами? Порт прослушивается по IP, а не домену. Если у вас хоть 100 субдоменов ведут на один IP, на котором прослушивается 25 порт, то он будет доступен по любому субдомену.
Вероятно некорректно настроены DNS-записи/BIND/EXIM.
Нет.
telnet должен подключаться. Далее после соединения надо обменятся "приветствиями": IP адрес, имя ….
А вот дальше сервер проверяет кому что можно. ACL правила отбрасывают запрещённые соединения.
там все не много по другому...
Кто тебе сказал что хост yandex.ru и есть почтовый сервер с открытым 25 портом. Его там просто нет и поэтому телнет не работает.
Для понимания:
Смотрим справку по настройки почтовых клиентов и видим что у yandex надо прописывать адрес smtp.yandex.ru. Это и есть почтовый smtp сервер для отправки сообщений. Поэтому надо писать: telnet smtp.yandex.ru 25. Но это тоже не будет работать, так как у них его нет, а есть 465 порт (SSL), а там телнет даже не знаю как...
TRIG,
Уточняю:
Сколько у тебя поддоменов?
В DNS прописан mail.domain.ru и domain.ru под одним IP?
Телнет по 25 порту должен работать только с mail.domain.ru и с domain.ru (логично - если один и тот же iP).
НО у тебя другие поддомены почему то тоже подключаются по 25 порту?
Возможно поддомены находятся на том же сервере что и mail.domain.ru. Или разные у них IP?
На поддоменах запущен почтовый сервис (ненастроенный - сомнительно). Проверить.
Короче тут скорее вопрос в DNS и с топологией сети.
Александр, в общем перенес поддомены mail/imap/pop/smtp на отдельные IP от остального сайта.
Теперь не могу понять, как оставить 25 порт для прослушивания только на новых IP, а то до сих пор 25 порт открыт и для предыдущих IP.
На примере:
1.2.3.4.5 - общий IP ранее.
6.7.8.9.10 - новый IP отдельно для почты.
Нужно:
1.2.3.4.5:25 - закрыт для всех (никто не может прослушивать его)
6.7.8.9.10:25 - открыт для всех по-умолчанию (сейчас и так открыт)
TRIG,
1) Закрыть файрволлом. Лучше закрыть всё, а открывать те порты которые планируешь использовать для внешних связей. Иногда жуткая "гадость", но нужная.
2) Обычно в настройках многих сервисов указывается IP адрес. он может выглядеть так:
0.0.0.0 - Сервис будет слушать все сетевые карты если их не одна. Сервис будет доступен извне.
1.2.3.4 - должен совпадать с IP сетевой карты. Сервис будет доступен извне.
127.0.01 - Сервис будет доступен изнутри. Никто на него не зайдет. Кроме хакеров )))
Александр, не до конца понятно как это сделать для своих IP.
В файрволле есть лишь опции:
1. Запретить
2. Разрешить
3. Частично запретить
4. Частично разрешить