View Full Version : [Guida] Come ottenere un IP pubblico con qualsiasi connessione 3G/4G
OUTATIME
22-03-2019, 11:29
Il contenuto di questo post è rilasciato con licenza Creative Commons Attribution-Noncommercial-Share Alike 2.5
http://creativecommons.org/licenses/by-nc-sa/2.5/it/
Changelog:
1.0.0 Release Iniziale
1.0.1 Inserita generazione certificati client + modifica parte iniziale
1.0.2 Inserita configurazione IP specifico per i client OpenVPN
1.1.1 Riorganizzata guida e migliorata leggibilità
1.1.2 Bugfix
1.1.3 Bugfix
1.1.4 Rimossa la configurazione firma HMAC per problemi sulle recenti versioni di OpenVPN
1.1.5 Modificato file di configurazione con cifratura AES-256-GCM
Come tutti sappiamo, già da tempo gli operatori hanno smesso di fornire IP pubblici sulle sim dei telefoni cellulari. Questa guida ha il duplice scopo di ottenere un IP pubblico su linee 3G/4G da utilizzare per i dispositivi interni e/o accedere dall'esterno alla propria rete LAN.
Cosa serve:
- Connessione 3G/4G correttamente configurata e funzionante.
- Dispositivo Linux (Raspberry o PC) correttamente installato con un'interfaccia avente IP statico e come default gateway la connessione 3G/4G.*
*La guida è sviluppata su questa configurazione, ma poi ovviamente il client VPN con opportuni certificati può essere utilizzato ovunque.
- Dispositivo Linux correttamente installato con un'interfaccia avente IP pubblico (VPS o altra connessione con IP pubblico di cui si è legittimi fruitori. Ricordo che la condivisione di connessioni internet è illegale).
NOTE
- Ho saltato la parte di configurazione dei dispositivi Linux: partiamo dal presupposto che siano correttamente funzionanti. Se avete bisogno, in rete c'è ampia documentazione o potete chiedere a me, ma in ogni caso esula dallo scopo di questa guida.
- Per gestire il traffico uscente, nel caso si voglia tunnelizzare il traffico attrverso la VPN, serve implementare il routing sul Raspberry/PC in modo che faccia da gateway per tutta la propria rete. Ad oggi questa parte di configurazione non l'ho ancora implementata, quindi sulla release attuale non la troverete. Non escludo di inserirla, tempo permettendo, in futuro. L'alternativa per il momento è installare un client VPN su ogni dispositivo che necessiti di utilizzare l'IP pubblico.
Capitolo 1: Installazione Server
Installo Open VPN:
apt install openvpn
Creo una cartella per la Certification Authorithy e la scarico :
mkdir /etc/easyrsa
cd /etc/easyrsa
wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.4/EasyRSA-3.0.4.tgz
Nota: la versione di EasyRSA viene aggiornata di continuo, di conseguenza suggerisco di verificare la versione corrente e sostituirla al numero nel link qui sopra (....v3.0.X/EasyRSA-3.0.X.tgz
I punti che seguono avranno di conseguenza il nome directory modificato a seconda della versione scaricata.
La estraggo:
tar xvf EasyRSA-3.0.4.tgz
cd /etc/easyrsa/EasyRSA-3.0.4/
Mi faccio una copia del file di esempio:
cp vars.example vars
Edito il file di configurazione:
nano vars
Vado nella sezione set var e tolgo il commento (è un certificato autogenerato, quindi si può scrivere quello che si vuole):
set_var EASYRSA_REQ_COUNTRY "IT"
set_var EASYRSA_REQ_PROVINCE "Italia"
set_var EASYRSA_REQ_CITY "A"
set_var EASYRSA_REQ_ORG "B"
set_var EASYRSA_REQ_EMAIL "me@example.net"
set_var EASYRSA_REQ_OU "C"
Adesso posso installare il server certificati e la chiave server:
./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa gen-req server nopass
./easyrsa sign-req server server
Creo la chiave di cifratura (questo ci metterà un po’):
./easyrsa gen-dh
Copio i file generati nella cartella di OpenVPN:
cp /etc/easyrsa/EasyRSA-3.0.4/pki/issued/server.crt /etc/openvpn/
cp /etc/easyrsa/EasyRSA-3.0.4/pki/private/server.key /etc/openvpn/
cp /etc/easyrsa/EasyRSA-3.0.4/pki/ca.crt /etc/openvpn/
cp /etc/easyrsa/EasyRSA-3.0.4/pki/dh.pem /etc/openvpn/
Generazione certificati client
Per la generazione dei certificati client mi posiziono nella cartella di EasyRSA e lancio i seguenti comandi:
cd /etc/easyrsa/EasyRSA-3.0.4/
./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1
Il primo comando è la richiesta di generazione di un certificato chiamato client1, senza password (opzione nopass).
Il secondo comando è la richiesta di firma del certificato client1 di tipo client. Al termine del processo avremo creato 2 file client1.key e client1.crt rispettivamente chiave e certificato, presenti nelle cartelle:
Cartella chiavi /etc/easyrsa/EasyRSA-3.0.4/EasyRSA-3.0.4/pki/private
Cartella certificati /etc/easyrsa/EasyRSA-3.0.4/pki/issued
Questa procedura può essere ripetuta cambiando nome, se si desidera creare più certificati per la connessione simultanea di più client.
Configurazione Server OpenVPN:
Creo nella cartella /etc/openvpn/ un file server.conf
nano /etc/openvpn/server.conf
All'interno inserisco i seguenti parametri:
### OpenVPN server.conf ###
port 1194
proto tcp4
dev tun
### Files
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh.pem
###
server 10.8.0.0 255.255.255.0
topology subnet
client-config-dir /etc/openvpn/ccd
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 60 120
key-direction 0
cipher AES-256-GCM
auth SHA256
max-clients 6
persist-key
client-to-client
status openvpn-status.log
log /etc/openvpn/openvpn.log
log-append /etc/openvpn/openvpn.log
verb 3
Riavvio il server. Dopo il riavvio con il comando
ip address show
Verifico di avere attiva un'interfaccia con tun0 IP 10.8.0.1
Nel caso si desideri assegnare al client un IP specifico, creare un file nella cartella /etc/openvpn/ccd con il nome del client generato (nel nostro esempio client1):
cd /etc/openvpn/ccd
nano client1
ifconfig-push 10.8.0.X 255.255.255.0
Ed aggiungere la seguente riga nel file di configurazione:
client-config-dir /etc/openvpn/ccd
Capitolo 2: Forwarding e Routing
Bene... A questo punto abbiamo un'interfaccia lan e un'interfaccia VPN denominata tun0. Dobbiamo fare in modo che il traffico che arriva sulla tun0 sia girata alla lan (quello che normalmente faremmo nella sezione "virual server" di un qualsiasi router). Per abilitare permanentemente il packet forwarding dobbiamo editare il file /etc/sysctl.conf e togliere il commento dalla riga net.ipv4.ip_forward=1 Quindi:
nano /etc/sysctl.conf
Dopo la modifica deve presentarsi cosi:
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
A questo punto applichiamo le modifiche appena fatte:
sysctl -p
sysctl --system
Ora, le regole di routing si applicano modificando iptables, questa guida non vuole essere un trattato sul funzionamento di iptables, anche perchè sono la persona meno indicata, quindi mi limiterò a ciò che serve per quello che vogliamo ottenere. Prima cosa: i comandi lanciati con iptables non sono permanenti e vengono persi con il riavvio, di conseguenza dobbiamo installare un programma che ci consenta di renderle permanenti, questo programma si chiama iptables-persistent. Quindi:
apt install iptables-persistent
Ora creiamo il file di configurazione, o se già creato lo editiamo cancellando tutto il contenuto presente:
nano /etc/iptables/rules.v4
E inseriamo le regole di seguito descritte:
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i tun0 -p icmp -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1194 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 10.8.0.0/24 -i tun0 -o eth0 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i tun0 -o eth0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
-A PREROUTING -i eth0 -p tcp -m tcp --dport XXXX -j DNAT --to-destination 10.8.0.XXX
COMMIT
Spiegazione:
Sezione *filter: blocco tutto il traffico inbound e di forward su tutte le interfacce, ad eccezione del traffico sulle porte 22 e 1194, in questo modo ho il server completamente chiuso dall'esterno, ad eccezione delle porte 1194 necessaria per il finzionamento di OpenVPN, e la porta 22 per l'SSH. Questa configurazione è particolarmente utile nel caso di VPS con IP pubblico direttamente assegato all'interfaccia eth0. Tutte le regole di forward sono per consentire il traffico tra le due interfacce eth0 e tun0.
Sezione *nat: faccio il NAT di tutto il traffico outbound proveniente dall'interfaccia tun0. Questo serve per consentire la navigazione attraverso il tunnel VPN. La riga di prerouting serve per inoltrare il traffico di una determinata porta verso un IP della VPN.
Per applicare le regole, lanciare:
systemctl restart netfilter-persistent
Per vedere le regole effettivamente applicate, è sufficiente lanciare il comando:
iptables -L -n -t nat
A questo punto abbiamo un server OpenVPN correttamente funzionante con interfaccia eth0 con aperte solamente la porta 1194 e 22 e interfaccia tun0 con IP 10.8.0.1.
DISCLAIMER: questa guida è frutto delle mie ricerce e i miei test con i servizi e le configurazioni da me scelti, non mi assumo nessuna responsabilità in caso di qualsiasi problema su servizi/apparecchiature che andrete ad acquistare.
OUTATIME
23-03-2019, 07:20
Configurazione Client
La configurazione del client è molto simile alla configurazione del server. Vediamola nel dettaglio:
Per prima cosa mi devo scaricare e copiare i file:
ca.crt
client2.crt
client2.key
Presenti sul server. Non c'è un modo unico di copiarli, dipende in che modo avete accesso al server. Se avete acquistato un VPS in cloud, probabilmente il modo più rapido è Filezilla e fare un SFTP. Questi file devono poi essere copiati nella cartella /etc/openvpn del client.
Installo Open VPN:
apt install openvpn
Creo un file client.conf nella cartella /etc/openvpn
nano /etc/openvpn/client.conf
Al suo interno cancello eventuale contenuto se presente e copio il seguente contenuto:
client
dev tun
proto tcp
remote [IP_Pubblico_Server_VPN] 1194
resolv-retry infinite
nobind
persist-key
persist-tun
keepalive 60 120
ca /etc/openvpn/ca.crt
cert /etc/openvpn/client1.crt
key /etc/openvpn/client1.key
cipher AES-256-GCM
auth SHA256
remote-cert-tls server
auth-nocache
status openvpn-status.log
log /etc/openvpn/openvpn.log
log-append /etc/openvpn/openvpn.log
verb 3
Il file nella sezione remote è necessario personalizzarlo sostituendo la parte [IP_Pubblico_Server_VPN] con l'IP pubblico del vostro server VPN (ovviamente senza le quadre.
Facciamo un riavvio del client. Una volta riavviato con il solito comando
ip address show
Verifico di avere attiva un'interfaccia con tun0 IP 10.8.0.1
Ora devo impostare il routing analogamente a quanto fatto con il server:
Per abilitare permanentemente il port forwarding dobbiamo editare il file /etc/sysctl.conf e togliere il commento dalla riga net.ipv4.ip_forward=1 Quindi:
nano /etc/sysctl.conf
Dopo la modifica deve presentarsi cosi:
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
A questo punto applichiamo le modifiche appena fatte:
sysctl -p
sysctl --system
Come per il server installiamo Netfilter-Persistent:
Quindi:
apt install iptables-persistent
Ora creiamo il file di configurazione, o se già creato lo editiamo cancellando tutto il contenuto presente:
nano /etc/iptables/rules.v4
E inseriamo le regole di seguito descritte:
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p icmp -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3389 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -i tun0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.1.XXX
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
COMMIT
Spiegazione:
La parte di filtro è in tutto e per tutto simile alla configurazione Server, con l'unica differenza che qui non è necessario inserire la porta 1194 in input, perchè qui è il client, e quindi la porta 1194 è già consentita dal parametro OUTPUT ACCEPT [0:0]. Ovviamente è inserita anche la regola per la porta 22, per evitare di chiudersi fuori e non collegarsi più in SSH. La successiva regola di input è riferita come esempio alla porta 3389, nel caso volessimo collegarci in RDP ad un PC all'interno.
La sezione NAT è composta da due regole: Prerouting per fare il NAT della porta 3389 verso l'IP 192.168.1.XXX, mentre la regola postrouting consente il traffico di ritorno dalla subnet 192.168.1.XXX verso la subnet 10.8.0.0.
OUTATIME
23-03-2019, 07:54
Riservato
pilatoroma
23-03-2019, 08:37
Eccomi....
Allora, per rispondere in modo esaustivo alla tua domanda, bisogna prima chiarire due concetti:
- VPN: la VPN permette una connessione tra un client e un server (esiste anche la site-to-site, ma non ci interessa) il server resta in ascolto e attende che un client richieda una connessione. Attivando la VPN il client chiede al server di instaurare una connessione sicura, e gli chiede anche di assegnargli un indirizzo IP, non necessariamente un IP pubblico, la stessa cosa che succederebbe a casa tua quando colleghi il cavo di rete al router.
- Connessioni 3G/4G: hanno un IP pubblico nattato, ovvero l'unico modo per instaurare una connessione è dall'interno della rete 3G/4G. Con questa configurazione gli operatori non ci consentono di accedere alla nostra rete dall'esterno. L'unico modo è iniziare la connessione dall'interno, ovvero attivando il client VPN.
Cosa succede quando attivo il client VPN:
- Il client VPN attiva una connessione verso il server del mio provider di servizi VPN, questo accetta la connessione e assegna alla mia interfaccia tun0 un IP. Quale? Semplice, quello pubblico di cui abbiamo tanto bisogno. Ecco che qualsiasi traffico che arriverà all'IP pubblico che il mio provider VPN mi ha assegnato, verrà instradato verso la mia interfaccia tun0.
Ovviamente tutto questo giochetto serve per poter accedere dall'esterno verso la propria rete locale, non viceversa, perchè comunque il gateway della propria rete rimane comunque il router, e non Raspberry o PC. Per fare questo (possibile ma più complesso), bisognerebbe che la VPN sia instaurata dal router.
Mi rendo conto che sia tutto un po' complesso, magari se riesco provo a fare uno schema.
Continuo a non condividere il tuo sistema, per ottenere lo stesso risultato basta si una VPN, ma meglio ancora se tua, questo voleva essere il mio concetto....le ragioni puoi tranquillamente immaginarle.....
OUTATIME
23-03-2019, 09:14
Continuo a non condividere il tuo sistema, per ottenere lo stesso risultato basta si una VPN, ma meglio ancora se tua, questo voleva essere il mio concetto....le ragioni puoi tranquillamente immaginarle.....
Ma tu non hai un IP pubblico. Dove termina la tua VPN?
se non capisco male il senso è: mi affitto un vps con ip pubblico e poi vado di ovpn tra il mio router e il vps...come esborso in più probabilmente siamo lì e lo sbattimento tecnico si sposta in parte dal proprio router al vps, ma forse nel complesso ci sono meno dubbi sulla eventuale manipolazione dei dati in transito...o no? comunque la tua proposta rimane interessante
pilatoroma
23-03-2019, 09:52
Ma tu non hai un IP pubblico. Dove termina la tua VPN?
Una VPN non è altro che una rete privata....ripeto basta un VPS con IP pubblico e poi la tua rete interna collegata al VPS tramite VPN diventa tutt'una....il traffico proveniente dall'IP pubblico lo instradi come meglio credi verso la tua rete interna....ecco il mio concetto....poi come si dice...."de gustibus non est disputandum" :D
pilatoroma
23-03-2019, 09:54
se non capisco male il senso è: mi affitto un vps con ip pubblico e poi vado di ovpn tra il mio router e il vps...come esborso in più probabilmente siamo lì e lo sbattimento tecnico si sposta in parte dal proprio router al vps, ma forse nel complesso ci sono meno dubbi sulla eventuale manipolazione dei dati in transito...o no? comunque la tua proposta rimane interessante
Ecco...più o meno siamo lì....:)
OUTATIME
23-03-2019, 10:02
se non capisco male il senso è: mi affitto un vps con ip pubblico e poi vado di ovpn tra il mio router e il vps...come esborso in più probabilmente siamo lì e lo sbattimento tecnico si sposta in parte dal proprio router al vps, ma forse nel complesso ci sono meno dubbi sulla eventuale manipolazione dei dati in transito...o no? comunque la tua proposta rimane interessante
Ah, ok... adesso ho capito il giro del VPS.
Sono onesto e non conosco molto l'ambiente VPS e le offerte commerciali disponibili (offrono IP pubblici o nattano porte su richiesta?), tenendo conto che il provider che ho io chiede 5$ al mese con abbonamento annuale, traffico illimitato, ma se sul VPS ci si vogliono mettere anche altri servizi il discorso potrebbe essere ancora più interessante e converrebbe pensare al VPS.
Comunque la mia soluzione è la stessa cosa, solamente che la parte VPS viene lasciata da gestire al provider.
sìsì infatti sono due modalità come dire alternative ma non eslcusive!
La discussione/guida manca della licenza creative commons come previsto del nostro regolamento
https://www.hwupgrade.it/forum/announcement.php?f=91&a=162
attendo adeguamento
>bYeZ<
OUTATIME
23-03-2019, 20:45
La discussione/guida manca della licenza creative commons come previsto del nostro regolamento
https://www.hwupgrade.it/forum/announcement.php?f=91&a=162
attendo adeguamento
>bYeZ<
Fatto :)
lucadigiulio
11-04-2019, 11:11
COMPLIMENTI !!
io sono molto interessato alle tue indicazioni e sicuramente vorrò seguire la via da te indicata, ma non ho le basi per riuscirci da solo ed ho necessità di qualche piccola indicazione.
Ho trovato molte guide in rete in diverse lingue, ma non riesco a capire come adattarle al mio caso specifico.
Questa la situazione:
Ho un router Tp-Link TL-MR6400 con connessione 4G (ovviamente sotto NAT e senza ip pubblico) - [IP RETE: 192.168.5.1]
In quella rete ho 3 macchine sulle quali gira una versione personalizzata e "intoccabile" di linux. - [IP RETE: 192.168.5.121 .122 .123]
Sul router ho configurato: Firewall / Port Forward / Ddns [cose che alla fine però non mi funzionano causa ip nattato]
Questa la mia necessità:
Raggiungere dall'esterno (cellulare o pc qualsiasi) sia l'interfaccia web del router sulla porta 80 (o 443 se https), sia in SSH le tre macchine all'interno.
Mi piacerebbe farlo semplicemente puntando un VPS in questo modo:
ssh [ip pubblico VPS]:11121 ---> 192.168.5.121:22
ssh [ip pubblico VPS]:11122 ---> 192.168.5.122:22
ssh [ip pubblico VPS]:11123 ---> 192.168.5.123:22
http [ip pubblico VPS]:8080 ---> 192.168.5.1:80
https [ip pubblico VPS]:8443 ---> 192.168.5.1:443
Ora sono a questo punto:
Un servizio VPS con ip pubblico con a scelta una qualsiasi distro linux o CentOS lo si trova a meno di 3 dollari al mese.
Da quanto ho appreso in questo post basta aggiungere in rete un dispositivo (raspberry??) e configurarlo per gestire VPN e DDNS (ma anche Port Forward o quello lo fa il VPS ??).
Se questo è corretto, mi consigli il dispositivo più economico che basta a soddisfare le mie necessità?
Poi mi servirebbero anche dritte per configurarlo correttamente e in questo caso aggiungere una regola per poterlo configurare, poi, direttamente dall'esterno: ssh [ip pubblico VPS]:11222 ---> 192.168.5.2:22 (dove quest'ultimo sarà l'ip statico del dispositivo).
Quindi.... i prossimi passi sono:
1 - acquisto dispositivo da voi consigliato
2 - acquisto VPS, installazione distro da voi suggerita, installazione OPENVPN come consigliato nei precedenti post (se altri sistemi sono più indicati per me, ditemi).
3 - corretta configurazione OPENVPN sul server per soddisfare le mie esigenze.
4 - configurazione dispositivo interno alla rete con anche qua OPENVPN
5 - configurazione regole di port forward (lato server o lato dispositivo interno ??)
Dovrebbe essere tutto, ma ho davvero necessità di molti più approfondimenti.
Intanto ringrazio tutti in anticipo per la condivisione delle vostre conoscenze e per l'aiuto.
(alcune guide dicono di installare AUTOSSH per instaurare un Reverse Tunneling, ma davvero brancolo nel buio e da profano non so se è più semplice/migliore o no...)
Grazie.
OUTATIME
11-04-2019, 11:41
Allora..
Di recente (causa problemi di fatturazione) con il mio fornitore VPN, ho fatto proprio quello che chiedi tu, ovvero ho preso un VPS con Debian 9 e gli ho montato OpenVPN.
Quello che dovrai effettuare è la manipolazione di iptables sul server VPN verso il raspberry, e sul raspberry sempre iptables verso la rete locale.
Io ti consiglio di partire prendendo il servizio VPS e configurarci su openvpn e provare dal tuo PC Windows o da una macchina virtuale. Quando tutto funziona, copi la configurazione sul raspberry.
Per risponderti:
Quindi.... i prossimi passi sono:
1 - acquisto dispositivo da voi consigliato
Aspetta
2 - acquisto VPS, installazione distro da voi suggerita, installazione OPENVPN come consigliato nei precedenti post (se altri sistemi sono più indicati per me, ditemi).
Io ho fatto con Debian 9 e Aruba (se lo posso dire) che da un IP pubblico compreso.
3 - corretta configurazione OPENVPN sul server per soddisfare le mie esigenze.
Qui te la posso passare io
4 - configurazione dispositivo interno alla rete con anche qua OPENVPN
Esatto
5 - configurazione regole di port forward (lato server o lato dispositivo interno ??)
Esatto.
Bella discussione, butto lì un paio di considerazioni che magari possono fornire uno spunto.
1) Sulla scelta della vps su cui, come dire, hostare la vpn. Tenete conto che se è fuori dall'italia magari costerà di meno ma poi ci si ritroverà con ping alto e ip non accettato da chi georeferenzia (es, streaming rai).
2) Esistono router che possono fungere, diciamo out of the box e con semplice configurazione via interfaccia web, da client vpn. Rispetto all'uso del raspberry mi pare che semplificherebbe non poco la procedura...
OUTATIME
11-04-2019, 12:32
Quella del router potrebbe essere una strada, da tenere a mente però che (suppongo) con un router (che è anche il gateway della nostra lan) tutto il traffico venga instradato attraverso la VPN, e questo a seconda dei casi potrebbe essere non voluto. Ad es. in caso di giochi online aumenterebbe il ping.
Le indicazioni di questa guida sono perlopiù rivolte a chi ha necessità di entrare dall'esterno nella propria rete.
Altra cosa da considerare è quanto traffico internet offre il provider VPS (nel mio caso ad esempio non è illimitato).
Maxcorrads
11-04-2019, 12:52
Quella del router potrebbe essere una strada, da tenere a mente però che (suppongo) con un router (che è anche il gateway della nostra lan) tutto il traffico venga instradato attraverso la VPN, e questo a seconda dei casi potrebbe essere non voluto. Ad es. in caso di giochi online aumenterebbe il ping.
Le indicazioni di questa guida sono perlopiù rivolte a chi ha necessità di entrare dall'esterno nella propria rete.
Altra cosa da considerare è quanto traffico internet offre il provider VPS (nel mio caso ad esempio non è illimitato).
Non tutti i router, ad esempio asus con firmware Merlin ti permette di decidere chi instradare attraverso la VPN e chi no.
https://i.imgur.com/ao2mwlx.png
Aruba va benissimo, io uso OVH, non hai limiti di traffico e se l'ip francese non ti piace (vedi RAI) puoi sempre comprarne uno italiano a 2€ + iva una tantum.:D
OUTATIME
11-04-2019, 13:00
Non tutti i router, ad esempio asus con firmware Merlin ti permette di decidere chi instradare attraverso la VPN e chi no.
Interessante...
Le indicazioni di questa guida sono perlopiù rivolte a chi ha necessità di entrare dall'esterno nella propria rete.
Ahhh non avevo capito! Comunque maxcorrads ha portato un ottimo esempio di router ampiamente configurabile, in realtà un po' tutti i router su cui si può installare openwrt dovrebbero andar bene. Poi starebbe all'utente decidere un po' come giostrarsela....se con un raspberry o con un router.
Considerando che i modem mobile che io sappia hanno una parte di routing piuttosto scarsa ci starebbe di collegarci direttamente un router un po' più degno e fargli pure gestire la parte della vpn.
Comunque ridicolo che le aziende di tlc non permettano di avere l'ip pubblico. Capisco che con ipv4 sarebbe stata dura assegnare così tanti ip....ma cavoli non siamo passati a ipv6 apposta per questo genere di situazioni? C'è qualcosa che mi sfugge?
OUTATIME
11-04-2019, 18:56
Comunque ridicolo che le aziende di tlc non permettano di avere l'ip pubblico. Capisco che con ipv4 sarebbe stata dura assegnare così tanti ip....ma cavoli non siamo passati a ipv6 apposta per questo genere di situazioni? C'è qualcosa che mi sfugge?
Sinceramente non saprei come siamo messi con l'IPv6... Ormai tutto è compatibile ma di go live non credo se ne parli per il momento.
lucadigiulio
11-04-2019, 19:59
1) Sulla scelta della vps su cui, come dire, hostare la vpn. Tenete conto che se è fuori dall'italia magari costerà di meno ma poi ci si ritroverà con ping alto e ip non accettato da chi georeferenzia (es, streaming rai).
a me non interessa l'ip italiano
2) Esistono router che possono fungere, diciamo out of the box e con semplice configurazione via interfaccia web, da client vpn. Rispetto all'uso del raspberry mi pare che semplificherebbe non poco la procedura...
vero, ma non se ne trovano (o almeno non sono riuscito a trovarne) di router 4g che abbiano integrata la possibilità di configurare un CLIENT VPN. Quasi tutti hanno invece la possibilità, in questo caso inutile, di fungere da SERVER VPN.
Inoltre ho bisogno che supporti DDNS di no-ip.
Per questo la mia scelta era ricaduta su quel router. Purtroppo da ignorante non avevo considerato che tramite 4g le reti sono tutte nattate. :doh: :doh: :doh:
Emulatore interfaccia web del router: https://emulator.tp-link.com/mr6400-v4/index.htm
OUTATIME
11-04-2019, 20:39
a me non interessa l'ip italiano
vero, ma non se ne trovano (o almeno non sono riuscito a trovarne) di router 4g che abbiano integrata la possibilità di configurare un CLIENT VPN. Quasi tutti hanno invece la possibilità, in questo caso inutile, di fungere da SERVER VPN.
Inoltre ho bisogno che supporti DDNS di no-ip.
Per questo la mia scelta era ricaduta su quel router. Purtroppo da ignorante non avevo considerato che tramite 4g le reti sono tutte nattate. :doh: :doh: :doh:
Emulatore interfaccia web del router: https://emulator.tp-link.com/mr6400-v4/index.htm
Beh, con un vps il servizio ddns non è necessario, visto che danno un ip statico (almeno Aruba).
lucadigiulio
11-04-2019, 21:12
Beh, con un vps il servizio ddns non è necessario, visto che danno un ip statico (almeno Aruba).
sì sì ovvio, ma nel mio ragionamento iniziale non era previsto....
OUTATIME
12-04-2019, 07:34
Comunque nei prossimi giorni mi dovrebbe arrivare un router decisamente cazzuto... Vi farò sapere... :D
pilatoroma
12-04-2019, 08:24
Comunque nei prossimi giorni mi dovrebbe arrivare un router decisamente cazzuto... Vi farò sapere... :D
Noto con piacere che stai adottando la soluzione da me proposta......un minimo di citazione non guastava però...giusto per precisare...:)
OUTATIME
12-04-2019, 08:29
Noto con piacere che stai adottando la soluzione da me proposta......un minimo di citazione non guastava però...giusto per precisare...:)
Ammetto non senza qualche difficoltà... visto che non sono proprio un iptables guru... :D
A mia discolpa posso dire che è solo una settimana che ho implementato il tutto funzionante... :D Comunque si, ti ringrazio, non pensavo che i prezzi dei VPS fossero così concorrenziali, e soprattutto compreso un IP pubblico statico.
BTW... tu come sei messo a iptables? :D
pilatoroma
12-04-2019, 08:42
Questa guida http://guide.debianizzati.org/index.php/Openvpn è un buon punto di partenza...:read:
OUTATIME
12-04-2019, 08:59
Questa guida http://guide.debianizzati.org/index.php/Openvpn è un buon punto di partenza...:read:
Segnalo anche questa:
http://a2.pluto.it/a2/a258.htm#almlindex4169
lucadigiulio
14-04-2019, 10:26
Allora... sono a questo punto:
Ho acquistato un VPS, ci ho installato su tutto quello che serviva, ho configurato openvpn con interfaccia TAP e autenticazione con key.
Ho testato il funzionamento sul router che ho a casa (un netgear con firmware mod che include un client openvpn).
Si connette regolarmente.
Preferisco però aumentare la sicurezza della connessione andando ad implementare il certificato, ma lo farò in seguito.
Ora, vorrei testare il port forward del RDP, così da capire come configurarlo poi per le macchine all'interno della rete nattata nella quale dovrò aggiungere il dispositivo apposito (Raspberry??)
Questo il log lato client:
OpenVPN log file restarted 04/14/19 09:49:06
disabling NCP mode (--ncp-disable) because not in P2MP client or server mode
OpenVPN 2.4.5 mips-unknown-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [MH/PKTINFO] [AEAD] built on Mar 26 2018
library versions: OpenSSL 1.0.2o 27 Mar 2018, LZO 2.10
WARNING: INSECURE cipher with block size less than 128 bit (64 bit). This allows attacks like SWEET32. Mitigate by using a --cipher with a larger block size (e.g. AES-256-CBC).
WARNING: INSECURE cipher with block size less than 128 bit (64 bit). This allows attacks like SWEET32. Mitigate by using a --cipher with a larger block size (e.g. AES-256-CBC).
TUN/TAP device ovpnc opened
do_ifconfig, tt->did_ifconfig_ipv6_setup=0
/bin/ip link set dev ovpnc up mtu 1500
/bin/ip addr add dev ovpnc 10.0.0.2/32 broadcast 10.0.0.2
nice 12 succeeded
TCP/UDP: Preserving recently used remote address: [AF_INET]89.*.*.*:1194
UDP link local: (not bound)
UDP link remote: [AF_INET]89.*.*.*:1194
Potete aiutarmi con li iptables ?
OUTATIME
14-04-2019, 11:35
Aspetta... Se hai configurato il client VPN sul Netgear, perchè vuoi prendere anche il raspberry?
lucadigiulio
15-04-2019, 10:46
Aspetta... Se hai configurato il client VPN sul Netgear, perchè vuoi prendere anche il raspberry?
Il Netgear ce l'ho a CASA e l'ho configurato per fare una prova e capire se il VPS funzionava ed era corretta al configurazione.
Io però ho bisogno del VPS in un altro posto dove (vedi precedente post) ho un router 4G sotto nat dell'operatore e devo accederci dall'esterno per raggiungere 3 macchine in SSH oltre all'interfaccia web del router stesso.
OUTATIME
15-04-2019, 11:05
Il Netgear ce l'ho a CASA e l'ho configurato per fare una prova e capire se il VPS funzionava ed era corretta al configurazione.
Io però ho bisogno del VPS in un altro posto dove (vedi precedente post) ho un router 4G sotto nat dell'operatore e devo accederci dall'esterno per raggiungere 3 macchine in SSH oltre all'interfaccia web del router stesso.
Ah.. OK... non avevo capito....
Questa è la configurazione del mio server:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -i tun0 -o eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 10.8.0.6
-A POSTROUTING -s 10.8.0.6/32 -o eth0 -j MASQUERADE
COMMIT
Supponendo che tu abbia effettuato una configurazione OpenVPN standard. Ovviamente l'IP --to-destination lo devi modificare secondo l'IP del tuo client OpenVPN (il raspberry).
Poi sul client dovrai fare il nat verso l'IP di destinazione.
confermo che ovviamente le regole indicate funzionano, occhio a modificare eventualmente anche il nome dell'if eth
lucadigiulio
16-04-2019, 20:38
Ah.. OK... non avevo capito....
Questa è la configurazione del mio server:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -i tun0 -o eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 10.8.0.6
-A POSTROUTING -s 10.8.0.6/32 -o eth0 -j MASQUERADE
COMMIT
Supponendo che tu abbia effettuato una configurazione OpenVPN standard. Ovviamente l'IP --to-destination lo devi modificare secondo l'IP del tuo client OpenVPN (il raspberry).
Poi sul client dovrai fare il nat verso l'IP di destinazione.
Ciao, scusami ma ci sono cose che non mi tornano.
Attualmente il mio iptables è così:
Chain INPUT (policy ACCEPT)
target prot opt source destination
f2b-ssh tcp -- anywhere anywhere multiport dports ssh
f2b-sshd tcp -- anywhere anywhere multiport dports ssh
ACCEPT udp -- 10.0.0.0/24 anywhere udp dpt:1194 state NEW,RELATED,ESTABLISHED
ACCEPT all -- 10.0.0.0/24 anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 10.0.0.0/24 anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain f2b-ssh (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Chain f2b-sshd (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Non capisco proprio come allinearlo a quello che tu hai indicato...
OUTATIME
16-04-2019, 21:13
Ciao, scusami ma ci sono cose che non mi tornano.
Attualmente il mio iptables è così:
Chain INPUT (policy ACCEPT)
target prot opt source destination
f2b-ssh tcp -- anywhere anywhere multiport dports ssh
f2b-sshd tcp -- anywhere anywhere multiport dports ssh
ACCEPT udp -- 10.0.0.0/24 anywhere udp dpt:1194 state NEW,RELATED,ESTABLISHED
ACCEPT all -- 10.0.0.0/24 anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 10.0.0.0/24 anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain f2b-ssh (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Chain f2b-sshd (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Non capisco proprio come allinearlo a quello che tu hai indicato...
Hai seguito le indicazioni in prima pagina per installare netfilter-persistent?
lucadigiulio
16-04-2019, 22:00
Si, l'ho installato, ma poi non funzionandomi, ho riconfigurato con TAP invece che con TUN ed ho provato altre configurazioni finchè è partito. Ora ho resettato iptables e si riparte da lì...
OUTATIME
16-04-2019, 22:12
Si, l'ho installato, ma poi non funzionandomi, ho riconfigurato con TAP invece che con TUN ed ho provato altre configurazioni finchè è partito. Ora ho resettato iptables e si riparte da lì...
No... Aspetta... iptables persistent non c'entra nulla con la VPN.
configura in modo che sia funzionante la VPN, poi pensiamo a iptables.
lucadigiulio
16-04-2019, 22:14
VPN funziona
OUTATIME
16-04-2019, 22:42
VPN funziona
Bene. Quindi dal client riesci già a navigare attraverso il server VPN, giusto?
lucadigiulio
17-04-2019, 08:37
Questo il log:
Initialization Sequence Completed
Inactivity timeout (--ping-restart), restarting
SIGUSR1[soft,ping-restart] received, process restarting
Re-using pre-shared static key
TCP/UDP: Preserving recently used remote address: [AF_INET]89.*.*.*:1194
Preserving previous TUN/TAP instance: ovpnc
TCP/UDP: Preserving recently used remote address: [AF_INET]89.*.*.*:1194
UDP link local: (not bound)
UDP link remote: [AF_INET]89.*.*.*:1194
Peer Connection Initiated with [AF_INET]89.*.*.*:1194
WARNING: 'ifconfig' is used inconsistently, local='ifconfig 10.0.0.2 255.255.255.255', remote='ifconfig 10.0.0.0 255.255.255.0'
Initialization Sequence Completed
Queste le statistiche del link:
OpenVPN STATISTICS
Updated,Wed Apr 17 08:28:34 2019
TUN/TAP read bytes,24956
TUN/TAP write bytes,0
TCP/UDP read bytes,188
TCP/UDP write bytes,32632
Auth read bytes,147
END
Questa la configurazione del Client:
# amod OpenVPN client configuration file
# created by ovpnc 04/14/19 09:47:24
########################################
# DO NOT touch these
dev ovpnc
dev-type tap
dev-node /dev/tun1
proto udp
fast-io
nobind
daemon
writepid /var/run/openvpn_client.pid
script-security 3
secret /etc/amod/conf/openvpn/openvpn_client_static.key
log /tmp/ovpncpipe
status /var/log/openvpn_client_status.log 60
########################################
# You may touch these, but only
# if you know what you are doing
remote 89.*.*.* 1194
ifconfig 10.0.0.2 255.255.255.255
#user nobody
#group nobody
nice 12
mute 3
suppress-timestamps
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
persist-remote-ip
float
# the usuals to have a working tunnel
#fragment 1200
#mssfix 1200
OUTATIME
17-04-2019, 08:43
Ma hai seguito la guida in prima pagina per la configurazione di openvpn?
Altra cosa, mi fai un ip address show sul client?
lucadigiulio
17-04-2019, 20:53
Ho resettato il server e sono ripartito da zero.
Ho provato a seguire alla lettera la tua guida, ma manca completamente della parte su come configurare il server openvpn.
Tu parli di un file .ovpn da rinominare in .conf ma non avendo nessun file devo costruirmelo, in quanto è il server che insieme al certificato crea il file .ovpn con tutti i parametri di configurazione dei clients...
Quindi ora ricordo come mai avevo cercato altre fonti ed avevo creato il dispositivo TAP anzichè TUN come invece risulta a te...
Hai indicazioni più precise ?
Io avevo configurato così.
Server:
dev tap
lport 1194
ifconfig 10.0.0.1 255.255.255.0
secret /etc/openvpn/benjo.key
verb 9
Client:
remote 89.*.*.*
dev tap
rport 1194shared-keys
ifconfig 10.0.0.2 255.255.255.0
secret /etc/openvpn/benjo.key
verb 9
Ora invece indicami come devo configurare.
Considera però che vorrei utilizzare un certificato e non la key.
ho perso un passaggio: su quale distro stai affrontando la configurazione ovpn?
lucadigiulio
17-04-2019, 21:51
SERVER: Debian 9.8 x64
CLIENT: Raspbian Stretch Full 2019-04-08 (basato sull'ultimo Debian 9 uscito)
beh allora per quanto riguarda l'installazione/configurazione ovpn perché non ti semplifichi la vita con un ottimo script tipo https://github.com/Nyr/openvpn-install ?
e parti da lì per raffinare eventualmente i parametri dei file conf lato server e lato client, per poi passare alle impostazioni iptables & co.
OUTATIME
18-04-2019, 06:50
Ho resettato il server e sono ripartito da zero.
Ho provato a seguire alla lettera la tua guida, ma manca completamente della parte su come configurare il server openvpn.
Tu parli di un file .ovpn da rinominare in .conf ma non avendo nessun file devo costruirmelo, in quanto è il server che insieme al certificato crea il file .ovpn con tutti i parametri di configurazione dei clients...
Quindi ora ricordo come mai avevo cercato altre fonti ed avevo creato il dispositivo TAP anzichè TUN come invece risulta a te...
Hai indicazioni più precise ?
Momento... La guida di pag. 1 parte dal presupposto di avere O un provider VPN O un server openvpn funzionante. Ti ho detto di guardare pag 1 perchè tu avevi detto che la vpn era funzionante e il problema era su iptables.
Appena riesco farò anche la guida per la parte server, ma ti preavviso che userò l'interfaccia tun.
outatime senza nulla togliere alla tua buona volontà impegno e competenza, se hai voglia dai un occhio allo script che ho linkato (provandolo magari in una vm), io lo uso da tempo e il risultato secondo me è abbondantemente sufficiente per poter poi procedere con le spalle coperte nel resto della configurazione (iptables & co) senza nessun'altra modifica alla configurazione ovpn (vabeh io alcuni parametri nei conf server&client li ho cambiati, ma finezze opzionali), in questo modo si faciliterebbe ulteriormente il processo a beneficio dei meno smanettoni :fagiano:
OUTATIME
18-04-2019, 08:08
outatime senza nulla togliere alla tua buona volontà impegno e competenza, se hai voglia dai un occhio allo script che ho linkato (provandolo magari in una vm), io lo uso da tempo e il risultato secondo me è abbondantemente sufficiente per poter poi procedere con le spalle coperte nel resto della configurazione (iptables & co) senza nessun'altra modifica alla configurazione ovpn (vabeh io alcuni parametri nei conf server&client li ho cambiati, ma finezze opzionali), in questo modo si faciliterebbe ulteriormente il processo a beneficio dei meno smanettoni :fagiano:
Lo farò sicuramente :)
lucadigiulio
19-04-2019, 23:40
Bene...
OpenVpn configurato e funzionante (lo implementerò poi con TLS)
ip address show (SERVER):
root@vps:~# ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:50:56:94:14:8c brd ff:ff:ff:ff:ff:ff
inet 89.*.*.*/24 brd 89.*.*.* scope global eth0
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 00:50:56:94:4e:bf brd ff:ff:ff:ff:ff:ff
4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 00:50:56:94:2e:c8 brd ff:ff:ff:ff:ff:ff
5: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
link/none
inet 125.80.0.1 peer 125.80.0.2/32 scope global tun0
valid_lft forever preferred_lft forever
ip address show (CLIENT):
root@raspberrypi:/home/pi# ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether *:*:*:*:*:* brd ff:ff:ff:ff:ff:ff
inet 192.168.5.50/24 brd 192.168.5.255 scope global eth0
valid_lft forever preferred_lft forever
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether *:*:*:*:*:* brd ff:ff:ff:ff:ff:ff
4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
link/none
inet 125.80.0.50 peer 125.80.0.49/32 scope global tun0
valid_lft forever preferred_lft forever
Ora si passa al forwarding tramite gli iptables (sul server devo configurare per instradare attraverso la VPN e sul client per far instradare verso la rete interna giusto?)
Tanto per vedere se funziona, di base vorrei connettermi al client in ssh attraverso l'ip pubblico del server... dritte?
Poi da lì dovrei riuscire a riadattarci le altre cose....
OUTATIME
20-04-2019, 06:21
Allora... prima cosa oscura gli IP pubblici dall'eth0 del server... :D
Ora abilita il forwarding tra le interfacce editando il file /etc/sysctl.conf e togli il commento dalla riga net.ipv4.ip_forward=1 Quindi:
nano /etc/sysctl.conf
Dopo la modifica deve presentarsi cosi:
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
Ora applica le modifiche appena fatte:
sysctl -p
sysctl --system
Adesso viene il difficile, visto che vuoi fare il forward proprio di una porta su cui è in ascolto il server (la 22), quindi ti consiglio di cambiare la SSH listening port sul client, quindi, installa sul server iptables-persistent, poi vai ad inserire nel file /etc/iptables/rules.v4 queste regole:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -i tun0 -o eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp -m tcp --dport 5422 -j DNAT --to-destination 125.80.0.50
-A POSTROUTING -s 125.80.0.50/32 -o eth0 -j MASQUERADE
COMMIT
Le prime due regole consentono il traffico già stabilito tra le due interfacce tun0 ed eth0, in entrambe le direzioni, la regola di loopback ho trovato varie discussioni che indicano di metterla, ma non ho trovato differenze di sorta, ad ogno modo valuta tu.
Nella sezione NAT trovi le regole specifiche per il tuo client: la prerouting ti consente il forward di una porta (ho preso ad esempio la 5422, visto che la 22 non la puoi usare) verso il tuo IP VPN 125.80.0.50, la postrouting consente all'IP VPN 125.80.0.50 di navigare attraverso la eth0 del server.
In questo modo sarai in grado di accedere alla porta 5422 del client VPN. Una volta che questo giro funziona, passiamo a inoltrare delle altre porte verso altri client.
Se lo ritieni opportuno, io prima nella sezione filter, prima del commit ho inserito anche queste regole di sicurezza, visto che il server è direttamente esposto su internet:
-A INPUT -p icmp -j DROP
-A INPUT -s 192.168.0.0/16 -i eth0 -j DROP
-A FORWARD -s 192.168.0.0/16 -i eth0 -j DROP
-A INPUT -s 172.16.0.0/12 -i eth0 -j DROP
-A FORWARD -s 172.16.0.0/12 -i eth0 -j DROP
-A INPUT -s 10.0.0.0/8 -i eth0 -j DROP
-A FORWARD -s 10.0.0.0/8 -i eth0 -j DROP
Che servono per impedire il ping sull'IP pubblico e rifiutare tutte le connessioni sull'eth0 che provengono da IP chiaramente spoofati, poichè è impossible ricevere chiamate da IP privati sull'interfaccia pubblica.
Anzi... riguardo quest'ultima configurazione, se qualcuno conosce altre configurazioni da aggiungere per aumentare la sicurezza, sarebbe il benvenuto....
lucadigiulio
20-04-2019, 21:08
Ciao e grazie.
Mi serve avere un'opzione che gira direttamente una porta su un'altra.
Per esempio:
SSH [ip pubblico server]:5422 ---> 125.80.0.50:22
Così funziona?
-A PREROUTING -i eth0 -p tcp -m tcp --dport 5422 -j DNAT --to-destination 125.80.0.50:22
senza il bisogno di mettere in ascolto ssh un'altra porta sul client.
Alla fine, per 3 macchine all'interno della rete del client avrò bisogno di fare questo:
SSH [ip pubblico server]:7722 ---> [ip vpn client]:7722 ---> [ip interno rete client]:22
cioè:
SSH 89.*.*.*:7722 ---> 125.80.0.50:7722 ---> 192.168.5.5:22
Quindi dovrò giocarmela bene anche con iptables sul client.....
Ok ora faccio un po di prove.
Poi, nell'ultimo esempio che hai indicato, non capisco cosa c'entra quella configurazione con la mia (classi 172.16 , 192.168 e 10.0) ???
OUTATIME
20-04-2019, 21:13
Poi, nell'ultimo esempio che hai indicato, non capisco cosa c'entra quella configurazione con la mia (classi 172.16 , 192.168 e 10.0) ???
Ripeto, sono delle regole di sicurezza, a tua discrezione se inserirle oppure no.
Per quanto riguarda il PAT, la sintassi esatta ci devo guardare, a occhio dovrebbe andare bene quello che hai scritto.
Io ti consiglio di fare PAT a livello del server, e a livello del client solo NAT.
lucadigiulio
20-04-2019, 22:54
Allora, non mi funziona...
iptables SERVER:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:f2b-ssh - [0:0]
:f2b-sshd - [0:0]
-A INPUT -p tcp -m multiport --dports 22 -j f2b-ssh
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A INPUT -i lo -j ACCEPT
-A f2b-ssh -j RETURN
-A f2b-sshd -j RETURN
-A FORWARD -i tun0 -o eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp -m tcp --dport 7722 -j DNAT --to-destination 125.80.0.50:22
-A POSTROUTING -s 125.80.0.50/32 -o eth0 -j MASQUERADE
COMMIT
iptables CLIENT:
filter
:INPUT ACCEPT [2:492]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -i tun0 -o eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
COMMIT
Putty sta lì e ci pensa una quindicina di secondi, poi dà errore di rete e va in timeout...
OUTATIME
21-04-2019, 06:37
Allora, non mi funziona...
Manca la regola di PAT inversa, perchè ovviamente la macchina linux risponde sulla 22, ma deve uscire sulla 7722, la regola dovrebbe essere:
-A POSTROUTING -s 125.80.0.50:22 -j SNAT -–to-source eth0 --dport 7722
Domanda stupida e scontata... ma tu dopo la modifica del file dai il comando service netfilter-persistent restart, vero?
Se non funziona, inserisci nel forward il NEW.
-A FORWARD -i tun0 -o eth0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
lucadigiulio
21-04-2019, 15:09
Domanda stupida e scontata... ma tu dopo la modifica del file dai il comando service netfilter-persistent restart, vero?
Sì certamente e faccio sempre anche un iptables -L per vedere le cose
Ora, aggiungendo sotto nat l'ultima regola che mi hai indicato, mi da questa risposta quando lancio il restart:
root@bigbenjo:~# service netfilter-persistent restart
Job for netfilter-persistent.service failed because the control process exited with error code.
See "systemctl status netfilter-persistent.service" and "journalctl -xe" for details.
allora faccio come mi indica:
root@bigbenjo:~# systemctl status netfilter-persistent.service
● netfilter-persistent.service - netfilter persistent configuration
Loaded: loaded (/lib/systemd/system/netfilter-persistent.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sun 2019-04-21 13:51:24 BST; 1min 57s ago
Process: 1509 ExecStop=/usr/sbin/netfilter-persistent stop (code=exited, status=1/FAILURE)
Process: 1540 ExecStart=/usr/sbin/netfilter-persistent start (code=exited, status=1/FAILURE)
Main PID: 1540 (code=exited, status=1/FAILURE)
Apr 21 13:51:24 bigbenjo systemd[1]: Starting netfilter persistent configuration...
Apr 21 13:51:24 bigbenjo netfilter-persistent[1540]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables start
Apr 21 13:51:24 bigbenjo netfilter-persistent[1540]: run-parts: /usr/share/netfilter-persistent/plugins.d/15-ip4tables exited with return code 2
Apr 21 13:51:24 bigbenjo netfilter-persistent[1540]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables start
Apr 21 13:51:24 bigbenjo netfilter-persistent[1540]: Warning: skipping IPv6 (no rules to load)
Apr 21 13:51:24 bigbenjo systemd[1]: netfilter-persistent.service: Main process exited, code=exited, status=1/FAILURE
Apr 21 13:51:24 bigbenjo systemd[1]: Failed to start netfilter persistent configuration.
Apr 21 13:51:24 bigbenjo systemd[1]: netfilter-persistent.service: Unit entered failed state.
Apr 21 13:51:24 bigbenjo systemd[1]: netfilter-persistent.service: Failed with result 'exit-code'.
root@bigbenjo:~# journalctl -xe
Apr 21 15:04:25 bigbenjo systemd[1]: Starting netfilter persistent configuration...
-- Subject: Unit netfilter-persistent.service has begun start-up
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- Unit netfilter-persistent.service has begun starting up.
Apr 21 15:04:25 bigbenjo netfilter-persistent[1630]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables start
Apr 21 15:04:25 bigbenjo netfilter-persistent[1630]: run-parts: /usr/share/netfilter-persistent/plugins.d/15-ip4tables exited with return code 2
Apr 21 15:04:25 bigbenjo netfilter-persistent[1630]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables start
Apr 21 15:04:25 bigbenjo netfilter-persistent[1630]: Warning: skipping IPv6 (no rules to load)
Apr 21 15:04:25 bigbenjo systemd[1]: netfilter-persistent.service: Main process exited, code=exited, status=1/FAILURE
Apr 21 15:04:25 bigbenjo systemd[1]: Failed to start netfilter persistent configuration.
-- Subject: Unit netfilter-persistent.service has failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- Unit netfilter-persistent.service has failed.
--
-- The result is failed.
Apr 21 15:04:25 bigbenjo systemd[1]: netfilter-persistent.service: Unit entered failed state.
Apr 21 15:04:25 bigbenjo systemd[1]: netfilter-persistent.service: Failed with result 'exit-code'.
Per chiarezza, attulmente iptables è così, ma non me lo accetta:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:f2b-ssh - [0:0]
:f2b-sshd - [0:0]
-A INPUT -p tcp -m multiport --dports 22 -j f2b-ssh
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A INPUT -i lo -j ACCEPT
-A f2b-ssh -j RETURN
-A f2b-sshd -j RETURN
-A FORWARD -i tun0 -o eth0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp --dport 7722 -j DNAT --to-destination 125.80.0.50:22
-A POSTROUTING -s 125.80.0.50:22 -j SNAT -–to-source eth0 --dport 7722
-A POSTROUTING -o eth0 -s 125.80.0.0/24 -j MASQUERADE
COMMIT
OUTATIME
21-04-2019, 17:23
Ora, aggiungendo sotto nat l'ultima regola che mi hai indicato, mi da questa risposta quando lancio il restart:
Ho provato ora con il remote desktop la configurazione funzionante è la seguente:
*nat
-A PREROUTING -i eth0 -p tcp -m tcp --dport 53389 -j DNAT --to-destination 10.8.0.6:3389
*filter
-A FORWARD -i eth0 -p tcp --dport 3389 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
Quindi, nonostante la connessione da fare il forward arrivi sulla 53389, la regola è efficace se è indicata la porta di destinazione, quindi per tornare alla tua configurazione, quella funzioante dovrebbe essere:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:f2b-ssh - [0:0]
:f2b-sshd - [0:0]
-A INPUT -p tcp -m multiport --dports 22 -j f2b-ssh
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A INPUT -i lo -j ACCEPT
-A f2b-ssh -j RETURN
-A f2b-sshd -j RETURN
-A FORWARD -i tun0 -o eth0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -p tcp --dport 22 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp --dport 7722 -j DNAT --to-destination 125.80.0.50:22
-A POSTROUTING -o eth0 -s 125.80.0.0/24 -j MASQUERADE
COMMIT
lucadigiulio
21-04-2019, 21:29
Io ti ringrazio e non capisco di quale sortilegio sono vittima, ma non funziona...
iptables SERVER (VPS cloud)
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:f2b-ssh - [0:0]
:f2b-sshd - [0:0]
-A INPUT -p tcp -m multiport --dports 22 -j f2b-ssh
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A INPUT -i lo -j ACCEPT
-A f2b-ssh -j RETURN
-A f2b-sshd -j RETURN
-A FORWARD -i tun0 -o eth0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -p tcp --dport 22 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp --dport 7722 -j DNAT --to-destination 125.80.0.50:22
-A POSTROUTING -o eth0 -s 125.80.0.0/24 -j MASQUERADE
COMMIT
iptables CLIENT (Raspberry)
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A FORWARD -i tun0 -o eth0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
OUTATIME
22-04-2019, 07:11
Io ti ringrazio e non capisco di quale sortilegio sono vittima, ma non funziona...
iptables SERVER (VPS cloud)
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:f2b-ssh - [0:0]
:f2b-sshd - [0:0]
-A INPUT -p tcp -m multiport --dports 22 -j f2b-ssh
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A INPUT -i lo -j ACCEPT
-A f2b-ssh -j RETURN
-A f2b-sshd -j RETURN
-A FORWARD -i tun0 -o eth0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -p tcp --dport 22 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp --dport 7722 -j DNAT --to-destination 125.80.0.50:22
-A POSTROUTING -o eth0 -s 125.80.0.0/24 -j MASQUERADE
COMMIT
iptables CLIENT (Raspberry)
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A FORWARD -i tun0 -o eth0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
Posso consigliarti di fare funzionare tutto prima con un semplice NAT e poi provare il PAT? Oltretutto stai provando a fare il PAT di una porta su cui è già in ascolto il server.
lucadigiulio
29-04-2019, 22:50
RISOLTO !!!
In pratica i pacchetti arrivavano a destinazione, ma si "perdevano" cercando di tornare indietro.
Questa la configurazione funzionante per collegarsi in SSH al ClientVPN ed in RDP ad una macchina interna alla rete del ClientVPN.
125.80.0.1 (IP TUN0 VPN_SERVER)
125.80.0.50 (IP TUN0 VPN_CLIENT)
192.168.5.50 (IP ETH0 VPN_CLIENT)
SERVER:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:f2b-ssh - [0:0]
:f2b-sshd - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m multiport --dports 22 -j f2b-ssh
-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd
-A f2b-ssh -j RETURN
-A f2b-sshd -j RETURN
-A FORWARD -i eth0 -o tun0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i tun0 -o eth0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -s 192.168.0.0/16 -j DROP
-A FORWARD -i eth0 -s 192.168.0.0/16 -j DROP
-A INPUT -i eth0 -s 172.16.0.0/12 -j DROP
-A FORWARD -i eth0 -s 172.16.0.0/12 -j DROP
-A INPUT -i eth0 -s 10.0.0.0/8 -j DROP
-A FORWARD -i eth0 -s 10.0.0.0/8 -j DROP
-A INPUT -i eth0 -p icmp -j DROP
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp --dport 7722 -j DNAT --to-destination 125.80.0.50
-A PREROUTING -i eth0 -p tcp --dport 53389 -j DNAT --to-destination 125.80.0.50
-A POSTROUTING -o eth0 -s 125.80.0.0/24 -j MASQUERADE
-A POSTROUTING -d 125.80.0.50 -p tcp --dport 7722 -j SNAT --to-source 125.80.0.1
-A POSTROUTING -d 125.80.0.50 -p tcp --dport 53389 -j SNAT --to-source 125.80.0.1
COMMIT
CLIENT:
filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A FORWARD -i tun0 -o eth0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i tun0 -p tcp --dport 53389 -j DNAT --to-destination 192.168.5.10:3389
-A PREROUTING -i tun0 -p tcp --dport 7722 -j REDIRECT --to-port 22
-A POSTROUTING -d 192.168.5.10 -p tcp --dport 3389 -j SNAT --to-source 192.168.5.50:53389
COMMIT
OUTATIME
21-05-2019, 14:43
Aggiornata la guida di pagina 1 con la configurazione completa di un server VPS.
Ringrazio pilatoroma per avermi fatto conoscere il mondo dei VPS (che conoscevo, ma ignoravo avessero prezzi così competitivi).
Aggiornata la guida di pagina 1 con la configurazione completa di un server VPS.
Ringrazio pilatoroma per avermi fatto conoscere il mondo dei VPS (che conoscevo, ma ignoravo avessero prezzi così competitivi).
E se i servizi da raggiungere dall'esterno, sono già tutti sul "server" casalingo?
A posto del rasberry Pi vorrei usare un minipc fanless (Ubunto 19.04 Intel N4100 8 GB DDR4 250 SSD M2 sata + HDD 2.5) che con poco più di consumo (dovrei essere attorno ai 15 watt se, oltre a mouse+tastiera sulle usb2 non collego nulla sulle 3 porte usb3 libere) mi fa già da server Plex, nas, server backup e server php/wordpress di sviluppo. Mi potrebbe tornare comodo raggiungerlo dall'esterno.
Immagino che la configurazione del firewall in locale si semplifichi di molto, visto che le porte da inoltrare non sono su altri pc/dispositivi. Hai qualche guida da consigliarmi per imparare ad usare iptables?
Ho visto che alcuni vps (sopratutto quelli in Germania/Francia) per 4-5€ al mese offrono oltre ad un ipv4 dedicatp un ipv6/64 dedicato. Teoricamente sarebbe possibile usare il VPS come server DHCPv6 per la rete locale tramite la vpn?
Immagino che non ci sono problemi (limiti della VM e di porte libere permettendo) ad installare altri servizi sul VPS?
OUTATIME
13-06-2019, 06:33
E se i servizi da raggiungere dall'esterno, sono già tutti sul "server" casalingo?
A posto del rasberry Pi vorrei usare un minipc fanless (Ubunto 19.04 Intel N4100 8 GB DDR4 250 SSD M2 sata + HDD 2.5) che con poco più di consumo (dovrei essere attorno ai 15 watt se, oltre a mouse+tastiera sulle usb2 non collego nulla sulle 3 porte usb3 libere) mi fa già da server Plex, nas, server backup e server php/wordpress di sviluppo. Mi potrebbe tornare comodo raggiungerlo dall'esterno.
Immagino che la configurazione del firewall in locale si semplifichi di molto, visto che le porte da inoltrare non sono su altri pc/dispositivi. Hai qualche guida da consigliarmi per imparare ad usare iptables?
In questo caso non serve fare la parte di configurazione iptables lato client ma solamente la parte OpenVPN perchè la VPN arriva già dove sono presenti tutti i servizi (l'interfaccia tun0 di Ubuntu). La parte iptables serve solamente per fare il forward verso altri IP della LAN: è l'equivalente della sezione "port forward" o "virtual server" dei router. Per la guida ho seguito un po' tutto quello che trovavo su internet, tipo questa:
http://www.informit.com/articles/article.aspx?p=421057&seqNum=4 e facendo delle prove.
Ho visto che alcuni vps (sopratutto quelli in Germania/Francia) per 4-5€ al mese offrono oltre ad un ipv4 dedicatp un ipv6/64 dedicato. Teoricamente sarebbe possibile usare il VPS come server DHCPv6 per la rete locale tramite la vpn?
Te lo sconsiglio: se ti si scollega per un qualsiasi motivo la VPN, anche in LAN avresti problemi. Basta configurare Ubuntu come dhcpv6.
Immagino che non ci sono problemi (limiti della VM e di porte libere permettendo) ad installare altri servizi sul VPS?
Gli unici limiti sono, almeno per Aruba quello che uso io, la dimensione del disco della VM, il traffico mensile che è 1 o 2 TB (vado a memoria) e ovviamente la legalità di ciò che si depone sulla VM. Per il resto la VM ha una scheda di rete eth0 con assegnato direttamente l'IP pubblico, quindi hai il totale controllo di tutte le porte.
Codice:
cp ~/EasyRSA-3.0.4/pki/issued/server.crt /etc/openvpn/
cp ~/EasyRSA-3.0.4/pki/issued/server.key /etc/openvpn/
cp ~/EasyRSA-3.0.4/pki/ca.crt /etc/openvpn/
cp ~/EasyRSA-3.0.4/ta.key /etc/openvpn/
cp ~/EasyRSA-3.0.4/pki/dh.pem /etc/openvpn/
Sto provando le tue istruzioni su un VPS nuovo con Ubuntu 18.04.2 e non mi trovo alcuni file:
~/EasyRSA-3.0.4/pki/issued/server.crt /etc/openvpn/
~/EasyRSA-3.0.4/pki/issued/server.key /etc/openvpn/
~/EasyRSA-3.0.4/ta.key /etc/openvpn/
C'è qualcosa da cambiare negli script EasyRSA per Ubuntu?
OUTATIME
13-06-2019, 12:59
Con quella sintassi il comando è da lanciare posizionato nella cartella di easyrsa...
ciao, scusate sapreste consigliarmi una vps economica con distro linux per installare openvpn per permettermi di controllare da esterno homeassistant?
ciao, scusate sapreste consigliarmi una vps economica con distro linux per installare openvpn per permettermi di controllare da esterno homeassistant?
Prova a guardare Aruba.
Poi se la prendi posta il risultato perché interesserebbe molto anche a me, per HA + Owntracks :)
OUTATIME
16-07-2019, 07:16
Prova a guardare Aruba.
Poi se la prendi posta il risultato perché interesserebbe molto anche a me, per HA + Owntracks :)
Io ho già il VPS su Aruba... Che info ti servono?
Io ho già il VPS su Aruba... Che info ti servono?
Nessuna in particolare, solo sapere se potesse funzionasse bene con l'obiettivo di accedere da fuori ad HA (questo in effetti lo vedo fattibile "di base") ma soprattutto con un broker Owntracks (Tcp/Ip), che sarebbe il vero motivo per cui potrei decidere di prendere una Vps.
OUTATIME
17-07-2019, 06:51
Nessuna in particolare, solo sapere se potesse funzionasse bene con l'obiettivo di accedere da fuori ad HA (questo in effetti lo vedo fattibile "di base") ma soprattutto con un broker Owntracks (Tcp/Ip), che sarebbe il vero motivo per cui potrei decidere di prendere una Vps.
Non vedo particolari problemi, le porte che usa Owntracks sono fisse e definite?
Ciao a tutti, non sono un esperto in questo tipo di cose ma vorrei comunque provarci.
Non so se ho capito bene ma il raspberry è necessario se il router supporta già la connessione al server VPS come client?
In questo caso quale modem mi consigliereste per semplificarmi un po la vita?
Nessuna in particolare, solo sapere se potesse funzionasse bene con l'obiettivo di accedere da fuori ad HA (questo in effetti lo vedo fattibile "di base") ma soprattutto con un broker Owntracks (Tcp/Ip), che sarebbe il vero motivo per cui potrei decidere di prendere una Vps.
Valuta te se hai bisogno di un VPS con una buona connessione anche se con volume dati limitato (il datacenter di Bergamo di Aruba ha una latenza bassissima sull'italia) o un VPS con connessioni meno prestanti, ma molte più risorse hardware ed ipv6 (e qui ci sono VPS europei che costano uguale o meno e danno molto ma molto di più di Aruba).
Io ne sto provando uno al mese nel loro pacchetto base per testarli. Per ora ho provato Aruba e Contabo ed hanno entrambi pro e contro.
OUTATIME
17-07-2019, 20:14
Ciao a tutti, non sono un esperto in questo tipo di cose ma vorrei comunque provarci.
Non so se ho capito bene ma il raspberry è necessario se il router supporta già la connessione al server VPS come client?
In questo caso quale modem mi consigliereste per semplificarmi un po la vita?
Se il router supporta già open vpn non serve il Raspberry.
Non vedo particolari problemi, le porte che usa Owntracks sono fisse e definite?
8883/tcp, porta fissa:
link (https://owntracks.org/booklet/guide/broker/)
Valuta te se hai bisogno di un VPS con una buona connessione anche se con volume dati limitato (il datacenter di Bergamo di Aruba ha una latenza bassissima sull'italia) o un VPS con connessioni meno prestanti, ma molte più risorse hardware ed ipv6 (e qui ci sono VPS europei che costano uguale o meno e danno molto ma molto di più di Aruba).
Io ne sto provando uno al mese nel loro pacchetto base per testarli. Per ora ho provato Aruba e Contabo ed hanno entrambi pro e contro.
Io non scarico e non mi interessa avere una vpn per motivi di privacy, l'unico motivo per il quale vorrò testare una vpn è per poter accedere alla mia rete dall'esterno visto che non ho adsl (sono in pieno digital divide) e quindi uso una sim Lte da 50 GB che mi impone di stare attento al volume di traffico.
Con owntracks trasmetterei pochi kB al giorno ed ho visto che Aruba ha nella vps base 2 TB di traffico, quindi.....
Per curiosità che pro e contro hai trovato con Aruba e Contabo ?
Altra curiosità: come mai hai citato ipv6? cosa ci puoi fare oggi in più rispetto al v4 ?
OUTATIME
17-07-2019, 21:24
8883/tcp, porta fissa:
link (https://owntracks.org/booklet/guide/broker/)
Ok... Ma a questo punto non ti converrebbe mettere il broker direttamente sul vps?
Comunque è interessante Owntracks... Penso che lo proverò..
Ok... Ma a questo punto non ti converrebbe mettere il broker direttamente sul vps?
Comunque è interessante Owntracks... Penso che lo proverò..
Avrei comunque bisogno di mettere in piedi una vpn per poi trasmettere i dati ad home assistant, no ? a quel punto tanto vale che metta il broker nello stesso server di HA (dove già è oggi) e usi la vps come entry point per l'intera rete dall'esterno.
Oggi non riesco ad accedere dall'esterno ad HA, né alle videocamere (ho provato un servizio simile ad ngrok ma con risultati deludentissimi).
OUTATIME
18-07-2019, 07:04
Avrei comunque bisogno di mettere in piedi una vpn per poi trasmettere i dati ad home assistant, no ? a quel punto tanto vale che metta il broker nello stesso server di HA (dove già è oggi) e usi la vps come entry point per l'intera rete dall'esterno.
Oggi non riesco ad accedere dall'esterno ad HA, né alle videocamere (ho provato un servizio simile ad ngrok ma con risultati deludentissimi).
Ah.. Ok... Se ti serve comunque la vpn per accedere dall'esterno, in effetti fai prima così.
Io non scarico e non mi interessa avere una vpn per motivi di privacy, l'unico motivo per il quale vorrò testare una vpn è per poter accedere alla mia rete dall'esterno visto che non ho adsl (sono in pieno digital divide) e quindi uso una sim Lte da 50 GB che mi impone di stare attento al volume di traffico.
Con owntracks trasmetterei pochi kB al giorno ed ho visto che Aruba ha nella vps base 2 TB di traffico, quindi.....
Per curiosità che pro e contro hai trovato con Aruba e Contabo ?
Altra curiosità: come mai hai citato ipv6? cosa ci puoi fare oggi in più rispetto al v4 ?
Aruba (ho provato la VPS Small):
PRO: connessione che aggiunge pochissima latenza (dal datacenter di Bergamo in italia aggiungevo solo 1-2 ms tramite la vpn del vps)
CONTRO: - Ipv6 pubblicizzato (e fortemente limitato a 16 indirizzi se non gli scrivi perchè vuoi sfruttare una cosa che stai gia pagando!!! :muro: ) ma non attivo anche se nella creazione del VPS spunti l'opzione
- CPU lenta... ben al di sotto dei 2 Ghz (la mia vps era sui 1,6 ghz mi pare)
- 1 Sola CPU
- Poca ram, solo 1 GB
- poco spazio sul disco solo 20 GB
- banda dati limitata, solo 2 TB al mese
Contabo (ho provato pacchetto VPS S SSD, ce ne sono anche di più economici)
PRO:
- 4 CPU veloci sopra i 2 Ghz
- 8 GB di ram
- 200 GB di spazio su SSD
- Banda dati illimitata
- Ipv6 già attivo e configurato sul server con la possibilità (da configurarsi da soli) di usare subito un intera rete da 65535 indirizzi da distribuire fra tutte le tue periferiche in VPN (virtual machine, router, tv, iot, server, pc, smarthpone, smart tv) per avere un ip pubblico diretto
CONTRO:
- IPv4 pubblico, statico ma Tedesco
- Connettendomi con Wind3 tramite la VPN in Germania aggiungo circa 30 ms di latenza (la velocità di picco è sempre buona comunque).
Fra le prossime vps proverò Hetzner.
Considera che sul VPS puoi installare servizi tipo Netxcloud per avere i tuoi dati su un tuo cloud privato e controllato, invece di quelli "pubblici" tipo Google Drive e Dropbox
Aruba (ho provato la VPS Small):
Considera che sul VPS puoi installare servizi tipo Netxcloud per avere i tuoi dati su un tuo cloud privato e controllato, invece di quelli "pubblici" tipo Google Drive e Dropbox
Grazie per queste info, molto preziose! :)
Invece sul tema ipv6? come mai ti interessa così tanto oggi? per studio o perché lo vorresti usare ?
Chiedo perché ad oggi non lo vedo utilizzato .....
Grazie per queste info, molto preziose! :)
Invece sul tema ipv6? come mai ti interessa così tanto oggi? per studio o perché lo vorresti usare ?
Chiedo perché ad oggi non lo vedo utilizzato .....
IPv6? Ho rifatto la rete di casa da poco con hardware Mikrotik e per imparare ad usarlo ti tocca aggiornare le conoscenze di rete :D
Sono un ex-informatico, il pallino di testare software mi è rimasto :D Comunque non ho visto grossi progressi nella facilità d'uso da quando testavo l'ipv6 all'università oltre 15 anni fa. IPv6 serve come l'aria da anni, da quando gli ipv4 sono esauriti, ma lo vedo ancora molto "acerbo".
IPv6? Ho rifatto la rete di casa da poco con hardware Mikrotik e per imparare ad usarlo ti tocca aggiornare le conoscenze di rete :D
Sono un ex-informatico, il pallino di testare software mi è rimasto :D Comunque non ho visto grossi progressi nella facilità d'uso da quando testavo l'ipv6 all'università oltre 15 anni fa. IPv6 serve come l'aria da anni, da quando gli ipv4 sono esauriti, ma lo vedo ancora molto "acerbo".
Infatti è per questo che chiedevo, non lo usa quasi nessuno perciò mi aveva incuriosito l'accento che avevi posto tu.
Anch'io sono un informatico e mi appassiona studiare cose nuove, ma lo faccio solo se ha senso, se poi c'è un utilizzo pratico.
Lavoro in un'azienda che ha più di 10k dipendenti ed essendo nell'IT conosco molto bene le persone che seguono le reti. Ogni tanto chiedo se stiano pensando di passare o introdurre ipv6: ad oggi mi hanno sempre risposto che nessuno ha nemmeno mai iniziato a pensarci.
Se non lo fanno loro - mi domando - che vantaggio potrei averne io ?
Grazie ancora per la risposta.....:)
scusate, per far funzionare homeassistant sto cercando di configurare iptables.
non so se riesco a spiegarmi bene e qualcuno può aiutarmi.
il server openvpn installato su raspberry ( interfaccia tun0 10.8.0.1) ha accesso a internet e viene chiamato con un indirizzo www.ddns.org sulla porta 8000 attraverso l' interfaccia eth0
Ora io vorrei che questa chiamata prendesse i dati da un client con indirizzo 10.8.0.5 sulla stessa porta 8000 ma interfaccia tun0 .
il server vpn se chiamo 10.8.0.5:8000 già mi permette l'accesso .
La regola credo dovrebbe essere un forward tra eth0 porta 8000 a tun0 porta 8000 indirizzo 10.8.0.5 ma non ho capito bene come impostarla.
spero qualcuno possa essermi di aiuto...
OUTATIME
31-07-2019, 19:26
scusate, per far funzionare homeassistant sto cercando di configurare iptables.
non so se riesco a spiegarmi bene e qualcuno può aiutarmi.
il server openvpn installato su raspberry ( interfaccia tun0 10.8.0.1) ha accesso a internet e viene chiamato con un indirizzo www.ddns.org sulla porta 8000 attraverso l' interfaccia eth0
Ora io vorrei che questa chiamata prendesse i dati da un client con indirizzo 10.8.0.5 sulla stessa porta 8000 ma interfaccia tun0 .
il server vpn se chiamo 10.8.0.5:8000 già mi permette l'accesso .
La regola credo dovrebbe essere un forward tra eth0 porta 8000 a tun0 porta 8000 indirizzo 10.8.0.5 ma non ho capito bene come impostarla.
spero qualcuno possa essermi di aiuto...
Non ho capito perché anche il client è in VPN.. Il compito del raspberry è proprio quello di fare il nat dalla tun 0 alla lan.
Ciao a tutti,
premetto che sono alle prime armi con linux (quindi portate pazienza se dico cavolate), volevo provare ad installare openVPN server su un VPS e poi collegarmici tramite un router LTE che ha una VPNclient (teltonika RUT950/5).
Prima di fare tutto ciò (comprare VPS e router) volevo installare openVPN server su una virtual machine DEBIAN9_64bit e provare a instaurare una VPN con un client.
Ho seguito la guida di pagina 1 ma ho qualche problema, in particolare:
1) Al punto "Copio i file generati nella cartella di OpenVPN:", i file server.crt e server.key non sono sotto la cartella issued ma sono sotto private, è lo stesso?
2) Nella sezione "Routing sezione server" dice di modificare il file /etc/iptables/rules.v4 ma la direcory iptables non è presente, cosa devo fare?
3) Non ho capito il capitolo 2, si riferisce all'istallazione di openvpn sul raspberry?
Grazie
OUTATIME
30-08-2019, 11:24
Ciao.
Si, l'installazione di openvpn può variare leggermente a seconda della distribuzione Linux
Il file rules.v4 lo hai solamente se installi netfilter persistent.
Si il capitolo 2 serve per usare un Raspberry come client.
purtroppo ho un altro problema dentro la cartella private ci sono ca.key e server.key, ma non c'è traccia di server.crt :cry:
leggendo un po in giro per generare il file server.crt bisogna usare il comando ./easyrsa sign-req server server, è corretto?
OUTATIME
30-08-2019, 16:58
leggendo un po in giro per generare il file server.crt bisogna usare il comando ./easyrsa sign-req server server, è corretto?
Si...
Non c'é nella guida?
l'ho riletta ancora ma non mi sembra che ci sia
lucadigiulio
16-11-2019, 20:43
Ciao, riprendo questa guida dalla quale ho già preso diverse nozioni mesi fa.
Ora mi trovo in questa condizione.
Ho un router che non supporta Client OpenVPN.
Ho un Raspberry da poter configurare a mio piacimento.
Ho un servizio VPN che mi fornisce tutta la configurazione completa per ovpn, che mi garantisce privacy, streaming, ecc.. con IP italiano.
Vorrei che il Raspberry mi gestisse tutta l'uscita dati su web attraverso la vpn, ma vorrei che ogni apparecchio connesso alla rete interna locale utilizzasse quel tunnel in automatico.
Inizialmente avevo installato e configurato privoxy su Raspberry, ma di fatto andavo ad utilizzarlo solo tramite browser su pc, mentre gli smartphone, le smart-tv ed i decoder continuavano ad uscirmi "in chiaro" attraverso il router.
Vorrei invece che in automatico, una volta che il server dhcp/dns su router (dnsmasq) assegna gli indirizzi, tutto il traffico dati mi passi dal tunnel vpn gestito dal raspberry.
Grazie in anticipo.
lelebello1977
02-02-2020, 15:59
Salve a tutti...
Grazie per questa magnifica guida, visto che ci stavo dietro da almeno 6 mesi senza mai aver trovato una corretta documentazione.
Non so come non abbia trovato prima questo link.
Ho una sim wind con modem 4g+ che va a 200/45, contro i 7/1 della mia adsl. Ho montato un'antenna esterna per questi risultati.
Il modem huawei è forzato a non attaccarsi alla banda 20, altrimenti le prestazioni sarebbero di molto inferiori.
Non sono mai riuscito a far vedere al mio server vpn su vps di aruba connesso con un client raspberry interno tutte le mie telecamere dall'esterno.
Proverò di sicuro la guida, ma intanto per aggirare il problema sto usando autossh che parte dal raspberry e si connette direttamente al vps per ogni porta che mi serve.
In questa maniera non uso molto traffico/risorse sul server aruba, che fa solo da ponte per le specifiche porte.
Bisogna poi cambiare delle voci nei files di ssh/sshd lato server e client per mantenere attive le connessioni.
Se volete vi aggiorno...
OUTATIME
02-02-2020, 17:09
Se vuoi prova la guida, al limite vedo di scriverla un po' meglio nel caso ci siano punti poco chiari.
Over Boost
20-04-2020, 13:16
Allora, come 3d mi eravate sfuggiti. :D
Premetto che mi sono abbastanza spaccato la testa per questa situazione e francamente di spaccarmela ancora con Linux....non prendetevela a male :D ...non ne ho voglia, ma non è questo il problema.
Nel mio girovagare ho scoperto un software veramente potente e a quanto pare forse il migliore che esista :sofico: ma non a detta mia :read:
Parliamo di SoftEther disponibile per Windows/Linux/Mac OS X che a quanto pare renderebbe raggiungibile dietro NAT/Firewall qualsiasi macchina grazie al "loro" sistema "VPN Azure Cloud VPN Service" totalmente gratuito......quindi senza spaccarsi troppo la testa come dico io :D e quindi senza noleggiare server VPS o VPN.
Veniamo al dunque, fondamentalmente quello che cerco io invece è un server VPS con questi requisiti:
1)Windows
2)Costo basso, ma non un discount con prestazioni che lascino a desiderare
3)Ip pubblico Italiano
3)Server in Milano
4)Traffico illimitato o con almeno qualche tera.
Vi ringrazio per l'aiuto.
OUTATIME
21-04-2020, 16:49
Nel mio girovagare ho scoperto un software veramente potente e a quanto pare forse il migliore che esista :sofico: ma non a detta mia :read:
Parliamo di SoftEther disponibile per Windows/Linux/Mac OS X che a quanto pare renderebbe raggiungibile dietro NAT/Firewall qualsiasi macchina grazie al "loro" sistema "VPN Azure Cloud VPN Service" totalmente gratuito......quindi senza spaccarsi troppo la testa come dico io :D e quindi senza noleggiare server VPS o VPN.
Veramente da quello che ho capito quel software fa l'esatto contrario di quello che sia fa con la mia guida, ovvero dall'esterno instauri una connessione VPN verso la tua rete privata.
La mia guida serve per l'esatto contrario, cioè dall'interno instauri una connessione verso un server esterno dotato di IP pubblico. Questo serve per bypassare le limitazioni imposte dal non avere un IP pubblico su connessione 4G, poichè il tuo IP pubblico è sempre raggiungibile e non condiviso, e soprattutto è raggiungibile da qualsiasi servizio, non solamente attivando una VPN.
Ciao a tutti, mi inserisco qui, sperando di non appesantire troppo.
Ho PARZIALMENTE adottato la guida qui presente, e ho installato su un server VPS WireGuard.
Lato server la VPN funziona e accetta connessioni in ingresso sia da un cellulare che da una macchina Ubuntu installata in locale.
Il ROUTING SEZIONE SERVER serve davvero? Nel senso che impostando le chiavi private tra server e client, ho ritenuto fosse superfluo compilare alcunché...se da un client (un cellulare, ad esempio) avvio la VPN, navigo con l'IP della VPS.
Il ROUTING SEZIONE CLIENT (quindi la macchina Ubuntu) non funziona, ed è attualmente così impostato (tra l'altro se provo ad eliminare quanto già prsente in rules.v4 non parte il servizio....quindi ho aggiunto le righe che mi servono???):
# Generated by iptables-save v1.8.4 on Mon Jul 27 09:27:54 2020
*raw
:PREROUTING ACCEPT [5934:511630]
:OUTPUT ACCEPT [895:107018]
-A PREROUTING -d 10.253.0.2/32 ! -i wg0 -m addrtype ! --src-type LOCAL -m comment --comment "wg-quick(8) rule for wg0" -j DROP
COMMIT
# Completed on Mon Jul 27 09:27:54 2020
# Generated by iptables-save v1.8.4 on Mon Jul 27 09:27:54 2020
*nat
:PREROUTING ACCEPT [1056:228547]
:INPUT ACCEPT [285:28741]
:OUTPUT ACCEPT [13:1070]
:POSTROUTING ACCEPT [13:1070]
-A PREROUTING -i wg0 -p tcp -m tcp --dport 61882 -j DNAT --to-destination 192.168.1.30
-A POSTROUTING -d 192.168.1.30/32 -o enp1s0 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.1.105
COMMIT
# Completed on Mon Jul 27 09:27:54 2020
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -i wg0 -o enp1s0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i enp1s0 -o wg0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wg0 -o enp1s0 -p tcp -m tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j ACCEPT
COMMIT
Quello che vorrei ottenere è:
sul router di casa ho APERTO la porta 61882 della macchina 192.168.1.30 che è collegata alla VPN
la macchina 192.168.1.30 dovrebbe rimbalzare la richiesta alla macchina 192.168.1.105 porta 80 (non aperta sul router)
collegandomi all'indirizzo pubblico della VPN 194.36.xx.xxx:80 vorrei poter vedere la pagina caricata su 192.168.1.105:80 MA in realtà vedo solo una pagina BIANCA (nessun errore visualizzato sul browser).
Dove sbaglio?
Questo è il risultato del comando sulla macchina client connessa in VPN iptables -L -n -t nat
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:61882 to:192.168.1.30
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT tcp -- 0.0.0.0/0 192.168.1.30 tcp dpt:80 to:192.168.1.105
La porta della VPN installata sul client è la wg0
La porta LAN che si collega alla rete del client collegato alla VPN è la enp1s0
lelebello1977
25-02-2021, 18:28
https://www.hwupgrade.it/forum/showthread.php?p=47297361#post47297361
Un metodo alternativo.
OUTATIME
26-02-2021, 05:28
Mmmm vabbè, la mia guida era nata con altro scopo, cioè l'accesso dalll'esterno, non l'uscita dall'interno. Ma a parte questo, perchè fai una guida all'interno di un'altra guida a pagina 5? Secondo te chi la troverà mai?
lelebello1977
26-02-2021, 05:38
Veramente anche cosi serve dall'esterno...
probabilmente non la troverà nessuno, ma era una forma di rispetto nei confronti della tua guida che mi è sembrata molto utile ed affidabile e pertanto volevo inserire la mia nello stesso contesto. tutto questo per cercare di centralizzare un problema così diffuso, ma tanto trascurato. Cercando, quindi di porre nella stessa discussioni più elementi e più spunti a nostro vantaggio. Se preferisci la sposto...
Forse hai ragione, dopo la sposto...
OUTATIME
26-02-2021, 06:54
Veramente anche cosi serve dall'esterno...
probabilmente non la troverà nessuno, ma era una forma di rispetto nei confronti della tua guida che mi è sembrata molto utile ed affidabile e pertanto volevo inserire la mia nello stesso contesto. tutto questo per cercare di centralizzare un problema così diffuso, ma tanto trascurato. Cercando, quindi di porre nella stessa discussioni più elementi e più spunti a nostro vantaggio. Se preferisci la sposto...
Forse hai ragione, dopo la sposto...
Guardaci tu, era semplicemente per dare il giusto peso al tuo lavoro e separare i due argomenti, tutto lì... ;)
Comunque, visto che ad ormai 2 anni dalla prima release della guida, mi sono reso conto il concetto di ingresso è intimamente legato al concetto di uscita (nella necessità degli utenti), ho intenzione nei prossimi giorni di editare la guida per farla omnicomprensiva, se riesco divisa per capitoli da scegliere e utilizzare al proprio bisogno.
lelebello1977
26-02-2021, 07:43
Guardaci tu, era semplicemente per dare il giusto peso al tuo lavoro e separare i due argomenti, tutto lì... ;)
Comunque, visto che ad ormai 2 anni dalla prima release della guida, mi sono reso conto il concetto di ingresso è intimamente legato al concetto di uscita (nella necessità degli utenti), ho intenzione nei prossimi giorni di editare la guida per farla omnicomprensiva, se riesco divisa per capitoli da scegliere e utilizzare al proprio bisogno.
Si farò, come hai suggerito.
Posso aggiungere che con il reverse tunneling è possibile installare anche il server openvpn nel proprio Raspberry inoltrando la porta tcp al posto dell'udp.
......ho intenzione nei prossimi giorni di editare la guida per farla omnicomprensiva, se riesco divisa per capitoli da scegliere e utilizzare al proprio bisogno.
Scusa se mi permetto: hai valutato la possibilità di farne una simile per wireguard? leggo ormai da tempo che è un sistema molto più performante di openvpn e che sta avendo una notevole diffusione. Sarebbe molto interessante una guida con wg :)
OUTATIME
26-02-2021, 20:01
Scusa se mi permetto: hai valutato la possibilità di farne una simile per wireguard? leggo ormai da tempo che è un sistema molto più performante di openvpn e che sta avendo una notevole diffusione. Sarebbe molto interessante una guida con wg :)
Allora... Faccio 2 premesse:
- La guida, e tutti gli sviluppi che ne seguono sono stati concepiti per fornire una guida che offra trasversalità tra sistemi: linux, windows, android (non me ne vogliano gli utenti apple, ma è un'area che non seguo).
- Ammetto candidamente la mia ignoranza di non conoscere Wireguard.
Fatte queste premesse, sono ben felice di accogliere suggerimenti, allargare le mie conoscenze e, non guasta, aumentare le performance. Mi documenterò sicuramente su Wireguard e se sarò in grado e vengono soddisfatti i requisiti del punto 1, come sicuramente immagino sia, farò una sezione dedicata nella guida.
Grazie per la segnalazione :)
Allora... Faccio 2 premesse:
.......
Grazie per la segnalazione :)
Allora faccio anch'io una premessa :)
Da alcuni anni sto usando un collegamento internet 4G perché sono in pieno digital divide e da me la vdsl è solo un'opinione.....
Il 4G va benino (non sono uno che scarica) ma ha per me l'immenso limite di essere nattato e quindi impedisce di esporre su internet i servizi che vorrei (home assistant, ipcam, e altre cose simili).
Da almeno 4 anni volevo mettere in piedi qualcosa con openvpn ma per mille motivi non l'ho mai fatto. Nel frattempo ho visto che wireguard prendeva sempre più piede per i molti vantaggi che ha (es l'essere integrato nel kernel, quindi sicurezza maggiore e velocità superiore a openvpn) ma attendevo per usarlo che venisse implementato nativamente in pfSense (che uso).
Ho anche letto cose che non mi sono piaciuto sul motivo che ha spinto i dev di pfsense a non implementarlo subito (anche se nel frattempo erano usciti plugin perfettamente funzionanti da quel che leggevo), e sono cose che prima o poi mi porteranno a migrare verso opnSense...... ma per ora ho troppi casini in ballo e non voglio metterci anche questo
Ad un certo punto ho anche preso una piccola vps (mi serviva per fare altro) e ci ho giocato 2 o 3 giorni per cercare di mettere in piedi wg su raspi4 ma.... non ci sono riuscito: troppi concetti nuovi per me e troppo poco tempo per sporcarmi le mani.
Poi ho dovuto piallare la vps per destinarla al suo vero lavoro e non ho più avuto opportunità di poter proseguire con i miei tentativi con wg.
E la cosa è morta lì..... per ora :)
Da quel che leggo - comunque - wg è davvero un ottimo sistema, per questo te lo "suggerivo" (non solo per invitarti a fare una cosa che non sono riuscito a fare io).
OUTATIME
27-02-2021, 07:19
Allora faccio anch'io una premessa :) [...]
Ho dato una prima occhiata a wireguard, la configurazione tra peer è abbstanza semplice e credo che a breve riuscirò ad implementare una relativa guida.
Per quanto riguarda la sua fruibilità quotidiana, cioè installo un client, lo configuro e mi collego in VPN, la devo ancora verificare, anche perchè tra chiavi pubbliche e private, aggiunta di peer e altro è abbastanza articolato, ma questo tra l'altro esula anche un po' dallo scopo di questa guida. Era solo per darti un primo feedback :) .
EDIT: ho aggiunto una prima guida iniziale per wireguard, ancora da verificare su connessioni 4G. Probabilmente inizio a guardarci già ora.
EDIT2: verificata su connessioni 4G
.....Era solo per darti un primo feedback :) .
.....
Grazie! io ora non potrà replicare il tutto visto che non ho più la vps disponibile ma seguo con interesse perché penso che tra alcuni mesi ne prenderò una seconda proprio da dedicare a questo.
chinemys
12-04-2021, 13:34
ciao
Ringrazio per questa guida molto interessante ,stavo cercando da tempo una soluzione per ip pubblico sotto rete 4G .
avevo gia provato altre soluzioni come ngrok ed altri ma non mi piacevano molto e le vpn troppo care , comunque per avere di più bisogna ogni caso pagare ,quindi tanto vale questa soluzione della vps a basso costo .
Non sono un grande esperto ma ho seguito in parte questa guida :
Attivato vps linux debian con ip pubblico
Installato Opevpn ma con lo script veloce
Per quanto riguardo le regole iptables ho qualche difficolta
ho installato netfilter persistent e copiato la configurazione di @OUTATIME
adattandola .
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -i tun0 -o eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp -m tcp --dport 7772 -j DNAT --to-destination 10.8.0.2
-A POSTROUTING -s 10.8.0.2/32 -o eth0 -j MASQUERADE
COMMIT
Fin qui tutto bene anche se mi sarebbe piaciuto capire quello che sto facendo ...
riesco ora a collegarmi dall'esterno al 10.8.0.2 su porta 7772.
Ora vorrei aggiungere altre porte su 10.8.0.2 ,come posso fare ?
Se volessi aggiungere un'altro ip ,tipo 10.8.0.5 ,dovrei aggiungere un'altra parte *nat al file /etc/iptables/rules.v4 ?
OUTATIME
12-04-2021, 14:11
Ciao.
Se volessi aggiungere un'altro ip ,tipo 10.8.0.5 ,dovrei aggiungere un'altra parte *nat al file /etc/iptables/rules.v4 ?
Questo per le regole di NAT, ma prima devi creare la configurazione del nuovo client VPN.
Allora. Non so che setup hai fatto tu, ma immagino che sia come il mio. Con il mio setup crei un LAN di VPN con subnet 10.8.0.X, tutti i client che si collegano in VPN si parleranno tra di loro, tramite l'IP di VPN.
Quindi se ho ben capito vuoi aggiungere un nuovo client VPN giusto? segui la stessa procedura cambiando i dati del client:
./easyrsa gen-req client2 nopass
./easyrsa sign-req client client2
Se ho capito quello che vuoi fare.
Poi ricordati di creare un file chiamato client2 nella cartella /etc/openvpn/ccd con all'interno la configurazione dell'IP:
ifconfig-push 10.8.0.5 255.255.255.0
Invece per aggiungere altre porte verso il 10.8.0.2 basta aggiungere altre righe:
-A PREROUTING -i eth0 -p tcp -m tcp --dport XXXX -j DNAT --to-destination 10.8.0.2
Fin qui tutto bene anche se mi sarebbe piaciuto capire quello che sto facendo ...
Ora non riesco... appena ho un attimo integro la guida.
chinemys
12-04-2021, 14:31
Ciao.
Questo per le regole di NAT, ma prima devi creare la configurazione del nuovo client VPN.
Allora. Non so che setup hai fatto tu, ma immagino che sia come il mio. Con il mio setup crei un LAN di VPN con subnet 10.8.0.X, tutti i client che si collegano in VPN si parleranno tra di loro, tramite l'IP di VPN.
Quindi se ho ben capito vuoi aggiungere un nuovo client VPN giusto? segui la stessa procedura cambiando i dati del client:
./easyrsa gen-req client2 nopass
./easyrsa sign-req client client2
Se ho capito quello che vuoi fare.
Poi ricordati di creare un file chiamato client2 nella cartella /etc/openvpn/ccd con all'interno la configurazione dell'IP
Invece per aggiungere altre porte verso il 10.8.0.2 basta aggiungere altre righe:
-A PREROUTING -i eth0 -p tcp -m tcp --dport XXXX -j DNAT --to-destination 10.8.0.2
grazie per la tua risposta
no non devo creare altri client ,li ho gia creati con lo script veloce
ho provato ad aggiungere altre righe come dici tu al file
/etc/iptables/rules.v4 ma poi non mi viene salvato e non capisco il perchè
faccio " nano /etc/iptables/rules.v4" agginungo la riga e esco da nano salvando .
poi eseguo "service netfilter-persistent save" e "service netfilter-persistent restart"
ma quando riapro il file con nano le modifiche non sono state apportate
OUTATIME
12-04-2021, 14:37
poi eseguo "service netfilter-persistent save" e "service netfilter-persistent restart"
ma quando riapro il file con nano le modifiche non sono state apportate
E' questo il problema. Non devi fare service netfilter-persistent save se editi il file rules.v4, ma direttamente un service netfilter-persistent restart.
Il comando service netfilter-persistent save salva le regole attuali, quindi in definitiva risalvi le regole che hai in vigore.
chinemys
12-04-2021, 14:49
E' questo il problema. Non devi fare service netfilter-persistent save se editi il file rules.v4, ma direttamente un service netfilter-persistent restart.
Il comando service netfilter-persistent save salva le regole attuali, quindi in definitiva risalvi le regole che hai in vigore.
Grazie ora funziona tutto ,sei stato molto chiaro :D
ho visto che c'e anche lo script veloce per wireguard https://github.com/Nyr/wireguard-install
devo provare se si guadagna qualcosa in velocità rispetto a openvpn
OUTATIME
12-04-2021, 14:53
ho visto che c'e anche lo script veloce per wireguard https://github.com/Nyr/wireguard-install
devo provare se si guadagna qualcosa in velocità
Guarda.... Io Wireguard l'ho provato giusto per spirito accademico e visto che l'avevo testato l'ho aggiunto nella guida. C'è da tenere in considerazione però che, dalle mie prove:
- Si perde il concetto di client-server, di conseguenza la configurazione non è centralizzata, ma ogni peer vede solo i peer ai quali è autorizzato, quindi ogni volta che aggiungi un peer devi mettere mano a tutti gli altri.
- Non ho verificato la parte di routing.
Quindi per il momento Wireguard non fa al caso mio, ma dovendo fare una rete tra due punti, direi che va benissimo.
chinemys
12-04-2021, 15:03
Guarda.... Io Wireguard l'ho provato giusto per spirito accademico e visto che l'avevo testato l'ho aggiunto nella guida. C'è da tenere in considerazione però che, dalle mie prove:
- Si perde il concetto di client-server, di conseguenza la configurazione non è centralizzata, ma ogni peer vede solo i peer ai quali è autorizzato, quindi ogni volta che aggiungi un peer devi mettere mano a tutti gli altri.
- Non ho verificato la parte di routing.
Quindi per il momento Wireguard non fa al caso mio, ma dovendo fare una rete tra due punti, direi che va benissimo.
Si ho letto qualcosa a riguardo sul loro sito
dovrebbe creare delle interfacce tipo wg0 ect..
per sentito dire dovrebbe essere più veloce ,appena ho tempo provo a installarlo e faccio qualche speed test per vedere se ne vale la pena
OUTATIME
13-04-2021, 10:57
Si ho letto qualcosa a riguardo sul loro sito
dovrebbe creare delle interfacce tipo wg0 ect..
per sentito dire dovrebbe essere più veloce ,appena ho tempo provo a installarlo e faccio qualche speed test per vedere se ne vale la pena
Sulla configurazione 1-1 è senza dubbio più veloce, il problema nasce quando vuoi implementare qualcosa di più articolato aggiungendo client vpn che si devono parlare tra di loro o accedere alla lan da più client.
Sulla velocità in senso assoluto, direi che non cambia nulla.
Sulla velocità in senso assoluto, direi che non cambia nulla.
Dipende su cosa lo fai girare Wireguard... Su alcuni router OpenVPN è diverse volte più lento. Su un buon hardware la differenza probabilmente non la senti (almeno non alle velocità del 4G).
https://rickfreyconsulting.com/wireguard-site-to-site-vpn-example/
Notes about performance
I have had many questions about how it stacks up to other tunnels. The short answer is it’s better and I can’t believe how much better. I am leaving exact performance values out because there are still a few things that I am unclear about as well. One of those things is whether or not the encryption can be handled by an encryption co-processor or even how multiple CPUs are coming into play. So here’s what I did. I deliberately used an under-powered router with only 1 CPU and no encryption co-processor. The performance should have been poor… I designed the experiment to get poor results. That’s not what happened. I got results that were so good (over and over again) that I won’t share with you what I saw… because I’m trying to understand how its even possible. I double checked my worked and tried it on other platforms and I consistently got really fantastic results. This really is the best tunnel I have ever evaluated.
https://rickfreyconsulting.com/wireguard/
chinemys
16-04-2021, 21:30
Si infatti non riscontrato differenze ,ho provato con client Android e dal pc velocità identica ,quindi per comodità continuo ad usare opevn .
Ovvio che dipende anche dal server della vps .
Io con rete 3 4g la vpn su aruba , perdo quasi 10MEGA ma non ho un segnale molto stabile quindi non è molto attendibile come test
senza vpn ,Quando ho un buon segnale raggiungo i 100Mega in casa con un oneplus7 pro ,in esterno sono arrivato anche a 200 in certi punti .
Sono gia contento cosi considerando che non ho antenne esterne e connetto i miei dispositivi con l'hotspot dello smartphone .
sarebbe interessante sentire i pareri di chi a usato altri server vps per mettere a confronto la banda .
io ho preso il pacchetto small ,potrebbe fare la differenza un pacchetto con piu ram e cpu ?
OUTATIME
17-04-2021, 08:08
Si infatti non riscontrato differenze ,ho provato con client Android e dal pc velocità identica ,quindi per comodità continuo ad usare opevn .
Ovvio che dipende anche dal server della vps .
Io con rete 3 4g la vpn su aruba , perdo quasi 10MEGA ma non ho un segnale molto stabile quindi non è molto attendibile come test
senza vpn ,Quando ho un buon segnale raggiungo i 100Mega in casa con un oneplus7 pro ,in esterno sono arrivato anche a 200 in certi punti .
Sono gia contento cosi considerando che non ho antenne esterne e connetto i miei dispositivi con l'hotspot dello smartphone .
sarebbe interessante sentire i pareri di chi a usato altri server vps per mettere a confronto la banda .
io ho preso il pacchetto small ,potrebbe fare la differenza un pacchetto con piu ram e cpu ?
Guarda, sono anch'io su Aruba e da Arezzo di speedtest faccio oltre 600 Mbit simmetrici, quindi il problema delle prestazioni in caso non dipende dal server.
E comunque anche la velocità tra vpn e senza con la mia FTTC si differenzia di 2 Mbit (39 senza, 37 con), e considerando l'overhead di openvpn che è circa del 5%, direi che openvpn è perfettamente ininfluente rispetto a wireguard.
chinemys
17-04-2021, 19:08
Guarda, sono anch'io su Aruba e da Arezzo di speedtest faccio oltre 600 Mbit simmetrici, quindi il problema delle prestazioni in caso non dipende dal server.
E comunque anche la velocità tra vpn e senza con la mia FTTC si differenzia di 2 Mbit (39 senza, 37 con), e considerando l'overhead di openvpn che è circa del 5%, direi che openvpn è perfettamente ininfluente rispetto a wireguard.
Se dici cosi ,allora è inutile che cambio vps ,dipende soltanto dalla stabilità della mia connessione e non posso farci nulla purtroppo .
Da quanto mi sembra di aver capito non posso sdoppiare la sim con la 3 se no ci mettevo un router con un antenna esterna .
grazie per avermelo detto .
iaiuarmando
02-09-2022, 16:10
ciao ragazzi
cercavo da tempo una guida del genere.
Avrei bisogno del tuo aiuto se sei disponibile.
Sto seguendo la guida, ho installato DEBIAN 11 su macchina virtuale, fin qui tutto ok, ma arrivando al punto che quoto non riesco più ad andare avanti.
mi da come risultato, comando non valido.
Come potrei risolvere?
Creo una firma HMAC per aumentare la sicurezza:
Codice:
openvpn --genkey --secret ta.key
OUTATIME
05-09-2022, 08:34
ciao ragazzi
cercavo da tempo una guida del genere.
Avrei bisogno del tuo aiuto se sei disponibile.
Sto seguendo la guida, ho installato DEBIAN 11 su macchina virtuale, fin qui tutto ok, ma arrivando al punto che quoto non riesco più ad andare avanti.
mi da come risultato, comando non valido.
Come potrei risolvere?
Scusa, probabilmente un refuso, dovrebbe essere
openvpn --genkey secret ta.key
Ho editato la guida. Fammi sapere se hai altri problemi, ultimamente ho avuto dei problemi di riconfigurazione di un server esistente, e ho dovuto fare senza HMAC.
iaiuarmando
09-09-2022, 22:48
Purtroppo ci sono ancora problemi e non riesco ad completare i passaggi.
Domani mattina faccio degli screen per essere più dettagliato.
iaiuarmando
12-09-2022, 16:44
Ho eseguito più volte questa guida utilizzando delle macchine virtuali pulite con Debian installato, riscontro sempre un problema nella creazione dei certificati in particolare
cp /etc/easyrsa/EasyRSA-3.0.4/pki/issued/server.key /etc/openvpn/
Quando vado a digitare questo comando mi dice che in quella cartella non c'è il file server.key
Ho provato a cercare altrove altre guide ma non sono molto pratico E questa rimane l'unica che io possa seguire.
help
OUTATIME
12-09-2022, 20:22
Ho eseguito più volte questa guida utilizzando delle macchine virtuali pulite con Debian installato, riscontro sempre un problema nella creazione dei certificati in particolare
cp /etc/easyrsa/EasyRSA-3.0.4/pki/issued/server.key /etc/openvpn/
Quando vado a digitare questo comando mi dice che in quella cartella non c'è il file server.key
Ho provato a cercare altrove altre guide ma non sono molto pratico E questa rimane l'unica che io possa seguire.
help
Errore mio. Il percorso corretto è:
cp /etc/easyrsa/EasyRSA-3.0.4/pki/private/server.key /etc/openvpn/
iaiuarmando
12-09-2022, 22:55
fatto tutto come descritto
ma quando vado a dare questo comando
ip address show
non mi appare l'interfaccia tun con l'indirizzo ip scritto nel file di configurazione.
Devo sbagliare qualche passaggio.:mc:
OUTATIME
13-09-2022, 07:55
fatto tutto come descritto
ma quando vado a dare questo comando
ip address show
non mi appare l'interfaccia tun con l'indirizzo ip scritto nel file di configurazione.
Devo sbagliare qualche passaggio.:mc:
Se hai riavviato il server, c'è un problema con il file di configurazione.
Verifica che nella cartella /etc/openvpn ti abbia creato il file di log, se si, aprilo e vedi che informazioni hai.
Se non c'è il file di log dobbiamo procedere in altro modo.
iaiuarmando
13-09-2022, 15:35
Se hai riavviato il server, c'è un problema con il file di configurazione.
Verifica che nella cartella /etc/openvpn ti abbia creato il file di log, se si, aprilo e vedi che informazioni hai.
Se non c'è il file di log dobbiamo procedere in altro modo.2022-09-13 16:34:04 DEPRECATED OPTION: --cipher set to 'AES-256-CBC' but missing in --data-ciphers (AES-256-GCM:AES-128-GCM). Future OpenVPN version will ignore --cipher for cipher negotiations. Add 'AES-256-CBC' to --data-ciphers or change --cipher 'AES-256-CBC' to --data-ciphers-fallback 'AES-256-CBC' to silence this warning.
2022-09-13 16:34:04 Cannot pre-load keyfile (/etc/openvpn/ta.key)
2022-09-13 16:34:04 Exiting due to fatal error
questo è il contenuto del file openvpn.log
grazie per il supporto tecnico
OUTATIME
14-09-2022, 14:42
2022-09-13 16:34:04 DEPRECATED OPTION: --cipher set to 'AES-256-CBC' but missing in --data-ciphers (AES-256-GCM:AES-128-GCM). Future OpenVPN version will ignore --cipher for cipher negotiations. Add 'AES-256-CBC' to --data-ciphers or change --cipher 'AES-256-CBC' to --data-ciphers-fallback 'AES-256-CBC' to silence this warning.
2022-09-13 16:34:04 Cannot pre-load keyfile (/etc/openvpn/ta.key)
2022-09-13 16:34:04 Exiting due to fatal error
questo è il contenuto del file openvpn.log
grazie per il supporto tecnico
Verifica che nella cartella /etc/openvpn sia presente il file ta.key
iaiuarmando
16-09-2022, 01:46
Ok ci sono riuscito
Avendo problemi a generare questa chiave, ho messo un commento nel file di configurazione del server Quando cerca ta.key .
Ora mi tocca configurare il client e ti volevo chiedere se è possibile generare dei profili da poterli utilizzare con l'applicazione Android e con il software Windows openvpn.
Il profilo che va importato nell'applicazione ha l'estensione .ovpn
Grazie per il supporto tecnico
OUTATIME
18-09-2022, 07:55
Ok ci sono riuscito
Avendo problemi a generare questa chiave, ho messo un commento nel file di configurazione del server Quando cerca ta.key .
Ora mi tocca configurare il client e ti volevo chiedere se è possibile generare dei profili da poterli utilizzare con l'applicazione Android e con il software Windows openvpn.
Il profilo che va importato nell'applicazione ha l'estensione .ovpn
Grazie per il supporto tecnico
Certamente. Quindi se ho capito bene NON stai usando il file ta.key, giusto?
Bene. Il file di configurazione deve contenere questi parametri, assumendo che il server è configurato come da mia guida:
client
dev tun
proto tcp
remote [indirizzo IP] 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
dh dh.pem
remote-cert-tls server
cipher AES-256-GCM
verb 3
Per la configurazione android copia il file ovpn e tutti i file richiesti dentro una cartella, e poi importi il file dell'app OpenVPN.
iaiuarmando
19-09-2022, 11:15
Certamente. Quindi se ho capito bene NON stai usando il file ta.key, giusto?
Bene. Il file di configurazione deve contenere questi parametri, assumendo che il server è configurato come da mia guida:
client
dev tun
proto tcp
remote [indirizzo IP] 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
dh dh.pem
remote-cert-tls server
cipher AES-256-GCM
verb 3
Per la configurazione android copia il file ovpn e tutti i file richiesti dentro una cartella, e poi importi il file dell'app OpenVPN.Ci sono riuscito finalmente.
Ti ringrazio.
Ora che siamo riusciti in questa "impresa" mi sono reso conto che il client collegato alla VPN non va su internet.
L'obiettivo è quello di collegare almeno tre dispositivi alla VPN creata, uno di questi dispositivi è connesso ad una connessione 4G tramite SIM, questo dispositivo deve avere le porte aperte (anche tutte).
Da dove posso iniziare?
ti ringrazio
edit: premetto di avere installato il server openvpn su una macchina virtuale.
Collegando i tre Client alla VPN mi sono reso conto che l'unico client che non naviga su internet è quello dov'è installata la Virtual machine con Debian, dove gira il server openvpn.
Sono molto contento Ora mi resta da capire perché quel client specifico non naviga su internet e poi mi resta da capire come aprire le porte verso un indirizzo IP.
Ti ringrazio tanto ❤
OUTATIME
19-09-2022, 19:04
No, allora... andiamo per gradi:
edit: premetto di avere installato il server openvpn su una macchina virtuale.
Collegando i tre Client alla VPN mi sono reso conto che l'unico client che non naviga su internet è quello dov'è installata la Virtual machine con Debian, dove gira il server openvpn.
Ovviamente questa non può andare in VPN su una VM ospitata al suo interno, poiche la VM usa per navigare la scheda di rete fisica del client. Se fai un redirect del gateway sulla VM, la VM a sua volta non naviga più.
L'obiettivo è quello di collegare almeno tre dispositivi alla VPN creata, uno di questi dispositivi è connesso ad una connessione 4G tramite SIM, questo dispositivo deve avere le porte aperte (anche tutte).
Da dove posso iniziare?
Dal spiegarmi quello che vuoi fare. Cosa vuoi ottenere collegando questi dispositivi in VPN?
e poi mi resta da capire come aprire le porte verso un indirizzo IP.
Do per scontato che la configurazione del port forwarding del router sia corretta, quindi mi occuperò solo della configurazione del server OpenVPN.
Devi editare il file /etc/iptables/rules.v4 aggiungendo questa riga per ogni porta da aprire:
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
-A PREROUTING -i eth0 -p tcp -m tcp --dport XXXX -j DNAT --to-destination 10.8.0.XXX
La stringa di postrouting è unica, mentre quella di prerouting è da aggiungerne una per ogni porta da aprire, sostituendo le X di --dport XXXX con la porta da aprire e --to-destination 10.8.0.XXX con l'IP di destinazione. Ovviamente a eth0 devi sostituire il nome della tua interfaccia.
iaiuarmando
20-09-2022, 10:22
Ho provato a spostare la Virtual Machine su un altro computer presente in rete.
Il risultato è sempre lo stesso, cioè dei tre client connessi alla VPN, un solo client non riesce a navigare su internet ma allo stesso tempo Naviga in rete e raggiunge indirizzi IP locali.
L'obiettivo di questa VPN è quello di collegare i tre Client all'interno di un'unica rete.
Su di un client ci sono le telecamere su di un altro client ci sono altri servizi del tipo cartelle condivise Poi c'è l'altro client che sarebbe il mio smartphone.
L'unico intoppo è proprio quello di non avere sul client numero 1 l'accesso ad internet una volta che questo si connette alla VPN.
Gli altri due client funzionano perfettamente.
Tutto ok Per quanto riguarda il port forwarding.
grazie
OUTATIME
20-09-2022, 15:35
Il risultato è sempre lo stesso, cioè dei tre client connessi alla VPN, un solo client non riesce a navigare su internet ma allo stesso tempo Naviga in rete e raggiunge indirizzi IP locali.
L'obiettivo di questa VPN è quello di collegare i tre Client all'interno di un'unica rete.
Sugli altri due client la navigazione si comporta come vorresti tu? Se la risposta è si, verifica il contenuto dei file di configurazione di openvpn, o ancora meglio, mettili qui. Per quanto riguarda il discorso unica rete, sono già in un'unica rete, la 10.0.8
iaiuarmando
20-09-2022, 15:44
EDIT:
TUTTO Risolto.
Ho capito l'errore con il client Windows openvpn 11.30, cioè la versione precedente a l'ultima.
In pratica avendo i dati (file.ovpn...cert...key) su di un hdd remoto, quando andavo a settare il file.ovpn io prelevavo solo quello tralasciando gli altri. Per questo motivo non funzionava a dovere pur collegandosi (fatto strano).
Cmq ora sembra andare tutto molto bene, sono con la versione precedente e non ho problemi..
Ti ringrazio tantissimo, questa guida merita tanto.
CIAOO
iaiuarmando
21-09-2022, 09:20
Ieri dopo svariate prove e dopo aver appurato che tutto Funziona correttamente, mi sono reso conto che il traffico internet dei vari client non transita attraverso la VPN.
Come posso fare per dare ai vari client la possibilità di instradare il traffico internet attraverso la VPN e uscire all'esterno con l'IP pubblico principale?
Grazie
OUTATIME
21-09-2022, 09:42
Ieri dopo svariate prove e dopo aver appurato che tutto Funziona correttamente, mi sono reso conto che il traffico internet dei vari client non transita attraverso la VPN.
Come posso fare per dare ai vari client la possibilità di instradare il traffico internet attraverso la VPN e uscire all'esterno con l'IP pubblico principale?
Grazie
Aggiungi nella configurazione dei client la stringa:
redirect-gateway def1 bypass-dhcp
iaiuarmando
21-09-2022, 10:01
Aggiungi nella configurazione dei client la stringa:
redirect-gateway def1 bypass-dhcpAggiungendo questa stringa, i client non navigano su internet.
OUTATIME
22-09-2022, 05:45
Aggiungendo questa stringa, i client non navigano su internet.
Posta qui la configurazione del server, client e del file rules.v4
iaiuarmando
22-09-2022, 08:58
Posta qui la configurazione del server, client e del file rules.v4
il server:
### OpenVPN server.conf ###
port 1194
proto tcp4
dev tun
### Files
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh.pem
###
server 10.8.0.0 255.255.255.0
topology subnet
client-config-dir /etc/openvpn/ccd
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 60 120
key-direction 0
cipher AES-256-GCM
auth SHA256
max-clients 6
persist-key
client-to-client
status openvpn-status.log
log /etc/openvpn/openvpn.log
log-append /etc/openvpn/openvpn.log
verb 3
il client:
client
dev tun
proto tcp
remote xxxxxxxxxxx 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
dh dh.pem
#remote-cert-tls server
cipher AES-256-GCM
verb 3
rules.v4:
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i tun0 -p icmp -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1194 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 10.8.0.0/24 -i tun0 -o eth0 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i tun0 -o eth0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
-A PREROUTING -i eth0 -p tcp -m tcp --dport 8100 -j DNAT --to-destination 10.8.0.13
-A PREROUTING -i eth0 -p tcp -m tcp --dport 7500 -j DNAT --to-destination 10.8.0.11
-A PREROUTING -i eth0 -p tcp -m tcp --dport 5555 -j DNAT --to-destination 10.8.0.12
COMMIT
grazie
OUTATIME
23-09-2022, 11:40
Hai abilitato il packet forward tra reti per ipv4?
Per abilitare permanentemente il packet forwarding dobbiamo editare il file /etc/sysctl.conf e togliere il commento dalla riga net.ipv4.ip_forward=1 Quindi:
nano /etc/sysctl.conf
Dopo la modifica deve presentarsi cosi:
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
A questo punto applichiamo le modifiche appena fatte:
sysctl -p
sysctl --system
iaiuarmando
23-09-2022, 13:48
Hai abilitato il packet forward tra reti per ipv4?
quando ho installato il server openvpn ho eseguito questa modifica, e poi ho salvato.
Ma ora mi da questo errore quando cerco di salvare la configurazione.
bash: sysctl: comando non trovato
forse non si è mai salvata la configurazione anche se andando in nano /etc/sysctl.conf il file è configurato correttamente
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
grazie
OUTATIME
23-09-2022, 16:46
quando ho installato il server openvpn ho eseguito questa modifica, e poi ho salvato.
Ma ora mi da questo errore quando cerco di salvare la configurazione.
bash: sysctl: comando non trovato
forse non si è mai salvata la configurazione anche se andando in nano /etc/sysctl.conf il file è configurato correttamente
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
grazie
Probabilmente è cambiata la sintassi, in ogni caso va bene anche un riavvio, che immagino che tu abbia già fatto.
Magari dico una stupidata, ma il server naviga correttamente?
iaiuarmando
23-09-2022, 21:09
Probabilmente è cambiata la sintassi, in ogni caso va bene anche un riavvio, che immagino che tu abbia già fatto.
Magari dico una stupidata, ma il server naviga correttamente?
Si il server naviga correttamente su internet.
Girando in rete, Ho letto di alcuni che hanno il mio stesso problema.
Come posso risolvere?
OUTATIME
24-09-2022, 08:22
Si il server naviga correttamente su internet.
Girando in rete, Ho letto di alcuni che hanno il mio stesso problema.
Come posso risolvere?
Altra domanda stupida... l'interfaccia si chiama eth0, vero?
Poi prova a farmi da client un ping 8.8.8.8 e un traceroute 8.8.8.8 e posta qui i risultati.
iaiuarmando
24-09-2022, 09:52
Altra domanda stupida... l'interfaccia si chiama eth0, vero?
Poi prova a farmi da client un ping 8.8.8.8 e un traceroute 8.8.8.8 e posta qui i risultati.
l'interfaccia si chiama eth0??
NO ed è qui che stava il problema.
digitando "ip address show" mi sono reso conto che la scheda di rete della vm si chiamasse in altro modo enp0s3 e non eth0.
Modificando quel nome nel file nano /etc/iptables/rules.v4 e dando questo comando nei file di configurazione del client "redirect-gateway def1" sono riuscito a farlo funzionare.
Ora da remoto il client connesso al vpn esce con l'indirizzi pubblico della vpn.
TI RINGRAZIO TANTISSIMO.
OUTATIME
24-09-2022, 14:58
NO ed è qui che stava il problema.
digitando "ip address show" mi sono reso conto che la scheda di rete della vm si chiamasse in altro modo enp0s3 e non eth0.
Modificando quel nome nel file nano /etc/iptables/rules.v4 e dando questo comando nei file di configurazione del client "redirect-gateway def1" sono riuscito a farlo funzionare.
Ora da remoto il client connesso al vpn esce con l'indirizzi pubblico della vpn.
TI RINGRAZIO TANTISSIMO.
Ok, infatti mi sembrava strano che non funzionasse. Una volta che va la VPN il resto è abbastanza semplice.
Felice che hai risolto.
iaiuarmando
12-10-2022, 15:49
Ok, infatti mi sembrava strano che non funzionasse. Una volta che va la VPN il resto è abbastanza semplice.
Felice che hai risolto.Ciao OUTATime
Ti scrivo perché ho un problema di velocità quando i client sono collegati alla VPN e il loro traffico passa per il server.
Esempio pratico
il mio smartphone ed Eseguo uno Speed Test senza VPN raggiunge velocità 110 - 70 m
Stessa configurazione ma con la VPN collegata la velocità è di 5 - 1 m
Ho dato più potenza alla Virtual machine sbloccando altri core del processore, Cioè ho reso veramente veloce quella macchina virtuale ma il risultato non è cambiato.
Che soluzione posso adottare?
OUTATIME
12-10-2022, 18:31
Ciao OUTATime
Ti scrivo perché ho un problema di velocità quando i client sono collegati alla VPN e il loro traffico passa per il server.
Esempio pratico
il mio smartphone ed Eseguo uno Speed Test senza VPN raggiunge velocità 110 - 70 m
Stessa configurazione ma con la VPN collegata la velocità è di 5 - 1 m
Ho dato più potenza alla Virtual machine sbloccando altri core del processore, Cioè ho reso veramente veloce quella macchina virtuale ma il risultato non è cambiato.
Che soluzione posso adottare?
Allora, premesso che la velocità di download da una parte è la velocità di upload dall'altra e viceversa (quindi il tuo download è sempre limitato dal valore di upload più basso), anche se non fosse questo, il problema, rimane che openvpn è un protocollo vecchio non molto performante. Anch'io con un VPS su Aruba con un Gbit di banda arrivo al massimo a 25 di download.
iaiuarmando
12-10-2022, 18:45
Allora, premesso che la velocità di download da una parte è la velocità di upload dall'altra e viceversa (quindi il tuo download è sempre limitato dal valore di upload più basso), anche se non fosse questo, il problema, rimane che openvpn è un protocollo vecchio non molto performante. Anch'io con un VPS su Aruba con un Gbit di banda arrivo al massimo a 25 di download.Si esatto
Il server è molto performante ma i client quando sono connessi alla VPN vanno veramente lenti.
C'è una soluzione che possiamo adottare?
Ho letto in giro sul web che per aumentare la velocità si può giocare sul togliere la sicurezza al server VPN ma non mi pare una cosa giusta da fare.
Spero si possa risolvere.
OUTATIME
15-10-2022, 17:50
Si esatto
Il server è molto performante ma i client quando sono connessi alla VPN vanno veramente lenti.
C'è una soluzione che possiamo adottare?
Ho letto in giro sul web che per aumentare la velocità si può giocare sul togliere la sicurezza al server VPN ma non mi pare una cosa giusta da fare.
Spero si possa risolvere.
Ho letto che la soluzione dovrebbe essere passare a wireguard, ma essendo una configurazione in peer ho difficoltà a fare routing tra client ed in redirect del gateway, per questo non sono mai riuscito ad approfondire l'argomento.
massi_it
27-08-2023, 10:54
Ciao, vorrei ringraziare l'autore della guida.
Non possiedo nessuna competenza in merito e seguendo la guida in prima pagina FORSE sono riuscito a combinare qualcosa. Ho avuto alcune difficoltà in quanto alcune cose sono date per scontate, in quanto banalissime, ma a me, che dell'argomento non so nulla, hanno dato parecchie noie. Un esempio? le XXX per identificare le porte e l'ip nella sezione sul routing le ho inserite tali e quali e quindi al riavvio di iptables mi venivano fuori sempre errori.... poi ho capito che andavano sostituiti con dei numeri :fagiano: ma poi è sorto il problema... che numeri?:help:
Insomma mettendo un po' di cose a caso la mia situazione è ora la seguente:
Sito A:
Server Debian su cui girano parecchie cose, DHCP, pihole, home assistant, torrent e chissà altro che nemmeno ricordo. Ip pubblico con indirizzo assegnato tramite servizio Duckdns. Linea Fastweb 60/20.
Sito B:
Piccola rete collegata con un router TP Link MR600 ad una linea 4G mobile Iliad, quindi senza IP pubblico. Ho collegato un Raspberry Pi 4 ad una porta lan del router con installato Rasbpian Lite. Sul Raspberry gira solo questo per il momento ma andrà installato Home assistant per la gestione di alcune prese elettriche. (per il momento una istanza di Home Assistant gira su un altro raspberry su Home assistant OS che però non permette smanettamenti...)
Al momento effettuo le configurazioni dal sito A, collegandomi tramite TeamViewer ad un portatile con windows 10 home collegato al wifi del router del sito B che a sua volta si collega via ssh al raspberry in questione.
Quello che voglio ottenere?
Poter accedere all'istanza di Home Assistant che installerò nel Raspberry del sito B. In questo momento non si può accedere dall'esterno in quanto l'IP non è pubblico.
Dove sono giunto grazie alla guida ed a un po' di fortuna:
Il log status del server (sito A) dice questo:
OpenVPN CLIENT LIST
Updated,2023-08-27 11:42:15
Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
client1,XXX.XXX.XXX.XXX:38567,55519,120054,2023-08-27 10:52:14
ROUTING TABLE
Virtual Address,Common Name,Real Address,Last Ref
10.8.0.2,client1,XXX.XXX.XXX.XXX:38567,2023-08-27 11:41:34
GLOBAL STATS
Max bcast/mcast queue length,1
END
che non so cosa vuol dire ma interpreto positivamente.... :rolleyes:
Il log status del client (sito B) dice questo:
penVPN STATISTICS
Updated,2023-08-27 11:43:56
TUN/TAP read bytes,49434
TUN/TAP write bytes,114405
TCP/UDP read bytes,123832
TCP/UDP write bytes,57905
Auth read bytes,114405
END
poco informativo ma essendoci roba che passa, anche questo lo interpreto positivamente :D
MI ha confortato il fatto che, intuitivamente, ho provato ha lanciare il ping 10.8.0.1 dal sito B ed il ping 10.8.0.2 dal sito A ed entrambi ricevono risposta.
Dal sito A
root@Scatolone:/home/massi# ping 10.8.0.2
PING 10.8.0.2 (10.8.0.2) 56(84) bytes of data.
64 bytes from 10.8.0.2: icmp_seq=1 ttl=64 time=49.1 ms
64 bytes from 10.8.0.2: icmp_seq=2 ttl=64 time=66.8 ms
64 bytes from 10.8.0.2: icmp_seq=3 ttl=64 time=92.1 ms
64 bytes from 10.8.0.2: icmp_seq=4 ttl=64 time=58.1 ms
Dal sito B
root@raspberrypi:/etc/openvpn# ping 10.8.0.1
PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_seq=1 ttl=64 time=50.0 ms
64 bytes from 10.8.0.1: icmp_seq=2 ttl=64 time=60.2 ms
64 bytes from 10.8.0.1: icmp_seq=3 ttl=64 time=56.8 ms
64 bytes from 10.8.0.1: icmp_seq=4 ttl=64 time=68.8 ms
64 bytes from 10.8.0.1: icmp_seq=5 ttl=64 time=52.1 ms
Quindi suppongo che 10.8.0.1 sia l'ip dato dal vpn al server e 10.8.0.2 quello dato al client.
Ora:
Non essendoci un browser nel raspberry, da terminale remoto se do' il comando curl checkip.dyndns.org mi viene fuori l'ip effettivo della connessione del sito B e non quella del sito A.
Anche questo non so cosa vuol dire ma lo interpreto negativamente.
Ora, chiedo cortesemente a voi ed in particolare all'autore della guida :ave:
Ci sono suggerimenti? :D
grazie!
Edit:
ho appena installato sul sito B (stesso raspberry dell'openvpn) l'home assistant da cui voglio accedere dal sito A. Tuttavia se nel browser del sito A inserisco il link http://10.8.0.2:8123/ non compare l'interfaccia. Che sia un problema di iptables?
Edit2:
Il motivo per cui il sito B rimaneva con il proprio il ip è perchè mancava nel file di configurazione /etc/openvpn/client.conf questo comando:
redirect-gateway def1
Fonte qui: https://marguspala.com/simple-way-to-route-all-traffic-via-gateway-with-openvpn/
OUTATIME
13-09-2023, 10:42
Ciao, vorrei ringraziare l'autore della guida.
[...]
Ciao. Scusami ma ultimamente per i casi della vita non frequento più tanto spesso questo forum, di conseguenza non ho visto il post. Mi sembra di capire che ora tutto vada, corretto? Nel caso fammi sapere.
PS: se dovessi riscontrare problemi di velocità, fammi sapere, la soluzione è passare a Wireguard usando l'altra guida che ho creato.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.