Esistono principalmente due tipi di port forwarding SSH. Port forwarding locale e port forwarding remoto.
In questo articolo ti mostrerò come eseguire il port forwarding su Linux. Per seguire questo articolo, dovrai avere le utilità SSH installate sulla tua macchina Linux. Ti mostrerò come farlo, non preoccuparti. Iniziamo.
Installazione delle utilità SSH su Red Hat Enterprise Linux (RHEL) 7 e CentOS 7
Su RHEL 7 e CentOS 7 è possibile installare le utilità SSH con il seguente comando:
$ sudo yum install openssh-clients openssh-server
stampa sì e poi premere
Le utilità SSH dovrebbero essere installate.
Installazione delle utilità SSH su Ubuntu, Debian e altre distribuzioni basate su Ubuntu/Debian
Su Ubuntu, Debian, Linux Mint e altre distribuzioni basate sul sistema operativo Ubuntu/Debian, eseguire il comando seguente per installare le utilità SSH:
$ sudo apt-get install openssh-client openssh-server
Ora premi sì e poi premere
Le utilità SSH dovrebbero essere installate.
Installazione delle utilità SSH su Arch Linux
Se utilizzi Arch Linux, esegui il comando seguente per installare le utilità SSH:
$ sudo pacman -Sy openssh
Ora premi sì e poi premere
Le utilità SSH dovrebbero essere installate.
Su Arch Linux, il server SSH non viene avviato per impostazione predefinita. Dovrai avviarlo manualmente con il seguente comando:
$ sudo systemctl start sshd
Ora aggiungi il server SSH all'avvio del sistema, in modo che si avvii automaticamente all'avvio del sistema:
$ sudo systemctl abilita sshd
Inoltro alla porta locale
Il port forwarding locale viene utilizzato per inoltrare una porta di un server remoto su un'altra porta di un computer locale. Un esempio ti aiuterà a capire cosa intendo.
Diciamo che hai un server, server1 che ha un indirizzo IP di 192.168.199.153. server1 ha un server web in esecuzione. Ovviamente se sei connesso alla stessa rete del server server1, quindi puoi digitare l'indirizzo IP nel browser e connetterti a server1 dal tuo computer. Ma cosa succede se si desidera accedervi come se il servizio fosse in esecuzione sul computer su una porta?? Bene, questo è ciò che fa il port forwarding locale.
Come puoi vedere nello screenshot qui sotto, sono in grado di accedere al server web su server1 utilizzando il suo indirizzo IP:
Ora esegui il seguente comando dal tuo computer locale per inoltrare la porta 80 (http) alla porta 6900 (diciamo) al tuo computer locale:
$ ssh -L 6900:192.168.199.153:80 localhost
Digitare sì e poi premere
Ora digita la password del tuo computer locale e premi
Sei connesso.
Ora puoi accedere al server web che hai fatto prima come http://localhost:6900 come puoi vedere nello screenshot qui sotto.
Inoltro alla porta remota
Il port forwarding remoto sta inoltrando una porta di un server/computer locale a un server remoto. Quindi, anche se il tuo server/computer locale non ha un indirizzo IP instradabile su Internet, puoi comunque connetterti ad esso utilizzando l'IP del server remoto e la porta inoltrata.
Supponiamo che tu voglia connetterti al server web del tuo computer locale da Internet. Ma non ha un indirizzo IP instradabile su Internet. È possibile utilizzare un server remoto (come VPS) a cui è possibile accedere da Internet ed eseguire il port forwarding remoto con esso. Non ho un VPS. Diamo per scontato server1 è il server remoto.
Prima configurazione server1 server per consentire l'accesso alle porte inoltrate su Internet.
Per farlo, modifica /etc/sshd_config con il seguente comando:
$ sudo nano /etc/sshd_config
Dovresti vedere la seguente finestra.
Scorri verso il basso e trova Porte gateway come indicato nello screenshot qui sotto.
Ora decommentalo e impostalo su sì come indicato nello screenshot qui sotto.
Ora premi
Ora riavvia il server SSH di server1 con il seguente comando:
$ sudo systemctl riavvia sshd
Sul mio computer locale è in esecuzione un server web come puoi vedere nello screenshot qui sotto.
Ora puoi eseguire il seguente comando dal computer locale per inoltrare la porta 80 (http) del tuo computer locale da portare 9999 sul server remoto server1 che ha un indirizzo IP 192.168.199.153:
$ ssh -R 9999:localhost:80 192.168.199.153
Digitare sì e premi
Digita la password del tuo server remoto server1.
Sei connesso.
Come puoi vedere dallo screenshot qui sotto, sono in grado di connettermi alla porta 9999 sul mio server remoto server1 e accedi al mio server web locale.
Posso anche connettermi al mio server web utilizzando l'indirizzo IP del server remoto server1 e la porta inoltrata 9999 da altri computer sulla mia rete come puoi vedere dallo screenshot qui sotto.
Ecco come si esegue il port forwarding SSH su Linux. Grazie per aver letto questo articolo.