Брандмауэры и специальное программное обеспечение 8 Часть 4

Вид материалаРеферат

Содержание


telnet, порт 23
smtp, порт 25
Подобный материал:
1   ...   41   42   43   44   45   46   47   48   ...   101

telnet, порт 23


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

Однако насчет telnet не стоит заблуждаться — сервер telnet является наиболее опасным из всех запущенных в системе серверов. Протокол telnet — это широко открытый протокол в том смысле, что любой желающий может использовать его для доступа к системе. Поток данных, передаваемых telnet, прост и незашифрован. Сервер telnet опасен даже в случае, если вы используете его в частной сети. Гораздо более безопасным (и более гибким) является протокол удаленного входа в систему (remote login), на котором основана работа службы ssh (Secure Shell).

Если в вашей системе работает сервер telnet, я настойчиво рекомендую вам остановить его. Если вы желаете понять, кто пытается обнаружить в вашей систем открытые порты telnet (как правило, этим занимаются малоопытные взломщики и дилетанты), вы можете устроить ловушку. Откройте порт 23 с использованием оболочки TCP (о программах категории TCP Wrapper рассказывается в главе 15) и при этом запретите доступ к службе или используйте сетевой фильтр, который позволит вам следить за содержимым пакетов, но при этом отбрасывать их (см. главу 16). Выбор за вами. Как и во многих других системах, в Unix существует несколько способов решить какую-либо проблему. Вы должны подобрать такой, который лучше всего соответствует вашей политике.


СОВЕТ

Утилита dig не описывается в данной книге, однако эта утилита оказывается весьма полезной в случае, если вы хотите следить за IP-адресами, являющимися источниками сообщений. Отдайте команду dig -х <неизвестный_IР-арес> и вы можете узнать владельца этого IP-адреса. Обладая этими сведениями, вы можете составить жалобу, адресованную интернет-провайдеру или владельцу сети. В состав жалобы можно включить содержимое журналов. Возможно, это подействует. Если нет, то вы можете блокировать данный IP-адрес или соответствующую ему подсеть.

smtp, порт 25


В рамках Caldera OpenLinux по умолчанию устанавливается серверная программа sendmail — несомненный лидер в области серверных приложений электронной почты. Эта программа — чрезвычайно мощная и гибкая. Она может обслуживать одновременно сотни подключений, через которые осуществляются как прием, так и передача почты. Обсуждению корректной конфигурации этого приложения можно посвятить отдельную книгу. Конфигурация sendmail, используемая в Caldera OpenLinux по умолчанию, вполне подходит для большинства ситуаций. Для нормальной работы вам наверняка потребуется почтовый сервер, однако существует мнение, что другие серверы более безопасны и проще настраиваются. К таким серверам относится, например, qmail. Такие серверы не входят в состав Caldera OpenLinux, поэтому если вы заинтересованы в их использовании, вам потребуется выполнить поиск в Интернете.


ПРИМЕЧАНИЕ

Все почтовые программы делятся на три категории. К первой из них относятся серверы SMTP, которые используются для передачи почты между системами. Такие программы называют агентами передачи почты (Mail Transfer Agent, MTA). Ко второй категории относятся почтовые клиенты, которые осуществляют чтение и передачу почты МТА. Такие программы называются почтовыми пользовательскими агентами (Mail User Agent, MUA). Часто для обмена почты между МТА и MUA используются агенты локальной доставки почты (Mail Delivery Agent, MDA). К этой категории относятся такие программы, как procmail и т. п. Приложения MDA получают почту от sendmail и направляют ее в локальный почтовый ящик.

Сервер sendmail — это большая, мощная и популярная программа, поэтому за все время ее существования взломщики обнаружили множество способов ее взлома. К счастью, sendmail позволяет использовать некоторые приемы, повышающие защиту. Например, вы можете создать отдельный процесс для некоторых пользователей, которые, как правило, либо отправляют, либо принимают почту, чтобы ограничить объем повреждений в случае, если сообщение содержит исполняемый код (иначе говоря, «троянского коня» — подробнее о «троянских конях» рассказывается в главе 14).

Многие участники электронных дискуссий в Usenet рекомендуют заменить sendmail другой аналогичной программой. В данной книге я не рекомендую вам делать этого. Несмотря на мощь и сложность, программу sendmail вполне можно использовать с соблюдением должного уровня безопасности. В листинге 12.3 показан протокол почтового соединения.

Листинг 12.3. Почтовое соединение

[david@volcan david]$ mail -v rootPchiriqui

Subject: test

this is a test.

.

EOT

root@chiriqui... Connecting to chiriqui.pananix.com. via esmtp...

220 chiriqui.pananix.com ESMTP Sendmail 8.9.3/8.9.3; Fri, 8 Oct 1999 09:52:50 -0500
>>> EHLO volcan.pananix.com

250-chiriqui.pananix.com Hello volcan.pananix.com [192.168.0.1], pleased to meet you

250-EXPN

250-VERB

250-8BITMIME

250-SIZE

250-DSN

250-ONEX

250-ETRN

250-XUSR

250 HELP

>>> MAIL From: SIZE=49

250 ... Sender ok

>>> RCPT To:

250 ... Recipient ok

>>> DATA

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

>>> .

250 JAA06968 Message accepted for delivery

root@chiriqui... Sent (JAA06968 Message accepted for delivery)

Closing connection to chiriqui.pananix.com.

>>> QUIT

221 chiriqui.pananix.com closing connection

Чтобы увидеть, что именно происходит в процессе обычной процедуры передачи почты с использованием sendmail, вы можете запустить программу mail в режиме вывода подробной информации (mail -v). Эту программу можно использовать для решения проблем удаленной передачи почты. Обратите внимание, что, воспользовавшись таким приемом, вы можете получить отказ сервера в случае, если вы пытаетесь соединиться с sendmail, используя компьютер, который не является разрешенным для связи узлом sendmail. Подобным способом вы можете проверить, осуществляет ли сервер sendmail обмен почтой со всеми узлами или он настроен на соединение только с определенным набором разрешенных сетевых узлов.

Теперь попробуйте сделать то же самое при помощи telnet. Данное соединение осуществляется с сетевого узла volcan (192.168.0.1). Клиент подключается к узлу chiriqui (192.168.0.2). Сервер sendmail требует, чтобы было возможным определить имя подключающегося узла. Однако в остальном сервер sendmail чрезвычайно доверчив. И не только потому, что узел volcan принадлежит той же самой подсети (вы можете попробовать выполнить то же самое в отношении любого узла в Интернете). Узлы, не требующие обратного сопоставления имени, являются уязвимыми. (Данный сервер sendmail работает в режиме отключенной ретрансляции — anti-relaying — однако в данном случае сервер chiriqui настроен так, что для узла volcan разрешена ретрансляция.)

Листинг 12.4. Подключение к sendmail с использованием telnet

[david@volcan david]$ telnet chiriqui 25

Trying 192.168.0.2...

Connected to chiriqui.pananix.com.

Escape character is ']'.

220 chiriqui.pananix.com ESMTP Sendmail 8.9.3/8.9.3; Fri, 8 Oct 1999 09:59:39 -0500
EHLO local host

250-chiriqui.pananix.com Hello volcan.pananix.com [192.168.0.1], pleased to meet you

250-EXPN

250-VERB

250-8BITMIME

250-SIZE

250-DSN

250-ONEX

250-ETRN

250-XUSR

250 HELP

MAIL From:

250 ... Sender ok

RCPT To:

250 ... Recipient ok

DATA

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

I see you.

You can't hide.

250 KAA07061 Message accepted for delivery QUIT

221 chiriqui.pananix.com closing connection
Connection closed by foreign host.


СОВЕТ

Для того чтобы узнать перечень команд, поддерживаемых МТА, вы всегда можете использовать команду help. Однако имейте в виду, что МТА может отказать в выполнении некоторых команд, таких как vrfy или ехрп (эти две команды используются для проверки, а также расширения почтового адреса).

Первым отличием, которое бросается в глаза при сравнении первого и второго листингов, — это отсутствие приглашения >>, отмечающего, какой из сетевых узлов выполняет вывод текста. Сообщение подписано почтовым адресом root@localhost, однако на самом деле мы знаем, что оно отослано пользователем david@volcan. В действительности вы вообще можете не вводить обратный адрес. Можете попробовать поступить так, как показано в листинге 12.5.


Листинг 12.5. Подключение с сетевого узла null

MAIL From:<>

250 <>... Sender ok


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

Листинг 12.6. Заголовок письма, сформированного в листинге 12.5

Received: from localhost (volcan.pananix.com [192.168.0.1]) by chiriqui.pananix.com

(8.9.3/8.9.3) with ESMTP id KM07263 for root: Fri, 8 Oct 1999 10:15:07 -0500

Date: Fri, 8 Oct 1999 10:15:07 -0500 Message-ID: <199910081515.KAA07263@chiriqui.pananix.com>

Status:

X-Mozilla-Status: 0000 X-Mozilla-Status2: 00000000

X-UIDL: 37fd305900000706

I see you. You can't hide.

Письмо в листинге 12.6 просматривается с использованием Netscape, поэтому в заголовке присутствуют строки, характерные для почтовой системы Netscape. Поле From: заголовка пусто, поэтому оно не отображается. В рамках стандарта заголовок должен включать в себя поля Subject:, To: и From:.

Первая строка заголовка начинается с метки Received: и занимает в листинге несколько строк. В ней сообщается, что сетевой узел volcan.pananix.com с IP-адресом 192.168.0.1, называющий себя localhost, переслал сообщение почтовому серверу с именем chiriqui, на котором работает МТА sendmail версии 8.9.3, использующий расширенную разновидность SMTP. Сообщение обладает идентификатором id KAA07263, адресовано root и датировано 8 октября 1999 года 10 часов 15 минут утра локального времени, которое на пять часов опережает время по Гринвичу (GMT). Идентификатор сообщения будет добавлен в журнал, в котором можно обнаружить сведения, приведенные в листинге 12.7.

Листинг 12.7. Запись в журнале о транзакции из листинга 12.4

Oct 8 10:15:45 chiriqui sendmail[7263]: КАА07263: from=o, size=29, class-0, pri=30029,

nrcpts=l, msgid=<199910081515.KAA07263@chiriqui.pananix.com>, proto=ESMTP,

relay=volcan.pananix.com [192.168.0.1]

Oct 8 10:15:46 chiriqui sendmail[7264]: KAA07263: to=david, delay=00:00:39,

xdelay=00:00:00, mailer=local, relay=loca1, stat=Sent

Каждая отдельная запись журнала начинается с даты. Таким образом, в журнал заносятся две записи. Первая запись указывает на прием сообщения для дальнейшей доставки. Вторая запись показывает, кому доставлено сообщение. Здесь вы можете видеть отметку to=david. Данная отметка добавляется в журнал потому, что вся почта, адресованная учетной записи root, передается определенному пользователю для прочтения.

Прием с подменой отправителя на root используется дилетантами для того, чтобы напугать малоопытных сетевых администраторов. Однако теперь вы знаете, каким образом это происходит (данный трюк часто применяется при рассылке «грязной» почты, то есть spam), вы можете убедиться в том, что это всего лишь пустой трюк и пользователь, отправивший почту, не обладает никакими специальными привилегиями. Вы также видите полноценный след, оставленный в результате выполнения этой транзакции в журналах аудита.

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

Очень важно обращать внимание на то, от лица какого пользователя вы выступаете, когда читаете почту. Никогда не следует читать почту от лица пользователя root. Вся почта, адресованная пользователю root, должна перенаправляться одному из непривилегированных пользователей. Для этого лучше всего воспользоваться файлом псевдонимов сервера sendmail. Некоторых из почтовых клиентов можно обмануть таким образом, чтобы они запускали исполняемый код, содержащийся внутри почтового сообщения. Вместо того чтобы выяснять, является ли используемый вами почтовый клиент уязвимым для такого рода атак, лучше просто использовать для чтения почты непривилегированную учетную запись. В среде Linux не возникает таких серьезных проблем с вирусами, которые присущи другим платформам, однако фактически все системы могут оказаться жертвами «троянских коней».