PDA

View Full Version : Vpn accesso esterno


Sterium
08-05-2020, 12:46
Non avendo ip pubblico ho pensato di tirar su una vps con ip pubblico ipv4/ipv6 con openvpn cosi da far raggiungere il mio server casalingo da da esterno attraverso la vps.

Schema di connessione:
VPS UBUNTU> OPENVPN SERVER > ROUTER (Credo sia influente) > SERVER UBUNTU CON OPENVPN CLIENT

Stavo tentando di raggiungere la porta 8123 del server casalingo con
ip_pubblico:8123 da un pc fuori dalla vpn, ma non c'è verso.

Se al pc gli attivo la vpn e provo ad inserire l'ip interno della vpn del server casalingo ubuntu 10.8.0.2:8123 funziona.

esiste un metodo per raggiungere la porta del client vpn attraverso l'ip pubblico della vps?

Kaya
08-05-2020, 16:38
Stavo tentando di raggiungere la porta 8123 del server casalingo con
ip_pubblico:8123 da un pc fuori dalla vpn, ma non c'è verso.



Hai nattato la porta esterna verso il tuo pc? UDP? TCP? entrambe?

OUTATIME
08-05-2020, 20:50
Non avendo ip pubblico ho pensato di tirar su una vps con ip pubblico ipv4/ipv6 con openvpn cosi da far raggiungere il mio server casalingo da da esterno attraverso la vps.

Schema di connessione:
VPS UBUNTU> OPENVPN SERVER > ROUTER (Credo sia influente) > SERVER UBUNTU CON OPENVPN CLIENT

Stavo tentando di raggiungere la porta 8123 del server casalingo con
ip_pubblico:8123 da un pc fuori dalla vpn, ma non c'è verso.

Se al pc gli attivo la vpn e provo ad inserire l'ip interno della vpn del server casalingo ubuntu 10.8.0.2:8123 funziona.

esiste un metodo per raggiungere la porta del client vpn attraverso l'ip pubblico della vps?
Hai fatto le regole di iptables per fare il forward della porta dall'interfaccia pubblica alla vpn?
Dai un'occhiata qui:
https://www.hwupgrade.it/forum/showthread.php?t=2880131
Vai direttamente alla parte iptables.

Sterium
09-05-2020, 08:56
Hai nattato la porta esterna verso il tuo pc? UDP? TCP? entrambe?

rispondo ad entrabvi sotto visto che l'argomento è lo stesso

Hai fatto le regole di iptables per fare il forward della porta dall'interfaccia pubblica alla vpn?
Dai un'occhiata qui:
https://www.hwupgrade.it/forum/showthread.php?t=2880131
Vai direttamente alla parte iptables.

questo è iptables della macchina vps


root@ubuntu-01:~# iptables --list-rule
-P INPUT DROP
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N ufw-after-forward
-N ufw-after-input
-N ufw-after-logging-forward
-N ufw-after-logging-input
-N ufw-after-logging-output
-N ufw-after-output
-N ufw-before-forward
-N ufw-before-input
-N ufw-before-logging-forward
-N ufw-before-logging-input
-N ufw-before-logging-output
-N ufw-before-output
-N ufw-logging-allow
-N ufw-logging-deny
-N ufw-not-local
-N ufw-reject-forward
-N ufw-reject-input
-N ufw-reject-output
-N ufw-skip-to-policy-forward
-N ufw-skip-to-policy-input
-N ufw-skip-to-policy-output
-N ufw-track-forward
-N ufw-track-input
-N ufw-track-output
-N ufw-user-forward
-N ufw-user-input
-N ufw-user-limit
-N ufw-user-limit-accept
-N ufw-user-logging-forward
-N ufw-user-logging-input
-N ufw-user-logging-output
-N ufw-user-output
-A INPUT -p udp -m udp --dport 50001 -j ACCEPT
-A INPUT -j ufw-before-logging-input
-A INPUT -j ufw-before-input
-A INPUT -j ufw-after-input
-A INPUT -j ufw-after-logging-input
-A INPUT -j ufw-reject-input
-A INPUT -j ufw-track-input
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 10.8.0.0/24 -j ACCEPT
-A FORWARD -j ufw-before-logging-forward
-A FORWARD -j ufw-before-forward
-A FORWARD -j ufw-after-forward
-A FORWARD -j ufw-after-logging-forward
-A FORWARD -j ufw-reject-forward
-A FORWARD -j ufw-track-forward
-A OUTPUT -j ufw-before-logging-output
-A OUTPUT -j ufw-before-output
-A OUTPUT -j ufw-after-output
-A OUTPUT -j ufw-after-logging-output
-A OUTPUT -j ufw-reject-output
-A OUTPUT -j ufw-track-output
-A ufw-after-input -p udp -m udp --dport 137 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp -m udp --dport 138 -j ufw-skip-to-policy-input
-A ufw-after-input -p tcp -m tcp --dport 139 -j ufw-skip-to-policy-input
-A ufw-after-input -p tcp -m tcp --dport 445 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp -m udp --dport 67 -j ufw-skip-to-policy-input
-A ufw-after-input -p udp -m udp --dport 68 -j ufw-skip-to-policy-input
-A ufw-after-input -m addrtype --dst-type BROADCAST -j ufw-skip-to-policy-input
-A ufw-after-logging-input -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw-before-forward -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 12 -j ACCEPT
-A ufw-before-forward -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A ufw-before-forward -j ufw-user-forward
-A ufw-before-input -i lo -j ACCEPT
-A ufw-before-input -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-input -m conntrack --ctstate INVALID -j ufw-logging-deny
-A ufw-before-input -m conntrack --ctstate INVALID -j DROP
-A ufw-before-input -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 12 -j ACCEPT
-A ufw-before-input -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A ufw-before-input -p udp -m udp --sport 67 --dport 68 -j ACCEPT
-A ufw-before-input -j ufw-not-local
-A ufw-before-input -d 224.0.0.251/32 -p udp -m udp --dport 5353 -j ACCEPT
-A ufw-before-input -d 239.255.255.250/32 -p udp -m udp --dport 1900 -j ACCEPT
-A ufw-before-input -j ufw-user-input
-A ufw-before-output -o lo -j ACCEPT
-A ufw-before-output -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-output -j ufw-user-output
-A ufw-logging-allow -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW ALLOW] "
-A ufw-logging-deny -m conntrack --ctstate INVALID -m limit --limit 3/min --limit-burst 10 -j RETURN
-A ufw-logging-deny -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw-not-local -m addrtype --dst-type LOCAL -j RETURN
-A ufw-not-local -m addrtype --dst-type MULTICAST -j RETURN
-A ufw-not-local -m addrtype --dst-type BROADCAST -j RETURN
-A ufw-not-local -m limit --limit 3/min --limit-burst 10 -j ufw-logging-deny
-A ufw-not-local -j DROP
-A ufw-skip-to-policy-forward -j ACCEPT
-A ufw-skip-to-policy-input -j DROP
-A ufw-skip-to-policy-output -j ACCEPT
-A ufw-track-forward -p tcp -m conntrack --ctstate NEW -j ACCEPT
-A ufw-track-forward -p udp -m conntrack --ctstate NEW -j ACCEPT
-A ufw-track-output -p tcp -m conntrack --ctstate NEW -j ACCEPT
-A ufw-track-output -p udp -m conntrack --ctstate NEW -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 22 -j ACCEPT
-A ufw-user-input -p udp -m udp --dport 50001 -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 8123 -j ACCEPT
-A ufw-user-input -p udp -m udp --dport 8123 -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 80 -j ACCEPT
-A ufw-user-input -p udp -m udp --dport 80 -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 443 -j ACCEPT
-A ufw-user-input -p tcp -m tcp --dport 80 -j ACCEPT
-A ufw-user-input -s 10.8.0.0/24 -j ACCEPT
-A ufw-user-limit -m limit --limit 3/min -j LOG --log-prefix "[UFW LIMIT BLOCK] "
-A ufw-user-limit -j REJECT --reject-with icmp-port-unreachable
-A ufw-user-limit-accept -j ACCEPT

OUTATIME
09-05-2020, 09:03
Premesso che non conosco ufw, da quello che posso vedere ci sono le regole sul firewall, ma rimangono da verificare la regole di nat.

bandit400
09-05-2020, 09:51
Forse non ho capito io e, quindi, potrei dire una "boiata":

- VPS, IP pubblico, OpenVPN Server
- PC casalingo, IP privato (e comunque non raggiungibile dall'esterno), OpenVPN Client
- Il PC casalingo si connette al VPS
- Tu ti connetti con altro OpenVPN Client al VPS
- Tramite la VPS raggiungi il tuo PC casalingo tramite i vari OpenVPN

Quindi immagino che userai interfacce TAP, magari TCP per avere qualche garanzia in più.

Per quale motivo devi "pasticciare" con l'inoltro delle porte con il PC casalingo? E' lui che instaura la connessione verso OpenVPN Server, non serve aprire nulla.

E' una situazione molto simile ad una che uso io, per questo chiedo.

Kaya
09-05-2020, 09:56
La butto lì: forse perchè lui vuole instaurare la VPN a livello di RETe e non di pc, e il suo router non funziona come client VPN?

Forse è meglio che sia più preciso nelle informazioni perchè allora c'è parecchia confusione.

bandit400
09-05-2020, 10:02
La butto lì: forse perchè lui vuole instaurare la VPN a livello di RETe e non di pc, e il suo router non funziona come client VPN?

Si, può essere. E' che ho letto questo...

Schema di connessione:
VPS UBUNTU> OPENVPN SERVER > ROUTER (Credo sia influente) > SERVER UBUNTU CON OPENVPN CLIENT

...quindi la volontà è di aprire OpenVPN Client sul PC casalingo in connessione con il VPS esterno con OpenVPN Server. Cioé, non serve inoltrare porte.

OUTATIME
09-05-2020, 11:26
Forse non ho capito io e, quindi, potrei dire una "boiata":

- VPS, IP pubblico, OpenVPN Server
- PC casalingo, IP privato (e comunque non raggiungibile dall'esterno), OpenVPN Client
- Il PC casalingo si connette al VPS
- Tu ti connetti con altro OpenVPN Client al VPS
- Tramite la VPS raggiungi il tuo PC casalingo tramite i vari OpenVPN

Quindi immagino che userai interfacce TAP, magari TCP per avere qualche garanzia in più.

Per quale motivo devi "pasticciare" con l'inoltro delle porte con il PC casalingo? E' lui che instaura la connessione verso OpenVPN Server, non serve aprire nulla.

E' una situazione molto simile ad una che uso io, per questo chiedo.
Dipende cosa vuoi ottenere: se collegarti alla rete di casa usando l'ip pubblico o usando un client vpn.
Ma in ogni caso, una volta che sei collegato in vpn, sei confinato all'interno della subnet vpn 10.8.0. Quindi amenochè il servizio a cui vuoi accedere non sia su un client vpn, a cui accedi con ip 10.8.0, per accedere alla tua rete domestica devi nattare il traffico della 10.8.0 verso la 192.168 o quello che è.
Rileggendo sembra che attivando la vpn funzioni tutto, ma non con ippubblico: porta. Quindi confermo che è un problema di nat sul server.

bandit400
09-05-2020, 11:39
OUTATIME, mi trovo. Altro scenario:

- Sul VPS apri OpenVPN Server, con interfaccia TAP, con configurazione di rete compatibile con quella della rete casalinga
- Sul PC casalingo apri OpenVPN Client, con interfaccia TAP, in bridge con l'interfaccia ethernet della tua rete casalinga
- Accedi al VPS aprendo un OpenVPN Client, che prenderà una configurazione dal DHCP della rete casalinga

A quel punto dall'esterno hai accesso al VPS, al PC casalingo ed a tutti gli host della rete casalinga. Non vedo la necessità di usare un'interfaccia TUN che obblighi, poi, a fare quello che dici tu.

OUTATIME
09-05-2020, 12:18
OUTATIME, mi trovo. Altro scenario:

- Sul VPS apri OpenVPN Server, con interfaccia TAP, con configurazione di rete compatibile con quella della rete casalinga
- Sul PC casalingo apri OpenVPN Client, con interfaccia TAP, in bridge con l'interfaccia ethernet della tua rete casalinga
- Accedi al VPS aprendo un OpenVPN Client, che prenderà una configurazione dal DHCP della rete casalinga

A quel punto dall'esterno hai accesso al VPS, al PC casalingo ed a tutti gli host della rete casalinga. Non vedo la necessità di usare un'interfaccia TUN che obblighi, poi, a fare quello che dici tu.

È una strada... personamente mi piace tenere la vpn confinata e gestire il nat, e visto che il post iniziale era con configurazione tun, l'ho preso come un dato assodato.
Ma comunque il bridge ti risolve solo il problema sul client non il nat dell'ip pubblico sul server, che era poi il problema originale.

bandit400
09-05-2020, 12:29
È una strada... personamente mi piace tenere la vpn confinata e gestire il nat, e visto che il post iniziale era con configurazione tun, l'ho preso come un dato assodato.Era TUN? Mi deve essere sfuggito. Ok, allora potrebbe essere come dici tu...;)

OUTATIME
09-05-2020, 12:33
Era TUN? Mi deve essere sfuggito. Ok, allora potrebbe essere come dici tu...;)
Si, ma come ripeto, il problema è accedere con ippubblico: porta. È questo il nat che non va... a prescindere da quale ip privato si debba poi raggiunfere.

Sterium
09-05-2020, 14:21
cerco di rispondere un po a tutti perché vedo che il quesito non sembra essere chiaro (sicuramente colpa mia che non mi sono espresso bene)

devo chiamare es. la porta 8123 da ip pubblico verso un client della vpn quindi:
ip_pubblico:8123 > vpn_client 10.8.0.2:8123
non penso occorra usare l'ip locale assegnato dal router basta quello assegnato dal server vpn?

Per quelli che mi chiedevano perché non usare il client direttamente sul router, perché la vps ha ip crucco e quindi mi troverei geolocalizato in cruccolandia

ps se entrambe le macchine sono sotto vpn riesco tranquillamente a chiamare la porta es. 8123 del client da altro client vpn

OUTATIME
09-05-2020, 14:26
devo chiamare es. la porta 8123 da ip pubblico verso un client della vpn quindi:
ip_pubblico:8123 > vpn_client 10.8.0.2:8123
non penso occorra usare l'ip locale assegnato dal router basta quello assegnato dal server vpn?
Esattamente. Devi fare una regola di NAT dall'IP pubblico del VPS all'IP di VPN 10.8.0, solo che io non conosco il firewall che stai usando
ps se entrambe le macchine sono sotto vpn riesco tranquillamente a chiamare la porta es. 8123 del client da altro client vpn
E questo è corretto, perchè sono due macchine entrambe nella rete 10.8.0.

Sterium
09-05-2020, 14:31
Esattamente. Devi fare una regola di NAT dall'IP pubblico del VPS all'IP di VPN 10.8.0, solo che io non conosco il firewall che stai usando

ufw era già presente sull'immagine ubuntu della vps... cosa mi consigli come firewall?

la porta di chiamata sul ip pubblico potrebbe essere qualsiasi?

OUTATIME
09-05-2020, 14:41
ufw era già presente sull'immagine ubuntu della vps... cosa mi consigli come firewall?

la porta di chiamata sul ip pubblico potrebbe essere qualsiasi?
Bah, io sono debianizzato e ho sempre fatto tutto semplicemente con IPtables, comunque basta che cerchi documentazione su ufw, tipo questo:
https://www.google.com/search?q=ufw+nat+port+forwarding&oq=ufw+na&aqs=chrome.2.0j69i57j0l6.3096j0j4&sourceid=chrome&ie=UTF-8

Sterium
11-05-2020, 08:41
Bah, io sono debianizzato e ho sempre fatto tutto semplicemente con IPtables, comunque basta che cerchi documentazione su ufw, tipo questo:
https://www.google.com/search?q=ufw+nat+port+forwarding&oq=ufw+na&aqs=chrome.2.0j69i57j0l6.3096j0j4&sourceid=chrome&ie=UTF-8

Perfetto funziona perfettamente. Grazie

OUTATIME
11-05-2020, 08:59
Perfetto funziona perfettamente. Grazie
Ottimo.

Sterium
11-05-2020, 15:02
@OUTATIME
ti rompo ancora le balle, dovrei mettere in ascolto transmission ma non riesco a venirne a capo...consigli?