Доступ к серверному терминалу через веб-браузер

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

Тогда что нам делать? Ну ничего, мы ничего не можем сделать, пока не вернемся домой или на работу, не зайдем на наш сервер и не установим Шеллинабокс. Но что это такое, ты ешь?

Шеллинабокс

Шеллинабокс инвентарь Сервер сеть, которая может экспорт линейные инструменты команда к эмулятор терминала Интернет. Этот эмулятор он доступен из любого браузера, который поддерживает JavaScript и CSS y это не требует Никакого плагин дополнительно к функции.

Хотя первоначальный проект был прекращен, есть вилка на Github что позволяет нам установить его, если у нас его нет в репозиториях. В случае Ubuntu 14.04 это так, поэтому нам просто нужно открыть терминал и поставить:

$ sudo apt install shellinabox openssl ca-certificates

В случае с двумя последними пакетами это на тот случай, если мы еще не установили их. И как только это будет сделано, мы теперь можем получить доступ к нашему терминалу в Интернете, введя в браузер:

http://la_ip_o_nombre_del_servidor:4200

Шеллинабокс

Используйте Shellinabox через порт 80

Как видите, по умолчанию Shellinabox использует порт 4200 и мы не сможем получить к нему доступ, если он заблокирован нашим поставщиком услуг. Мы можем использовать вариант, который небезопасен, но работает, то есть использовать Шеллинабокс У порта 80, хотя позже я покажу, как использовать 443 если он у нас есть.

Что мы сделаем, так это войдем в Shellinabox, введя в наш браузер:

http://la_ip_o_nombre_del_servidor/terminal

Для этого первым делом устанавливаем NGinx:

$ sudo apt install nginx

Теперь создаем файл / и т. д. / nginx / сайты с поддержкой / shellinabox и кладем внутрь:

 сервер {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; местоположение / терминал / {прокси-пароль http: // localhost: 4200 /; }}

Редактируем файл / и т. д. / по умолчанию / shellinabox и ставим в конце:

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

Перезагружаемся Nginx y Шеллинабокс:

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

И готово !!

Используйте Shellinabox через порт 443

Этот процесс немного сложнее, потому что нам нужно создать наши сертификаты SSL. Для этого сделаем следующее:

Сначала устанавливаем OpenSSL:

$ sudo apt-get установить openssl

Создаем приватный ключ:

openssl genrsa -out server.key 2024

Создаем базу сертификата, куда будем помещать ряд данных:

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

Данные, которые мы заполним, будут:

  • Название страны (двухбуквенный код): Код страны в двухбуквенном формате ISO (например: ES, US, CU, MX ..).
  • Название штата или провинции (полное название): Штат или провинция (например, Флорида).
  • Название населенного пункта: Город или город (например, Майами).
  • Название организации: Название организации (например: DesdeLinux).
  • Название организационной единицы: Сектор организации (например, блоги).
  • Распространенное имя: Доменное имя или полное доменное имя. Важно знать, что есть разница между блогом.desdelinux.net и desdelinux.сеть. Вы должны зарегистрировать сертификат для того или другого.
  • E-mail адрес: Контактный адрес электронной почты.
  • Пароль для вызова: Blank.
  • Необязательное название компании: Blank.

Теперь мы генерируем 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

Редактируем файл снова файл / и т. д. / по умолчанию / shellinabox и меняем то, что поставили, ставим в конце:

SHELLINABOX_ARGS="--no-beep"

Теперь редактируем файл / и т. д. / nginx / сайты с поддержкой / shellinabox и кладем внутрь:

 сервер {слушать 80; return 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 :! ЭКСПОРТ :! КАМЕЛИЯ :! DES :! MD5 :! PSK :! RC4; ssl_prefer_server_ciphers на; access_log /var/log/nginx/shellinabox.access.log; местоположение / терминал {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 $; # Исправьте ошибку «Кажется, что ваш обратный прокси-сервер не работает». Proxy_pass http: // localhost: 4200 /; proxy_read_timeout 90; proxy_redirect http: // localhost: 4200 https://myvps.com/terminal/;} }

Перезапускаем сервисы:

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

и мы получаем доступ

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, особенно при использовании терминала из браузера. Конечно, не так сложно, как то, что здесь показывают here

  4.   Хыкыз сказал

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

    Как мы захотим войти на наш сервер, если мы не вундеркинды? хахаха

    Я считаю, что использовать приложение ssh намного быстрее, чем использовать браузер, и вы избегаете установки программного обеспечения на сервер, но это все еще интересный вариант.

  5.   Нонекс сказал

    Преимущество, когда вы находитесь в месте с чистой Windows.

  6.   Имя сказал

    «Преимущество, когда вы находитесь в месте с чистой Windows».
    Entoses ……………… шпатлевка или котенок.

  7.   Хосе Мануэль Игера сказал

    отличные мужчины это супер спасибо за вклад