Hallo zusammen,
dieser Aufruf richtet sich mal an die Geeks in Bezug auf VPN:
Mein zentraler Server spannt drei interne Netze auf, ist also mit 4 Netzwerkkarten gesegnet:
eth0: extern
eth1: LAN (10.1.0.0/16)
eth2: WLAN (10.2.0.0/16)
eth3: Nicht-Nutzergeräte, Drucker etc. (10.3.0.0/16)
Die Verbindungen zwischen den Netzwerken werden über IPv4-Forwarding und iptables realisiert. DHCP und DNS-Namensauflösung übernimmt dnsmasq. Alles easy, alles läuft zur Zufriedenheit aller.
Jetzt will ich meine Samba-Shares etc. auch von extern abrufen können, und natürlich auch direkt mit anderen Geräten in den Netzwerken kommunizieren können, und will mir daher OpenVPN einrichten. Das Ganze als Proxy für Verbindungen in die Weite Welt ist nicht gewünscht, aber das ist eher Nebensache (und eine Sache für iptables). So weit, so gut.
Das gewünschte Netzwerk wird die 10.4.0.0/16. dnsmasq soll auch dieses verwalten, d. h. DHCP und DNS für dieses Netzwerk bereitstellen. Soweit ich im Netz gelesen hab, geht das wunderbar, indem man dem OpenVPN-Server keinen Range zur Verfügung stellt. Jetzt stellt sich mir die Frage: Wenn ich sowieso IP-Forwarding via iptables betreibe, muss ich überhaupt den virtuellen TAP-Adapter mit einem meiner realen NICs bridgen? Das zerlegt mir nämlich eine ganze Menge Firewallregeln. Normalerweise sollte es dem Kernel ja ziemlich wurscht sein, ob ein Netzwerkgerät real oder virtuell ist.
Ich hätte halt gern die Situation dergestalt, dass sich das zusätzliche Netzwerk exakt wie die anderen Netzwerke transparent verhält, d. h. dnsmasq verwaltet DNS und DHCP, vergibt an die Clients Domainnamen (client1.vpn.local.domain.com, client2.vpn.local.domain.com etc.), iptables regelt den Traffic zwischen den Adaptern, die einzelnen Serverdienste bieten ihre Dienste nach ihren Konfigurationen für dieses Netzwerk an, die einzelnen VPN-Clients können sich gegenseitig pingen etc. Nur eben mit dem Unterschied, dass die Clients Traffic ins Internet selbstständig als Solchen erkennen und nicht über den Tunnel schieben.
Läuft das überhaupt so, wie ich mir das vorstelle, oder hab ich mir da eine unmögliche Aufgabe aufgeladen?
dieser Aufruf richtet sich mal an die Geeks in Bezug auf VPN:
Mein zentraler Server spannt drei interne Netze auf, ist also mit 4 Netzwerkkarten gesegnet:
eth0: extern
eth1: LAN (10.1.0.0/16)
eth2: WLAN (10.2.0.0/16)
eth3: Nicht-Nutzergeräte, Drucker etc. (10.3.0.0/16)
Die Verbindungen zwischen den Netzwerken werden über IPv4-Forwarding und iptables realisiert. DHCP und DNS-Namensauflösung übernimmt dnsmasq. Alles easy, alles läuft zur Zufriedenheit aller.
Jetzt will ich meine Samba-Shares etc. auch von extern abrufen können, und natürlich auch direkt mit anderen Geräten in den Netzwerken kommunizieren können, und will mir daher OpenVPN einrichten. Das Ganze als Proxy für Verbindungen in die Weite Welt ist nicht gewünscht, aber das ist eher Nebensache (und eine Sache für iptables). So weit, so gut.
Das gewünschte Netzwerk wird die 10.4.0.0/16. dnsmasq soll auch dieses verwalten, d. h. DHCP und DNS für dieses Netzwerk bereitstellen. Soweit ich im Netz gelesen hab, geht das wunderbar, indem man dem OpenVPN-Server keinen Range zur Verfügung stellt. Jetzt stellt sich mir die Frage: Wenn ich sowieso IP-Forwarding via iptables betreibe, muss ich überhaupt den virtuellen TAP-Adapter mit einem meiner realen NICs bridgen? Das zerlegt mir nämlich eine ganze Menge Firewallregeln. Normalerweise sollte es dem Kernel ja ziemlich wurscht sein, ob ein Netzwerkgerät real oder virtuell ist.
Ich hätte halt gern die Situation dergestalt, dass sich das zusätzliche Netzwerk exakt wie die anderen Netzwerke transparent verhält, d. h. dnsmasq verwaltet DNS und DHCP, vergibt an die Clients Domainnamen (client1.vpn.local.domain.com, client2.vpn.local.domain.com etc.), iptables regelt den Traffic zwischen den Adaptern, die einzelnen Serverdienste bieten ihre Dienste nach ihren Konfigurationen für dieses Netzwerk an, die einzelnen VPN-Clients können sich gegenseitig pingen etc. Nur eben mit dem Unterschied, dass die Clients Traffic ins Internet selbstständig als Solchen erkennen und nicht über den Tunnel schieben.
Läuft das überhaupt so, wie ich mir das vorstelle, oder hab ich mir da eine unmögliche Aufgabe aufgeladen?