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.