Nach einigen Suchen habi ich folgendes gefunden: activ-avtiv OpenVPN-Server
Es werden zwei Server mit Linux, openvpn und python benötigt. Die Clients tauschen ihre Daten über das VPN-Netz 10.100.100.0/24 aus. Die Server tauschen ihre Informationen über das VPN-Netz 10.100.200.0/24 aus. Auf den Servern werden jeweils zwei VPN-Schnittstellen erstellt, tun0 für die Daten und tun1 für das Management. #ServerA #/etc/openvpn/vpnA-data.conf server 10.100.100.0 255.255.255.0 ifconfig 10.100.100.1 10.100.100.2 push "route 10.100.100.0 255.255.255.0" push "route 10.200.200.0 255.255.255.0" dev tun proto udp user nobody client-to-client persist-key persist-tun dh keys/dh1024.pem ca keys/ca.crt cert keys/vpnsrvA-1.crt key keys/vpnsrvA-1.key comp-lzo verb 3 keepalive 10 60 client-config-dir ccd management tunnel 5656 /etc/openvpn/pass #ServerA #/etc/openvpn/vpnA-m.conf server 10.100.200.0 255.255.255.0 ifconfig 10.100.200.1 10.100.200.2 #push "route 10.100.100.0 255.255.255.0" push "route 10.200.200.0 255.255.255.0" dev tun proto udp port 11940 user nobody persist-key persist-tun dh keys/dh1024.pem ca keys/ca.crt cert keys/vpnsrvA-1.crt key keys/vpnsrvA-1.key comp-lzo verb 3 keepalive 10 60 client-config-dir ccd management tunnel 5657 /etc/openvpn/pass #ServerA #/etc/openvpn/vpnA-conf.ini vpnsrvA mgmt_interface = tun1 data_interface = tun0 remote_mgmt_ip = 10.200.200.6 remote_data_ip = 10.100.100.101 openvpn_mgmt_pass_file = /etc/openvpn/pass openvpn_mgmt_port = 5656 cube_routed_port = 5657 #ServerB #/etc/openvpn/vpnB-data.conf mode server tls-server ifconfig 10.100.100.101 10.100.100.102 ifconfig-pool 10.100.100.4 10.100.100.251 route 10.100.100.0 255.255.255.0 push "route 10.100.100.0 255.255.255.0" push "route 10.200.200.0 255.255.255.0" dev tun proto udp client-to-client user nobody persist-key persist-tun dh keys/dh1024.pem ca keys/ca.crt cert keys/vpnsrvB-1.crt key keys/vpnsrvB-1.key comp-lzo verb 3 keepalive 10 60 client-config-dir ccd management tunnel 5656 /etc/openvpn/pass #ServerB #/etc/openvpn/vpnB-m.conf client remote IP-von-ServerA dev tun proto udp port 11940 user nobody persist-key persist-tun dh keys/dh1024.pem ca keys/ca.crt cert keys/client-0.crt key keys/client-0.key comp-lzo management tunnel 5657 /etc/openvpn/pass #ServerB #/etc/openvpn/vpnB-conf.ini mgmt_interface = tun1 data_interface = tun0 remote_mgmt_ip = 10.200.200.1 remote_data_ip = 10.100.100.1 openvpn_mgmt_pass_file = /etc/openvpn/pass openvpn_mgmt_port = 5656 cube_routed_port = 5657 Mit diesen Dateien und dem Python-Script von: https://github.com/aguynamedben/cube-routed.git kann das System in Betrieb genommen werden. Dafür werden die VPN-Netze mit /etc/init.d/openvpn start gestartet und dann das Script mit der ini-Datei aufgerufen. #Client #/etc/openvpn/client-1.conf client remote IP-von-ServerA remote IP-von-ServerB dev tun proto udp user nobody persist-key persist-tun keepalive 10 60 comp-lzo ca keys/ca.crt cert keys/client-1.crt key keys/client-1.key ns-cert-type server Was haltet ihr davon? geht es evtl. noch einfacher? Am 15.01.2015 um 07:31 schrieb pulux: > Danke für den Hinweis, das werde ich testen. > Am 15.01.2015 um 04:37 schrieb Andre Klärner: >> Hi pulux, >> >> On Wed 14.01.2015 17:28:41, pulux wrote: >>> ich bin auf der Suche nach einer openvpn Konfiguration mit zwei >>> openvpn-Servern und n-Clients. Der Datenverkehr soll via >>> client_to_client >>> erfolgen. >> Ich habe eine ähnliche Konfiguration am laufen. Einer meiner Server >> bei mir >> zuhause unterhält eine ständige VPN-Verbindung in das Firmen-Netz eines >> meiner Kunden. Jetzt kann ich mich aus meinem Netz zu jedem Host im >> entfernten Netz meines Kunden verbinden, und "aus meinem Netz" schließt >> auch die Maschinen ein, die via VPN verbunden sind. Das alles >> funktioniert >> auch in der umgekehrten Richtung, also alle Clients des Firmen-Netzes >> können auf Ressourcen meines Netzes inkl. der VPN-Clients zugreifen. >> >> Ich habe also, wenn ich VPN-Client zu VPN-Client kommuniziere, drei >> VPN-Verbindungen involviert. Dieses Setup hat sich bewährt, auch wenn die >> Client to Client - Kommunikation selten benötigt wird. >> >> Ich habe auf dem Firmen-VPN (das via TUN überträgt) folgende Config: >> >> # tun0.conf >> server 10.0.1.0 255.255.255.0 >> ifconfig-pool-persist ip-pool.txt >> port 1194 >> >> # client-specific config-options >> client-config-dir clients-config >> >> # routes advertised by clients >> route 172.16.0.0 255.255.255.0 >> >> push "route 172.16.0.0 255.255.255.0" >> push "route 192.168.142.0 255.255.255.0" >> >> client-to-client >> >> ping 30 >> ping-restart 120 >> persist-tun >> persist-key >> >> # clients-config/hive.ak-online.be >> iroute 172.16.0.0 255.255.255.0 >> >> ## EOF >> >> Mittels client-config-dir habe ich meinem Server eine zusätzliche >> Konfiguration gepusht, und auf dem Firmen-Server internes Routing >> ergänzt, >> sobald der Client (mein Server) online ist. >> >> Mein Server hat auf seiner eigenen Seite noch ein paar Routen gesetzt, >> die >> für alle VPN-Clients des Firmen-Servers gelten (192.168.142.0/24 ist das >> Firmen-LAN). >> >> Mein eigenes VPN ist ein TAP-VPN, das am internen (virtuellen) Switch >> hängt, und direkt vom DHCP-Server auf IP-Ebene versorgt wird. Damit spare >> ich mir eine Menge Konfiguration, denn das Routing funktioniert für alle >> lokalen und remote Clients identisch, da mein Server das Standard-Gateway >> ist. >> >> Angenommen deine beiden Server stehen in recht zentraler Lage (z.B. zwei >> Datacenter des Hosters deiner Wahl) und sollen VPN-technisch sich >> identisch >> "anfühlen", inkl. der vergebenen Client-IP, würde ich die folgende >> Konfiguration vorschlagen: >> >> * Leg auf jedem Server eine Bridge an (brctl) >> * Konfiguriere auf beiden Servern einen DHCP-Server, der die lokale >> Bridge befüttert, und sich mit dem jeweils anderen abspricht, welche >> IPs er vergibt (also ein großes Subnet/"statische" IPs via >> MAC-Adresse, >> aber ein Server funktioniert als Fail-Over des anderen >> (https://www.madboa.com/geek/dhcp-failover/) ) >> * Konfiguriere einen Server mit dem VPN (TAP-based) und lasse das >> Interface der lokalen Bridge hinzufügen. >> * Konfiguriere den anderen Server mit einem VPN-Client der den ersten >> Server kontaktiert und einem VPN-Server der analog zum ersten >> arbeitet. >> Dabei sollten beide TAP-Interfaces der lokalen Bridge hinzugefügt >> werden. >> * Anschließend kannst du die Clients konfigurieren, mit dynamischen >> IPs >> und einem dynamischen DNS kommst du wahrscheinlich am >> leichtesten, denn >> die MAC-Adressen von tun und tap-Interfaces kann man leider nicht >> auf >> einen bestimmten Wert festlegen (AFAIK, es kann sein das es >> inzwischen geht), >> alternativ kann man DHCP natürlich noch über Hostnamen statisch >> fixieren. >> >> An sich sollte diese Konfiguration recht gut ein zentrales Setup >> spiegeln, >> wo beide VPN-Server an einem internen Netz hängen, das DHCP, DNS und >> Routing abnimmt, und beide Server direkt in das interne Netz patchen. >> >> Wenn du noch Fragen hast, immer her damit, ich mag Spielerei mit >> Netzwerken ;) >> >> Grüße, >> Andre >> >> >> >> _______________________________________________ >> Lug-dd maillist - [email protected] >> https://ssl.schlittermann.de/mailman/listinfo/lug-dd > > > > > _______________________________________________ > Lug-dd maillist - [email protected] > https://ssl.schlittermann.de/mailman/listinfo/lug-dd > _______________________________________________ Lug-dd maillist - [email protected] https://ssl.schlittermann.de/mailman/listinfo/lug-dd
