Toegang tot uw serverterminal via uw webbrowser

Laten we aannemen dat we om de een of andere reden geen toegang hebben tot onze server met een terminal, omdat we misschien over straat lopen en alleen onze mobiele telefoon bovenaan hebben staan, en omdat we geen nerds zijn of zo, hebben we geen enkele applicatie van dit type geïnstalleerd .

Wat doen we dan? Nou, niets, we kunnen niets doen totdat we thuis of op het werk zijn, toegang krijgen tot onze server en installeren shellinabox. Maar wat is dat, eet je?

shellinabox

shellinabox gereedschap Een server web dat kan export lijn tools opdracht een terminal emulator webgebaseerd. Deze emulator is toegankelijk vanuit elke browser die JavaScript en CSS y het vereist niet Geen soort van inpluggen extra om te functioneren.

Hoewel het oorspronkelijke project werd stopgezet, zijn er een vork op Github waarmee we het kunnen installeren als we het niet in de repositories hebben. In het geval van Ubuntu 14.04 is dat zo, dus we hoeven alleen maar een terminal te openen en het volgende te plaatsen:

$ sudo apt install shellinabox openssl ca-certificates

In het geval van de laatste twee pakketten, is het in het geval dat we ze nog niet hebben geïnstalleerd. En zodra dit is gebeurd, hebben we nu toegang tot onze terminal op internet door de browser in te voeren:

http://la_ip_o_nombre_del_servidor:4200

shellinabox

Gebruik Shellinabox via poort 80

Zoals u kunt zien, gebruikt Shellinabox standaard de poort 4200 en we hebben er mogelijk geen toegang toe als het wordt geblokkeerd door onze serviceprovider. We kunnen een variant gebruiken die niet erg veilig is maar wel werkt, namelijk te gebruiken shellinabox Bij de haven 80, hoewel ik later zal laten zien hoe je de 443 als we het beschikbaar hebben.

Wat we zullen doen is toegang krijgen tot Shellinabox door onze browser in te voeren:

http://la_ip_o_nombre_del_servidor/terminal

Om dit te doen, is het eerste wat we doen NGinx installeren:

$ sudo apt install nginx

Nu maken we het bestand / etc / nginx / sites-enabled / shellinabox en we stoppen het erin:

 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; locatie / terminal / {proxy_pass http: // localhost: 4200 /; }}

We bewerken het bestand / etc / default / shellinabox en we zetten aan het einde:

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

We herstarten Nginx y shellinabox:

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

En klaar!!

Gebruik Shellinabox via poort 443

Dit proces is wat omslachtiger, omdat we onze SSL-certificaten moeten aanmaken. Hiervoor zullen we het volgende doen:

Eerst installeren we OpenSSL:

$ sudo apt-get install openssl

We maken een privésleutel:

openssl genrsa -out server.key 2024

We creëren de basis van het certificaat, waar we een reeks gegevens plaatsen:

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

De gegevens die we invullen zijn:

  • Landnaam (code van 2 letters): Landcode in ISO-indeling van twee letters (bijvoorbeeld: ES, US, CU, MX ..).
  • Naam staat of provincie (volledige naam): Staat of provincie (bijv. Florida).
  • Plaatsnaam: Stad of stad (bijv. Miami).
  • Organisatie naam: Naam van de organisatie (bijvoorbeeld: DesdeLinux).
  • Naam organisatie-eenheid: Sector van de organisatie (bijv. Blogs).
  • Gemeenschappelijke naam: Domeinnaam of FQDN. Het is belangrijk om te weten dat er een verschil is tussen een blog.desdelinux.net en desdelinux.netto. U moet het certificaat voor het een of het ander registreren.
  • E-mailadres: E-mailadres voor contact.
  • Een uitdagingswachtwoord: Blank.
  • Een optionele bedrijfsnaam: Blank.

Nu genereren we het SSL-certificaat, dat de gegevens gebruikt die we hebben ingevoerd:

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

We kopiëren de certificaten naar de SSL-map in / etc:

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

We bewerken het bestand opnieuw het bestand / etc / default / shellinabox en we veranderen wat we hadden neergezet, aan het einde:

SHELLINABOX_ARGS="--no-beep"

Nu bewerken we het bestand / etc / nginx / sites-enabled / shellinabox en we stoppen het erin:

 server {luister 80; retourneer 301 https: // $ host $ request_uri; } server {luister 443; servernaam myvps.com; ssl_certificate /etc/ssl/certs/ssl.crt; ssl_certificate_key /etc/ssl/certs/ssl.key; ssl aan; ssl_session_cache ingebouwd: 1000 gedeeld: SSL: 10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HOOG :! ANULL :! eNULL :! EXPORT :! CAMELLIA :! DES :! MD5 :! PSK :! RC4; ssl_prefer_server_ciphers aan; access_log /var/log/nginx/shellinabox.access.log; locatie / 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 $ -schema; # Los de fout "Het lijkt erop dat uw omgekeerde proxy-configuratie is verbroken". Proxy_pass http: // localhost: 4200 /; proxy_read_timeout 90; proxy_redirect http: // localhost: 4200 https://myvps.com/terminal/;} }

We herstarten de services:

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

en we hebben toegang

http://la_ip_o_nombre_del_servidor/terminal

die ons zou moeten doorverwijzen naar:

https://la_ip_o_nombre_del_servidor/terminal

En dat is alles.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   clown zei

    Het deed me denken aan wat er uit de CSI-serie komt

  2.   drassille zei

    Een zeer interessante post; Ik had nog nooit van dit hulpprogramma gehoord en de waarheid is dat het zeer merkwaardig en nuttig is ... Ik moet aannemen dat, net zoals dit concept is toegepast op Ngix, het ook kan worden toegepast op Apache, toch?

  3.   mat1986 zei

    Het herinnert me eraan hoe Butterfly werkt, vooral wanneer ik de terminal vanuit de browser gebruik. Natuurlijk niet met zoveel complexiteit als wat ze hier laten zien 🙂

  4.   xykyz zei

    «Laten we aannemen dat we om de een of andere reden geen toegang hebben tot onze server met een terminal, omdat we misschien over straat lopen en alleen onze mobiele telefoon bovenaan hebben staan, en aangezien we geen nerds zijn of zo, hebben we geen enkele toepassing hiervan geïnstalleerd type."

    Hoe willen we onze server betreden als we geen nerds zijn? hahaha

    Het lijkt mij veel sneller om een ​​ssh-app te gebruiken dan om een ​​browser te gebruiken en je vermijdt het installeren van software op de server, maar het is nog steeds een interessante optie.

  5.   geenx zei

    Voordeel als u zich op een plek bevindt met pure Windows.

  6.   Naam zei

    "Voordeel als je op een plek bent met pure Windows."
    entoses ……………… stopverf of poes.

  7.   Jose Manuel Higuera zei

    uitstekende mannen dit super bedankt voor de bijdrage