Openvpn SNOM: Unterschied zwischen den Versionen

Aus metasec wiki
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „Snom bietet eine alternative Firmware für ihre Telefone an, die openVPN Verbindungen ermöglicht. Hiermit kann sich das Telefon in ein VPN einwählen und über d…“)
 
Zeile 1: Zeile 1:
 +
--[[Benutzer:Aq|Aq]] 12:28, 10. Jan. 2011 (UTC)
 +
 
Snom bietet eine alternative Firmware für ihre Telefone an, die openVPN Verbindungen ermöglicht.
 
Snom bietet eine alternative Firmware für ihre Telefone an, die openVPN Verbindungen ermöglicht.
 
Hiermit kann sich das Telefon in ein VPN einwählen und über diese Tunnel ein Verbindung zum entsprechenden Server aufbauen.
 
Hiermit kann sich das Telefon in ein VPN einwählen und über diese Tunnel ein Verbindung zum entsprechenden Server aufbauen.
Zeile 58: Zeile 60:
  
 
=== Server Konfig ===
 
=== Server Konfig ===
 +
 +
Im Prinzip kann eine klassische openVPN Server Konfig genommen werden.
 +
Zu beachten ist, das lzo-compression deaktiviert ist und das Netzwerk, welches den VoIP Server beherbergt gepusht wird.
 +
 +
port 1198
 +
<br>
 +
proto tcp
 +
;proto udp
 +
<br>
 +
;dev tap
 +
dev tun
 +
<br>
 +
ca /etc/openvpn/Server/ca.crt
 +
cert /etc/openvpn/Server/server.crt
 +
key /etc/openvpn/Server/server.key  # This file should be kept secret
 +
dh dh1024.pem
 +
<br>
 +
server 10.8.123.0 255.255.255.0
 +
ifconfig-pool-persist ipp.txt
 +
push "route 192.168.44.0 255.255.255.0"
 +
  ;push "route 192.168.20.0 255.255.255.0"
 +
  ;push "redirect-gateway"
 +
  ;push "dhcp-option DNS 10.8.0.1"
 +
  ;push "dhcp-option WINS 10.8.0.1"
 +
client-to-client
 +
keepalive 10 120
 +
<br>
 +
#comp-lzo
 +
<br>
 +
;max-clients 100
 +
;user nobody
 +
;group nogroup
 +
persist-key
 +
persist-tun
 +
status openvpn-status.log
 +
;log        openvpn.log
 +
;log-append  openvpn.log
 +
verb 2
 +
;mute 20
 +
 +
=== Client Konfiguration ===
 +
 +
Dies ist der etwas komplizierte Part.
 +
Die Konfiguation muss eine exakte Struktur aufweisen.
 +
Anschliessend muss die Konfiguration zusammen mit den Zertifikaten in ein tar Archiv gepackt werden und auf einem http(s) Server bereitgestellt werden.<br>
 +
'''Die Konfiguration muss den Namen vpn.cnf habe!!'''<br>
 +
'''Der Pfad der Zertifikate auf dem Telefon ist /openvpn (Angabe im Konfig File)!!!'''<br>
 +
 +
client
 +
dev tun
 +
<br>
 +
#  (TCP(UDP(RTP))) :)
 +
;proto udp
 +
proto tcp
 +
remote 80.153.181.30 1198
 +
<br>
 +
resolv-retry infinite
 +
nobind
 +
persist-key
 +
persist-tun
 +
<br>
 +
ca /openvpn/ca.crt
 +
cert /openvpn/client.crt
 +
key /openvpn/client.key
 +
<br>
 +
ns-cert-type server
 +
<br>
 +
#comp-lzo
 +
<br>
 +
# Set log file verbosity.
 +
verb 0
 +
;mute 20
 +
ping 10
 +
ping-restart 60
 +
 +
Diese Konfig legt man in ein Verzeichniss, in dem auch ca.crt, client.crt und client.key liegen und erzeugt den tarball:
 +
cd /in/das/Verzeichniss
 +
chown -R root:root *
 +
chmod -R 700 *
 +
tar cvpf vpnclient.tar *
 +
 +
Dieses Archiv legt man nun auf einen http(s) Server.
 +
Anmerkungen:
 +
* Client Konfig MUSS vpn.cnf heissen
 +
* Zertifikate können beliebig heissen, aber in der Konfig muss /openvpn/$ZERT angegeben sein
 +
* Der Tarball darf nur Dateien ohne Verzeichnissstruktur entahlen.
 +
* comp-lzo MUSS deaktiviert sein
 +
* tcp verlangsamt die Verbindung tcp(udp(rdp)), aber umgeht NAT Problematik.
 +
 +
=== Telefon einrichten ===
 +
 +
Im Webinterface wechselt man auf "Advanced->QoS/Security" und aktiviert VPN.
 +
Ein Neustart ist nötig!
 +
Nun kann man die Adresse des tarballs auf dem http Server angeben und erneut speichern und rebooten.
 +
Sind alle KOnfigurationen korrekt, so erscheint nach erfolgreichem Boot im Display des Snom rechts unten ein VPN Symbol.

Version vom 10. Januar 2011, 14:28 Uhr

--Aq 12:28, 10. Jan. 2011 (UTC)

Snom bietet eine alternative Firmware für ihre Telefone an, die openVPN Verbindungen ermöglicht. Hiermit kann sich das Telefon in ein VPN einwählen und über diese Tunnel ein Verbindung zum entsprechenden Server aufbauen.

Vorteile sind:

  • Nur ein Port muss nach außen geöffnet werden
  • Tunnel komplett verschlüsselt

Firmware

Die entsprechende Firmware basiert auf einer offiziellen 7er Firmware.

Zum flashen des Telefons kopiert man diesen Link FIRMWARE und fügt ihn im Web Interface des Telefons auf der "Software Update" Seite ein. Anschliessend muss man mit "Load" bestätigen und die Firmware wird geladen.

(Alternativ existiert auch schon eine vpn Firmware, die auf der 8er Firmware basiert. Diese wurde von uns aber noch nicht ausreichend getestet)

openVPN

Das Herz bildet ein openVPN Server im lokalen Netzwerk. Zunächst sollte, wenn noch nicht vorhanden eine PKI aufgebaut werden. Folgende Beisiele basieren auf easy-rsa 2.0, welches mit openvpn mitgeliefert wird.

CA erstellen

Wechsel in das easy-rsa Verzeichniss, editieren der Datei "vars", und generieren der CA Zertifikate.

cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/
vi vars
source ./vars
./clean-all
./build-ca

Die Datei vars sollte entsprechend der eigenen Bedürfnisse editiert werden. Veränderungen müssen an den unteren EInträgen vorgenommen werden.

# These are the default values for fields
# which will be placed in the certificate.
# Don't leave any of these fields blank.
export KEY_COUNTRY="DE"
export KEY_PROVINCE="NRW"
export KEY_CITY="Witten"
export KEY_ORG="Metasec"
export KEY_EMAIL="admin@metasec.de"

Zertifikate erstellen

Neben dem CA Zertifikat muss nun ein Zertifikat für den Server und für jeden CLienten (Snom Telefon) erstellt werden. Zunächst wird erneut die vars editiert, gesourcet und anschliessend das Zertifikat erzeugt.

vi vars
source ./vars
./build-key-server $SERVER
./build-key $CLIENT

Alle Zertifikate werden im Unterverzeichniss keys gespeichert.

Möchte man ALLES rückgängig machen reicht ein ./clean-all aus. Dies löscht alle Zertifikate (CA, Server, Client) sowie alle Listen.

Für den Server werden noch Diffie-Hellmann Parameter benötigt:

./build-dh

Server Konfig

Im Prinzip kann eine klassische openVPN Server Konfig genommen werden. Zu beachten ist, das lzo-compression deaktiviert ist und das Netzwerk, welches den VoIP Server beherbergt gepusht wird.

port 1198

proto tcp ;proto udp
;dev tap dev tun
ca /etc/openvpn/Server/ca.crt cert /etc/openvpn/Server/server.crt key /etc/openvpn/Server/server.key # This file should be kept secret dh dh1024.pem
server 10.8.123.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "route 192.168.44.0 255.255.255.0"  ;push "route 192.168.20.0 255.255.255.0"  ;push "redirect-gateway"  ;push "dhcp-option DNS 10.8.0.1"  ;push "dhcp-option WINS 10.8.0.1" client-to-client keepalive 10 120
#comp-lzo
;max-clients 100 ;user nobody ;group nogroup persist-key persist-tun status openvpn-status.log ;log openvpn.log ;log-append openvpn.log verb 2 ;mute 20

Client Konfiguration

Dies ist der etwas komplizierte Part. Die Konfiguation muss eine exakte Struktur aufweisen. Anschliessend muss die Konfiguration zusammen mit den Zertifikaten in ein tar Archiv gepackt werden und auf einem http(s) Server bereitgestellt werden.
Die Konfiguration muss den Namen vpn.cnf habe!!
Der Pfad der Zertifikate auf dem Telefon ist /openvpn (Angabe im Konfig File)!!!

client
dev tun

# (TCP(UDP(RTP))) :) ;proto udp proto tcp remote 80.153.181.30 1198
resolv-retry infinite nobind persist-key persist-tun
ca /openvpn/ca.crt cert /openvpn/client.crt key /openvpn/client.key
ns-cert-type server
#comp-lzo
# Set log file verbosity. verb 0 ;mute 20 ping 10 ping-restart 60

Diese Konfig legt man in ein Verzeichniss, in dem auch ca.crt, client.crt und client.key liegen und erzeugt den tarball:

cd /in/das/Verzeichniss
chown -R root:root *
chmod -R 700 *
tar cvpf vpnclient.tar *

Dieses Archiv legt man nun auf einen http(s) Server. Anmerkungen:

  • Client Konfig MUSS vpn.cnf heissen
  • Zertifikate können beliebig heissen, aber in der Konfig muss /openvpn/$ZERT angegeben sein
  • Der Tarball darf nur Dateien ohne Verzeichnissstruktur entahlen.
  • comp-lzo MUSS deaktiviert sein
  • tcp verlangsamt die Verbindung tcp(udp(rdp)), aber umgeht NAT Problematik.

Telefon einrichten

Im Webinterface wechselt man auf "Advanced->QoS/Security" und aktiviert VPN. Ein Neustart ist nötig! Nun kann man die Adresse des tarballs auf dem http Server angeben und erneut speichern und rebooten. Sind alle KOnfigurationen korrekt, so erscheint nach erfolgreichem Boot im Display des Snom rechts unten ein VPN Symbol.