Pretpostavimo da iz nekog razloga ne možemo pristupiti našem poslužitelju pomoću terminala, jer možda hodamo ulicom i na vrhu imamo samo svoj mobitel, a budući da nismo štreberi ili nešto slično, nismo instalirali nijednu aplikaciju ove vrste .
Što onda radimo? Pa, ništa, ne možemo ništa učiniti dok ne dođemo kući ili na posao, pristupimo našem poslužitelju i instaliramo shellinabox. Ali što je to, jedete li?
shellinabox
shellinabox provodi Poslužitelj web koji može izvoz linijski alati naredba do a terminalni emulator zasnovan na webu. Ovaj emulator je dostupan iz bilo kojeg preglednika koji podržava JavaScript i CSS y ne zahtijeva Nikakva uključiti dodatni za funkcioniranje.
Iako je izvorni projekt ukinut, postoje rašlje na Githubu koji nam omogućuje da ga instaliramo ako ga nemamo u spremištima. U slučaju Ubuntu 14.04 jest, tako da jednostavno moramo otvoriti terminal i staviti:
$ sudo apt install shellinabox openssl ca-certificates
U slučaju zadnja dva paketa, to je slučaj da ih već nismo instalirali. I nakon što se to učini, sada možemo pristupiti našem terminalu na webu umetanjem preglednika:
http://la_ip_o_nombre_del_servidor:4200
Upotrijebite Shellinabox kroz priključak 80
Kao što vidite, prema zadanim postavkama Shellinabox koristi port 4200 i možda mu nećemo moći pristupiti ako ga blokira naš davatelj usluga. Možemo koristiti varijantu koja nije sigurna, ali djeluje, a to je koristiti shellinabox Uz luku 80, iako ću kasnije pokazati kako se koristi 443 ako ga imamo na raspolaganju.
Ono što ćemo učiniti je pristupiti Shellinaboxu stavljajući u naš preglednik:
http://la_ip_o_nombre_del_servidor/terminal
Da bismo to učinili, prvo što je potrebno je instalirati NGinx:
$ sudo apt install nginx
Sada kreiramo datoteku / etc / nginx / sites-enabled / shellinabox i stavimo ga unutra:
poslužitelj {proxy_set_header Host $ http_host; proxy_set_header X-Proslijeđeni-domaćin $ http_host; proxy_set_header X-Real-IP $ remote_addr; proxy_set_header X-Forwarded-Za $ proxy_add_x_forwarded_for; lokacija / terminal / {proxy_pass http: // localhost: 4200 /; }}
Uređujemo datoteku / etc / default / shellinabox i na kraju stavljamo:
SHELLINABOX_ARGS="--localhost-only --disable-ssl"
Ponovo se pokrećemo Nginx y shellinabox:
$ sudo /etc/init.d/shellinabox restart $ sudo /etc/init.d/nginx restart
I spremni !!
Upotrijebite Shellinabox kroz priključak 443
Ovaj je postupak malo glomazniji, jer moramo stvoriti naše SSL certifikate. Za to ćemo učiniti sljedeće:
Prvo instaliramo OpenSSL:
$ sudo apt-get install openssl
Izrađujemo privatni ključ:
openssl genrsa -out server.key 2024
Izrađujemo bazu certifikata, gdje ćemo staviti niz podataka:
openssl req -new -key server.key -out server.csr
Podaci koje ćemo popuniti bit će:
- Naziv države (dvoslovni kod): Pozivni broj države u dvoslovnom ISO formatu (npr. ES, US, CU, MX ..).
- Ime države ili provincije (puno ime): Država ili pokrajina (npr. Florida).
- Naziv mjesta: Grad ili grad (npr. Miami).
- Naziv organizacije: Nombre de la organización, (ej: DesdeLinux).
- Naziv organizacijske jedinice: Organizacijski sektor (npr. Blogovi).
- Uobičajeno ime: 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 adresa: Adresa e-pošte za kontakt.
- Zaporka izazova: U bijeloj boji.
- Izborni naziv tvrtke: U bijeloj boji.
Sada generiramo SSL certifikat koji će uzeti podatke koje smo unijeli:
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Kopiramo certifikate u SSL mapu unutar / etc:
$ sudo cp server.crt /etc/ssl/certs/ssl.crt $ sudo cp server.key /etc/ssl/certs/ssl.key
Ponovno uređujemo datoteku / etc / default / shellinabox i mijenjamo ono što smo stavili, stavljajući na kraju:
SHELLINABOX_ARGS="--no-beep"
Sada uređujemo datoteku / etc / nginx / sites-enabled / shellinabox i stavimo ga unutra:
poslužitelj {preslušaj 80; return 301 https: // $ host $ request_uri; } poslužitelj {slušati 443; ime_poslužitelja myvps.com; ssl_certificate /etc/ssl/certs/ssl.crt; ssl_certificate_key /etc/ssl/certs/ssl.key; ssl na; ssl_session_cache izgrađen: 1000 podijeljeno: SSL: 10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH :! aNULL :! eNULL :! EXPORT :! CAMELLIA :! DES :! MD5 :! PSK :! RC4; ssl_prefer_server_ciphers uključen; access_log /var/log/nginx/shellinabox.access.log; lokacija / terminal {proxy_set_header Host $ host; proxy_set_header X-Real-IP $ remote_addr; proxy_set_header X-Forwarded-Za $ proxy_add_x_forwarded_for; proxy_set_header X-Proslijeđena-Proto $ shema; # Ispravite pogrešku "Čini se da je postavka vašeg obrnutog proxyja pokvarena". Proxy_pass http: // localhost: 4200 /; proxy_read_timeout 90; proxy_redirect http: // localhost: 4200 https://myvps.com/terminal/;} }
Ponovno pokrećemo usluge:
$ sudo /etc/init.d/shellinabox restart $ sudo /etc/init.d/nginx restart
i pristupamo
http://la_ip_o_nombre_del_servidor/terminal
što bi nas trebalo preusmjeriti na:
https://la_ip_o_nombre_del_servidor/terminal
I to je sve.
Podsjetio me na ono što izlazi u CSI seriji
Najzanimljiviji post; Nikad nisam čuo za ovaj uslužni program, a istina je da je najzanimljiviji i najkorisniji ... Moram pretpostaviti da kao što se ovaj koncept primijenio na Ngix, može se primijeniti i na Apache, zar ne?
Podsjeća me na to kako Butterfly radi, posebno kada koristim terminal iz preglednika. Naravno, ne s toliko složenosti koliko ovo što ovdje pokazuju 🙂
«Pretpostavit ćemo da iz nekog razloga ne možemo pristupiti našem poslužitelju pomoću terminala, jer možda hodamo ulicom i imamo samo svoj mobitel na vrhu, a budući da nismo štreberi ili nešto slično, nismo instalirali bilo koja aplikacija ove vrste. "
Kako ćemo htjeti ući na naš poslužitelj ako nismo štreberi? hahaha
Smatram da je mnogo brže koristiti ssh aplikaciju nego koristiti preglednik i izbjegavate instalirati softver na poslužitelj, ali svejedno je zanimljiva opcija.
Prednost kada ste na mjestu s čistim Windowsima.
"Prednost kada ste na mjestu s čistim Windowsima."
uvlači ……………… kit ili mačkicu.
izvrsni muškarci ovo super hvala na doprinosu