Installazione OpenVPN su Debian

From RVM Wiki
Revision as of 13:14, 19 October 2005 by Gabriele.vivinetto (talk | contribs)
Jump to navigation Jump to search

Configurazione Server Linux

Installare il pacchetto:

apt-get install openvpn

Creare il device di rete:

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>                                                  ?
 ?                                                                           ?
 ?????????????????????????????????????????????????????????????????????????????

Rispondere "si"

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>                                                  ?
 ?                                                                           ?
 ?????????????????????????????????????????????????????????????????????????????

Creare il certificato DH:

cd /etc/openvpn
mkdir certs
cd certs
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=tun0

Le interfaccia che si connettono ad internet hanno indirizzi:

export SERVER_WAN_IP=217.141.88.34
export CLIENT_WAN_IF=192.168.21.129

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 gsspa
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 CLIENT_WAN_IP=81.117.165.252
export OVPN_PORT=21000
export OVPN_NAME=gsspa

Creare la chiave statica:

cd /etc/openvpn/certs
openvpn --genkey --secret $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

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 > /etc/openvpn/$OVPN_NAME.conf <<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_VPN_IF_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:

/etc/init.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 CLIENT_WAN_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 > /etc/openvpn/$OVPN_NAME.conf <<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_WAN_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


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)

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

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.

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