Shell In A Box: accedi al terminale SSH di Linux tramite browser web


Shell In A Box (pronunciato come shellinabox) è un emulatore di terminale basato sul Web creato da Markus Gutschke. Dispone di un server Web integrato che viene eseguito come client SSH basato sul Web su una porta specificata e richiede un emulatore di terminale Web per accedere e controllare la shell SSH del server Linux in remoto utilizzando qualsiasi AJAX/JavaScript e CSS- browser abilitati senza la necessità di plug-in del browser aggiuntivi come FireSSH.

In questo tutorial, descrivo come installare Shellinabox e accedere a un terminale SSH remoto utilizzando un browser Web moderno su qualsiasi macchina. L'accesso SSH basato sul Web ai server Linux è molto utile quando si è protetti da un firewall e solo il traffico HTTPS può passare.

Installazione di Shellinabox su sistemi Linux

Per impostazione predefinita, lo strumento Shellinabox è incluso nelle distribuzioni Linux basate su Debian tramite repository predefiniti utilizzando il gestore pacchetti predefinito come mostrato.

$ sudo apt install openssl shellinabox

Nelle distribuzioni basate su Red Hat, devi installarlo dall'origine utilizzando i seguenti comandi.

# 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

Configurazione di Shellinabox nei sistemi Linux

Per impostazione predefinita, shellinaboxd è in ascolto sulla porta TCP 4200 su localhost. Per motivi di sicurezza, cambio questa porta predefinita in una casuale (ad esempio 6175) per rendere difficile a chiunque raggiungere la tua casella SSH.

Inoltre, durante l'installazione, viene creato automaticamente un nuovo certificato SSL autofirmato in /var/lib/shellinabox per utilizzare il protocollo HTTPS.

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

Apportare le modifiche alla configurazione come mostrato di seguito...

# 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"

Una volta terminata la configurazione, puoi riavviare e verificare il servizio shellinabox emettendo i seguenti comandi.

$ sudo systemctl restart shellinabox
$ sudo systemctl status shellinabox

Ora verifichiamo se Shellinabox è in esecuzione sulla porta 6175 utilizzando il comando netstat.

$ sudo netstat -nap | grep shellinabox

Assicurati di proteggere la tua shellinabox sul firewall e apri la porta 6175 per un indirizzo IP specifico per accedere alla tua shell Linux da remoto.

------- 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

Accedi al terminale Linux SSH tramite browser web

Ora apri il tuo browser web e vai a https://Your-IP-Adress:6175. Dovresti essere in grado di vedere un terminale SSH basato sul web. Accedi usando il tuo nome utente e password e ti dovrebbe essere presentato il prompt della shell.

Puoi fare clic con il pulsante destro del mouse per utilizzare diverse funzionalità e azioni, inclusa la modifica dell'aspetto della tua shell.

Per ulteriori informazioni, visitare la pagina github ufficiale di Shellinabox.