Доступ до терміналу сервера здійснюється через веб-браузер

Припустимо, що з якихось причин ми не можемо отримати доступ до нашого сервера за допомогою терміналу, тому що, можливо, ми йдемо вулицею і маємо лише свій мобільний телефон зверху, а оскільки ми не виродки чи щось інше, ми не встановили жодної програми цього типу.

Тоді що ми робимо? Ну, нічого, ми нічого не можемо зробити, поки не повернемося додому чи не зайдемо на роботу, не зайдемо на наш сервер і не встановимо shellinabox. Але що це, ви їсте?

shellinabox

shellinabox знаряддя праці Сервер Інтернет, який може експорт лінійні інструменти команди має a емулятор терміналу Інтернет. Цей емулятор доступний із будь-якого підтримуваного браузера JavaScript та CSS y не вимагає ніякого роду підключати додаткові до функції.

Хоча оригінальний проект було припинено, є виделка на Github що дозволяє нам встановити його, якщо у нас його немає в сховищах. У випадку з Ubuntu 14.04 це так, тому нам просто потрібно відкрити термінал і поставити:

$ sudo apt install shellinabox openssl ca-certificates

У випадку з двома останніми пакетами, це на випадок, якщо ми їх ще не встановили. І як тільки це буде зроблено, тепер ми можемо отримати доступ до нашого терміналу в Інтернеті, ввівши в браузер:

http://la_ip_o_nombre_del_servidor:4200

shellinabox

Використовуйте Shellinabox через порт 80

Як бачите, за замовчуванням Shellinabox використовує порт 4200 і ми можемо не мати доступу до нього, якщо це заблоковано нашим постачальником послуг. Ми можемо використовувати варіант, який є небезпечним, але працює, тобто використовувати shellinabox Біля порту 80, хоча пізніше я покажу, як користуватися 443 якщо ми маємо його в наявності.

Що ми зробимо, це отримати доступ до Shellinabox, додавши в наш браузер:

http://la_ip_o_nombre_del_servidor/terminal

Для цього перше, що ми робимо, це встановити NGinx:

$ sudo apt install nginx

Тепер ми створюємо файл / etc / nginx / sites-enabled / shellinabox і ми поміщаємо всередину:

 сервер {proxy_set_header Хост $ 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; location / terminal / {proxy_pass http: // localhost: 4200 /; }}

Ми редагуємо файл / etc / default / shellinabox і ми ставимо в кінці:

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

Перезавантажуємось Nginx y shellinabox:

$ sudo /etc/init.d/shellinabox перезапустити $ sudo /etc/init.d/nginx перезапустити

І готовий !!

Використовуйте Shellinabox через порт 443

Цей процес трохи громіздкіший, тому що нам доводиться створювати наші SSL-сертифікати. Для цього ми зробимо наступне:

Спочатку ми встановлюємо OpenSSL:

$ sudo apt-get install installsl

Ми створюємо приватний ключ:

openssl genrsa -out server.key 2024

Ми створюємо базу сертифіката, куди ми помістимо ряд даних:

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

Дані, які ми заповнимо, будуть такими:

  • Назва країни (2-літерний код): Код країни у двобуквеному форматі ISO (наприклад: ES, US, CU, MX ..).
  • Назва штату або провінції (повна назва): Штат або провінція (наприклад: Флорида).
  • Назва місцевості: Місто чи місто (наприклад: Маямі).
  • Назва організації: Назва організації (наприклад: DesdeLinux).
  • Назва організаційного підрозділу: Організаційний сектор (напр., Блоги).
  • Звичайне ім'я: Доменне ім’я або FQDN. Важливо знати, що існує різниця між блогом.desdelinux.net і desdelinux.net. Ви повинні зареєструвати сертифікат для одного або іншого.
  • Адреса електронної пошти: Контактна адреса електронної пошти.
  • Пароль виклику: Білим кольором.
  • Необов’язкова назва компанії: Білим кольором.

Тепер ми генеруємо сертифікат SSL, який буде приймати дані, які ми ввели:

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

Копіюємо сертифікати в папку SSL всередині / etc:

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

Ми знову редагуємо файл / etc / default / shellinabox і ми змінюємо те, що ми поставили, ставлячи в кінці:

SHELLINABOX_ARGS="--no-beep"

Тепер редагуємо файл / etc / nginx / sites-enabled / shellinabox і ми поміщаємо всередину:

 сервер {слухати 80; повернути 301 https: // $ host $ request_uri; } сервер {слухати 443; ім'я_сервера myvps.com; ssl_certificate /etc/ssl/certs/ssl.crt; ssl_certificate_key /etc/ssl/certs/ssl.key; ssl увімкнено; ssl_session_cache вбудований: 1000 спільний: SSL: 10 м; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH :! aNULL :! eNULL :! EXPORT :! CAMELLIA :! DES :! MD5 :! PSK :! RC4; ssl_prefer_server_ciphers увімкнено; access_log /var/log/nginx/shellinabox.access.log; розташування / термінал {proxy_set_header Хост $ 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 $ схема; # Виправте помилку "Здається, що ваш зворотний проксі-сервер зламаний". Proxy_pass http: // localhost: 4200 /; proxy_read_timeout 90; proxy_redirect http: // localhost: 4200 https://myvps.com/terminal/;} }

Ми перезапускаємо послуги:

$ sudo /etc/init.d/shellinabox перезапустити $ sudo /etc/init.d/nginx перезапустити

і ми отримуємо доступ

http://la_ip_o_nombre_del_servidor/terminal

який повинен перенаправити нас на:

https://la_ip_o_nombre_del_servidor/terminal

І це все.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   клоун - сказав він

    Це нагадало мені про те, що виходить у серії CSI

  2.   Драссилл - сказав він

    Найцікавіший допис; Я ніколи не чув про цю утиліту, і правда полягає в тому, що вона є найцікавішою і найкориснішою ... Я повинен припустити, що подібно до того, як ця концепція застосовувалася до Ngix, вона може застосовуватися і до Apache, так?

  3.   mat1986 - сказав він

    Це нагадує мені про те, як працює Butterfly, особливо при використанні терміналу з браузера. Звичайно, не з такою складністю, як те, що вони показують тут 🙂

  4.   xykyz - сказав він

    «Припустимо, що з якихось причин ми не можемо отримати доступ до нашого сервера за допомогою терміналу, тому що, можливо, ми йдемо вулицею, а наш мобільний телефон маємо лише зверху, а оскільки ми не виродки чи щось інше, ми не встановили жодної програми цього типу ".

    Як ми хочемо зайти на наш сервер, якщо ми не виродки? ха-ха-ха

    Мені здається набагато швидше використовувати додаток ssh, ніж користуватися браузером, і ви уникаєте встановлення програмного забезпечення на сервері, але це все одно цікавий варіант.

  5.   Нонекс - сказав він

    Перевага, коли ви перебуваєте в місці з чистою Windows.

  6.   Ім'я - сказав він

    "Перевага, коли ви знаходитесь у місці з чистою Windows."
    захоплює ……………… шпаклівку або кошеня.

  7.   Хосе Мануель Ігуера - сказав він

    чудові чоловіки це супер подяка за внесок