Installazione OpenVPN su Debian: Difference between revisions

From RVM Wiki
Jump to navigation Jump to search
mNo edit summary
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
==NOTA PER Debian >= Jessie==
Con systemctl è necessario abilitare le VPN create in
/etc/openvpn/nomevpn.conf
systemctl daemon-reload
systemctl enable openvpn@nomefilevpn.service
systemct restart openvpn@nomefilevpn.service
== Configurazione Server Linux ==
== Configurazione Server Linux ==


Installare il pacchetto:
Installare il pacchetto:
<pre>
<pre>
apt-get install openvpn
sudo apt-get install openvpn openssl
</pre>
 
Creare il device di rete:
 
<pre>
Debian Configuration
 
???????????????????????????? Configuring openvpn ????????????????????????????
?                                                                          ?
? If you accept here, the package will make a special device called        ?
? /dev/net/tun for openvpn's use. If you refuse, the device won't be made  ?
? now. Read README.Debian for details on how to make it. If you are using  ?
? devfs refuse here.                                                        ?
?                                                                          ?
? Would you like a TUN/TAP device to be created?                            ?
?                                                                          ?
?                    <Yes>                                                  ?
?                                                                          ?
?????????????????????????????????????????????????????????????????????????????
</pre>
 
Rispondere "si"
 
<pre>
Debian Configuration
 
???????????????????????????? Configuring openvpn ????????????????????????????
?                                                                          ?
? In some cases you may be upgrading openvpn in a remote server using a    ?
? VPN to do so. The upgrade process stops the running daemon before        ?
? installing the new version, in that case you may lose your connection,    ?
? the upgrade may be interrupted, and you may not be able to reconnect to  ?
? the remote host.                                                          ?
?                                                                          ?
? Unless you do your upgrades locally, it is advised NOT to stop openvpn    ?
? before it gets upgraded. The installation process will restart it once    ?
? it's done.                                                                ?
?                                                                          ?
? This option will take effect in your next upgrade.                        ?
?                                                                          ?
? Would you like to stop openvpn before it gets upgraded?                  ?
?                                                                          ?
?                    <Yes>                                                  ?
?                                                                          ?
?????????????????????????????????????????????????????????????????????????????
</pre>
</pre>


Line 82: Line 45:


  export SERVER_VPN_IF=tun21
  export SERVER_VPN_IF=tun21
  export CLIENT_VPN_IF=tun0
  export CLIENT_VPN_IF=tun25


Gli indirizzi pubblici delle due macchine saranno:
Gli indirizzi pubblici delle due macchine saranno:


  export SERVER_WAN_IP=217.141.88.34
  export SERVER_WAN_IP=server.host.dom
  export CLIENT_WAN_IF=81.117.165.252
  export CLIENT_WAN_IF=client.host.dom


La VPN ascolterà sulle interfacce aventi i seguenti indirizzi:
La VPN ascolterà sulle interfacce aventi i seguenti indirizzi:


  export SERVER_LISTEN_IP=217.141.88.34
  export SERVER_LISTEN_IP=x.y.z.k.
  export CLIENT_LISTEN_IP=81.117.165.252
  export CLIENT_LISTEN_IP=a.b.c.d


Nel caso le macchine abbiano indirizi privati, inserire quelli. Naturalemente andranno configurati gli opportuni port mapping sui router.
Nel caso le macchine abbiano indirizi privati, inserire quelli. Naturalmente andranno configurati gli opportuni port mapping sui router.


La VPN utilizzera la seguente porta UDP, che andrà quindi sbloccta sul firewall o port-mappata sui router:
La VPN utilizzera la seguente porta UDP, che andrà quindi sbloccta sul firewall o port-mappata sui router:
Line 102: Line 65:
La vpn verrà chiamata per convenzione
La vpn verrà chiamata per convenzione


  export gsspa
  export OVPN_NAME=vpnname


<pre>
<pre>
export SERVER_LAN=192.168.0.0
export SERVER_LAN=192.168.0.0
export CLIENT_LAN=192.168.21.0
export CLIENT_LAN=192.168.25.0
export SERVER_VPN_IP=10.0.21.254
export SERVER_VPN_IP=10.0.25.254
export CLIENT_VPN_IP=10.0.21.253
export CLIENT_VPN_IP=10.0.25.253
export SERVER_VPN_IF=tun21
export SERVER_VPN_IF=tun25
export CLIENT_VPN_IF=tun0
export CLIENT_VPN_IF=tun25
export SERVER_WAN_IP=217.141.88.34
export SERVER_WAN_IP=uf.galimberti.net
export CLIENT_WAN_IP=81.117.165.252
export CLIENT_WAN_IP=cs.galimberti.net
export SERVER_LISTEN_IP=217.141.88.34
export SERVER_LISTEN_IP=uf.galimberti.net
export CLIENT_LISTEN_IP=81.117.165.252
export CLIENT_LISTEN_IP=cs.galimberti.net
export OVPN_PORT=21000
export OVPN_PORT=25000
export OVPN_NAME=gsspa
export OVPN_NAME=cs
</pre>
</pre>


Line 122: Line 85:


<pre>
<pre>
mkdir -p /etc/openvpn/certs
sudo mkdir -p /etc/openvpn/certs
cd /etc/openvpn/certs
cd /etc/openvpn/certs
openvpn --genkey --secret $OVPN_NAME.key
sudo openvpn --genkey --secret $OVPN_NAME.key
sudo chmod o= $OVPN_NAME.key
</pre>
</pre>


Line 135: Line 99:
-rw-------    1 root    root          636 Sep  6 16:46 static.key
-rw-------    1 root    root          636 Sep  6 16:46 static.key


cat $OVPN_NAME.key
sudo cat $OVPN_NAME.key
#
#
# 2048 bit OpenVPN static key
# 2048 bit OpenVPN static key
Line 162: Line 126:


<pre>
<pre>
cat > /etc/openvpn/$OVPN_NAME.conf <<EOFile
cat | sudo tee /etc/openvpn/$OVPN_NAME.conf > /dev/null <<EOFile


dev $SERVER_VPN_IF
dev $SERVER_VPN_IF
Line 209: Line 173:
Far partire la VPN:
Far partire la VPN:
<pre>
<pre>
/etc/init.d/openvpn start $OVPN_NAME
sudo invoke-rc.d openvpn start $OVPN_NAME
</pre>
</pre>


Line 267: Line 231:


<pre>
<pre>
cat > /etc/openvpn/$OVPN_NAME.conf <<EOFile
cat | sudo tee /etc/openvpn/$OVPN_NAME.conf > /dev/null <<EOFile


dev $CLIENT_VPN_IF
dev $CLIENT_VPN_IF
Line 473: Line 437:


Creare il file di configurazione come da template e copiare file e cartella coi certificati sul client.
Creare il file di configurazione come da template e copiare file e cartella coi certificati sul client.
Assegnare lo user che usa OpenVPN al Gruppo
Newtork Configuration Operator
altrimenti openvpn si collega, ma non imposta il routing


== Caso di server VPN NON default gateway ==
== Caso di server VPN NON default gateway ==

Latest revision as of 17:13, 12 June 2019

NOTA PER Debian >= Jessie

Con systemctl è necessario abilitare le VPN create in

/etc/openvpn/nomevpn.conf
systemctl daemon-reload
systemctl enable openvpn@nomefilevpn.service
systemct restart openvpn@nomefilevpn.service

Configurazione Server Linux

Installare il pacchetto:

sudo apt-get install openvpn openssl

Creare il certificato DH:

cd /etc/openvpn
sudo mkdir certs
cd certs
sudo openssl dhparam -out dh1024.pem 1024

Vpn Lan to Lan

Configurazione Server

Impostare le seguenti variabili per creare il file di configurazione.

Ipotizziamo che il server si in una

export SERVER_LAN=192.168.0.0

che si voglia connettere ad una

export CLIENT_LAN=192.168.21.0

Si userà una rete di trasferimento con indirizzi point-to-point:

export SERVER_VPN_IP=10.0.21.254
export CLIENT_VPN_IP=10.0.21.253

E le interfacce VPN saranno:

export SERVER_VPN_IF=tun21
export CLIENT_VPN_IF=tun25

Gli indirizzi pubblici delle due macchine saranno:

export SERVER_WAN_IP=server.host.dom
export CLIENT_WAN_IF=client.host.dom

La VPN ascolterà sulle interfacce aventi i seguenti indirizzi:

export SERVER_LISTEN_IP=x.y.z.k.
export CLIENT_LISTEN_IP=a.b.c.d

Nel caso le macchine abbiano indirizi privati, inserire quelli. Naturalmente andranno configurati gli opportuni port mapping sui router.

La VPN utilizzera la seguente porta UDP, che andrà quindi sbloccta sul firewall o port-mappata sui router:

export OVPN_PORT=21000

La vpn verrà chiamata per convenzione

export OVPN_NAME=vpnname
export SERVER_LAN=192.168.0.0
export CLIENT_LAN=192.168.25.0
export SERVER_VPN_IP=10.0.25.254
export CLIENT_VPN_IP=10.0.25.253
export SERVER_VPN_IF=tun25
export CLIENT_VPN_IF=tun25
export SERVER_WAN_IP=uf.galimberti.net
export CLIENT_WAN_IP=cs.galimberti.net
export SERVER_LISTEN_IP=uf.galimberti.net
export CLIENT_LISTEN_IP=cs.galimberti.net
export OVPN_PORT=25000
export OVPN_NAME=cs

Creare la chiave statica:

sudo mkdir -p /etc/openvpn/certs
cd /etc/openvpn/certs
sudo openvpn --genkey --secret $OVPN_NAME.key
sudo chmod o= $OVPN_NAME.key

Verificarla:

ls $OVPN_NAME.key
total 12
drwxr-xr-x    2 root     root         4096 Sep  6 16:46 .
drwxr-xr-x   53 root     root         4096 Sep  6 16:35 ..
-rw-------    1 root     root          636 Sep  6 16:46 static.key

sudo cat $OVPN_NAME.key
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
3777eeb99dff2557521c942ebcf58878
6c916f933ad37a43bcfd666f977a07ff
e25a317aef9a33850f3fe52bb9c12160
30784c6bba57054808b6881ec9162750
581de01677e991973470e7c7906e33b3
f1bb36288e2d829600c112ced5278cf0
2b339cc90e2a5383ea1c50457b2657c1
4b1081e6221eadba695529e823cf3eb7
e388986cb96317e70d1b0472a6a38585
4d7535a896a184126460700fb85fbf89
a8c5ea6d98c2fd78dda84f8d9fae6795
a8233df61259278f27fc82b133437097
eb7cdc112b8ea147439230039ebdbba3
b7438d162b6e5db992d97d3f8d1016dd
53f1b59513029de73e85b8eccd930c3d
51fc22c534aef5c6f96b210fdc11dbad
-----END OpenVPN Static key V1-----

Creare il seguente file di configurazione:

cat | sudo tee /etc/openvpn/$OVPN_NAME.conf  > /dev/null <<EOFile

dev $SERVER_VPN_IF
#usa il tun device

ifconfig $SERVER_VPN_IP $CLIENT_VPN_IP
# ifconfig virtual_local_ip virtual_remote_ip

route $CLIENT_LAN 255.255.255.0 $SERVER_VPN_IP

port $OVPN_PORT
# porta udp usata

verb 3
#livello di logging 1-9, per il debug, consigliato 5

local $SERVER_LISTEN_IP
# real_local_ip dell'interfaccia su cui ascolta openvpn. L'ip della Ethernet
# collegata la nat router che forwarda la porta udp, o l'eventuale ip pubblico

remote $CLIENT_WAN_IP

#user nobody
# for enhanced security
#group nogroup
# for enhanced security

secret /etc/openvpn/certs/$OVPN_NAME.key
#la chiave statica creata

tun-mtu 1500
#opzione di compatibilità con v 2.x
#tun-mtu-extra 32
#eventualmente aggiungere anche questa
#ATTENZIONE: devono coincidere su client e server.

daemon
#forka in background

# logging
status /var/log/openvpn/$OVPN_NAME-status.log
log-append  /var/log/openvpn/$OVPN_NAME.log
EOFile

Far partire la VPN:

sudo invoke-rc.d openvpn start $OVPN_NAME

Verificare la corretta configurazione dell'interfaccia tun:

ifconfig | grep -A1 $SERVER_VPN_IF
tun21     Link encap:UNSPEC  HWaddr 00-00-FF-FF-FF-FF-00-00-00-00-00-00-00-00-00-00
          inet addr:10.0.21.254  P-t-P:10.0.21.253  Mask:255.255.255.255
          inet addr:192.168.5.6  P-t-P:192.168.5.5  Mask:255.255.255.255

e del routing:

route -n | grep  $SERVER_VPN_IF
10.0.21.253     0.0.0.0         255.255.255.255 UH    0      0        0 tun21
192.168.21.0    10.0.21.254     255.255.255.0   UG    0      0        0 tun21


Aggiungere nel file di configurazione /etc/default/openvpn il nome $OVPN_NAME nella riga AUTOSTART:

AUTOSTART="roadwarriors como elma gsspa"

In questo modo verranno avviate solo le vpn specificate.

Configurazione Client

Procedere con l'installazione e l'esportazione delle variabili come dai punti precedenti.

export SERVER_LAN=192.168.0.0
export CLIENT_LAN=192.168.21.0
export SERVER_VPN_IP=10.0.21.254
export CLIENT_VPN_IP=10.0.21.253
export SERVER_VPN_IF=tun21
export CLIENT_VPN_IF=tun0
export SERVER_WAN_IP=217.141.88.34
export SERVER_LISTEN_IP=217.141.88.34
export CLIENT_LISTEN_IP=81.117.165.252
export OVPN_PORT=21000
export OVPN_NAME=gsspa

Copiare la chiave precedentemente generata sul server

cd /etc/openvpn
mkdir certs
cd certs
scp root@$SERVER_WAN_IP:/etc/openvpn/certs/$OVPN_NAME.key .

Creare il file di configurazione:

Creare il seguente file di configurazione:

cat | sudo tee /etc/openvpn/$OVPN_NAME.conf > /dev/null <<EOFile

dev $CLIENT_VPN_IF
#usa il tun device

ifconfig $CLIENT_VPN_IP $SERVER_VPN_IP
# ifconfig virtual_local_ip virtual_remote_ip

route $SERVER_LAN 255.255.255.0 $CLIENT_VPN_IP

port $OVPN_PORT
# porta udp usata

verb 3
#livello di logging 1-9, per il debug, consigliato 5

local $CLIENT_LISTEN_IP
# real_local_ip dell'interfaccia su cui ascolta openvpn. L'ip della Ethernet
# collegata la nat router che forwarda la porta udp, o l'eventuale ip pubblico

remote $SERVER_WAN_IP
# Indirizzi IP pubblico del server

#user nobody
# for enhanced security
#group nogroup
# for enhanced security

secret /etc/openvpn/certs/$OVPN_NAME.key
#la chiave statica creata

tun-mtu 1500
#opzione di compatibilità con v 2.x
#tun-mtu-extra 32
#eventualmente aggiungere anche questa
#ATTENZIONE: devono coincidere su client e server.

daemon
#forka in background

# logging
status /var/log/openvpn/$OVPN_NAME-status.log
log-append  /var/log/openvpn/$OVPN_NAME.log
EOFile

Avviando la VPN si collegheranno le due macchine e si potranno pingare le lan.

Configurazione Client Windows

Scaricare il client windows da http://www.nilings.se/openvpn/download.html

Installarlo

Copiare /etc/openvpn/static.key in C:\Programmi\OpenVPN\config

Creare il file di configiraione C:\Programmi\OpenVPN\config\nome_vpn.ovpn:

dev tun0
#uguale al server

ifconfig 192.168.5.5 192.168.5.6
# ifconfig virtual_local_ip virtual_remote_ip

route 192.168.1.0 255.255.255.0 192.168.5.6
# setta automaticamente la route alla connessione:
# route net_destination netmask gateway

port 12345
#stessa udp port del server

ip-win32 dynamic
# metodo di settaggio dell'ip
# se lo si vuole mettere in "manual", occorre settare la scheda di rete Tap come
# "always connected" e mettergli un ip statico

verb 1
# livello di debug

remote fire.mannesmann.it
# ip del server remoto

secret static.key
# chiave

tun-mtu 1500
# uguale a quella del server

ping 30
#tiene attivala connessione con un ping ogni 30 secondi

A questo punto lanciare Start/OpenVPN/OpenVPN GUI Nella Tray icon, fare tasto destro/Connetti nome_vpn, ed attendere il messaggio "Coonection established to nome_vpn"

Verificare lo stato tcp/ip con "ipconfig" e "route print".


---

VPN Client to Lan (Roadwarrior)

Installazione openssl e generaione certificati

Se non già installato, installare il pacchetto openssl, per la creazione dei certificati, od almento del file dei parametri Diffie helmann

apt-get install openssl

Creare i certificati con Xca, e copiarli nella stessa directory.

fire.leman.it.crt
fire.leman.it.pem
ca.fire.leman.it.crl
ca.fire.leman.it.crt

Creare le directory per i certificati ed i log:

mkdir -p /etc/openvpn/certs
chmod -R o= certs/
mkdir /var/log/openvpn

Creare il file Diffie Helmann:

openssl dhparam -out /etc/openvpn/certs/dh1024.pem 1024

Creazione file di configurazione

Customizzare i seguenti valori e settarli in una shell:

export LOCAL_NET=192.168.150
export LOCAL_IP=$LOCAL_NET.100
export NAMESERVER=$LOCAL_NET.100
export VPN_NET=10.0.150
export VPN_IP=$VPN_NET.254
export SERVERNAME=fire.leman.it
export PORT=40000
export DEVICE=tap0


Creare il file di configurazione dalla stessa shell precedente:

cd /etc/openvpn
cat > /etc/openvpn/roadwarriors.conf <<EOFile
# local networking settings
dev $DEVICE
port $PORT
local $LOCAL_IP

# vpn networking settings
mode server
client-to-client        #permette a due client vpn di vedersi
ifconfig $VPN_IP 255.255.255.0
ifconfig-pool $VPN_NET.1 $VPN_NET.253 255.255.255.0
push "route-gateway $VPN_NET.254"
push "route $LOCAL_NET.0 255.255.255.0"
push "dhcp-option DNS $NAMESERVER"
push "dhcp-option WINS $NAMESERVER"

# logging
status /var/log/openvpn-status.log
log-append  /var/log/openvpn.log
ifconfig-pool-persist /var/log/openvpn-ip.log
mute 3

# tewaks
comp-lzo
tun-mtu 1500
keepalive 10 120

#authentications
tls-server
dh /etc/openvpn/certs/dh1024.pem
ca /etc/openvpn/certs/ca.$SERVERNAME.crt
cert /etc/openvpn/certs/$SERVERNAME.crt
key /etc/openvpn/certs/$SERVERNAME.pem
crl-verify /etc/openvpn/certs/ca.$SERVERNAME.crl
EOFile

Verificare che parta openvpn:

/etc/init.d/openvpn start
Stopping virtual private network daemon:.
Starting virtual private network daemon: roadwarriors.

netstat -anp | grep openvpn
udp        0      0 192.168.150.100:40000   0.0.0.0:*                          3719/openvpn

Se non dovesse funzionare, vedere il log /var/log/openvpn.log


Configurazione Client Windows

Installare OpenVPN Gui

Creare il file di configurazione come da template e copiare file e cartella coi certificati sul client.

Assegnare lo user che usa OpenVPN al Gruppo

Newtork Configuration Operator

altrimenti openvpn si collega, ma non imposta il routing

Caso di server VPN NON default gateway

Se il server VPN NON è il default gateway della LAN, occorre impostare la route statica verso la netwok vpn sul router defualt gateway.

Nel caso di Eicon DIVA 2440:

-->LAN
LAN>ADD IP ROUTE 10.0.150.0 255.255.255.0 192.168.150.100
LAN>SAVE
LAN>EXIT

Controllare anche che l'IP Forwarding sia attivato sul server vpn Attivazione_ip_forward