tp-alex
Goto Top

OpenVPN feste ClientIP

Hallo,

ich hatte vor kurzem ein Problem, das ich dank Eurer Hilfe lösen konnte. Leider gibt es jetzt ein neues.

Ich vergebe bei OpenVPN feste IP-Adressen an die Clients. Das mache ich mit "ifconfig-push clientip serverip"

Windows ist leider am schimpfen, dass die beiden IPs nicht im selben Netz liegen. Ich habe die Adressen dann ins selbe Netz gelegt und dann war das Problem, dass die nicht im selben /30 waren.
Sagen wir mal ich habe ein 8.8.8.192/27 (Netz ist fiktiv) und möchte 25 Clients damit versorgen. Ich kann ja nicht jede 2. IP für den Server reservieren. Bei Linux kommt zwar eine Informationswarung, es funktioniert aber dennoch.

Ich schreibe meine Fragen mal direkt hinter die für mich komischen Einträge und makiere die mit !!!###
Alle Zeilen die mit !!!### beginnen sind in den Dateien/Ausgaben nicht vorhanden.

Verbindungsaufbau von einen Linuxsystem aus

root@julex-linux:~# openvpn client.ovpn
Sun Dec 13 16:12:27 2015 OpenVPN 2.2.1 x86_64-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] [eurephia] [MH] [PF_INET6] [IPv6 payload 20110424-2 (2.2RC2)] built on Dec 1 2014
Sun Dec 13 16:12:27 2015 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Sun Dec 13 16:12:27 2015 WARNING: file 'dolex.key' is group or others accessible
!!!### Woher kommt diese Warnung?
Sun Dec 13 16:12:27 2015 LZO compression initialized
Sun Dec 13 16:12:27 2015 Control Channel MTU parms [ L:1544 D:140 EF:40 EB:0 ET:0 EL:0 ]
Sun Dec 13 16:12:27 2015 Socket Buffers: R=[87380->131072] S=[16384->131072]
Sun Dec 13 16:12:27 2015 Data Channel MTU parms [ L:1544 D:1450 EF:44 EB:135 ET:0 EL:0 AF:3/1 ]
Sun Dec 13 16:12:27 2015 Local Options hash (VER=V4): '69109d17'
Sun Dec 13 16:12:27 2015 Expected Remote Options hash (VER=V4): 'c0103fa8'
Sun Dec 13 16:12:27 2015 Attempting to establish TCP connection with [AF_INET]17.17.17.62:1194 [nonblock]
Sun Dec 13 16:12:28 2015 TCP connection established with [AF_INET]17.17.17.62:1194
Sun Dec 13 16:12:28 2015 TCPv4_CLIENT link local: [undef]
Sun Dec 13 16:12:28 2015 TCPv4_CLIENT link remote: [AF_INET]17.17.17.62:1194
Sun Dec 13 16:12:28 2015 TLS: Initial packet from [AF_INET]17.17.17.62:1194, sid=cec2f3b3 57e62f1d
Sun Dec 13 16:12:28 2015 VERIFY OK: depth=1, /C=DE/ST=LAND/L=City/O=Oichs/OU=xxx/CN=xxx.de/name=EasyRSA/emailAddress=webmaster@xxx.de
Sun Dec 13 16:12:28 2015 VERIFY OK: nsCertType=SERVER
Sun Dec 13 16:12:28 2015 VERIFY OK: depth=0, /C=DE/ST=NRW/L=City/O=Oichs/OU=MyOrganizationalUnit/CN=vpn.xxx.de/name=EasyRSA/emailAddress=webmaster@xxx.de
Sun Dec 13 16:12:29 2015 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Sun Dec 13 16:12:29 2015 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Sun Dec 13 16:12:29 2015 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Sun Dec 13 16:12:29 2015 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Sun Dec 13 16:12:29 2015 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA
Sun Dec 13 16:12:29 2015 [vpn.xxx.de] Peer Connection Initiated with [AF_INET]17.17.17.62:1194
Sun Dec 13 16:12:31 2015 SENT CONTROL [vpn.xxx.de]: 'PUSH_REQUEST' (status=1)
Sun Dec 13 16:12:31 2015 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway,route 0.0.0.0 0.0.0.0,dhcp-option DNS 8.8.8.8,dhcp-option WINS 8.8.8.8,route 25.25.25.192 255.255.255.224,topology net30,ping 10,ping-restart 120,ifconfig 25.25.25.222 25.25.25.193'
!!!### Statt der 25.25.25.193 würde ich lieber die 17.17.17.62 nehmen. Dann gibt es aber noch mehr Probleme.
!!!### Windows will immer, dass die 25.25.25.222 und 25.25.25.193 aus einem /30 kommen.
!!!###Liegt das an dem "topology net30" und wenn ja woher kommt das?
Sun Dec 13 16:12:31 2015 OPTIONS IMPORT: timers and/or timeouts modified
Sun Dec 13 16:12:31 2015 OPTIONS IMPORT: --ifconfig/up options modified
Sun Dec 13 16:12:31 2015 OPTIONS IMPORT: route options modified
Sun Dec 13 16:12:31 2015 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Sun Dec 13 16:12:31 2015 ROUTE default_gateway=192.168.178.1
Sun Dec 13 16:12:31 2015 TUN/TAP device tun0 opened
Sun Dec 13 16:12:31 2015 TUN/TAP TX queue length set to 100
Sun Dec 13 16:12:31 2015 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Sun Dec 13 16:12:31 2015 /sbin/ifconfig tun0 25.25.25.222 pointopoint 25.25.25.193 mtu 1500
Sun Dec 13 16:12:31 2015 /sbin/route add -net 17.17.17.62 netmask 255.255.255.255 gw 192.168.178.1
Sun Dec 13 16:12:31 2015 /sbin/route del -net 0.0.0.0 netmask 0.0.0.0
Sun Dec 13 16:12:31 2015 /sbin/route add -net 0.0.0.0 netmask 0.0.0.0 gw 25.25.25.193
Sun Dec 13 16:12:31 2015 WARNING: potential route subnet conflict between local LAN [25.25.25.0/255.255.255.0] and remote VPN [0.0.0.0/0.0.0.0]
!!!### Woher kommt 25.25.25.0/255.255.255.0? Ich habe nur /27 und kein /24 vergeben.
Sun Dec 13 16:12:31 2015 /sbin/route add -net 0.0.0.0 netmask 0.0.0.0 gw 25.25.25.193
SIOCADDRT: File exists
Sun Dec 13 16:12:31 2015 ERROR: Linux route add command failed: external program exited with error status: 7
Sun Dec 13 16:12:31 2015 WARNING: potential route subnet conflict between local LAN [25.25.25.0/255.255.255.0] and remote VPN [25.25.25.192/255.255.255.224]
!!!### Die Warnung liegt bestimmt daran, dass die Netze sich überschneiden oder? Ich weiß noch immer nicht woher [25.25.25.0/255.255.255.0] kommt.
Sun Dec 13 16:12:31 2015 /sbin/route add -net 25.25.25.192 netmask 255.255.255.224 gw 25.25.25.193
Sun Dec 13 16:12:31 2015 Initialization Sequence Completed



server.conf

local 17.17.17.62
proto tcp
dev tun
ca /etc/openvpn/easy-rsa2/keys/ca.crt
cert /etc/openvpn/easy-rsa2/keys/xxx-vpn.crt
dh /etc/openvpn/easy-rsa2/keys/dh2048.pem
server 25.25.25.192 255.255.255.224
ifconfig-pool-persist ipp.txt
push "redirect-gateway"
push "route 0.0.0.0 0.0.0.0"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option WINS 8.8.8.8"
client-config-dir ccd
client-to-client
keepalive 10 120
auth SHA1
cipher BF-CBC
comp-lzo
persist-key
persist-tun
verb 3



Beispiel einer clientdatei in ccd

ifconfig-push 25.25.25.222 25.25.25.193



client.ovpn


  1. OpenVPN-Instanz als Client starten
client

  1. Je nach Verwendungszweck verwende TUN oder TAP
dev tun

  1. Nutze Protokoll TCP um durch Firewalls zu kommen
  2. andernfalls sollte man UDP verwenden (höherer Speed)
proto tcp

  1. Adresse und Port des VPN-Servers
remote 17.17.17.62 1194

  1. Endloser Reconnect-Versuch
resolv-retry infinite

  1. Beliebiger lokaler Port
nobind

  1. Verbindung immer gleich halten
persist-key
persist-tun

  1. Falls Proxy vorhanden, hier einstellen
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port]
ca ca.crt
cert dolex.crt
key dolex.key
  1. Authentifizierung per Zertifikaten
ns-cert-type server

  1. Hash-Algorithmus
auth SHA1

  1. Schnelle und sichere Blowfish-Verschlüsselung
cipher BF-CBC

  1. Kompression
comp-lzo

  1. Log-Level
verb 3

Content-Key: 290829

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

Printed on: April 18, 2024 at 12:04 o'clock

Member: orcape
orcape Dec 14, 2015 at 07:49:12 (UTC)
Goto Top
Hi,
Deine "fiktiven" IP-Bereiche scheinen mir etwas weit hergeholt. Such Dir aus den privaten IP-Bereichen etwas aus....
https://de.wikipedia.org/wiki/Private_IP-Adresse
und verwende dann eine Netzmaske mit 255.255.255.0 also /24 für den Tunnel. Mit einer /30 wirst Du mit mehreren Clients immer Probleme bekommen.
Gruß orcape
Member: TP-Alex
TP-Alex Dec 14, 2015 at 08:51:16 (UTC)
Goto Top
Es geht wirklich um öffentliche IP-Adressen. Wir möchten die dynamische IP-Adresse, die wir durch unseren Provider (z.B. Telekom VDSL) durch eine feste IP in die weite Welt ändern.
Member: orcape
orcape Dec 14, 2015 at 09:42:51 (UTC)
Goto Top
Wir möchten die dynamische IP-Adresse, die wir durch unseren Provider (z.B. Telekom VDSL) durch eine feste IP in die weite Welt ändern.
Ich weiß nicht was Du da treibst, so funktioniert das nicht.
Du möchtest mehrere OpenVPN-Clients mit einem OpenVPN-Server verbinden, richtig ?
Wenn Du eine ständig wechselnde IP vom Provider erhältst, hast Du dann wenigstens einen DynDNS-Account für den Router des OpenVPN-Servers ?
Woher will der Client in der "großen weiten Welt" denn sonst wissen wo Dein Server ist ?
"remote 17.17.17.62 1194"
...oder ist 17.17.17.62 die vom Provider vergebene IP ????
Und verabschiede Dich von dieser abstrusen IP-Vergabe. OpenVPN läuft mit privaten IP 's, auch wenn die vom Provider erhaltenen IP-Bereiche öffentlich sind.
192.168.0.0 bis 192.168.255.255
172.16.0.0 bis 172.31.255.255
10.0.0.0 bis 10.255.255.255
Gruß orcape
Member: TP-Alex
TP-Alex Dec 14, 2015 at 09:52:39 (UTC)
Goto Top
Der OpenVPN-Server steht in einem Rechenzentrum und hat eine feste IP.

Ich möchte mich mit dem OpenVPN-Server verbinden und danach ein- sowie ausgehend eine andere IP-Adresse (und zwar eine feste) haben.


17.17.17.62 ist die feste öffentliche IP von dem OpenVPN-Server. Die IP ist von dem Rechenzentrumsprovider und wird auf den Server geroutet.
Das funktioniert soweit auch.
Mitglied: 122990
122990 Dec 14, 2015 updated at 10:04:22 (UTC)
Goto Top
Ich möchte mich mit dem OpenVPN-Server verbinden und danach ein- sowie ausgehend eine andere IP-Adresse (und zwar eine feste) haben.
Dann musst du nur den Traffic des OpenVPN-Netzes in der Firewall des Servers (Auf Linux meist iptables) NATen damit sie ins Internet kommen.
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Der Befehl erklärt sich so:
iptables: das Kommandozeilenprogramm, mit dem wir den Kernel konfigurieren
-t nat Wähle die Tabelle "nat", um NAT zu betreiben.
-A POSTROUTING Füge eine Regel in der POSTROUTING-Kette ein (-A steht für "append").
-o eth0 Wir wollen Pakete, die den Router an der ersten Netzwerkschnittstelle "eth0" verlassen (-o für "output")...
-j MASQUERADE ... maskieren, der Router soll also seine eigene Adresse als Quelladresse setzen.

Statt eth0 nimmt man hier überlicherweise auch das OpenVPN-Tunnelinterface tun0 ...tunN

Gruß grexit
Member: TP-Alex
TP-Alex Dec 14, 2015 at 10:03:40 (UTC)
Goto Top
Dann gehen aber alle Clients mit der selben IP raus oder?

Ich möchte, dass jeder Client eine IP aus dem /27 bekommt.
Mitglied: 122990
122990 Dec 14, 2015 updated at 10:07:44 (UTC)
Goto Top
Zitat von @TP-Alex:

Dann gehen aber alle Clients mit der selben IP raus oder?
In diesem Beispiel, ja.
Ich möchte, dass jeder Client eine IP aus dem /27 bekommt.
Das machst du ebenfalls problemlos mit iptables, nennt sich 1to1 NAT ...
http://www.cahilig.net/2010/10/28/how-enable-11-nat-iptables
Member: TP-Alex
TP-Alex Dec 14, 2015 at 10:15:34 (UTC)
Goto Top
Danke. ich werde das später mal testen.