ACCEDE AL TERMINAL DE TU SERVIDOR MEDIANTE EL NAVEGADOR WEB
SHELLINABOX
Shellinabox implementa un servidor web que puede exportar herramientas de lÃneade comandos a un emulador de terminal basado en la web. Este emulador es accesible desde cualquier navegador que soporte JavaScript y CSS y no requiereningún tipo de plugin adicional para funcionar.
Aunque el proyecto original fue descontinuado, hay un fork en Github que nos permite instalarlo si no lo tenemos en los repositorios. En el caso de Ubuntu 14.04 está, asà que solo tenemos que abrir un terminal y poner:
$ sudo apt install shellinabox openssl ca-certificates
En el caso de los últimos dos paquetes es por si no los tenemos ya instalados. Y una vez hecho esto pues ya podemos acceder a nuestro terminal en la web poniendo en el navegador:
http://la_ip_o_nombre_del_servidor:4200
USAR SHELLINABOX POR EL PUERTO 80
Como pueden apreciar, por defecto Shellinabox usa el puerto 4200 y es posible que no podamos acceder a él si nuestro proveedor de servicios lo tiene bloqueado. Podemos usar una variante que es poco segura pero funciona, que es usar Shellinabox por el puerto 80, aunque después mostraré como usar el 443 si lo tenemos disponible.
Lo que haremos será acceder a Shellinabox al poner en nuestro navegador:
http://la_ip_o_nombre_del_servidor/terminal
Para ello lo primero que hacemos es instalar NGinx:
$ sudo apt install nginx
Ahora creamos el fichero /etc/nginx/sites-enabled/shellinabox y le ponemos adentro:
server {proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location /terminal/ { proxy_pass http://localhost:4200/; } }
Editamos el fichero /etc/default/shellinabox y ponemos al final:
SHELLINABOX_ARGS="--localhost-only --disable-ssl"
Reiniciamos NGinx y Shellinabox:
$ sudo /etc/init.d/shellinabox restart $ sudo /etc/init.d/nginx restart
Y listo!!
USAR SHELLINABOX POR EL PUERTO 443
Este proceso es un poco más engorroso, porque tenemos que crear nuestros certificados SSL. Para ello haremos lo siguiente:
Primero instalamos OpenSSL:
$ sudo apt-get install openssl
Creamos una llave privada:
openssl genrsa -out server.key 2024
Creamos la base del certificado, donde pondremos una serie de datos:
openssl req -new -key server.key -out server.csr
Los datos que llenaremos serán:
- Country Name (2 letter code): Código de paÃs en formato ISO de dos letras (ej: ES, US, CU, MX..).
- State or Province Name (full name): Estado o provincia (ej: Florida).
- Locality Name: Localidad o ciudad (ej: Miami).
- Organization Name: Nombre de la organización, (ej: DesdeLinux).
- Organizational Unit Name: Sector de la organización (ej: Blogs).
- Common Name: Nombre del dominio ó FQDN. Es importante conocer que hay una diferencia entre blog.desdelinux.net y desdelinux.net. Debes registrar el certificado para uno, o para el otro.
- Email Address: Dirección de correo de contacto.
- A challenge password: En blanco.
- An optional company name: En blanco.
Ahora generamos el certificado SSL, que nos tomará los datos que pusimos:
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Copiamos los certificados a la carpeta SSL dentro de /etc:
$ sudo cp server.crt /etc/ssl/certs/ssl.crt $ sudo cp server.key /etc/ssl/certs/ssl.key
Volvemos a editar el fichero el fichero /etc/default/shellinabox y cambiamos lo que habÃamos puesto, poniendo al final:
SHELLINABOX_ARGS="--no-beep"
Ahora editamos el fichero /etc/nginx/sites-enabled/shellinabox y le ponemos adentro:
server { listen 80; return 301 https://$host$request_uri; } server { listen 443; server_name myvps.com; ssl_certificate /etc/ssl/certs/ssl.crt; ssl_certificate_key /etc/ssl/certs/ssl.key; ssl on; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; ssl_prefer_server_ciphers on; access_log /var/log/nginx/shellinabox.access.log; location /terminal { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # Fix the “It appears that your reverse proxy set up is broken" error. proxy_pass http://localhost:4200/; proxy_read_timeout 90; proxy_redirect http://localhost:4200 https://myvps.com/terminal/; } }
Reiniciamos los servicios:
$ sudo /etc/init.d/shellinabox restart $ sudo /etc/init.d/nginx restart
y accedemos a
http://la_ip_o_nombre_del_servidor/terminal
lo cual debe redireccionarnos a:
https://la_ip_o_nombre_del_servidor/terminal
ACCEDE AL TERMINAL DE TU SERVIDOR MEDIANTE EL NAVEGADOR WEB
Reviewed by PDFREEBOOK
on
8:19
Rating:
Post a Comment