Execute o programa xinetd na conexão telnet

0

Estou tentando configurar um servidor ASCII Art Telnet como o clássico projeto ASCII Star Wars:

telnet towel.blinkenlights.nl

link

Eu tive sucesso na criação de um servidor de telnet, mas estou perdendo o último passo de fazer o asciiplayer rodar ao telnet. (Idealmente, eu gostaria que funcionasse como o towel.blinkenlights.nl, onde você não precisa fazer o login e o filme ASCII é iniciado imediatamente.)

CONFIGURANDO O TELNET

Aqui estão os passos que segui usando um novo Digital Ocean droplet rodando o Ubuntu 16.04.2 x64 depois de configurar um firewall e abrir a porta 23.

instale telnetd e xinetd: sudo apt-get install xinetd telnetd

crie um arquivo telnet em /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
}

Reinicie o serviço xinetd: sudo service xinetd restart

OBTENDO O TRABALHO ASSOCIATIVO

Confirmei que isso permite o acesso por telnet (usando um nome de usuário / senha)

Enviei a pasta asciiplayer para /opt/

De acordo com o README para o asciiplayer, eu preciso substituir a configuração acima em /etc/xinetd.d/telnet com o bit abaixo:

# 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
}

Depois de fazer isso, não consigo mais acessar o servidor. Ele simplesmente retorna:

telnet: Unable to connect to remote host: Connection refused

Qual parte do processo estou faltando? Eu sinto que está muito perto. Eu fiz o processo acima algumas vezes e simplesmente não consigo fazer o ascii_telnet_server.py rodar no telnet. O mundo precisa de mais filmes em ASCII via telnet !! Qualquer ajuda seria muito apreciada ...

    
por jon.s 18.06.2017 / 01:16

1 resposta

0

Thnx to @ dirkt's comment / hint / help, consegui encontrar a solução mais simples.

A execução de /opt/asciiplayer/ascii_telnet_server.py -f /opt/asciiplayer/sw1.txt --stdout diretamente como root retornou o seguinte erro:

/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):'

Qual parecia que o problema era um problema simples no caminho do Python ... Então, eu substitui # !/usr/bin/env python em opt/asciiplayer/ascii_telnet_server.py com # !/usr/bin/python (que é o caminho que which python me deu)

Para o seu prazer ASCII, tente: telnet 138.197.212.250 (IP sujeito a alteração enquanto continuo a usar)

    
por 19.06.2017 / 18:40