Accedeix a l'terminal del teu servidor mitjançant el navegador web

Anem a suposar que per algun motiu no podem accedir al nostre servidor amb un terminal, perquè potser, estem en caminant pel carrer i només tenim el nostre telèfon mòbil a sobre, i com no som frikis ni res, no hem instal·lat cap aplicació d'aquest tipus .

Què fem llavors? Doncs res, no podem fer res fins que arribem a la casa o al la feina, accedim al nostre servidor i instal·lem Shellinabox. Però que és això, es menja?

Shellinabox

Shellinabox implements un servidor web que pot exportar eines de línia d'ordres a emulador de terminal basat en la web. aquest emulador accessible des de qualsevol navegador que suporti JavaScript i CSS y no requereix cap tipus de connectar addicional per a funcionar.

Tot i que el projecte original va ser descontinuado, hi ha un fork a Github que ens permet instal·lar-lo si no el tenim en els repositoris. En el cas d'Ubuntu 14.04 està, així que només hem d'obrir un terminal i posar:

$ sudo apt install shellinabox openssl ca-certificates

En el cas dels últims dos paquets és per si no els tenim ja instal·lats. I un cop fet això doncs ja podem accedir al nostre terminal al web posant al navegador:

http://la_ip_o_nombre_del_servidor:4200

Shellinabox

Utilitza Shellinabox pel port 80

Com poden apreciar, per defecte Shellinabox fa servir el port 4200 i és possible que no puguem accedir-hi si el nostre proveïdor de serveis ho té bloquejat. Podem usar una variant que és poc segura però funciona, que des d' Shellinabox pel port 80, Encara que després mostraré com fer servir el 443 si ho tenim disponible.

El que farem serà accedir a Shellinabox a l'posar en el nostre navegador:

http://la_ip_o_nombre_del_servidor/terminal

Per això el primer que fem és instal·lar Nginx:

$ sudo apt install nginx

Ara creem el fitxer / Etc / nginx / sites-enabled / shellinabox i li posem a dins:

 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 /; }}

Editem el fitxer / Etc / default / shellinabox i posem a la fin:

SHELLINABOX_ARGS="--localhost-only --disable-ssl"

reiniciem Nginx y Shellinabox:

$ Sudo /etc/init.d/shellinabox restart $ sudo /etc/init.d/nginx restart

I llest !!

Utilitza Shellinabox pel port 443

Aquest procés és una mica més molest, perquè hem de crear els nostres certificats SSL. Per a això farem el següent:

Primer vam instal·lar OpenSSL:

$ Sudo apt-get install openssl

Creem una clau privada:

openssl genrsa -out server.key 2024

Creem la base de l'certificat, on posarem una sèrie de dades:

openssl req -new -key server.key -out server.csr

Les dades que omplirem seran:

  • Country Name (2 letter code): Codi de país en format ISO de dues lletres (ex: ES, US, CU, MX ..).
  • State or Province Name (full name): Estat o província (ex: Florida).
  • Locality Name: Localitat o ciutat (ex: Miami).
  • Nom de l'organització: Nombre de la organización, (ej: DesdeLinux).
  • Organizational Unit Name: Sector de l'organització (ex: Blocs).
  • Nom comú: 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.
  • Correu electrònic: Adreça de correu de contacte.
  • A challenge password: En blanc.
  • An optional company name: En blanc.

Ara generem el certificat SSL, que ens prendrà les dades que vam posar:

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Copiem els certificats a la carpeta SSL dins de / etc:

$ Sudo cp server.crt /etc/ssl/certs/ssl.crt $ sudo cp server.key /etc/ssl/certs/ssl.key

Tornem a editar el fitxer el fitxer / Etc / default / shellinabox i canviem el que havíem posat, posant a la fi:

SHELLINABOX_ARGS="--no-beep"

Ara editem el fitxer / Etc / nginx / sites-enabled / shellinabox i li posem a dins:

 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/;} }

Reiniciem els serveis:

$ Sudo /etc/init.d/shellinabox restart $ sudo /etc/init.d/nginx restart

i accedim a

http://la_ip_o_nombre_del_servidor/terminal

la qual cosa ha redireccionarnos a:

https://la_ip_o_nombre_del_servidor/terminal

I això és tot.


7 comentaris, deixa el teu

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   pallasso va dir

    em va recordar al que surt a les sèries de CSI

  2.   Drassill va dir

    Un post d'allò més interessant; mai havia sentit d'aquesta utilitat i la veritat és que és d'allò més curiosa i útil ... He de suposar que a l'igual que s'ha aplicat aquest concepte a Ngix, també es podrà aplicar a Apache, cert?

  3.   mat1986 va dir

    Em recorda a com funciona Butterfly, sobretot a l'usar la terminal des del navegador. És clar sí, no amb tanta complexitat com el que mostren aquí 🙂

  4.   Xykyz va dir

    «Anem a suposar que per algun motiu no podem accedir al nostre servidor amb un terminal, perquè potser, estem en caminant pel carrer i només tenim el nostre telèfon mòbil a sobre, i com no som frikis ni res, no hem instal·lat cap aplicació d'aquest tipus. »

    Com anem a voler entrar al nostre servidor si no som frikis? jajajjaja

    Em sembla bastant més ràpid utilitzar una app de ssh d'utilitzar un navegador i evites instal·lar programari al servidor, però no deixa de ser una opció interessant.

  5.   Nonex va dir

    Avantatge quan estàs en un lloc amb purs Windows.

  6.   Nom va dir

    «Avantatge quan estàs en un lloc amb purs Windows.»
    entoses .................. putty o Kitty.

  7.   jose manuel figuera va dir

    exelente men aquesta super gràcies per l'aportació