[NO SUPPORTO][HOWTO] OpenVPN - Instal. & Conf.

Installazione, configurazione e uso di Ubuntu come server: web, ftp, mail, news, proxy, dns, ecc.

[NO SUPPORTO][HOWTO] OpenVPN - Instal. & Conf.

Messaggioda thece » sabato 4 giugno 2016, 17:08

Condivido i miei appunti per l'installazione del servizio OpenVPN. Spero possa essere di aiuto


Appunti testati su Ubuntu 16.04.


Non fornisco supporto su questa discussione.
Questa discussione ha il solo scopo di suggerire all'utente "inesperto" una strada molto veloce per l'installazione e configurazione del servizio OpenVPN: questo è solo un modo! Vengono fatte assunzioni forti, viene calcata la mano all'utente "inesperto". Altre scelte potrebbero essere fatte sulla base delle proprie necessità.
Per qualsiasi: correzione, osservazione, suggerimento o altro, inerente questa discussione, cortesemente, mandatemi un messaggio in privato.



Happy Linux :ciao:


Note:

- dove non esplicitamente detto, tutti i comandi devono essere eseguiti come root (*), oppure anteponendo il comando sudo
- eseguendo i comandi, dove vi vengono poste delle domande, accettate la scelta di default, ossia premete [INVIO] oppure [y]


(*) Molto comodamente, è possibile aprire una shell di root utilizzando il comando

Codice: Seleziona tutto
sudo -s


Sul PC che fungerà da SERVER installare i pacchetti

Codice: Seleziona tutto
apt-get install openvpn easy-rsa

Se lo si desidera, installare i pacchetti opzionali

Codice: Seleziona tutto
apt-get install bridge-utils uml-utilities


Codice: Seleziona tutto
make-cadir /etc/openvpn/easy-rsa

Codice: Seleziona tutto
cd /etc/openvpn/easy-rsa

A questo punto, se lo si desidera, si può personalizzare il file /etc/openvpn/easy-rsa/vars. Scelgo di lasciarlo così come è

Codice: Seleziona tutto
source ./vars

Codice: Seleziona tutto
./clean-all

Codice: Seleziona tutto
./build-ca

Se dovesse apparire il messagio di errore: "The correct version should have a comment that says: easy-rsa version 2.x" dare il seguente comando

Codice: Seleziona tutto
ln -s openssl-1.0.0.cnf openssl.cnf

e ripetere

Codice: Seleziona tutto
./build-ca


Codice: Seleziona tutto
./build-dh

Codice: Seleziona tutto
openvpn --genkey --secret /etc/openvpn/easy-rsa/keys/ta.key

Codice: Seleziona tutto
./build-key-server PINCOPALLINO_server

Nella directory /etc/openvpn creare il file server.conf

Codice: Seleziona tutto
touch /etc/openvpn/server.conf

e inserirvi le seguenti righe

Codice: Seleziona tutto
port 1194
proto udp
dev tun

# Ottimizzazioni per le performance del protocollo UDP
sndbuf 393216
rcvbuf 393216
push "sndbuf 393216"
push "rcvbuf 393216"

ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/PINCOPALLINO_server.crt
key /etc/openvpn/easy-rsa/keys/PINCOPALLINO_server.key
dh /etc/openvpn/easy-rsa/keys/dh2048.pem
tls-auth /etc/openvpn/easy-rsa/keys/ta.key 0

topology subnet
server 10.0.0.0 255.255.255.0
; max-clients 100
client-to-client
duplicate-cn

# Se si vuole usare la direttiva client-config-dir commentare la direttiva duplicate-cn
; client-config-dir /etc/openvpn/ccd
# In caso di topology subnet, il file /etc/openvpn/ccd/CLIENT_COMMON_NAME deve essere scritto con la seguente sintassi
# ifconfig-push 10.0.0.### 255.255.255.0

keepalive 10 120

cipher AES-128-CBC
comp-lzo

user nobody
group nogroup

persist-key
persist-tun

status /etc/openvpn/openvpn-status.log
log /etc/openvpn/openvpn.log
verb 3

# Le seguenti direttive possono essere impartite indifferentemente o sulla configurazione del server oppure sulla configurazione del client
# Personalmente ritengo che abilitarle / disabilitarle sulla configurazione del client sia una soluzione più flessibile

# Per redirigere il default gateway del client verso il server OpenVPN
; push "redirect-gateway def1"

# Per raggiungere tutta la LAN cui appartiene il server OpenVPN attraverso la VPN
; push "route 192.168.0.0 255.255.255.0"

# Affinche' le seguenti direttive funzionino su Linux, sulla configurazione del client decommentare le direttive per l'abilitazione dello scripting
; push "dhcp-option DNS 192.168.0.1"
; push "dhcp-option DNS 208.67.222.222"
; push "dhcp-option DNS 208.67.220.220"


Note:

- con riferimento allo schema di rete riportato più sotto, il servizio OpenVPN viene installato su un PC SERVER che ha indirizzo IP (di esempio) 192.168.0.100, inserito in una LAN di range 192.168.0.0/24 e il cui GATEWAY ha indirizzo IP 192.168.0.1.
- il servizio OpenVPN attiverà automaticamente un'interfaccia di rete virtuale tun0 che avrà indirizzo IP (di esempio) 10.0.0.1/24.
- la scheda di rete fisica eth0, del PC SERVER, e la scheda di rete virtuale tun0, attivata dal servizio OpenVPN, devono appartenere a due classi di indirizzamento diverse. Nell'esempio: eth0 appartiene alla classe di indizizzamento 192.168.0.0/24 e tun0 appartiene alla classe di indirizzamento 10.0.0.0/24.
- il file di configurazione proposto per il server contiene già delle direttive commentate (righe che iniziano con il carattere ; ) che possono essere velocemente sbloccate per attivare delle funzionalità "più avanzate".


Codice: Seleziona tutto
chown root:root /etc/openvpn/server.conf

Codice: Seleziona tutto
chmod 640 /etc/openvpn/server.conf

Riavviare il PC SERVER per far partire automaticamente il servizio OpenVPN.


Una volta che il PC SERVER si è riavviato, verificare che il servizio OpenVPN si sia attivato correttamente con i comandi

Codice: Seleziona tutto
systemctl status openvpn.service

(output atteso)

● openvpn.service - OpenVPN service
   Loaded: loaded (/lib/systemd/system/openvpn.service; enabled; vendor preset: enabled)
   Active: active (exited) since Sat 2018-01-06 16:36:22 CET; 40min ago
  Process: 2438 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 2438 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/openvpn.service

Jan 06 16:36:22 alexa systemd[1]: Starting OpenVPN service...
Jan 06 16:36:22 alexa systemd[1]: Started OpenVPN service.

Codice: Seleziona tutto
netstat -tulnp | grep openvpn

(output atteso)

udp        0      0 0.0.0.0:1194            0.0.0.0:*                           2449/openvpn

Codice: Seleziona tutto
ifconfig

(output atteso)

...

tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.0.0.1  netmask 255.255.255.0  destination 10.0.0.1
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 100  (UNSPEC)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Codice: Seleziona tutto
route -n

(output atteso)

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 tun0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0


Comando per controllare il servizio OpenVPN

Codice: Seleziona tutto
systemctl [start|status|stop|restart|reload|reload-or-restart] openvpn.service



Nota:

ovviamente il nome PINCOPALLINO_server può essere modificato a piacere. Basta farlo dappertutto in modo congruente.
Il mio suggerimento però è quello di adottare la forma HOSTNAME_server dove HOSTNAME è il nome che abbiamo attribuito al server, ossia quello che viene fuori dal comando

Codice: Seleziona tutto
hostname

quindi se il nostro server avesse nome vps12345 adotterei il nome vps12345_server.
Allegati
network.png
Schema della rete
Ultima modifica di thece il domenica 7 gennaio 2018, 18:59, modificato 33 volte in totale.
Avatar utente
thece
Rampante Reduce
Rampante Reduce
 
Messaggi: 9561
Iscrizione: aprile 2007
Distribuzione: Debian 9 (Stretch) - KDE

Re: [HOWTO] OpenVPN in 5 minuti

Messaggioda thece » sabato 4 giugno 2016, 17:28

A questo punto sul PC SERVER prepariamo un archivio (file .tar.gz) che conterrà:

- il file di configurazione per il PC CLIENT
- i certificati e le chiavi per la connessione al PC SERVER

Tale archivio dovrà essere quindi portato sul PC CLIENT per poter attivare la connessione VPN verso il PC SERVER.


Codice: Seleziona tutto
cd /etc/openvpn/easy-rsa/

Codice: Seleziona tutto
source ./vars

Codice: Seleziona tutto
./build-key PINCOPALLINO_client_01

oppure, in alternativa al comando precedente,

Codice: Seleziona tutto
./build-key-pass PINCOPALLINO_client_01

se si desidera che ad ogni connessione dal PC CLIENT verso il PC SERVER venga richiesta una anche password aggiuntiva ai certificati della VPN.

Nella directory /etc/openvpn/easy-rsa/keys creare il file PINCOPALLINO_client_01.ovpn

Codice: Seleziona tutto
touch /etc/openvpn/easy-rsa/keys/PINCOPALLINO_client_01.ovpn

e inserirvi queste righe

Codice: Seleziona tutto
client
proto udp
dev tun

# Decommentare le chiavi "remote" e "port" di solo una di queste due possibilità

# Per collegarsi da Internet
; remote <FQDN SERVER OPENVPN>
; port 1194

# Per collegarsi dalla LAN (l'indirizzo IP 192.168.0.100 è di esempio)
; remote 192.168.0.100
; port 1194

resolv-retry infinite
nobind
persist-key
persist-tun

ca ca.crt
cert PINCOPALLINO_client_01.crt
key PINCOPALLINO_client_01.key
tls-auth ta.key 1

cipher AES-128-CBC
comp-lzo
verb 3

# Abilitazione dello scripting
# Lo script update-resolv-conf si basa sul pacchetto resolvconf. Assicurarsi che sia installato
; script-security 2
; up /etc/openvpn/update-resolv-conf
; down /etc/openvpn/update-resolv-conf

# Le seguenti direttive possono essere impartite indifferentemente o sulla configurazione del server oppure sulla configurazione del client
# Personalmente ritengo che abilitarle / disabilitarle sulla configurazione del client sia una soluzione più flessibile

# Per redirigere il default gateway del client verso il server OpenVPN
; redirect-gateway def1

# Per raggiungere tutta la LAN cui appartiene il server OpenVPN attraverso la VPN
; route 192.168.0.0 255.255.255.0

# Affinche' le seguenti direttive funzionino su Linux, anche se impostate sulla configurazione del server, decommentare le successive direttive per l'abilitazione dello scripting
; dhcp-option DNS 192.168.0.1
; dhcp-option DNS 208.67.222.222
; dhcp-option DNS 208.67.220.220

Nota:

il file di configurazione proposto per il client contiene già delle direttive commentate (righe che iniziano con il carattere ; ) che possono essere velocemente sbloccate per attivare delle funzionalità "più avanzate".


Codice: Seleziona tutto
chown root:root /etc/openvpn/easy-rsa/keys/PINCOPALLINO_client_01.ovpn

Codice: Seleziona tutto
chmod 640 /etc/openvpn/easy-rsa/keys/*

Codice: Seleziona tutto
mkdir -p /temp/PINCOPALLINO_client_01_keys

Codice: Seleziona tutto
cp /etc/openvpn/easy-rsa/keys/ca.crt /temp/PINCOPALLINO_client_01_keys

Codice: Seleziona tutto
cp /etc/openvpn/easy-rsa/keys/PINCOPALLINO_client_01.crt /temp/PINCOPALLINO_client_01_keys

Codice: Seleziona tutto
cp /etc/openvpn/easy-rsa/keys/PINCOPALLINO_client_01.key /temp/PINCOPALLINO_client_01_keys

Codice: Seleziona tutto
cp /etc/openvpn/easy-rsa/keys/ta.key /temp/PINCOPALLINO_client_01_keys

Codice: Seleziona tutto
cp /etc/openvpn/easy-rsa/keys/PINCOPALLINO_client_01.ovpn /temp/PINCOPALLINO_client_01_keys

Codice: Seleziona tutto
cd /temp

Codice: Seleziona tutto
chown -R <UTENTE>:<GRUPPO> /temp/PINCOPALLINO_client_01_keys

Sostituire <UTENTE> e <GRUPPO> con il nome di un utente e di un gruppo di sistema cui si vuole attribuire la proprietà dei file.
Il cambio della proprietà dei file non è strettamente necessario: giusto per non lasciarla attribuita all'utente root.

Codice: Seleziona tutto
chmod 440 /temp/PINCOPALLINO_client_01_keys/*

Codice: Seleziona tutto
chmod 640 /temp/PINCOPALLINO_client_01_keys/PINCOPALLINO_client_01.ovpn

Codice: Seleziona tutto
tar -czvf /temp/PINCOPALLINO_client_01_keys\ [YYYY.MM.DD].tar.gz PINCOPALLINO_client_01_keys

Codice: Seleziona tutto
chown <UTENTE>:<GRUPPO> /temp/PINCOPALLINO_client_01_keys\ [YYYY.MM.DD].tar.gz

Codice: Seleziona tutto
chmod 640 /temp/PINCOPALLINO_client_01_keys\ [YYYY.MM.DD].tar.gz

Codice: Seleziona tutto
rm -rf /temp/PINCOPALLINO_client_01_keys


A questo punto i file contenuti nell'archivio PINCOPALLINO_client_01_keys [YYYY.MM.DD].tar.gz possono essere usati con un qualsiasi client per OpenVPN per connettersi al PC SERVER.

Ad esempio, possono essere usati:

- (su Linux) openvpn stesso, impartito come root o anteponendo il comando sudo

Codice: Seleziona tutto
openvpn --config PINCOPALLINO_client_01.ovpn

- (su Linux) Network Manager, tramite apposito plugin
- (su Windows) OpenVPN GUI


Una volta che il servizio OpenVPN è stato installato sul PC SERVER e si è controllato che il servizio si sia avviato correttamente, per testare che la VPN sia effettivamente funzionante provare una connessione al PC SERVER da un PC CLIENT posto nella stessa LAN. Se il test di connessione NON ha esito positivo per il momento è inutile procedere oltre, piuttosto ricontrollare di avere eseguito correttamente le procedure di cui sopra.

Nel mio schema di rete di esempio:

- il PC SERVER ha indirizzo IP 192.168.0.100 per la rete LAN e 10.0.0.1 per la rete VPN
- il PC CLIENT ha indirizzo IP 192.168.0.200 per la rete LAN e 10.0.0.N per la rete VPN


Nota:

il nome PINCOPALLINO_client_01 può ovviamente essere modificato a piacere. Basta farlo dappertutto in modo congruente.
Ultima modifica di thece il domenica 7 gennaio 2018, 19:00, modificato 26 volte in totale.
Avatar utente
thece
Rampante Reduce
Rampante Reduce
 
Messaggi: 9561
Iscrizione: aprile 2007
Distribuzione: Debian 9 (Stretch) - KDE

Re: [HOWTO] OpenVPN in 5 minuti

Messaggioda thece » sabato 4 giugno 2016, 17:37

In modo alternativo al post precedente possiamo preparare, sempre sul PC SERVER, un file tutto-in-uno che contenga sia la configurazione per il PC CLIENT, sia i certificati e chiavi per la connessione al PC SERVER. Come il precedente archivio, tale file dovrà essere portato sul PC CLIENT per poter attivare la connessione VPN verso il PC SERVER.


Codice: Seleziona tutto
cd /etc/openvpn/easy-rsa/

Codice: Seleziona tutto
source ./vars

Codice: Seleziona tutto
./build-key PINCOPALLINO_client_01

oppure, in alternativa al comando precedente,

Codice: Seleziona tutto
./build-key-pass PINCOPALLINO_client_01

se si desidera che ad ogni connessione dal PC CLIENT verso il PC SERVER venga richiesta una anche password aggiuntiva ai certificati della VPN.

Nella directory /etc/openvpn/easy-rsa/keys creare il file PINCOPALLINO_client_01.ovpn

Codice: Seleziona tutto
touch /etc/openvpn/easy-rsa/keys/PINCOPALLINO_client_01.ovpn

e inserirvi queste righe

Codice: Seleziona tutto
client
proto udp
dev tun

# Decommentare le chiavi "remote" e "port" di solo una di queste due possibilità

# Per collegarsi da Internet
; remote <FQDN SERVER OPENVPN>
; port 1194

# Per collegarsi dalla LAN (l'indirizzo IP 192.168.0.100 è di esempio)
; remote 192.168.0.100
; port 1194

resolv-retry infinite
nobind
persist-key
persist-tun

cipher AES-128-CBC
key-direction 1
comp-lzo
verb 3

# Abilitazione dello scripting
# Lo script update-resolv-conf si basa sul pacchetto resolvconf. Assicurarsi che sia installato
; script-security 2
; up /etc/openvpn/update-resolv-conf
; down /etc/openvpn/update-resolv-conf

# Le seguenti direttive possono essere impartite indifferentemente o sulla configurazione del server oppure sulla configurazione del client
# Personalmente ritengo che abilitarle / disabilitarle sulla configurazione del client sia una soluzione più flessibile

# Per redirigere il default gateway del client verso il server OpenVPN
; redirect-gateway def1

# Per raggiungere tutta la LAN cui appartiene il server OpenVPN attraverso la VPN
; route 192.168.0.0 255.255.255.0

# Affinche' le seguenti direttive funzionino su Linux, anche se impostate sulla configurazione del server, decommentare le successive direttive per l'abilitazione dello scripting
; dhcp-option DNS 192.168.0.1
; dhcp-option DNS 208.67.222.222
; dhcp-option DNS 208.67.220.220

<ca>
... copiare qui il contenuto del file /etc/openvpn/easy-rsa/keys/ca.crt ...
</ca>

<cert>
... copiare qui il contenuto del file /etc/openvpn/easy-rsa/keys/PINCOPALLINO_client_01.crt ...
</cert>

<key>
... copiare qui il contenuto del file /etc/openvpn/easy-rsa/keys/PINCOPALLINO_client_01.key ...
</key>

<tls-auth>
... copiare qui il contenuto del file /etc/openvpn/easy-rsa/keys/ta.key ...
</tls-auth>

Nota:

il file di configurazione proposto per il client contiene già delle direttive commentate (righe che iniziano con il carattere ; ) che possono essere velocemente sbloccate per attivare delle funzionalità "più avanzate".


Copiare il contenuto del file /etc/openvpn/easy-rsa/keys/ca.crt nel file /etc/openvpn/easy-rsa/keys/PINCOPALLINO_client_01.ovpn all'interno dei tag <ca> ... </ca>

Copiare il contenuto del file /etc/openvpn/easy-rsa/keys/PINCOPALLINO_client_01.crt nel file /etc/openvpn/easy-rsa/keys/PINCOPALLINO_client_01.ovpn all'interno dei tag <crt> ... </crt>

Copiare il contenuto del file /etc/openvpn/easy-rsa/keys/PINCOPALLINO_client_01.key nel file /etc/openvpn/easy-rsa/keys/PINCOPALLINO_client_01.ovpn all'interno dei tag <key> ... </key>

Copiare il contenuto del file /etc/openvpn/easy-rsa/keys/ta.key nel file /etc/openvpn/easy-rsa/keys/PINCOPALLINO_client_01.ovpn all'interno dei tag <tls-auth> ... </tls-auth>

Codice: Seleziona tutto
chown root:root /etc/openvpn/easy-rsa/keys/PINCOPALLINO_client_01.ovpn

Codice: Seleziona tutto
chmod 640 /etc/openvpn/easy-rsa/keys/*

Codice: Seleziona tutto
mkdir -p /temp

Codice: Seleziona tutto
cp /etc/openvpn/easy-rsa/keys/PINCOPALLINO_client_01.ovpn /temp

Codice: Seleziona tutto
cd /temp

Codice: Seleziona tutto
chown <UTENTE>:<GRUPPO> /temp/PINCOPALLINO_client_01.ovpn

Sostituire <UTENTE> e <GRUPPO> con il nome di un utente e di un gruppo di sistema cui si vuole attribuire la proprietà dei file.
Il cambio della proprietà del file non è strettamente necessario: giusto per non lasciarla attribuita all'utente root.

Codice: Seleziona tutto
chmod 640 /temp/PINCOPALLINO_client_01.ovpn


A questo punto il file PINCOPALLINO_client_01.ovpn può essere usato con un qualsiasi client per OpenVPN per connettersi al PC SERVER.

Ad esempio, possono essere usati:

- (su Linux) openvpn stesso, impartito come root o anteponendo il comando sudo

Codice: Seleziona tutto
openvpn --config PINCOPALLINO_client_01.ovpn

- (su Linux) Network Manager, tramite apposito plugin
- (su Windows) OpenVPN GUI


Una volta che il servizio OpenVPN è stato installato sul PC SERVER e si è controllato che il servizio si sia avviato correttamente, per testare che la VPN sia effettivamente funzionante provare una connessione al PC SERVER da un PC CLIENT posto nella stessa LAN. Se il test di connessione NON ha esito positivo per il momento è inutile procedere oltre, piuttosto ricontrollare di avere eseguito correttamente le procedure di cui sopra.

Nel mio schema di rete di esempio:

- il PC SERVER ha indirizzo IP 192.168.0.100 per la rete LAN e 10.0.0.1 per la rete VPN
- il PC CLIENT ha indirizzo IP 192.168.0.200 per la rete LAN e 10.0.0.N per la rete VPN


Nota:

il nome PINCOPALLINO_client_01 può ovviamente essere modificato a piacere. Basta farlo dappertutto in modo congruente.
Ultima modifica di thece il domenica 7 gennaio 2018, 19:00, modificato 15 volte in totale.
Avatar utente
thece
Rampante Reduce
Rampante Reduce
 
Messaggi: 9561
Iscrizione: aprile 2007
Distribuzione: Debian 9 (Stretch) - KDE

Re: [HOWTO] OpenVPN in 5 minuti

Messaggioda thece » sabato 4 giugno 2016, 18:30

Per completare la configurazione del PC SERVER, che ospita il servizio OpenVPN, abilitiamo su di esso:

- il forwarding (inoltro) dei pacchetti IP tra le diverse interfacce di rete, nel mio caso eth0 e tun0, in modo tale che i pacchetti IP possano transitare liberamente dall'una all'altra interfaccia di rete;
- il masquerading (NAT) dei pacchetti IP, in modo tale che i pacchetti dalla e per la VPN possano essere correttamente gestiti dagli host della LAN 192.168.0.0/24;


Forwarding (inoltro) dei pacchetti IP

Modifichiamo il file /etc/sysctl.conf e decommentiamo la riga (ossia togliamo il # iniziale)

Codice: Seleziona tutto
net.ipv4.ip_forward=1

Usiamo il comando

Codice: Seleziona tutto
sysctl -p

per far recepire la modifica al sistema senza riavviare il PC.
Usiamo il comando

Codice: Seleziona tutto
cat /proc/sys/net/ipv4/ip_forward

per verificare che la modifica sia stata recepita.


Masquerading (NAT) dei pacchetti IP

Modifichiamo la configurazione del firewall IPTables attraverso uno script che verrà richiamato ad ogni riavvio del PC SERVER, attraverso lo script di inizializzazione /etc/rc.local

Codice: Seleziona tutto
mkdir -p /scripts

Codice: Seleziona tutto
cd /scripts

Creare un file che si chiama iptablesSetRules.sh e inserirvi il seguente contenuto

Codice: Seleziona tutto
#!/bin/bash

IPTABLES="/sbin/iptables"

echo "Setting IPTables rules ..."

# Default policies of default chains
# $IPTABLES -P INPUT ACCEPT
# $IPTABLES -P FORWARD ACCEPT
# $IPTABLES -P OUTPUT ACCEPT

# NAT and MASQUERADING
$IPTABLES -t nat -A POSTROUTING -s 10.0.0.0/24 ! -d 10.0.0.0/24 -j MASQUERADE

# In alternativa alla precedente è possibile usare la seguente regola, più performante, dove <INDIRIZZO IP> è l'indirizzo IP STATICO assegnato alla scheda di rete Ethernet
# $IPTABLES -t nat -A POSTROUTING -s 10.0.0.0/24 ! -d 10.0.0.0/24 -j SNAT --to-source <INDIRIZZO IP>

exit 0

Codice: Seleziona tutto
chown root:root /scripts/iptablesSetRules.sh

Codice: Seleziona tutto
chmod 700 /scripts/iptablesSetRules.sh

Per far sì che lo script di cui sopra venga richiamato automaticamente al riavvio del PC SERVER, modificare il file /etc/rc.local e inserire questa riga prima del comando exit 0

Codice: Seleziona tutto
/scripts/iptablesSetRules.sh

Riavviare il PC SERVER per far recepire tutte queste modifiche.



Per verificare che si sia proceduto correttamente utilizzare i comandi:

Forwarding (inoltro) dei pacchetti IP

Codice: Seleziona tutto
cat /proc/sys/net/ipv4/ip_forward

Masquerading (NAT) dei pacchetti IP

Codice: Seleziona tutto
sudo iptables -t nat -L
Ultima modifica di thece il domenica 7 gennaio 2018, 15:55, modificato 4 volte in totale.
Avatar utente
thece
Rampante Reduce
Rampante Reduce
 
Messaggi: 9561
Iscrizione: aprile 2007
Distribuzione: Debian 9 (Stretch) - KDE

Re: [NO SUPPORTO][HOWTO] OpenVPN - Instal. & Conf.

Messaggioda thece » domenica 26 febbraio 2017, 19:28

Per far in modo che il PC CLIENT possa connettersi in VPN al PC SERVER da Internet occorre esporre su Internet il servizio OpenVPN.

In un contesto domestico questo si traduce nel configurare un'opportuna regola di port forwarding sul Pannello di Controllo del proprio modem / router xDSL.

Codice: Seleziona tutto
192.168.0.100 : 1194 (UDP) <----------> INDIRIZZO_IP_PUBBLICO : 1194 (UDP)


Poichè presumibilmente l'indirizzo IP PUBBLICO assegnato al nostro modem / router xDSL dal nostro Internet provider è di tipo dinamico, per potersi collegare più agevolmente alla VPN, occorre installare sul PC SERVER (oppure abilitare sul modem / router xDSL, se predisposto) un client verso uno dei vari servizi di dynamic DNS.
Avatar utente
thece
Rampante Reduce
Rampante Reduce
 
Messaggi: 9561
Iscrizione: aprile 2007
Distribuzione: Debian 9 (Stretch) - KDE

Re: [NO SUPPORTO][HOWTO] OpenVPN - Instal. & Conf.

Messaggioda thece » domenica 7 gennaio 2018, 16:07

Su Linux, per fare in modo che il PC CLIENT possa collegarsi al servizio VPN utilizzando il Network Manager, procedere nel seguente modo:

- assicurarsi che siano installati i pacchetti network-manager-openvpn e network-manager-openvpn-gnome

- salvare localmente al PC CLIENT l'archivio PINCOPALLINO_CLIENT_keys [YYYY.MM.DD].tar.gz creato in precedenza

- decomprimere localmente al PC CLIENT l'archivio PINCOPALLINO_CLIENT_keys [YYYY.MM.DD].tar.gz

- dall'app del Network Manager importare i file ottenuti dalla precedente decompressione, attraverso i passi (in Inglese):

p1) Edit Connections
p2) Add
p3) Import a saved VPN Connection
p3) cercare e selezionare il file PINCOPALLINO_CLIENT.ovpn (i file .crt e .key verranno importati automaticamente)
p4) Create
p5) Save

a questo punto sia l'archivio che i file precedentemente decompressi possono essere cancellati.


Nota:

indipendentemente dal fatto che si sia scelto di usare o meno la direttiva per il reindirizzamento del default gateway sulla configurazione del server VPN, attivando la connessione VPN, il Network Manager reinstraderà tutto il traffico in uscita dal PC CLIENT verso Internet attraverso la VPN. Per evitare questo comportamento, nella configurazione appena creata, selezionare l'opzione "Use this connection only for resources on its network" nel tab "IPv4 Settings...", "Routes..."
Avatar utente
thece
Rampante Reduce
Rampante Reduce
 
Messaggi: 9561
Iscrizione: aprile 2007
Distribuzione: Debian 9 (Stretch) - KDE


Torna a Ubuntu su server

Chi c’è in linea

Visualizzano questa sezione: 0 utenti registrati e 3 ospiti