Accesați terminalul serverului dvs. prin browserul dvs. web

Să presupunem că, dintr-un anumit motiv, nu putem accesa serverul nostru cu un terminal, pentru că, probabil, mergem pe stradă și avem doar telefonul mobil deasupra și, din moment ce nu suntem geeks sau altceva, nu am instalat nicio aplicație de acest tip.

Atunci ce facem? Ei bine, nimic, nu putem face nimic până nu ajungem acasă sau la serviciu, nu ne accesăm serverul și ne instalăm Shellinabox. Dar ce este asta, mănânci?

Shellinabox

Shellinabox unelte Un server web care poate export instrumente de linie comanda la emulator terminal bazat pe web. Acest emulator este accesibil din orice browser care acceptă JavaScript și CSS y nu necesită Niciun fel de conecteaza suplimentar funcției.

Deși proiectul original a fost întrerupt, există o furculiță pe Github care ne permite să îl instalăm dacă nu îl avem în depozite. În cazul Ubuntu 14.04 este, deci trebuie doar să deschidem un terminal și să punem:

$ sudo apt install shellinabox openssl ca-certificates

În cazul ultimelor două pachete, este cazul în care nu le avem deja instalate. Și odată ce acest lucru este făcut, acum putem accesa terminalul nostru de pe web introducând în browser:

http://la_ip_o_nombre_del_servidor:4200

Shellinabox

Utilizați Shellinabox prin portul 80

După cum puteți vedea, în mod implicit Shellinabox folosește portul 4200 și este posibil să nu îl putem accesa dacă este blocat de furnizorul nostru de servicii. Putem folosi o variantă care nu este foarte sigură, dar funcționează, adică să o folosim Shellinabox Lângă port 80, deși mai târziu voi arăta cum să utilizați 443 dacă îl avem la dispoziție.

Ceea ce vom face este să accesăm Shellinabox introducând în browserul nostru:

http://la_ip_o_nombre_del_servidor/terminal

Pentru a face acest lucru, primul lucru pe care îl facem este să instalăm NGinx:

$ sudo apt install nginx

Acum creăm fișierul / etc / nginx / sites-enabled / shellinabox și îl punem înăuntru:

 server {proxy_set_header Gazdă $ 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; locație / terminal / {proxy_pass http: // localhost: 4200 /; }}

Edităm fișierul / etc / default / shellinabox și punem la final:

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

Repornim Nginx y Shellinabox:

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

Și gata !!

Utilizați Shellinabox prin portul 443

Acest proces este puțin mai greoi, deoarece trebuie să ne creăm certificatele SSL. Pentru aceasta vom face următoarele:

Mai întâi instalăm OpenSSL:

$ sudo apt-get install openssl

Creăm o cheie privată:

openssl genrsa -out server.key 2024

Creăm baza certificatului, unde vom pune o serie de date:

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

Datele pe care le vom completa vor fi:

  • Numele țării (cod cu 2 litere): Codul țării în format ISO din două litere (de exemplu: ES, US, CU, MX ..).
  • Numele statului sau provinciei (numele complet): Stat sau provincie (ex: Florida).
  • Numele localității: Oraș sau oraș (ex: Miami).
  • Numele Organizatiei: Numele organizației, (ex: DesdeLinux).
  • Numele unității organizaționale: Sectorul organizației (ex: Bloguri).
  • Denumirea comună: Nume de domeniu sau FQDN. Este important să știți că există o diferență între un blog.desdelinux.net și desdelinux.net. Trebuie să înregistrați certificatul pentru unul sau celălalt.
  • Adresa de email: Adresa email de contact.
  • O parolă de provocare: In alb.
  • Un nume de companie opțional: In alb.

Acum generăm certificatul SSL, care va prelua datele pe care le-am introdus:

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

Copiem certificatele în folderul SSL din / etc:

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

Edităm din nou fișierul / etc / default / shellinabox și schimbăm ceea ce am pus, punând la final:

SHELLINABOX_ARGS="--no-beep"

Acum edităm fișierul / etc / nginx / sites-enabled / shellinabox și îl punem înăuntru:

 server {asculta 80; returnează 301 https: // $ host $ request_uri; } server {asculta 443; server_name myvps.com; ssl_certificate /etc/ssl/certs/ssl.crt; ssl_certificate_key /etc/ssl/certs/ssl.key; ssl pe; ssl_session_cache builtin: 1000 partajat: 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; locație / terminal {proxy_set_header Gazdă $ gazdă; proxy_set_header X-Real-IP $ remote_addr; proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for; proxy_set_header Schema X-Forwarded-Proto $; # Remediați eroarea „Se pare că configurarea proxy-ului invers este defect. Proxy_pass http: // localhost: 4200 /; proxy_read_timeout 90; proxy_redirect http: // localhost: 4200 https://myvps.com/terminal/;} }

Repornim serviciile:

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

și accesăm

http://la_ip_o_nombre_del_servidor/terminal

care ar trebui să ne redirecționeze către:

https://la_ip_o_nombre_del_servidor/terminal

Și asta este totul.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   clovn el a spus

    Mi-a amintit de ceea ce iese în seria CSI

  2.   drasil el a spus

    Un post foarte interesant; Nu auzisem niciodată de această utilitate și adevărul este că este foarte curios și util ... Trebuie să presupun că, așa cum acest concept a fost aplicat lui Ngix, poate fi aplicat și lui Apache, nu?

  3.   mat1986 el a spus

    Îmi amintește de modul în care funcționează Butterfly, mai ales atunci când utilizați terminalul din browser. Desigur, nu cu atâta complexitate ca ceea ce arată aici what

  4.   xykyz el a spus

    «Vom presupune că, dintr-un anumit motiv, nu putem accesa serverul nostru cu un terminal, pentru că probabil mergem pe stradă și avem doar telefonul mobil deasupra și, din moment ce nu suntem geeks sau altceva, nu am instalat nicio aplicație tip."

    Cum vom dori să intrăm în serverul nostru dacă nu suntem geeks? hahaha

    Mi se pare mult mai rapid să folosești o aplicație ssh decât să folosești un browser și eviți să instalezi software pe server, dar este totuși o opțiune interesantă.

  5.   nonex el a spus

    Avantaj atunci când vă aflați într-un loc cu Windows pur.

  6.   nume el a spus

    „Avantaj atunci când vă aflați într-un loc cu Windows pur.”
    atrage după sine ……………… chit sau pisoi.

  7.   Jose Manuel Higuera el a spus

    Bărbați excelenți acest super mulțumesc pentru contribuție