Настройка Telnet-сервера
На этом этапе мы настроим Telnet-сервер на виртуальной машине LabEx. Telnet - это сетеевой протокол, используемый для обеспечения двусторонней интерактивной текстовой связи с использованием виртуального терминального соединения. Хотя Telnet обычно считается небезопасным из-за отсутствия шифрования, он может быть полезен для тестирования и демонстрации в контролируемой среде, такой как наша виртуальная машина LabEx.
Поскольку виртуальная машина LabEx использует контейнеры Docker, мы не можем напрямую использовать systemctl
для управления службами. Вместо этого мы будем использовать xinetd
для управления Telnet-сервисом. xinetd
(расширенный интернет-демон) - это суперсерверный демон, который прослушивает входящие сетевые соединения и запускает соответствующую службу.
Сначала установим пакеты telnetd
и xinetd
. Откройте терминал на виртуальной машине LabEx и выполните следующую команду:
sudo apt update
sudo apt install telnetd xinetd -y
Эта команда обновляет списки пакетов и устанавливает пакеты telnetd
(демон Telnet-сервера) и xinetd
. Флаг -y
автоматически отвечает "да" на все запросы во время установки.
Далее нам нужно настроить xinetd
для управления Telnet-сервисом. Создайте файл конфигурации для Telnet в директории /etc/xinetd.d/
. Используйте nano
для создания и редактирования файла:
sudo nano /etc/xinetd.d/telnet
Вставьте следующую конфигурацию в редактор nano
:
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = no
}
Эта конфигурация сообщает xinetd
прослушивать Telnet-соединения, запускать сервер /usr/sbin/in.telnetd
от имени root и записывать в журнал ошибки соединения. disable = no
гарантирует, что служба включена.
Нажмите Ctrl+X
, затем Y
, а затем Enter
, чтобы сохранить файл и выйти из nano
.
Теперь перезапустите службу xinetd
, чтобы применить изменения. Поскольку мы не можем использовать systemctl
, мы воспользуемся обходным путем, отправив сигнал HUP процессу xinetd
. Сначала найдите идентификатор процесса xinetd
:
ps -ef | grep xinetd
Вы должны увидеть вывод, похожий на следующий:
root 1234 1 0 10:00 ? 00:00:00 /usr/sbin/xinetd -stayalive -pidfile /run/xinetd.pid
labex 5678 5600 0 10:01 pts/0 00:00:00 grep --color=auto xinetd
Обратите внимание на идентификатор процесса xinetd
(в этом примере это 1234
). Замените 1234
на фактический идентификатор процесса из вашего вывода в следующей команде:
sudo kill -HUP 1234
Эта команда отправляет сигнал HUP процессу xinetd
, заставляя его перезагрузить свою конфигурацию.
Наконец, убедимся, что Telnet-сервер запущен. Вы можете попробовать подключиться к нему с той же машины, используя команду telnet
. Поскольку клиент telnet
может не быть установлен по умолчанию, мы будем использовать netcat
для тестирования соединения.
nc localhost 23
Если Telnet-сервер запущен, вы должны увидеть пустой экран или приглашение Telnet. Затем вы можете закрыть соединение, набрав Ctrl+]
, а затем quit
. Если вы получаете сообщение "Connection refused", проверьте шаги выше еще раз.