Autor: F4RR3LL|sven
Email: sven.richter@nixhelp.de
Stand: 18.08.2009
System: Debian ETCH 4.0 + ff
Anhand dieser Anleitung wird OpenVPN auf Debian installiert
aptitude install openvpn openssl udev
Hier installieren wir nun OpenVPN, OpenSSL falls noch nicht schon angelegt und das benötigte udev welches uns die TAP Schnittstelle für OpenVPN zur Verfügung stellt.
Wir beginnen mit dem Server. Hier müssen wir die Zertifikate für die spätere TLS Verbindung zu den Clients erstellen.
cp -R /usr/share/doc/openvpn/examples/easy-rsa /etc/openvpn/ cd /etc/openvpn/easy-rsa/2.0
nano vars
(hier könnt ihr eure Daten anpassen) anschließend speichern mit strg +o und dann schließen mit strg +x
source ./vars ./clean-all ./build-ca
Keys für den Server erstellen
./build-key-server server
Keys für den Clienten erstellen
./build-key client1
Zu guter letzt noch Diffie Hellman parameter erstellen
./build-dh
Hier treffen wir auf unser neues IP und Subnetz. Wir verwenden das Netz 172.16.0.0 255.255.0.0. Das 172.16er Netz gilt nach Internationalem Standard als Internes Netzwerk und wir kommen somit nicht mit IP's in Konflikt.
Hierzu unten stehende Config unter /etc/openvpn/server.conf speichern.
(Aufgrund aktueller Ereignisse: cat ist ein eigenständiger Befehl. Das Untere einfach copy paste in die Console copieren und nicht via nano vi vim joe o.ä. einfügen)
cat > /etc/openvpn/server.conf << "EOF" # Port port 1194 # TCP oder UDP? #proto tcp-server proto udp mode server tls-server dev tap #Unser VPN Interface des Servers ifconfig 172.16.17.1 255.255.0.0 #Adressbereich unserer Clients ifconfig-pool 172.16.17.2 172.16.17.254 #Paketgroesse festlegen #tun-mtu 1492 #fragment 1300 #mssfix #Pfade zu den Zertifikaten ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt cert /etc/openvpn/easy-rsa/2.0/keys/server.crt key /etc/openvpn/easy-rsa/2.0/keys/server.key #Clients können miteinander kommunizieren #client-to-client #Diffie-Hellmann Parameters dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem #Mithilfe dieses Parameters erhalten wir soweit möglich immer die gleiche IP Adresse vom VPN Server ifconfig-pool-persist ipp.txt #Wer in ein internes Netzwerk weiter routen möchte muss das hier mit dem entsprechenden Bereich eintragen! #push "route 192.168.0.0 255.255.255.0" #Teste die Aktivität anhand eines Pings (wait=120sec) keepalive 10 120 #Authenication auth SHA1 #Our encryption algorithm #cipher aes-256-ecb #openvpn --show-ciphers for testing #comp comp-lzo #Sets new rights after the connection user nobody group nogroup #We need this because of user nobody/group nobody. persist-key persist-tun #Logging 0, (testing:5) verb 3 EOF
Unter Win muss dieser Teil hier ohne # drin stehen, für Win User also nicht vergessen das anzupassen
#Paketgroesse festlegen tun-mtu 1492 fragment 1300 mssfix
Wir starten den Server zum Test manuell. Wenn unten stehende Ausgabe erscheint ist alles in Ordnung. Wenn nicht nochmal die Zertifikate prüfen.
cd /etc/openvpn&& openvpn --config server.conf
OpenVPN 2.0 i386-pc-linux [SSL] [LZO] built on Jun 20 2008 Diffie-Hellman initialized with 1024 bit key WARNING: file 'certs/serverkey.pem' is group or others accessible TLS-Auth MTU parms [ L:1568 D:140 EF:40 EB:0 ET:0 EL:0 ] TUN/TAP device tap0 opened /sbin/ifconfig tap0 172.16.17.1 netmask 255.255.0.0 mtu 1492 broadcast 10.0.0.255 Data Channel MTU parms [ L:1568 D:1450 EF:44 EB:23 ET:32 EL:0 AF:3/1 ] GID set to nogroup UID set to nobody Listening for incoming TCP connection on [undef]:21 TCPv4_SERVER link local (bound): [undef]:21 TCPv4_SERVER link remote: [undef] MULTI: multi_init called, r=256 v=256 IFCONFIG POOL: base=172.16.17.2 size=253 IFCONFIG POOL LIST Home,172.16.17.2 MULTI: TCP INIT maxclients=1024 maxevents=1028 Initialization Sequence Completed
Wir brechen diesen Test mit Control C wieder ab und starten OpenVPN normal.
/etc/init.d/openvpn restart
Den korrekten Start sehen wir mit [OK] bestätigt und können über ifconfig auf der console an unserem Server prüfen ob das TAP Device angelegt worden ist.
Wir müssen nun noch die Files:
client1.key
client1.crt
ca.crt
mit einer sicheren Verbindung wie WinSCP etc. zu unserem Client PC übertragen.
Die Files werden unter C - Programme - openvpn - config gespeichert.
Als letztes fehlt uns nur noch die Config für unseren Client:
Diese config muss ebenfalls in den config Ordner unseres OpenVPN Ordners und muss den Namen „client.ovpn“ tragen.
client float dev tap #MTU #tun-mtu 1492 #fragment 1300 #mssfix #device name, unter linux nicht mehr auskommentieren (# löschen) #dev-node vsn-device #tcp oder udp proto udp #Server IP remote $UNSERE-SERVER-IP 1194 #force authentication #WICHTIG: hier den COMMON Name vom Server Zertifikat nehmen! tls-remote server ca ca.crt cert client1.crt key client1.key auth SHA1 #cipher aes-256-cbc nobind comp-lzo persist-key persist-tun verb 0
Wenn die Config und unsere Files richtig und sicher übertragen worden sind haben wir nach einem Neustart des Clientpcs eine neue Netzwerkschnittstelle mit einer IP 172.16.17.XXX .
Ob die Verbindung erfolgreich ist können wir anhand eines Pings feststellen:
ping 172.16.17.1 PING 172.16.17.1 (172.16.17.1): 56 data bytes 64 bytes from 172.16.17.1: icmp_seq=0 ttl=128 time=23.2 ms 64 bytes from 172.16.17.1: icmp_seq=1 ttl=128 time=22.4 ms --- 172.16.17.1 ping statistics --- 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max = 2.4/2.8/3.2 ms
Wenn der Ping funktioniert steht unsere VPN Verbindung.
Boote den Rechner im Abgesicherten Modus ( Neustart und beim Starten == F8 == drücken ).
Führe die ProgramFiles/OpenVPN/bin/addtap.bat aus. Anschließend neu starten. Nun sollte es auch mit 64 bit Vista laufen.
Viel Spaß mit eurem VPN Server
Zurück zum Index