Einrichten eines Telnet-Servers
In diesem Schritt werden wir auf der LabEx-VM einen Telnet-Server einrichten. Telnet ist ein Netzwerkprotokoll, das verwendet wird, um eine bidirektionale, interaktive, textbasierte Kommunikationsmöglichkeit über eine virtuelle Terminalverbindung bereitzustellen. Obwohl Telnet aufgrund seiner fehlenden Verschlüsselung im Allgemeinen als unsicher angesehen wird, kann es für Test- und Demonstrationszwecke in einer kontrollierten Umgebung wie unserer LabEx-VM nützlich sein.
Da die LabEx-VM Docker-Container verwendet, können wir nicht direkt systemctl
verwenden, um Dienste zu verwalten. Stattdessen verwenden wir xinetd
, um den Telnet-Dienst zu verwalten. xinetd
(extended Internet daemon) ist ein Super-Server-Daemon, der auf eingehende Netzwerkverbindungen lauscht und den entsprechenden Dienst startet.
Zunächst installieren wir die Pakete telnetd
und xinetd
. Öffnen Sie das Terminal in der LabEx-VM und führen Sie den folgenden Befehl aus:
sudo apt update
sudo apt install telnetd xinetd -y
Dieser Befehl aktualisiert die Paketlisten und installiert die Pakete telnetd
(Telnet-Server-Daemon) und xinetd
. Die Option -y
beantwortet automatisch alle Abfragen während der Installation mit "ja".
Als Nächstes müssen wir xinetd
konfigurieren, um den Telnet-Dienst zu verwalten. Erstellen Sie eine Konfigurationsdatei für Telnet im Verzeichnis /etc/xinetd.d/
. Verwenden Sie nano
, um die Datei zu erstellen und zu bearbeiten:
sudo nano /etc/xinetd.d/telnet
Fügen Sie die folgende Konfiguration in den nano
-Editor ein:
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = no
}
Diese Konfiguration teilt xinetd
mit, auf Telnet-Verbindungen zu lauschen, den Server /usr/sbin/in.telnetd
als Root auszuführen und Verbindungsfehler zu protokollieren. disable = no
stellt sicher, dass der Dienst aktiviert ist.
Drücken Sie Ctrl+X
, dann Y
und anschließend Enter
, um die Datei zu speichern und nano
zu verlassen.
Jetzt starten wir den xinetd
-Dienst neu, um die Änderungen anzuwenden. Da wir systemctl
nicht verwenden können, verwenden wir einen Workaround, indem wir dem xinetd
-Prozess ein HUP-Signal senden. Zunächst finden wir die Prozess-ID von xinetd
:
ps -ef | grep xinetd
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
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
Notieren Sie sich die Prozess-ID von xinetd
(in diesem Beispiel ist es 1234
). Ersetzen Sie 1234
in dem folgenden Befehl durch die tatsächliche Prozess-ID aus Ihrer Ausgabe:
sudo kill -HUP 1234
Dieser Befehl sendet ein HUP-Signal an den xinetd
-Prozess, wodurch er seine Konfiguration neu lädt.
Schließlich überprüfen wir, ob der Telnet-Server läuft. Sie können versuchen, sich von demselben Rechner aus mit dem telnet
-Befehl damit zu verbinden. Da der telnet
-Client möglicherweise nicht standardmäßig installiert ist, verwenden wir netcat
, um die Verbindung zu testen.
nc localhost 23
Wenn der Telnet-Server läuft, sollten Sie einen leeren Bildschirm oder eine Telnet-Eingabeaufforderung sehen. Sie können die Verbindung dann schließen, indem Sie Ctrl+]
und anschließend quit
eingeben. Wenn Sie "Connection refused" erhalten, überprüfen Sie die obigen Schritte noch einmal.