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
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.
Het deed me denken aan wat er uit de CSI-serie komt
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?
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 🙂
«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.
Voordeel als u zich op een plek bevindt met pure Windows.
"Voordeel als je op een plek bent met pure Windows."
entoses ……………… stopverf of poes.
uitstekende mannen dit super bedankt voor de bijdrage