huber-andreas
Goto Top

OPEN VPN vergibt immer nur eine IP

Hallo zusammen,

WIr haben uns vor kurzem über OPENVPN drüber gestürzt.
So weit läuft alles wie wir uns das vorgestellt haben. Anforderung hatten wir nur für einen Client, wo sich verschieder Benutzer anmelden.
Glöst haben wir das mit dem Befehl auth-user-pass-verify und dem TXT-File, wo Username und Passwort hinterlegt sind.

Jetzt benötigen wir einen 2. Client, der sich per VPN verbinden soll. Wir verwenden das gleiche Zertifikat wie bei Client1.
Jetzt ist es aber so, das jeder die IP 10.8.0.6 bekommt wenn er sich verbindet, also kappt er beim anderen Cient die Verbindung.

Kann ich das so konfigurieren, das ein gewisser User eine gewisse IP bekommt?

Hier wäre unsere server.ovpn:
port 1194
proto udp
dev tun
;dev-node MyTap
ca ca.crt
cert SERVER.crt
key SERVER.key  # This file should be kept secret

dh dh1024.pem

;topology subnet

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100

;server-bridge

;push "route 192.168.10.0 255.255.255.0"  
;push "route 192.168.20.0 255.255.255.0"  

;client-config-dir ccd
;route 192.168.40.128 255.255.255.248

;client-config-dir ccd
;route 10.9.0.0 255.255.255.252


;learn-address ./script

;push "redirect-gateway def1 bypass-dhcp"  
;push "dhcp-option DNS 213.33.99.70"  
;push "dhcp-option DNS 208.67.220.220"  

;client-to-client

;duplicate-cn

keepalive 2 1200
;tls-auth ta.key 0 # This file is secret

;cipher BF-CBC        # Blowfish (default)
;cipher AES-128-CBC   # AES
;cipher DES-EDE3-CBC  # Triple-DES

comp-lzo

;max-clients 100

;user nobody
;group nobody

persist-key
persist-tun

status openvpn-status.log

;log         openvpn.log
;log-append  openvpn.log

verb 3

;mute 20

script-security 3 system
auth-user-pass-verify C:\\Programme\\OpenVPN\\config\\auth.bat via-env
Vieleicht kann mir jemand helfen und mir im alten Jahr noch zu ein - zwei Tage Urlaub verhelfen. face-wink
Kommentar vom Moderator Dani am Dec 29, 2014 um 14:30:59 Uhr
Formatierung hinzugefügt.

Content-Key: 258607

Url: https://administrator.de/contentid/258607

Printed on: April 26, 2024 at 07:04 o'clock

Member: colinardo
Solution colinardo Dec 29, 2014, updated at Dec 30, 2014 at 07:25:55 (UTC)
Goto Top
Hallo huber-andreas,
für dieses Szenario (mehrere User benutzen ein und das selbe Zertifikat mit dem selben common name) füge folgende Zeile zu den Server Optionen hinzu (in deinem Script von oben einfach in Zeile 39 das Kommentar entfernen):
duplicate-cn
Wenn ein Client sich mehrmals mit demselben Common Name anmeldet wird eine vorhandene Verbindung getrennt. Durch die Verwendung von der Server-Option duplicate-cn kann dies verhindert werden.

p.s. ein neuer User mit anderem Zertifikat wäre aber zu bevorzugen.

Grüße Uwe
Member: aqui
aqui Dec 29, 2014 updated at 15:41:04 (UTC)
Goto Top
Ansonsten findest du hier alles was fürs Setup wichtig ist:
OpenVPN Server installieren auf pfSense Firewall, Mikrotik. DD-WRT oder GL.inet Router

Wie man dem Client statische IPs mitgibt kannst du hier nachlesen:
https://community.openvpn.net/openvpn/wiki/Concepts-Addressing
oder hier nochmal in Deutsch:
https://thomas-leister.de/internet/openvpn-statische-ips-clients-vergebe ...
Member: huber-andreas
huber-andreas Dec 29, 2014 at 15:40:52 (UTC)
Goto Top
Hallo Uwe,

Danke für die Info, genau das wars. Jetzt bekommt der 2. Client eine andere IP.
Wo liegt der Vorteil wenn ich für einen neuen User ein neues Zertifikat erstelle?

Das wäre bei mehreren Usern ein ziemlicher Aufwand.
Was ist, wenn man einen Mitarbeiter auf den privaten PC den Zugang einrichtet, und der dann das Unternehmen verlässt.
Da hat man ja keinen Zugriff mehr auf den Client PC.

Setze es aber trotzdem mal auf gelöst. Danke dir. Jetzt habe ich Urlaub face-wink
Member: colinardo
colinardo Dec 29, 2014 updated at 17:27:30 (UTC)
Goto Top
Wo liegt der Vorteil wenn ich für einen neuen User ein neues Zertifikat erstelle?
Wenn einer deiner Clients mal abhanden kommt oder gestohlen wird, musst du bei individuellen Zertifikaten nicht gleich alle Clients die das selbe Zertifikat verwenden, erneuern face-wink

Das wäre bei mehreren Usern ein ziemlicher Aufwand.
Wieso ? Ist doch schnell erledigt ...lässt sich ja alles scripten.

Grüße Uwe
Member: aqui
aqui Dec 29, 2014 at 15:43:35 (UTC)
Goto Top
Jeder kann das Zertifikat fröhlich kopieren. Das ist so wenn du jedem beliebigen das Passwort verrätst. Eigentlich ist sowas ein NoGo für eine VPN Verbindung wenn man die sicher gestalten will.
Außerdem hat es den Nachteil das sollte das Zertifikat einmal kompromitiert sein oder kündigt der Kollege z.B. du es für ALLE austauschen musst. Pro User dann eben nur für den einen User ungültig machen.
Kommt man eigentlich auch von selber drauf... face-wink
Member: huber-andreas
huber-andreas Dec 30, 2014 at 06:48:49 (UTC)
Goto Top
Ist mir klar, dafür habe ich ja die User und Passwort abfrage:

auth-user-pass-verify C:\\Programme\\OpenVPN\\config\\auth.bat via-env


Kann man doch gleich stellen oder?
Member: aqui
aqui Dec 30, 2014 at 09:35:58 (UTC)
Goto Top
Kann aber sollte man aus Sicherheitsgründen niemals machen ! Das dann ein VPN in Sekundenschnelle kompromitiert werden kann leigt auf der Hand.
Die Frage ist WAS du schützen willst mit dem VPN. Wenn das die Kinderbilder für Oma Grete sind sicher kein Thema. Ist das ein Firmennetz ein absolutes NoGo !
Deine eigene Sicherheitspolicy sollte den Sicherheitsanspruch definieren !
Member: huber-andreas
huber-andreas Dec 31, 2014 at 04:31:37 (UTC)
Goto Top
Danke euch beiden und Guten Rutsch in neue Jahr 2015.

LG Andreas
Member: huber-andreas
huber-andreas Feb 06, 2015 at 12:55:13 (UTC)
Goto Top
Hallo Uwe,

jetzt muß ich dich nochmals kontaktieren.

Ich habe mir die Version openvpn-install-2.3.6-I601-x86_64.exe installiert.
jetzt schaut es aus, als würde das starten eines Batchfiles verhindert.

Beim Server habe ich folgendes im config:

script-security 3 system
auth-user-pass-verify C:\\Programme\\OpenVPN\\config\\auth.bat via-env


Im Serverlog bekomme ich folgende Fehlermeldung:
WARNING: Failed running command (--auth-user-pass-verify): returned error code 1

greift bei dieser Version das "script-security 3 system" nicht mehr?

Danke schon mal für deine Mühe.
Member: colinardo
colinardo Feb 06, 2015 updated at 17:09:39 (UTC)
Goto Top
Hallo Andreas,
Zitat von @huber-andreas:
greift bei dieser Version das "script-security 3 system" nicht mehr?
einmal kurz in die Doku zur Version 2.3 geschaut, und folgendes gelesen ...
OpenVPN releases before v2.3 also supported a method flag which indicated how OpenVPN should call external commands and scripts. This could be either execve or system. As of OpenVPN v2.3, this flag is no longer accepted. In most *nix environments the execve() approach has been used without any issues.

To run scripts in Windows in earlier OpenVPN versions you needed to either add a full path to the script interpreter which can parse the script or use the system flag to run these scripts. As of OpenVPN v2.3 it is now a strict requirement to have full path to the script interpreter when running non-executables files. This is not needed for executable files, such as .exe, .com, .bat or .cmd files. For example, if you have a Visual Basic script, you must use this syntax now:

--up 'C:\\Windows\\System32\\wscript.exe C:\\Program\ Files\\OpenVPN\\config\\my-up-script.vbs'

Please note the single quote marks and the escaping of the backslashes (\) and the space character.

The reason the support for the system flag was removed is due to the security implications with shell expansions when executing scripts via the system() call. 
Und den OpenVPN-Dienst natürlich mit elevated Rights starten lassen, das sollte klar sein.

Grüße Uwe
Member: huber-andreas
huber-andreas Feb 07, 2015 at 06:34:35 (UTC)
Goto Top
Guten Morgen Uwe,

Das habe ich auch noch gefunden gestern, aber ich bring es einfach nicht zum laufen.

Der VPN Tunnerl funktioniert wenn ich auth-user-pass-verify auskomentiere.

Das Serverconfigfile habe jetzt mit mehreren Varianten probiert, zB:

auth-user-pass-verify 'c:\\Windows\\System32\\cmd.exe C:\\Program\ Files\\OpenVPN\\config\\auth.bat' via-env

auth-user-pass-verify 'c:\\Windows\\System32\\cmd.exe C:\\Program Files\\OpenVPN\\config\\auth.bat' via-env
auth-user-pass-verify 'c:\\Windows\\System32\\cmd.exe "C:\\Program Files\\OpenVPN\\config\\auth.bat"' via-env
auth-user-pass-verify 'c:\\Windows\\System32\\cmd.exe %ProgramFiles%\\OpenVPN\\config\\auth.bat' via-env


Im Logfile steht beim SErver in der letzten Zeile:
Sat Feb 07 07:26:37 2015 91.118.128.101:53748 env_block: add PATH=C:\Windows\System32;C:\WINDOWS;C:\WINDOWS\System32\Wbem


Ich bin schon etwas konfigrationsblind und sehe vor lauter Bäume den Wald nicht mehr.
Wo habe ich den Fehler?

Danke Dir
Member: colinardo
colinardo Feb 07, 2015 updated at 08:25:51 (UTC)
Goto Top
Noch ein Grund es jetzt anzugehen und es mit personifizierten Zertifikaten abzufackeln und eine gescheite Linux-Kiste hinzustellen. Ein OpenVPN-Server unter Windows ist ein Graus ...
Member: aqui
aqui Feb 07, 2015 at 17:20:06 (UTC)
Goto Top