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

Shell In A Box – это веб-эмулятор терминала, созданный Маркусом Гучке. Он имеет встроенный веб-сервер, который работает как веб-клиент SSH на указанном порту и предлагает вам веб-эмулятор терминала для доступа и управления вашим на Linux удаленно, используя только браузер. Дополнительные расширения для браузера, таких как FireSSH, ненужны.

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

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

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

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

Установка Shellinabox на Debian, Ubuntu & Mint

sudo apt install openssl shellinabox

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

Установка 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

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

Также, во время установки, новый самоподписанный SSL сертификат автоматически создается здесь – /var/lib/shellinabox для использования HTTPS протокола.

sudo nano /etc/default/shellinabox

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

# Должен ли shellinaboxd запускаться автоматически
SHELLINABOX_DAEMON_START=1
# TCP-порт, который прослушивает веб-сервер shellinboxd
SHELLINABOX_PORT=6175
# Параметры, которые управляются системой и обычно не требуют изменений:
# SHELLINABOX_DATADIR=/var/lib/shellinabox
# SHELLINABOX_USER=shellinabox
# SHELLINABOX_GROUP=shellinabox
# Любые необязательные аргументы (например, дополнительные определения служб).
# Убедитесь что аргумент взят в кавычки.
# Звуковые сигналы отключены из-за сообщений о сбое плагина VLC
# Firefox на Linux/x86_64.
SHELLINABOX_ARGS="--no-beep"
# укажите IP адрес SSH сервера
OPTS="-s /:SSH:192.168.0.140"
# если вы хотите ограничить доступ к shellinaboxd только с localhost
OPTS="-s /:SSH:192.168.0.140 --localhost-only"

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

sudo systemctl restart shellinabox
sudo systemctl status shellinabox

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

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

sudo netstat -nap | grep shellinabox

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

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

# На Debian, Ubuntu и Mint
sudo ufw allow 6175/tcp
sudo ufw allow from 192.168.0.140
# На RHEL/CentOS/Fedora и 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://192.168.0.140:6175. Вы должны увидеть веб-терминал. Войдите в систему, используя имя пользователя и пароль.

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

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

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

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

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

Комментарии (0)