OpenVPN: feste IPs für Clients vergeben

Status
Für weitere Antworten geschlossen.

deadbabylon

Benutzer
Mitglied seit
24. Mrz 2017
Beiträge
24
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,

ich habe mir den VPNServer auf meiner Synology installiert und dort OpenVPN konfiguriert.
Wenn ich mich dann von verschiedenen Clients (PC, Android, Rapsberry PI) über meinen Nutzer ins VPN einlogge, sehe ich auch den Server und dessen Netzwerk dahinter, soweit also alles gut.
Allerdings würde ich auch gerne vom Servernetzwerk aus auf die Clients zugreifen können. Das geht aktuell nur über die IP (z.B. 10.8.0.6), die sich aber leider bei jedem Login ändern kann.

Meine Frage daher: Wie bringe ich dem OpenVPN-Server bei, einem jeweiligen Client eine feste IP zu vergeben?

Wenn ich verschiedene Howtos richtig verstanden habe, müsste ich auf dem Server ein sogenanntes "ccd"-Verzeichnis erstellen, in dem das anhand einer Datei mit dem "Common Name" eingetragen ist. Allerdings habe ich ja nur einen Nutzer auf der Diskstation freigegeben, womit das dann nicht funktionieren würde, oder? Und auf der Diskstation würde ich gerne vermeiden, weitere Nutzer anzulegen, da ich sonst mit dem Verzeichnis-/Dateirechten jonglieren müsste (es handelt sich in allen Fällen ja um mich selbst).
 
Zuletzt bearbeitet:

diver68

Benutzer
Mitglied seit
07. Nov 2012
Beiträge
401
Punkte für Reaktionen
16
Punkte
18
Schau mal in die server.conf auf der Syno:

Rich (BBCode):
# To assign specific IP addresses to specific
# clients or if a connecting client has a private
# subnet behind it that should also have VPN access,
# use the subdirectory "ccd" for client-specific
# configuration files (see man page for more info).

# EXAMPLE: Suppose the client
# having the certificate common name "Thelonious"
# also has a small subnet behind his connecting
# machine, such as 192.168.40.128/255.255.255.248.
# First, uncomment out these lines:
;client-config-dir ccd
;route 192.168.40.128 255.255.255.248
# Then create a file ccd/Thelonious with this line:
#   iroute 192.168.40.128 255.255.255.248
# This will allow Thelonious' private subnet to
# access the VPN.  This example will only work
# if you are routing, not bridging, i.e. you are
# using "dev tun" and "server" directives.

# EXAMPLE: Suppose you want to give
# Thelonious a fixed VPN IP address of 10.9.0.1.
# First uncomment out these lines:
;client-config-dir ccd
;route 10.9.0.0 255.255.255.252
# Then add this line to ccd/Thelonious:
#   ifconfig-push 10.9.0.1 10.9.0.2
 

deadbabylon

Benutzer
Mitglied seit
24. Mrz 2017
Beiträge
24
Punkte für Reaktionen
0
Punkte
0
Wenn ich das soweit richtig verstehe, ist der zu nutzende "Common Name" ja der Benutzername, oder?
Da ich mich aber mit demselben Nutzer (und somit denselben OpenVPN-Zugangsdaten) auf mehreren Geräten (auch gleichzeitig) anmelde, kann das ja nicht für meine Zweck funktionieren. Oder wie kann das System dabei entscheiden, dass der PI die IP 10.8.0.2 und das Handy 10.8.0.3 fix bekommt?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Wenn ich das soweit richtig verstehe, ist der zu nutzende "Common Name" ja der Benutzername, oder?
nein der Common Name ist der Hostname für den das Zertifikat ausgestellt wurde. Erstell für das Handy ein weiteres Zerifikat mit einem anderen Common Name. Dann kann der VPN Server das eindeutig unterscheiden auch wenn du zweimal mit demselben User angemeldet bist
 

deadbabylon

Benutzer
Mitglied seit
24. Mrz 2017
Beiträge
24
Punkte für Reaktionen
0
Punkte
0
Ah, vielen Dank, das klärt dann schon einmal ein Missverständnis meinerseits auf.
Wie gehe ich dafür dann am besten vor?

1. In Systemsteuerung->Sicherheit->Zertifkate ein neues Zertifikat erstellen
2. Dass dann dort exportieren.

Aber wie bringe ich dem VPN-Server bei, die Zertifikate zu nutzen?
Und wie muss dann die Client-Konfiguration aussehen?

Aktuell steht in /volume2/@appstore/VPNCenter/etc/openvpn/openvpn.conf übrigens:

client-cert-not-required
username-as-common-name
duplicate-cn


Irgendwie stehe ich da wohl etwas auf dem Schlauch :)
 

NasQ

Benutzer
Mitglied seit
08. Dez 2014
Beiträge
27
Punkte für Reaktionen
1
Punkte
0
Rich (BBCode):
client-cert-not-required // Sagt aus, dass der Client KEIN Zertifikat für die Authentifizierung braucht - eigentlich SCHLECHT
username-as-common-name // Ohne Zertifikat gibt es kein CommonName. Wird ein CN von OVPN benötigt wird stattdessen der Nutzername benutzt (DSM User)
duplicate-cn // Normalerweise darf nur EIN Client gleichzeitig mit dem selben CN aktiv sein. Das hebt dies auf. Jetzt kann der selbe CN/Username mehrfach connected sein

Irgendwo in der Config muss auch ein
Rich (BBCode):
auth-user-pass-verify
sein. Das verlangt vom Client eine Username/Password Kombination beim connecten. Dies wird dann durch ein Script das auf der Syno existiert mit der DSM Userverwaltung abgeglichen.

In deinem Fall werden also gar keine Zertifikate verwendet und du brauchst auch keine erstellen. Allerdings musst du für jeden separaten Client auf der DS auch nen separaten User anlegen. Denn durch username-as-common-name wird dein Username zum common name (CN)

Jetzt kannst du den Tipp von diver68 probieren. Wobei die Kommentare in der server config der Syno echt verirrend sind. Routen musst du nicht konfigurieren.
Hier findest du ein kurzes Tutorial: https://legacy.thomas-leister.de/openvpn-statische-ips-clients-vergeben/

Also brauchst du nur zur config hinzufügen:
client-config-dir ccd

Dann erstellst du das Verzeichnis ccd (als unterverzeichnis des Verzeichnisses, das die server.conf enthält)
Da erstellst du eine neue Datei mit dem common name als Namen.

Beispiel: Du heißt Hugo und dein DS Username ist auch Hugo. Dann muss die Datei Hugo heißen.
In diese Datei schreibst du jetzt den Inhalt
Rich (BBCode):
ifconfig-push 10.8.0.2 255.255.255.0
Wobei die IP natürlich von dir geändert werden sollte :p

Brauchst du ne andere IP auf deinem Handy erstell nen DSM Nutzer HugoHandy, gib ihm OVPN Privilegien in der VPN App und erstelle noch ne Datei HugoHandy mit der anderen IP Adresse.
 

MMD*

Gesperrt
Mitglied seit
26. Okt 2014
Beiträge
403
Punkte für Reaktionen
2
Punkte
24
Hallo,

Rich (BBCode):
ifconfig-push 10.8.0.2 255.255.255.0
Da wurde in ordnung sein fur topology subnet.

Soweit ich weis lauft es auf syno aber mit net30.
Dann muss es
Rich (BBCode):
ifconfig-push 10.8.0.6 10.8.0.5
sein.
Der server nimmt, .0 .1 .2 .3
Client 1, .4 .5 .6 .7
Client 2, .8 .9 .10 .11
usw.
 

deadbabylon

Benutzer
Mitglied seit
24. Mrz 2017
Beiträge
24
Punkte für Reaktionen
0
Punkte
0
Habs mal mit euren Hilfen probiert, leider variiert die IP damit immer noch.
Da ich mittlerweile schon durcheinanderkomme, was ich alles schon geändert habe, poste ich hier einfach mal die entsprechenden Configs. Vielleicht sieht ja jemand

/volume2/@appstore/VPNCenter/etc/openvpn/server.conf (ohne Kommentare mit #)
;local a.b.c.d

port 1194

;proto tcp
proto udp

;dev tap
dev tun

;dev-node MyTap

ca ca.crt
cert server.crt

dh dh2048.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

;learn-address ./script

;push "redirect-gateway def1 bypass-dhcp"

;push "dhcp-option DNS 208.67.222.222"
;push "dhcp-option DNS 208.67.220.220"

client-to-client

;duplicate-cn

keepalive 10 120



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

/volume2/@appstore/VPNCenter/etc/openvpn/openvpn.conf
dev tun

management 127.0.0.1 1195

server 10.8.0.0 255.255.255.0

push "route 10.8.0.0 255.255.255.0"

dh /var/packages/VPNCenter/target/etc/openvpn/keys/dh3072.pem
ca /var/packages/VPNCenter/target/etc/openvpn/keys/ca.crt
cert /var/packages/VPNCenter/target/etc/openvpn/keys/server.crt
key /var/packages/VPNCenter/target/etc/openvpn/keys/server.key

max-clients 5

comp-lzo

persist-tun
persist-key

verb 3

#log-append /var/log/openvpn.log

keepalive 10 60
reneg-sec 0

plugin /var/packages/VPNCenter/target/lib/radiusplugin.so /var/packages/VPNCenter/target/etc/openvpn/radiusplugin.cnf
client-cert-not-required
username-as-common-name
duplicate-cn

status /tmp/ovpn_status_2_result 30
status-version 2
proto udp6

/volume2/@appstore/VPNCenter/etc/openvpn/ccd/pi:
ifconfig-push 10.8.0.10 255.255.255.0


Client:
dev tun
tls-client

remote ADRESSE 1194

dhcp-option DNS 192.168.100.100

pull

proto udp

script-security 2


comp-lzo

reneg-sec 0

auth-user-pass /etc/openvpn/client/diskstation.credentials

<ca>
-----BEGIN CERTIFICATE-----
<gekürzt>
</ca>
 

NasQ

Benutzer
Mitglied seit
08. Dez 2014
Beiträge
27
Punkte für Reaktionen
1
Punkte
0
Versuch die Configs mal in /var/packages/VPNServer zu ändern.
Hatte damals auch Probleme mit nicht greifenden Configs, wenn ich sie direkt im Volume ändere
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat