Протокол SMTP FreeBSD

Передача электронной почты осуществляется по протоколу SMTP (Simple Mail Transfer Protocol – простой протокол передачи почты), который работает через порт TCP с номером 25. По умолчанию электронная почта не шифруется и целостность ее не проверяется. Это очень старый протокол, появившийся в те дни, когда о безопасности не особенно беспокоились. В действительности почту довольно легко послать вручную, не прибегая к клиентской программе. Этот прием можно использовать для устранения сложных неполадок или для того, чтобы похвастаться перед знакомыми. (Только не пытайтесь подобными трюками произвести впечатление на девушку, поверьте моему опыту.)

Определить, способен ли хост получать почту, можно с помощью telnet, выполнив попытку подключиться к порту SMTP:

#           telnet имяхоста 25

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

#           telnet bewilderbeast.blackhelicopters.org 25

Trying 198.22.63.8…

Connected to bewilderbeast.blackhelicopters.org. Escape character is ‘"]’.

220 bewilderbeast.blackhelicopters.org ESMTP Sendmail 8.13.8/8.13.8; Thu, 7 Jun 2008 22:06:25 -0400 (EDT)

Такой ответ не только доказывает, что в системе запущен почтовый сервер, он еще демонстрирует точную версию программного обеспечения сервера (Sendmail 8.13.8), а также локальную дату, время и часовой пояс. Единственная непонятная часть ответа – это число 220. Каждый ответ почтового сервера включает в себя код ответа и понятный для человека текст ответа. Программы, которые общаются с почтовым сервером, читают только код ответа, а остальная часть предназначена для слабого человеческого мозга. Описания всех кодов ответов SMTP можно найти на некоторых сайтах в Интернете.

Попробуем теперь пообщаться с почтовым сервером. Начнем беседу с команды helo и имени хоста, с которого выполняется соединение:

helo pesty.blackhelicopters.org

Сервер должен дать примерно такой ответ:

250 bewilderbeast.blackhelicopters.org Hello d149-67-12- 190.col.wideopenwest.com [67.149.190.12], pleased to meet you

Полученный ответ включает в себя числовой код (250) и имя хоста, с которым установлено соединение (bewilderbeast.blackhelicopters.org). Приветствие Hello означает, что сервер готов общаться с вами, и он смог идентифицировать компьютер, с которого вы установили соединение. Мой ноутбук имеет сетевое имя pesty.blackhelicopters.org, но обратный поиск в DNS по моему IP-адресу показывает, что в действительности я подключен к Интернету через кабельный модем Wide Open West. Имя хоста pesty является действительным только за моим домашним брандмауэром.

Теперь с помощью команды mail from: сообщим почтовому серверу, от кого исходит сообщение, указав адрес электронной почты автора:

mail from: <mwlucas@AbsoluteFreeBSD.com>

250 2.1.0 mwlucas@AbsoluteFreeBSD.com… Sender ok

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

rcpt to: <mwlucas@blackhelicopters.org>

250 2.1.5 mwlucas@blackhelicopters.org… Recipient ok

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

Теперь почтовый сервер знает отправителя и получателя. Это наиболее типичное место, в котором отклоняется передача сообщения, как говорится в разделе «Управление ретрансляцией» далее в этой главе. Теперь все готово к отправке вашего сообщения. Выполните команду data:

data

354 Enter mail, end with "." on a line by itself

Теперь можно набирать любое сообщение. Согласно инструкциям, которые следуют за кодом 354, после текста сообщения надо ввести одну точку в отдельной строке. В следующем примере отправляются слова «Тестовое сообщение»:

Тестовое сообщение

После того как точка набрана в отдельной строке, почтовый сервер должен вернуть код 250, подтверждая прием сообщения и сообщая числовой идентификатор (ID) электронного письма:

250 2.0.0 15827nBE004533 Message accepted for delivery

Введите команду quit, чтобы закончить сеанс связи.

Такой метод можно применить как во благо, так и во вред. Как администратор вы можете проверять почтовую конфигурацию без возни с клиентской программой, которая может скрыть результаты теста. Однако такой метод позволяет легко подделать сообщения, просто придумав какой угодно свой собственный обратный адрес mail from. Правда, причин, которыми можно было бы оправдать такую подделку1, не так уж много.

Источник: ЛукасМ. FreeBSD. Подробное руководство, 2-е издание. – Пер. с англ. – СПб.: Символ- Плюс, 2009. – 864 е., ил.

Похожие посты:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий