Xinetd-Programm bei Telnet-Verbindung ausführen

969
jon.s

Ich versuche, einen ASCII Art Telnet-Server wie das klassische ASCII Star Wars-Projekt einzurichten:

telnet towel.blinkenlights.nl

https://github.com/nitram509/ascii-telnet-server

Ich hatte Erfolg beim Einrichten eines Telnet-Servers, aber ich vermisse den letzten Schritt, den Asciiplayer nach dem Einlernen zum Laufen zu bringen. (Im Idealfall würde es mir gefallen, wenn er wie towel.blinkenlights.nl arbeitet, wo Sie nichts tun. t muss sich anmelden und der ASCII-Film wird sofort gestartet.)

TELNET EINRICHTEN

Hier sind die Schritte, die ich mit einem neuen Digital Ocean-Droplet unter Ubuntu 16.04.2 x64 ausgeführt habe, nachdem Sie eine Firewall eingerichtet und Port 23 geöffnet haben.

installiere telnetd und xinetd: sudo apt-get install xinetd telnetd

Erstellen Sie eine Telnet-Datei in /etc/xinetd.d: sudo nano /etc/xinetd.d/telnet

# default: on # description: The telnet server serves telnet sessions; it uses # unencrypted username/password pairs for authentication. service telnet { disable = no flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure += USERID } 

Xinetd-Dienst neu starten: sudo service xinetd restart

ASCIIPLAYER ARBEITEN

Ich habe bestätigt, dass dies den Telnet-Zugriff ermöglicht (mit einem Benutzernamen / Passwort).

Ich habe den Asciiplayer-Ordner in hochgeladen /opt/

Gemäß der README für den Asciiplayer muss ich die obige Konfiguration /etc/xinetd.d/telnetdurch das folgende Bit ersetzen :

# default: on # description: An telnet service playing an ASCII movie service telnet { disable = no socket_type = stream protocol = tcp port = 23 user = root wait = no instances = 10  log_type = FILE /var/log/asciiplayer log_on_success += PID HOST DURATION log_on_failure = HOST server = /usr/bin/python server_args = -u -OO /opt/asciiplayer/ascii_telnet_server.py -f /opt/asciiplayer/sw1.txt --stdout } 

Danach kann ich nicht mehr in den Server telnet. Es wird einfach zurückgegeben:

Telnet: Verbindung zum Remote-Host kann nicht hergestellt werden: Verbindung abgelehnt

Welchen Teil des Prozesses vermisse ich? Ich habe das Gefühl, dass es sehr nahe ist. Ich habe den obigen Vorgang ein paar Mal ausgeführt und kann die ascii_telnet_server.py einfach nicht beim Telnetting ausführen. Die Welt braucht mehr ASCII-Filme über Telnet !! Jede Hilfe wäre sehr dankbar ...

0
Ist der Pfad korrekt (haben Sie tatsächlich `ascii_telnet_server.py` in` / opt` installiert)? Haben Sie versucht, `/opt/asciiplayer/ascii_telnet_server.py -f /opt/asciiplayer/sw1.txt --stdout` direkt als root auszuführen? dirkt vor 7 Jahren 0
Gute Idee, @dirkt, ich habe die Frage aktualisiert ... Sieht so aus, als wäre dies ein Problem mit dem Python-Pfad ... `python /opt/asciiplayer/ascii_telnet_server.py -f /opt/asciiplayer/sw1.txt --stdout` funktioniert jetzt ! wenn Sie als root angemeldet sind. Ich werde mich jetzt damit beschäftigen, es laufen zu lassen, wenn jemand an die Box telnets (hoffentlich ohne Benutzer / Passwort, genau wie beim klassischen Jam). jon.s vor 7 Jahren 0
Bitte fügen Sie eine Antwort hinzu und beschreiben Sie genau, was Sie getan haben. dirkt vor 7 Jahren 0

1 Antwort auf die Frage

0
jon.s

Dank @ ankts Kommentar / Hinweis / Hilfe konnte ich die einfache Lösung ausfindig machen.

Die /opt/asciiplayer/ascii_telnet_server.py -f /opt/asciiplayer/sw1.txt --stdoutdirekte Ausführung als root hat den folgenden Fehler zurückgegeben:

/opt/asciiplayer/ascii_telnet_server.py: line 43:   : No such file or directory from: can't read /var/mail/__future__ /opt/asciiplayer/ascii_telnet_server.py: line 46: import: command not found /opt/asciiplayer/ascii_telnet_server.py: line 47: import: command not found from: can't read /var/mail/optparse from: can't read /var/mail/ascii_telnet.ascii_movie from: can't read /var/mail/ascii_telnet.ascii_player from: can't read /var/mail/ascii_telnet.ascii_server /opt/asciiplayer/ascii_telnet_server.py: line 55: syntax error near unexpected token `(' /opt/asciiplayer/ascii_telnet_server.py: line 55: `def runTcpServer(interface, port, filename):' 

Welche sah aus wie das Problem ein einfaches Python - Pfad Problem war ... Also, ich ersetzt # !/usr/bin/env pythonin opt/asciiplayer/ascii_telnet_server.pymit # !/usr/bin/python(das ist der Weg, der which pythonmir gegeben hat)

Versuchen Sie zu Ihrem ASCII-Vergnügen: telnet 138.197.212.250(IP-Adresse kann sich ändern, wenn ich weiter entwickle)