Ho creato anche io una guida alternativa per superare il nat dei nostri amati operatori mobili per esporre le nostre porte dei servizi su ip pubblico.
Per ora è una guida basilare e cercherò di ampliarla, se richiesto.
Si richiede sempre l'utilizzo di una vps su server esterni con ip pubblico, di un Raspberry posizionato nella nostra rete è un po' di buona volontà. La reale differenza consiste nel fatto che il nostro traffico non viene indirizzato tutto sulla vps, ma solo le porte da noi scelte. In questa maniera non avremo problemi di velocità, di traffico totale a disposizione sulla vps e ci permetterà di scegliere la vps più economica possibile. Ovviamente non va bene per i giochi e si utilizza solo il protocollo TCP. Però è utile per esporre telecamere, server interni ed ad esempio interfacce dei nostri modem, per monitorarli anche dall'esterno.

1) Installare il sistema operativo su SD per il raspberry, usando https://www.raspberrypi.org/software/ scegliete la versione con desktop

2) avviare il Raspberry con monitor e tastiera ed attivare SSH con raspi-config https://www.raspberrypi.org/document...aspi-config.md

3) Installare Winscp sul vostro computer ed accedere via ssh al raspberry. Prima andare nelle opzioni del programma stesso e dirgli di mostrare anche le cartelle e i file nascosti
http://netsystems.altervista.org/con...31146240234375

4) installare autossh sul raspberry con putty con il comando: sudo apt install autossh
Autossh è un servizio che permette di ripristinare ssh se cade la connessione

5) creare sul raspberry sempre tramite putty una chiave rsa. I comandi dateli dopo aver fatto prima

sudo su

ssh-keygen

usate la cartella suggerita e
non usate una password quando richiesto

6) attivare il TCP forwarding su raspberry, da putty
sudo nano /etc/sysctl.conf

Rimuovete dalla riga successiva il simbolo di inizio commento (#). Che quindi diventa:
net.ipv4.ip_forward=1
Cliccate su CTRL+X, uscite e salvate. Per applicare i cambiamenti descritti nel file appena modificato digitate
sysctl -p

7) Acquistare una vps con Debian 10 non importano le prestazioni, basta l'ip pubblico

8) Accedere con winscp alla vostra nuova VPS e andare in etc/ssh/sshd_config della vps e modificare il file in questo modo, aggiungendo alla fine del file le righe qui sotto e dopo riavviate la vps.

GatewayPorts yes
AllowTcpForwarding yes
KeepAlive yes
Protocol 1,2
X11Forwarding yes
TCPKeepAlive yes
ClientAliveInterval 5
ClientAliveCountMax 10

9) Attivare l'inoltro anche delle porte sul server vps, come avete fatto sul raspberry, da putty
nano /etc/sysctl.conf
Rimuovete dalla riga successiva il simbolo di inizio commento (#). Che quindi diventa:
net.ipv4.ip_forward=1
Cliccate su CTRL+X, uscite e salvate. Per applicare i cambiamenti descritti nel file appena modificato digitate
sysctl -p

10) Copiare con winscp il contenuto del file id_rsa.pub del nostro Raspberry (client) che trovate dentro la cartella /root/.ssh di ed incollarlo nel file presente in /root/.ssh authorized_keys della vps. Se non c'è crearlo e dargli questi permessi rw-r-r, sempre con putty (ottale 0644)

11) Collegarsi via SSH dal Raspberry alla vps, sempre da winscp connesso al raspberry, avviare putty e scrivete ssh root@ip.vps, ditegli di sì e a quel punto non servirà più mettere utente e pw per connettersi. Comunque riprovare facendo exit e rinviando il comando

12) Provare il reverse tunneling sulla porta che volete aprire. Per esempio ho una telecamera con ip 192.168.1.110 sulla porta 5010 e la mia vps ha il suo determinato ip. il comando sarà ssh -R 5010:192.168.1.110:5010 -N root@ip.del.vps -p 22
Se invece volessimo cambiare la porta su internet, e scelgo per esempio la 9010, ma che punta sempre alla stessa telecamera, possiamo fare ssh -R 9010:192.168.1.110:5010 -N root@ip.del.vps -p 22

13) Provare il servizio, scrivendo vps.ip:5010 e si dovrebbe aprire la telecamera

14) In aggiunta editate sempre con winscp il file config presente sul raspberry in /root/.ssh/ aggiungendo per esempio una telecamera che è sull'ip 192.168.1.110, che necessita della porta 5010 aperta, che chiameremo Tele5010

Host Tele5010
HostName IP della VPS
User root
Port 22
RemoteForward 5010 192.168.1.110:5010
ServerAliveInterval 30
ServerAliveCountMax 3
ExitOnForwardFailure yes

15) Dopo aver creato questo file, non ci sarà più bisogno di mandare il comando ssh -R 9010:192.168.1.110:5010 -N root@ip.del.vps -p 22 , ma solo
autossh -M 0 -f -T -N tele5010

16) editate il file crontab in modo che al riavvio venga correttamente eseguito il comando autossh -M 0 -f -T -N tele5010

Se avete un Mikrotik connesso ad un modem LTE potreste evitare tutta questa procedura e seguire questa altra mia guida per ora in inglese:
https://www.reddit.com/r/mikrotik/co...nt_behind_vps/

    dettofatto ottima guida, non vedo l'ora di testarla
    Sai se può essere utilizzata sullo stesso Raspberry su cui c'è home assistente per poterlo esporre in rete?

      Dani25
      Tendenzialmente direi di sì...
      Non sono grosse modifiche, anzi...

      Esiste un modo per bypassare il NAT di WindTre se ho un modem 4G connesso alla WAN di un router LUCI OpenWrt della GL.Inet? I comandi SSH sono gli stessi?

      dettofatto ok grazie, io sono totalmente ignorante a livello di procedure e comandi di CLI, mi consiglieresti una guida adatta?

        dettofatto 1) Installare il sistema operativo su SD per il raspberry, usando https://www.raspberrypi.org/software/ scegliete la versione con desktop

        2) avviare il Raspberry con monitor e tastiera ed attivare SSH con raspi-config https://www.raspberrypi.org/document...aspi-config.md

        consiglio per migliorare la guida.
        è sufficiente la versione lite di raspbian, non ha senso scaricare un sacco di cose inutili per nulla. inoltre, cosa che ho anche io scoperto da poco, per abilitare di default SSH senza dover collegarsi ad un monitor basta inserire un file chiamato “SSH”( vuoto e creato da blocco note) subito dopo aver formattato l’SD per raspbian. in pratica va buttato in mezzo agli altri file di sistema.

          Ora la testo con Postemobile Web casa e vi aggiorno, ho appena preso una VPS molto economica, vediamo come si comporta. grazie per la guida

          giacomix11
          In realtà la versione con il desktop incluso è molto comoda perché si può usare vnc viewer e tenere il Raspberry acceso come se fosse un PC.
          È un'opportunità in più che richiede pochissime risorse, tant'è che questa configurazione la tengo accesa da 2/3 anni senza problemi su un Raspberry Pi 2 del 2015, in assenza di cali di prestazioni.

          Ma perchè non posso aggiornare il primo messaggio....??????
          Aggiorno la guida qua... Se qualche moderatore dovesse leggere, potrebbe aggiornare la guida, con queste modifiche?
          Grazie...

          Ho creato anche io una guida alternativa per superare il nat dei nostri amati operatori mobili per esporre le nostre porte dei servizi su ip pubblico.
          Per ora è una guida basilare e cercherò di ampliarla, se richiesto.
          Si richiede sempre l'utilizzo di una vps su server esterni con ip pubblico, di un Raspberry posizionato nella nostra rete è un po' di buona volontà. La reale differenza consiste nel fatto che il nostro traffico non viene indirizzato tutto sulla vps, ma solo le porte da noi scelte. In questa maniera non avremo problemi di velocità, di traffico totale a disposizione sulla vps e ci permetterà di scegliere la vps più economica possibile. Ovviamente non va bene per i giochi e si utilizza solo il protocollo TCP. Però è utile per esporre telecamere, server interni ed ad esempio interfacce dei nostri modem, per monitorarli anche dall'esterno.

          1) Installare il sistema operativo su microSD per il raspberry, usando https://www.raspberrypi.org/software/ scegliete la versione con Pi Os with desktop, quella da circa 1GB

          2) Prima di inserire la microsd nel Raspberry, inseritela nel computer nuovamente ed aggiungete un file chiamato "ssh" (senza virgolette), senza estensione e senza scrivere nulla al suo interno e lo salvate nella partizione boot . Qui altri sistemi di abilitazione di ssh (il nostro sistema è il punto 3):
          https://www.raspberrypi.org/documentation/remote-access/ssh/

          3) Inserire la microsd nel Raspberry, dargli l'alimentazione, aspettare un po', cercare che ip ha preso (io lo vedo dall'elenco dei dispositivi connessi dal mio router), supponendo che la vostra rete abbia il dhcp.
          Aprire winscp ed Andare in options>preference>panels e dirgli di mostrare anche le cartelle e i file nascosti (si può fare anche premendo ctrl+alt+h).
          a) Premere new site
          b) Inserite l'ip del raspberry in host
          c) Come user name pi e password raspberry
          d) Cliccate save, per salvare i dati di accesso e poi login
          e) Confermate al messaggio successivo la chiave ed ecco che siete entrati nel raspberry, via ssh. A destra sono le cartelle del vostro raspberry a sx il vostro computer.
          f) Scaricate putty dal sito https://www.putty.org/ sul vostro pc e mettetelo nella cartella denominata putty in winscp. Eventualmente aprite le opzioni di winscp e specificate dove è posizionato il file putty.exe in Prefernce>Integration>Applications

          4) installare autossh sul raspberry con putty, che avvieremo direttamente da winscp, dopo essere entrati nel nostro raspberry, selezionando l'icona con i 2 computer con il lampo. Si aprirà il terminale, eventualmente rimetteremo la pw e daremo il comando:

          sudo apt install autossh

          Autossh è un servizio che permette di ripristinare ssh se cade la connessione

          A questo punto Sarebbe intelligente cambiare la password dell'utente pi, inviando questo comando sempre dal terminale putty

          passwd

          seguire le indicazioni.

          5) creare sul raspberry sempre tramite putty una chiave rsa. I comandi dateli dopo aver fatto prima

          sudo su

          ssh-keygen

          usate la cartella suggerita e
          non usate una password quando richiesto

          6) attivare il TCP forwarding su raspberry, da putty
          sudo nano /etc/sysctl.conf

          Rimuovete dalla riga #net.ipv4.ip_forward=1 il simbolo di inizio commento (#). Che quindi diventerà:

          net.ipv4.ip_forward=1

          Cliccate su CTRL+X, scrivete yes. Per applicare i cambiamenti descritti nel file appena modificato digitate
          sysctl -p

          7) Acquistare una vps con Debian 10 non importano le prestazioni, basta l'ip pubblico

          8) Accedere con winscp alla vostra nuova VPS (fate New site ed aggiungete i dati della vostra VPS, come avete fatto con il raspberry, ma ovviamente con indirizzi IP e utenti diversi) e andare in etc/ssh/sshd_config della vps e modificare il file in questo modo, aggiungendo alla fine del file le righe qui sotto e dopo riavviate la vps.

          GatewayPorts yes
          AllowTcpForwarding yes
          KeepAlive yes
          Protocol 1,2
          X11Forwarding yes
          TCPKeepAlive yes
          ClientAliveInterval 5
          ClientAliveCountMax 10

          9) Attivare l'inoltro anche delle porte sul server vps, come avete fatto sul raspberry, da putty

          sudo nano /etc/sysctl.conf

          Rimuovete dalla riga #net.ipv4.ip_forward=1 il simbolo di inizio commento (#). Che quindi diventerà:

          net.ipv4.ip_forward=1

          Cliccate su CTRL+X, scrivete yes. Per applicare i cambiamenti descritti nel file appena modificato digitate
          sysctl -p

          10) Copiare con winscp il contenuto del file id_rsa.pub del nostro Raspberry (client) che trovate dentro la cartella /root/.ssh di ed incollarlo nel file presente in /root/.ssh authorized_keys della vps. Se non c'è crearlo e dargli questi permessi rw-r-r, sempre con putty (ottale 0644)

          11) Collegarsi via SSH dal Raspberry alla vps, sempre da winscp connesso al raspberry, avviare putty e scrivete ssh root@ip.vps, ditegli di sì e a quel punto non servirà più mettere utente e pw per connettersi. Comunque riprovare facendo exit e rinviando il comando

          12) Provare il reverse tunneling sulla porta che volete aprire. Per esempio ho una telecamera con ip 192.168.1.110 sulla porta 5010 e la mia vps ha il suo determinato ip. il comando sarà ssh -R 5010:192.168.1.110:5010 -N root@ip.del.vps -p 22
          Se invece volessimo cambiare la porta su internet, e scelgo per esempio la 9010, ma che punta sempre alla stessa telecamera, possiamo fare ssh -R 9010:192.168.1.110:5010 -N root@ip.del.vps -p 22

          13) Provare il servizio, scrivendo vps.ip:5010 e si dovrebbe aprire la telecamera

          14) In aggiunta editate sempre con winscp il file config presente sul raspberry in /root/.ssh/ aggiungendo per esempio una telecamera che è sull'ip 192.168.1.110, che necessita della porta 5010 aperta, che chiameremo Tele5010

          Host Tele5010
          HostName IP della VPS
          User root
          Port 22
          RemoteForward 5010 192.168.1.110:5010
          ServerAliveInterval 30
          ServerAliveCountMax 3
          ExitOnForwardFailure yes

          15) Dopo aver creato questo file, non ci sarà più bisogno di mandare il comando ssh -R 9010:192.168.1.110:5010 -N root@ip.del.vps -p 22 , ma solo
          autossh -M 0 -f -T -N tele5010

          16) editate il file crontab in modo che al riavvio venga correttamente eseguito il comando autossh -M 0 -f -T -N tele5010

          Se avete un Mikrotik connesso ad un modem LTE potreste evitare tutta questa procedura e seguire questa altra mia guida per ora in inglese:
          https://www.reddit.com/r/mikrotik/comments/ls7vkq/mikrotik_as_vpn_client_behind_vps/

          Ottimo grazie

          Informativa privacy - Informativa cookie - Termini e condizioni - Regolamento - Disclaimer - 🏳️‍🌈
          P.I. IT16712091004 - info@fibraclick.it

          ♻️ Il server di questo sito è alimentato al 100% con energia rinnovabile