Installazione OpenVPN su Debian: Difference between revisions
m sudo mods |
|||
| Line 122: | Line 122: | ||
<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 136: | ||
-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 163: | ||
<pre> | <pre> | ||
cat | cat | sudo tee /etc/openvpn/$OVPN_NAME.conf > /dev/null <<EOFile | ||
dev $SERVER_VPN_IF | dev $SERVER_VPN_IF | ||
| Line 209: | Line 210: | ||
Far partire la VPN: | Far partire la VPN: | ||
<pre> | <pre> | ||
/etc/init.d/openvpn start $OVPN_NAME | sudo /etc/init.d/openvpn start $OVPN_NAME | ||
</pre> | </pre> | ||
Revision as of 08:39, 12 March 2007
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 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=tun0
Gli indirizzi pubblici delle due macchine saranno:
export SERVER_WAN_IP=217.141.88.34 export CLIENT_WAN_IF=81.117.165.252
La VPN ascolterà sulle interfacce aventi i seguenti indirizzi:
export SERVER_LISTEN_IP=217.141.88.34 export CLIENT_LISTEN_IP=81.117.165.252
Nel caso le macchine abbiano indirizi privati, inserire quelli. Naturalemente 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 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 SERVER_LISTEN_IP=217.141.88.34 export CLIENT_LISTEN_IP=81.117.165.252 export OVPN_PORT=21000 export OVPN_NAME=gsspa
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 /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 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 > /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_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.
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