Не удается подключиться к почтовому серверу через telnet.

Вопрос или проблема

У меня есть машина с установленной CentOS. С этой машины я не могу подключиться к почтовому серверу по telnet.

С моей локальной машины я могу выполнить следующую команду:

telnet mailserver.com 25

С этой машины я не могу отправить электронные письма как в этом руководстве.

Но с конкретной машины под управлением CentOS я вижу только:

trying xxx.xxx.xxx.xxx

Пока не получу таймаут.

Что может происходить? Может быть, это брандмауэр блокирует подключение?

Возможно, целевой почтовый сервер блокирует соединение с портом или сам порт не открыт на почтовом сервере.

Сначала можно попробовать пинговать почтовый сервер, чтобы убедиться, что он доступен.

ping mailserver.tld

Если имя хоста разрешается, то вы можете попытаться просканировать порт с помощью nmap (он должен быть доступен на вашей установке CentOS)

nmap -p port_number mailserver.tld

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

nmap -sT remote_host

Однако будьте осторожны, так как некоторые серверы могут не приветствовать такое сканирование и заблокировать ваш IP-адрес в ответ.

Если вы можете установить соединение с портом 25 с некоторых систем, но не с системы CentOS, я бы предположил, что почтовый сервер не блокирует входящие соединения на порт 25. Для почтовых серверов этот порт обычно оставляется открытым для всего мира, так как TCP порт 25 является стандартным Протоколом простой передачи почты (SMTP), используемым почтовыми серверами для доставки электронной почты на другие почтовые серверы, и если вы хотите, чтобы кто-то в мире мог отправлять электронные письма вашим пользователям, вы обычно не накладываете никаких ограничений на IP-адреса для входящих соединений на этот порт, так как вы не знаете IP-адреса каждого другого почтового сервера в мире.

С другой стороны, поставщики интернет-услуг (ISP) часто блокируют исходящие соединения на этот порт, так как они не ожидают, что домашние пользователи будут запускать собственные почтовые серверы, и хотят заблокировать зараженные системы пользователей, чтобы предотвратить распространение спама или вредоносного ПО – “провайдеры спама” часто продают использование систем, которые они контролируют, в качестве точек распространения спама. Они могут ожидать, что домашние пользователи будут отправлять почту через почтовые серверы ISP, которые будут применять меры против спама.

Тем не менее, ISP может разрешить исходящий email на порт 587, так как когда этот порт используется клиентом электронной почты для отправки писем на почтовый сервер, используется аутентификация. Т.е., пользователь предоставляет учетные данные для своей аутентификации, что значительно снижает вероятность того, что электронная почта исходит от системы, которая была заражена вредоносным ПО и используется как агент для распространения спама или дальнейшего распространения вредоносного ПО по электронной почте.

Вы можете увидеть аналогичное блокирование, осуществляемое сотрудниками технической поддержки для многих компаний по той же причине. Если они позволяют исходящие соединения только к собственным почтовым серверам компании, они могут быть уверены, что какая-то зараженная система внутри локальной сети компании (LAN) не распускает спам в мир, что может привести к тому, что IP-адрес компании будет добавлен в черные списки на основе DNS, которые ведут организации по борьбе со спамом, такие как SORBS, Spamhaus и т.д.

Вы можете проверить, есть ли у вас такая же проблема, используя общедоступный SMTP-сервер, предоставленный Microsoft. Если блокировки исходящих соединений нет, либо на самой системе CentOS, чего вряд ли произойдет, если вы настроили систему и контролируете ее самостоятельно, но может быть, если кто-то другой ее настроил и заблокировал исходящие соединения на порт 25 с помощью программного обеспечения брандмауэра на уровне хоста, или же провайдер сети блокирует исходящие соединения на порт 25, попробовав telnet mx1.hotmail.com 25. Вы должны увидеть следующее:

$ telnet mx1.hotmail.com 25
Trying 207.46.8.167...
Connected to mx1.hotmail.com.
Escape character is '^)'.
220 BAY004-MC5F22.hotmail.com Sending unsolicited commercial or bulk...

Для меня мой интернет-провайдер (Bell.ca) блокирует порт 25.
Поэтому уловка заключалась в том, чтобы подключиться через SSH (порт 22) к моему серверу.

И тогда я смог подключиться к порту 25 с моего сервера:

telnet localhost 25

Ps.: Скорее всего, telnet не установлен. Так что если вы получили ошибку “команда не найдена”, попробуйте установить telnet. На Linux:

sudo yum install telnet

или, в зависимости от того, использует ли ваш сервер yum или apt:

sudo apt-get install telnet

Ответ или решение

Невозможно выполнить Telnet в почтовый сервер: диагностика проблемы

Если вы испытываете проблемы с подключением к почтовому серверу через команду Telnet на вашем сервере CentOS, давайте подробно рассмотрим возможные причины и способы их решения. На старте важно понимать, что Telnet используется для проверки подключения к определенным портам, и в нашем случае мы говорим о стандартном порту 25, используемом для протокола SMTP.

1. Проверка разрешимости хоста

Первым шагом стоит убедиться, что ваш сервер может разрешить имя хоста почтового сервера. Для этого выполните команду:

ping mailserver.com

Если вы получаете ответ, это значит, что проблема не в разрешении имени. Если хост недоступен, возможно, нужно проверить настройки DNS вашего сервера.

2. Проверка доступности порта с помощью Nmap

Следующим шагом будет использование утилиты nmap для проверки состояния порта 25 на почтовом сервере. Выполните команду:

nmap -p 25 mailserver.com

Если порт 25 закрыт или недоступен, может быть, что сервер использует другой порт для SMTP, или же ваш сервер (CentOS) не может подключиться к этому порту из-за блока со стороны вашего интернет-провайдера или внутреннего фаервола.

3. Влияние брандмауэра

Если текущее подключение работает с других машин, но не с вашего CentOS-сервера, проблема, скорее всего, связана с брандмауэром вашей системы. Проверьте правила брандмауэра с помощью следующей команды:

sudo iptables -L -n

Убедитесь, что нет правил, блокирующих исходящие подключения на порт 25. Если есть такие правила, вам, возможно, придется их удалить или изменить.

4. Ограничения со стороны провайдеров

Множество интернет-провайдеров (ISP), особенно для домашних пользователей, блокируют исходящие подключения к порту 25, чтобы предотвратить отправку спама. Если ваш сервер расположен в такой сети, это может быть основной причиной проблемы. Вы можете проверить, блокирует ли ваш ISP порт 25, используя общий SMTP-сервер, например, от Microsoft:

telnet mx1.hotmail.com 25

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

5. Использование альтернативных портов

Если ваш провайдер блокирует порт 25, рассмотрите возможность использования альтернативных портов SMTP, таких как 587. Этот порт часто используется для аутентифицированного SMTP, что может обойти блокировки.

6. Установка Telnet

Если вы получаете сообщение об ошибке "command not found", это может означать, что Telnet не установлен на вашей системе. Установите его с помощью одной из следующих команд:

Для систем с yum:

sudo yum install telnet

Для систем с apt:

sudo apt-get install telnet

Вывод

Следуя этим шагам, вы сможете диагностировать и решить проблему с подключением к почтовому серверу через Telnet. Важно понимать, что через Telnet вы не только проверяете доступность порта, но и обеспечиваете основу для более углубленного изучения проблем с сетевым подключением. Если проблема не решается на стороне вашего сервера, возможно, потребуется обратиться к интернет-провайдеру для выяснения любых блокировок или ограничений.

Оцените материал
Добавить комментарий

Капча загружается...