Pretpostavimo da iz nekog razloga ne možemo pristupiti našem serveru 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 .
Šta onda radimo? Pa, ništa, ne možemo ništa učiniti dok se ne vratimo kući ili na posao, pristupimo našem serveru i instaliramo shellinabox. Ali šta je to, jedete li?
shellinabox
shellinabox implementira Server web koji može izvoz linijski alati naredba na a terminal emulator zasnovan na Internetu. Ovaj emulator dostupan mu je iz bilo kojeg preglednika koji podržava JavaScript i CSS y to ne zahtijeva Nikakve plugin dodatni za funkciju.
Iako je originalni projekt prekinut, postoje vilica na Githubu to nam omogućava da ga instaliramo ako ga nemamo u spremištima. U slučaju Ubuntu 14.04 jeste, tako da moramo otvoriti terminal i staviti:
$ sudo apt install shellinabox openssl ca-certificates
U slučaju posljednja 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 Internetu umetanjem pretraživača:
http://la_ip_o_nombre_del_servidor:4200
Koristite Shellinabox kroz priključak 80
Kao što vidite, Shellinabox po defaultu koristi port 4200 i možda mu nećemo moći pristupiti ako ga blokira naš dobavljač usluga. Možemo koristiti varijantu koja nije sigurna, ali djeluje, odnosno koristiti shellinabox Pored luke 80, iako ću kasnije pokazati kako se koristi 443 ako ga imamo na raspolaganju.
Ono što ćemo učiniti je pristupiti Shellinaboxu stavljanjem u naš pretraživač:
http://la_ip_o_nombre_del_servidor/terminal
Da bismo to učinili, prvo što instaliramo je NGinx:
$ sudo apt install nginx
Sada kreiramo datoteku / etc / nginx / sites-enabled / shellinabox i stavljamo ga unutra:
server {proxy_set_header Host $ http_host; proxy_set_header X-Proslijeđeni-Host $ 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 /; }}
Mi 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 spreman !!
Koristite Shellinabox kroz priključak 443
Ovaj postupak je malo glomazniji, jer moramo stvoriti naše SSL certifikate. Za ovo ćemo učiniti sljedeće:
Prvo instaliramo OpenSSL:
$ sudo apt-get install openssl
Kreiramo 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).
- Ime organizacije: Naziv organizacije, (npr. DesdeLinux).
- Naziv organizacione jedinice: Organizacijski sektor (npr. Blogovi).
- Ime: Ime domene ili FQDN. Važno je znati da postoji razlika između bloga.desdelinux.net i desdelinux.net. Morate registrirati certifikat za jedno ili drugo.
- E-mail adresa: Kontakt e-mail adresu.
- Lozinka izazova: U bijelom.
- Neobavezno ime kompanije: U bijelom.
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
Ponovo 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 stavljamo ga unutra:
server {slušati 80; return 301 https: // $ host $ request_uri; } server {slušati 443; ime_poslužitelja myvps.com; ssl_certificate /etc/ssl/certs/ssl.crt; ssl_certificate_key /etc/ssl/certs/ssl.key; ssl on; 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-prosljeđena-proto $ šema; # Ispravite greš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/;} }
Ponovo pokrećemo usluge:
$ sudo /etc/init.d/shellinabox restart $ sudo /etc/init.d/nginx restart
i mi 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 🙂
«Pretpostavimo da iz nekog razloga ne možemo pristupiti našem serveru 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 nijednu aplikaciju ovog tip. "
Kako ćemo htjeti ući na naš server ako nismo štreberi? hahaha
Čini mi se da je mnogo brže koristiti ssh aplikaciju nego pretraživač i izbjegavate instalirati softver na server, ali to je i dalje 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