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/