viernes, 6 de marzo de 2020

Hacer un telnet a DOS usando GNU/Linux

¿Hacer un qué?

Un día un amigo al que le había instalado linux y le había enseñado como acceder vía telnet a su ordenador principal desde el más antiguo me preguntó: "¿y no se puede hacer Telnet a MS-DOS?"
Mi primera respuesta fue que no, pues DOS en un sistema monotarea y monousuario, pero cuando llegué a mi casa se me ocurrió una idea: hacer un telnet a linux y ejecutar el emulador DOSEMU desde esa sesión.
Tras seguir las instrucciones de este documento en el ordenador cliente hacemos telnet al servidor (telnet IP ó telnet NombreHost) y cuando nos pregunte por el login metemos freedos y su contraseña con lo que nos saldrá una sesión DOS.
Esto es algo curioso y útil, p.e.: podríamos ver nuestras viejas aplicaciones DOS rulando en un terminal o ejecutarlas en un equipo remoto.

¿Qué necesito?

  • Al menos dos ordenadores, un servidor telnet y un cliente con un emulador de terminal (o un terminal real).
  • Tantas tarjetas de red como equipos con un cable cruzado si son dos o enchufadas a un hub si son más. Si no podríamos apañarnos con cables cruzados serie o paralelo.
  • El protocolo TCP/IP que ya tendríamos instalado con nuestra distribución.
  • Software en el servidor: linux con DOSEMU, una imagen de un disco duro DOS (o FreeDOS) y el demonio del servidor telnet.
    Los paquetes necesarios serían respectivamente dosemu-X.XX-X, dosemu-freedos-X.XX-X y telnet-server-X.XX-XX. Si tienes una distro Red Hat 7.2 los dos primeros estarían en el CD de PowerTools y el último en el primer CD de instalación.
  • Software en el/los terminal/es: emulador de terminal para el sistema operativo que corra en él.
    En caso de usar también linux el cliente debería tener instalado el paquete telnet-X.XX-XX.

Configuración

  1. Instalamos los paquetes del demonio telnet y dosemu en caso de no tenerlos ya instalados. 
  2. Creamos una nueva cuenta de usuario llamada freedos con el comando adduser freedos.
  3. Asignamos una clave a dicha cuenta con el comando passwd freedos.
  4. Activamos el servicio Telnet de forma permanente, esto se puede hacer con el comando setup eligiendo la opción de System Services y activando la casilla correspondiente al Telnet.
  5. Nos metemos como usuario freedos y le añadimos las siguientes líneas al fichero .bash_profile:
    sudo dos
    logout
  6. Editamos el fichero /etc/sudoers con el programa visudo y le añadimos las siguientes líneas:
    freedos ALL=NOPASSWD:\
    /usr/bin/dos
  7. Este usuario accede a la imagen freedos como si fuera una partición de solo lectura, si vamos a dejar que la modifique tecleamos chmod a+w /var/lib/dosemu/hdimage.first
  8. Si queremos que más usuarios puedan usar el dosemu con el comando sudo dos los añadimos en este fichero detrás de la palabra freedos y separados por comas.
  9. También podríamos haber añadido los usuarios que queramos tengan acceso a DOSEMU al final del fichero /etc/dosemu.users, añadiendo un usuario por línea. En este caso no sería necesario editar el fichero /etc/sudoers y todas las entradas de sudo dos se sustituirían simplemente por dos.

Cada vez que nos metamos en el usuario freedos lo que veremos es una sesión de Free DOS de la que saldremos tecleando EXITEMU desde el directorio raíz con lo que, además de salir del emulador, saldremos de la sesión del usuario freedos.
Recuerda que DOS sigue siendo un sistema monotarea y monousuario, algo muy a tener en cuenta cuando lo uses vía telnet sobre todo si vais a ser más de uno usándolo.

No hay comentarios:

Publicar un comentario