Shell In A Box: un terminal SSH basado en web para acceder a servidores Linux remotos


Shell In A Box (pronunciado como shellinabox) es un emulador de terminal basado en web creado por Markus Gutschke. Tiene un servidor web incorporado que se ejecuta como un cliente SSH basado en web en un puerto específico y le solicita un emulador de terminal web para acceder y controlar su Shell SSH del servidor Linux de forma remota utilizando cualquier navegador habilitado para AJAX/JavaScript y CSS sin la necesidad de cualquier complemento de navegador adicional como FireSSH.

En este tutorial, describo cómo instalar Shellinabox y acceder al terminal SSH remoto usando un navegador web moderno en cualquier máquina. SSH basado en web es muy útil cuando está protegido con un firewall y solo puede pasar el tráfico HTTP (s).

Instalación de Shellinabox en Linux

De forma predeterminada, la herramienta Shellinabox se incluye en muchas distribuciones de Linux a través de repositorios predeterminados, incluidos Debian, Ubuntu y Linux Mint.

Asegúrese de que su repositorio esté habilitado y disponible para instalar Shellinabox desde ese repositorio. Para comprobarlo, haga una búsqueda de Shellinabox con el comando "apt-cache" y luego instálelo usando el comando "apt-get".\"

$ sudo apt-cache search shellinabox
$ sudo apt-get install openssl shellinabox

En las distribuciones basadas en Red Hat, primero debe habilitar el repositorio EPEL y luego instalarlo usando el siguiente comando "yum". (Los usuarios de Fedora no necesitan habilitar EPEL, ya es parte del proyecto Fedora).

# yum install openssl shellinabox

Configuración de Shellinabox

De forma predeterminada, shellinaboxd escucha en el puerto TCP 4200 en localhost. Por motivos de seguridad, cambio este puerto predeterminado a aleatorio (es decir, 6175) para que sea difícil que cualquiera pueda acceder a su caja SSH. Además, durante la instalación, se crea automáticamente un nuevo certificado SSL autofirmado en “/ var/lib/shellinabox” para utilizar el protocolo HTTPS.

$ sudo vi /etc/default/shellinabox
# TCP port that shellinboxd's webserver listens on
SHELLINABOX_PORT=6175

# specify the IP address of a destination SSH server
SHELLINABOX_ARGS="--o-beep -s /:SSH:172.16.25.125"

# if you want to restrict access to shellinaboxd from localhost only
SHELLINABOX_ARGS="--o-beep -s /:SSH:172.16.25.125 --localhost-only"
# vi /etc/sysconfig/shellinaboxd
# TCP port that shellinboxd's webserver listens on
PORT=6175

# specify the IP address of a destination SSH server
OPTS="-s /:SSH:172.16.25.125"

# if you want to restrict access to shellinaboxd from localhost only
OPTS="-s /:SSH:172.16.25.125 --localhost-only"

Iniciando Shellinabox

Una vez que haya terminado con la configuración, puede iniciar el servicio emitiendo el siguiente comando.

$ sudo service shellinaboxd start
# service shellinaboxd start
# systemctl enable shellinaboxd.service
# systemctl start shellinaboxd.service

Verificar Shellinabox

Ahora verifiquemos si Shellinabox se está ejecutando en el puerto 6175 usando el comando "netstat".

$ sudo netstat -nap | grep shellinabox
or
# netstat -nap | grep shellinabox
tcp        0      0 0.0.0.0:6175            0.0.0.0:*               LISTEN      12274/shellinaboxd

Ahora abra su navegador web y navegue hasta https:/Your-IP-Adress: 6175. Debería poder ver un terminal SSH basado en web. Inicie sesión con su nombre de usuario y contraseña y se le debe presentar el indicador de shell.

Puede hacer clic con el botón derecho para usar varias funciones y acciones, incluido el cambio de apariencia de su caparazón.

Asegúrese de asegurar su shellinabox en el firewall y abra el puerto 6175 para una dirección IP específica para acceder a su shell de Linux de forma remota.

Enlaces de referencia

Página de inicio de Shellinabox