Поиск по сайту:

Shell In A Box — доступ к SSH-терминалу Linux через веб-браузер


Shell In A Box (произносится как shellinabox) — это веб-эмулятор терминала, созданный Маркусом Гучке. Он имеет встроенный веб-сервер, который работает как веб-SSH-клиент на указанном порте и предлагает вам эмулятор веб-терминала для доступа и управления вашим >Linux Server SSH Shell удаленно с использованием любых AJAX/JavaScript и CSS браузеров без необходимости использования каких-либо дополнительных плагинов для браузера, таких как как FireSSH.

В этом руководстве я описываю, как установить Shellinabox и получить доступ к удаленному SSH-терминалу с помощью современного веб-браузера на любом компьютере. SSH-доступ через Интернет к серверам Linux очень полезен, если вы защищены брандмауэром и через него может пройти только HTTPS трафик.

Установка Shellinabox в системах Linux

По умолчанию инструмент Shellinabox включен в дистрибутивы Linux на основе Debian через репозитории по умолчанию с использованием менеджера пакетов по умолчанию, как показано.

Установите Shellinabox на Debian, Ubuntu и Mint

sudo apt install openssl shellinabox

Установите Shellinabox на RHEL, Fedora, Rocky и AlamLinux.

В дистрибутивах на основе Red Hat вам необходимо установить его из исходного кода, используя следующие команды.

yum install git openssl-devel pam-devel zlib-devel autoconf automake libtool
git clone https://github.com/shellinabox/shellinabox.git && cd shellinabox
autoreconf -i
./configure && make

Настройка Shellinabox в системах Linux

По умолчанию shellinaboxd прослушивает порт TCP 4200 на localhost. Из соображений безопасности я меняю этот порт по умолчанию на случайный (т. е. 6175), чтобы затруднить доступ к вашему SSH постороннему пользователю.

Кроме того, во время установки автоматически создается новый самозаверяющий сертификат SSL в папке «/var/lib/shellinabox» для использования протокола HTTPS.

sudo vi /etc/default/shellinabox
OR 
sudo nano /etc/default/shellinabox

Внесите изменения в конфигурацию, как показано ниже…

Should shellinaboxd start automatically
SHELLINABOX_DAEMON_START=1

TCP port that shellinboxd's webserver listens on
SHELLINABOX_PORT=6175

Parameters that are managed by the system and usually should not need
changing:
SHELLINABOX_DATADIR=/var/lib/shellinabox
SHELLINABOX_USER=shellinabox
SHELLINABOX_GROUP=shellinabox

Any optional arguments (e.g. extra service definitions).  Make sure
that that argument is quoted.
#
  Beeps are disabled because of reports of the VLC plugin crashing
  Firefox on Linux/x86_64.
SHELLINABOX_ARGS="--no-beep"

specify the IP address of an SSH server
OPTS="-s /:SSH:192.168.0.140"

if you want to restrict access to shellinaboxd from localhost only
OPTS="-s /:SSH:192.168.0.140 --localhost-only"

Завершив настройку, вы можете перезапустить и проверить службу shellinabox, выполнив следующие команды.

sudo systemctl restart shellinabox
sudo systemctl status shellinabox

Теперь давайте проверим, работает ли Shellinabox на порту 6175, с помощью команды netstat.

sudo netstat -nap | grep shellinabox

Убедитесь, что вы защитили свой shellinabox на брандмауэре и открыли порт 6175 для определенного IP-адреса для доступа к вашему Оболочка Linux удаленно.

------- On Debian, Ubuntu and Mint -------
sudo ufw allow 6175/tcp
sudo ufw allow from 192.168.0.103 to any port 6175   

------- On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux -------
sudo firewall-cmd --zone=public --add-port=6175/tcp  
sudo firewall-cmd --zone=public --add-source=192.168.0.103/6175 --permanent

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

Теперь откройте веб-браузер и перейдите по адресу https://Ваш-IP-адрес:6175. Вы должны увидеть веб-интерфейс SSH-терминал. Войдите в систему, используя свои имя пользователя и пароль, и вы должны увидеть приглашение оболочки.

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

Для получения дополнительной информации посетите официальную страницу Shellinabox на GitHub.