Книга: Linux глазами хакера
5.1.5. Telnet
5.1.5. Telnet
Мощность Linux и его текстовой консоли заключается в том, что вы можете выполнять все действия не только сидя непосредственно за терминалом, но и удаленно. Нужно только подключиться к компьютеру на порт Telnet-сервера с помощью Telnet-клиента, и можно считать, что вы в системе.
В Windows очень мало утилит, способных работать в командной строке, поэтому в этой ОС необходим (и широко используется) графический режим. Да и сама командная строка в Windows обладает незначительными возможностями. Для решения этой проблемы был создан терминальный доступ, который позволяет на клиентской машине видеть экран сервера и работать с ним так, как будто вы сидите непосредственно за сервером. Но этот метод отнимает слишком много трафика и очень неудобен на каналах медленной связи.
Командная строка Linux по сравнению с графическим режимом любой ОС вообще не расходует трафик и может приемлемо работать даже по самым медленным каналам, например, по соединениям GPRS сотового телефона или домашнего модема, где скорость достаточно мала.
Как вы уже поняли, программное обеспечение Telnet состоит из серверной части и клиентской. При запуске Telnet-сервера открывается 23 порт, к которому можно подключиться с клиентского компьютера и выполнять любые команды, которые позволяет сервер (в данном случае Telnet-сервер).
Но это не все, с помощью Telnet-клиента можно подсоединяться и к другим серверам. Например, можно подключиться на порт 25 и прямо из командной строки отправить E-mail-сообщение, исполняя команды SMTP-сервера.
Если у вас есть установленный FTP-сервер, то уже сейчас вы можете выполнить команду:
telnet localhost 21
В данном случае первый параметр — это localhost
, потому что я подразумеваю, что вы подключаетесь к локальному FTP-серверу. Если вы хотите работать с удаленным компьютером, то укажите его адрес. В качестве второго параметра указывается номер порта. Сервер FTP принимает управляющие команды на 21 порту, поэтому я указал это число.
Я рекомендую применять Telnet-клиент только для отладки различных сервисов, но не для управления. Поэтому на всех машинах отключайте Telnet. Он небезопасен, потому что передает данные в открытом виде, а все попытки сделать Telnet защищенным заканчивались неудачно и не приводили к желаемому результату. Один из возможных вариантов использования — через канал шифрования OpenSSL (от Secure Socket Layer, протокол защищенных сокетов). Но большую популярность получило управление сервером через протокол SSH (OpenSSH, Open Secure Shell), который мы рассмотрим позже, в разд 5.3.
Таким образом, Telnet-клиент в системе необходим, a Telnet-сервер, если он у вас установлен, следует срочно удалить и забыть как страшный сон.
Если вы все же решили использовать Telnet-сервер, то это необходимо делать только через протокол для безопасной связи по сети с применением открытых и секретных ключей (см. разд. 5.2). В этом случае весь трафик будет шифроваться, но надо принять еще некоторые меры для повышения безопасности.
Если у вас установлен Telnet-сервер, то попробуйте сейчас подключиться к нему, используя команду telnet localhost
. Перед вами появятся следующие сообщения:
Trying 127.0.0.1
Connected to localhost
Escape character is '^]'.
ASPLinux release 7.3 (Vostok)
Kernel 2.4.18-15asp on an i686
Login:
Ничего страшного не замечаете? А я вижу подробную информацию о дистрибутиве и ядре. И все это становится известным еще до регистрации любому посетителю. Если хакер увидит открытый 23 порт, то ему уже не надо будет мучиться для выяснения, какая у вас ОС и версия ядра, достаточно подключиться к Telnet, и проблема решена.
Излишняя болтливость Telnet — это самая большая дыра, с которой надо бороться в первую очередь. Приветствие, которое вы можете видеть при подключении, находится в файлах /etc/issue и /etc/issue.net. Измените текст сообщения, например, следующим образом:
echo Текст > /etc/issue
echo Текст > /etc/issue.net
Здесь Текст
— это новое приветствие. Можно указать ложную версию ядра, чтобы запутать хакера:
echo Debian Linux > /etc/issue
echo Kernel 2.4.4 on an i686 > /etc/issue.net;
У меня установлен клон Red Hat дистрибутива с ядром 2.4.18-15asp, а хакер будет думать, что я использую Debian и старое ядро 2.4.4.
Проблема в том, что после перезагрузки содержимое файлов восстановится и Telnet снова в приветствии покажет всю информацию о системе. Чтобы этого не произошло, после изменения текста приветствия можно установить на файлы атрибут -i
, который запрещает любые изменения:
chattr +i /etc/issue
chattr +i /etc/issue.net
- Листинг 5.4. Конфигурационный файл для сервиса Telnet
- Setting Up a Telnet Server
- Настройка Telnet
- Опции, используемые при запуске сервера Telnet
- Редактирование начального сообщения Telnet
- Средства защиты Telnet
- 13.11.1 Аутентификация в telnet
- Глава 13 Telnet
- 8.2. Удаленный доступ: ssh и telnet
- 13.2 Использование telnet для удаленной регистрации
- 13.3 Обращение по telnet к заданному порту
- 13.4 Модель эмуляции терминала в Telnet