Информационные технологииStfw.Ru 🔍

Настройка Telnet

🕛 08.07.2009, 11:13
Протокол Telnet часто используется для удаленной регистрации в сети Internet. Клиент-программа Telnet (как правило, она называется telnet) поставляется с большинством версий Linux. Программы, реализующие Telnet-серверы, также широко распространены, однако они в основном включаются в состав тех операционных систем, которые обеспечивают одновременную работу нескольких пользователей, например в Linux, UNIX и VMS. Несмотря на то что протокол Telnet сложнее протокола, используемого rlogind, он, как и все протоколы семейства TCP/IP, достаточно прост. Выполняя настройку сервера Telnet для работы в системе Linux, необходимо обеспечить запуск соответствующей программы посредством суперсервера. В отдельных случаях приходится предусматривать запуск сервера Telnet с помощью сценария SysV. Настройка Telnet также предполагает дополнительные операции, например, создание сообщения, выводимого в качестве приглашения к регистрации.
С точки зрения современных стандартов защита Telnet очень слабая, но она все же лучше, чем соответствующие средства программы rlogind. Зная слабые стороны системы защиты Telnet, вы сможете принять обоснованное решение о том, в каких случаях применение Telnet оправдано, а в каких лучше использовать другие средства удаленной регистрации. Кроме того, вы сможете принять меры, минимизирующие опасность для системы при работе с сервером Telnet. Если в вашей сети установлены средства Kerberos, вы можете повысить уровень безопасности, применяя керберизованные версии клиента и сервера Telnet.
Опции, используемые при запуске сервера Telnet
В некоторых случаях сервер Telnet инсталлируется по умолчанию при установке операционной системы, но иногда приходится инсталлировать этот сервер самостоятельно. Пакет, содержащий сервер Telnet, в различных системах называется по-разному. Например, в Caldera он называется netkit-telnet, в Debian - telnetd, в Mandrake и Red Hat - telnet-server, в Slackware - tcpipl, в SuSE - nkitserv а в TurboLinux -telnet. Некоторые из этих пакетов, например telnetd, поставляемый в составе системы Debian, содержат только сервер Telnet, а в других, например в telnet системы TurboLinux, находится как серверная, так и клиентская программа. В большинстве случаев сервер Telnet устанавливается по умолчанию, но это не означает, что в системе разрешено выполнение данного сервера. Вопросы запуска серверов с помощью суперсервера были рассмотрены в главе 4 (программа, реализующая сервер Telnet, обычно носит имя telnetd или in. telnetd).
При запуске сервера Telnet могут быть указаны опции, определяющие особенности его функционирования. Некоторые из них предназначены для управления дополнительными средствами защиты, которые в большинстве стандартных версий Telnet отсутствуют. Опции, используемые наиболее часто, перечислены ниже.
- -Dрежим_отладки. Данная опция используется при отладке сервера. Она задается в тех случаях, когда запуск программы telnetd осуществляется вручную с консольного терминала. В зависимости от указанного режима отладки, сервер отображает информацию о соединении либо о данных, которыми он обменивается с клиентом. Режим отладки может быть задан с помощью значений options, report (оба эти значения отображают информацию об установлении соединения), netdata и ptydata (эти значения выводят соответственно сведения о входном и выходном потоках данных).
- -h. По умолчанию telnetd передает клиентской программе начальное сообщение, в котором содержится информация, предназначенная для пользователя. Опция -h подавляет вывод начального сообщения. Если вы опасаетесь взлома системы, но в то же время вынуждены поддерживать работу сервера Telnet, вы можете указать эту опцию для того, чтобы не предоставлять злоумышленнику дополнительные сведения о системе.
- -L проерамма_регистрации. По умолчанию telnetd использует для регистрации пользователей /bin/login. При желании вы можете указать посредством данной опции другую программу.
- -п. Подобно rlogind, telnetd проверяет наличие клиента, используя для этого специальные сообщения. Опция -п подавляет передачу данных сообщений.
При вызове сервера могут быть также указаны другие опции, большинство из которых управляет шифрованием данных и поддержкой прочих расширенных средств защиты. Поскольку в большинстве версий Telnet-серверов расширенные средства защиты отсутствуют, эти опции применяются крайне редко. Следует заметить, что разновидности Telnet-серверов, обеспечивающие шифрование данных, не пользуются большой популярностью, так как задача обмена закодированными данными гораздо лучше решается с помощью SSH. Если в вашей сети установлена система Kerberos, в ее состав обычно входят кербе-ризованные версии клиента и сервера Telnet, которые можно использовать для повышения уровня защиты при удаленной регистрации пользователей на сервере.
Редактирование начального сообщения Telnet
При получении запроса на установление соединения сервер telnetd читает содержимое файла /etc/issue.net и передает его клиенту. Данные, содержащиеся в этом файле, отображаются перед тем, как пользователь получает возможность зарегистрироваться на сервере. Опция -h, указанная при запуске telnetd, подавляет вывод данного сообщения. Как правило, в начальном сообщении приводятся некоторые сведения о компьютере, на котором выполняется Telnet-сервер. Ознакомившись с ними, пользователь может убедиться, что он обратился к нужному ему узлу сети. По умолчанию в начальном сообщении содержатся данные о версиях системы и ядра. Большинству пользователей эти сведения не нужны, но они наверняка заинтересуют злоумышленника, который собирается взломать систему. Прочитав начальное сообщение, он сможет определить, какое программное обеспечение выполняется на компьютере, и догадаться, какими недостатками в защите можно воспользоваться.
Аналогичные сведения отображаются при регистрации пользователя с консольного терминала (непосредственно подключенного к компьютеру). Они содержат-ЭАМЕЖУ ся в файле /etc/issue. (При установлении соединения с помощью X Window данный файл не используется. Вопросы удаленной регистрации средствами' X Window будут рассматриваться в главе 14.)
Многие системы позволяют непосредственно редактировать файл /etc/issue. net. Вы можете изменять текст в этом файле по своему усмотрению. В составе начального сообщения могут содержаться специальные переменные, которые telnetd заменяет данными о системе. Назначение этих переменных описано в табл. 13.1.
Предположим, что текст в файле /etc/issue, net выглядит следующим образом:
Переменные, используемые в файле /etc/issue .net_
Переменная Описание_
%t Используемый терминал (число, описывающее устройство ввода-вывода
текста) %h Полное доменное имя компьютера
%D Имя домена NIS (если сервер NIS используется в сети)
%d Текущая дата и время
%s Имя операционной системы (Linux)
%m Тип аппаратного обеспечения (процессора)
%г Номер версии ядра
%v Версия операционной системы (обычно не используется)
%% Символ %
Welcome to %h.
Current time is %d.
Notice: For authorized users only!
Если ваш компьютер имеет имя maple. threeroomco. com, начальное сообщение будет выглядеть так:
$ telnet maple.threeroomco.com
Trying 172.21.32.43. . .
Connected to maple.threeroomco.com.
Escape character is '*]' .
Welcome to maple.threeroomco.com.
Current time is 10:57 on Monday, 12 August 2002.
Notice: For authorized users only!
В некоторых разновидностях Linux (в частности, в Caldera, Mandrake и некоторых версиях Red Hat) файлы /etc/issue и /etc/issue.net создаются в процессе загрузки. Формированием этих файлов занимается сценарий/etc/rc .d/rc. local. Код сценария, используемого в системе Mandrake 8.1, приведен ниже.
# Этот сценарий создает файл /etc/issue при каждой
# загрузке системы. Чтобы сохранить изменения, внесенные
# в файл /etc/issue, надо изменить код сценария. if [ -х /usr/bin/linux_logo ];then
/usr/bin/linux_logo -c -n -f > /etc/issue
echo "" » /etc/issue else
> /etc/issue fi
echo "$R" » /etc/issue
echo "Kernel $(uname -r) on $a $SMP$(uname -m) / \1" » /etc/issue if t "$SECURITY" -le 3 ];then
echo "Welcome to %h" > /etc/issue.net
echo "$R" » /etc/issue.net
echo "Kernel $(uname -r) on $a $SMP$(uname -m)" »
/etc/issue.net else
echo "Welcome to Mandrake Linux" > /etc/issue.net echo "-" » /etc/issue.net Начиная с версии 7.2 в системе Red Hat используются статические файлы issue н£3 и issue. net. В Caldera 3.1 и Mandrake 8.1 эти файлы по-прежнему формируются с помощью сценария/etc/rc.d/rc. local.
В некоторых строках приведенного выше кода используются переменные, которые были определены ранее в сценарии. Такой подход позволяет системе включать в состав начального сообщения дополнительную информацию, например номер процессора. Если вы измените содержимое /etc/issue и /etc/issue.net, при следующей загрузке сценарий /etc/rc. d/rc. local восстановит исходный вид этих файлов. Для того чтобы изменить начальное сообщение, можно закомментировать строки сценария, которые отвечают за запись в файлы /etc/issue и /etc/issue.net, либо модифицировать код самого сценария.
Средства защиты Telnet
После отображения начального сообщения, содержащегося в файле /etc/issue. net, telnetd передает управление /bin/login либо программе, указанной с помощью опции -L. Программа /bin/login предоставляет возможность локальной и удаленной регистрации в текстовом режиме. Она отображает приглашения на ввод пользовательского имени и пароля (login: и Password:). Если регистрационные данные введены корректно, /bin/login отмечает время последней регистрации и вызывает оболочку, используемую по умолчанию.
Поскольку большинство серверов Telnet не шифрует данные, пересылаемые по сети, пользовательское имя и пароль передаются в незакодированном виде. Несмотря на то что при вводе пароля символы не отображаются на экране, пароль может быть перехвачен по пути следования от клиента к серверу. Если вы не указываете при вызове telnetd опцию -L, передача незашифрованного имени пользователя и пароля является единственным средством аутентификации, поддерживаемым telnetd. В отличие от rlogind, сервер Telnet не использует принцип доверия, т. е. не полагается на процедуру аутентификации, выполняемую на стороне клиента. (Следует заметить, что имя пользователя и пароль все же поступают на сервер с клиентского компьютера. Некоторые клиенты Telnet могут быть сконфигурированы для автоматической передачи регистрационных данных.)
Как известно, при передаче данных по Internet информационные пакеты проходят через несколько шлюзов. Если злоумышленник получит контроль хотя бы над одним из шлюзов, он сможет перехватить пароль, передаваемый при регистрации на сервере Telnet, и получит доступ к вашему компьютеру. Перехват данных можно организовать также в локальной сети, к которой подключен клиент или сервер. Компьютер, подключенный к локальной сети, но непосредственно не участвующий в процессе обмена данными, может быть переведен в режим сбора сетевых пакетов. Наряду с остальными пакетами пароль, переданный клиентом, окажется на этом компьютере.
Отсутствие шифрования передаваемых данных чревато не только перехватом пароля, но и утечкой другой важной информации. Злоумышленник может узнать содержимое
важного письма, которое вы читали, или файла, который вы редактировали. Если во время сеанса Telnet вы используете команду su, чтобы получить привилегии суперпользователя, вы рискуете раскрыть и этот пароль. Сказанное выше в равной степени относится также к rlogind и другим средствам удаленного доступа, не использующим кодирование данных. Передача незашифрованной информации при обмене с сервером Telnet или rlogind гораздо более опасна, чем, например, передача электронной почты, так как во время сеанса Telnet могут передаваться и пароль, и письма, и содержимое файлов, и другие важные сведения.
Что же можно предпринять для уменьшения риска потери данных? Очевидно, что радикальной мерой является переход к использованию протокола, обеспечивающего кодирование передаваемой информации. Если же это по каким-либо причинам невозможно или нежелательно, то, чтобы уменьшить вероятность утечки важных сведений, рекомендуется придерживаться ряда правил. Не просматривайте файлы, содержащие секретные данные, или важные письма при работе посредством Telnet. He регистрируйтесь из сеанса Telnet на другом компьютере. Даже если второе соединение устанавливается по защищенному каналу, информация будет поступать на ваш компьютер в незакодированном виде и может стать доступна злоумышленнику. Не используете команду su для получения привилегий root и пароль, с помощью которого вы регистрируетесь на сервере Telnet, для других целей. Лучше всего Telnet подходит для взаимодействия в пределах небольшой локальной сети, не подключенной к Internet. Используя Telnet, желательно периодически изменять пароль, чтобы у взломщика, получившего пароль, было меньше возможностей нанести реальный вред вашей системе.

Сетевые средства Linux   Теги:

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉