Hallo,
ich habe ein kleines Heimnetzwerk mit der Adresse 192.168.abc.def. In
dem Netzwerk sind ein PC sowie ein Drucker. Der PC hat z.B. 192.168.1.3
und der Drucker 192.168.1.2.
Nun habe ich auch noch einen Server, und ich will nun den Server mit
meinem Heimnetzwerk über OpenVPN verbinden, sodass der Server einerseits
auf das Internet zugreifen kann (über seine eigene Leitung, weil die
schneller ist), und andererseits soll er auf das 192.168er Netz
zugreifen können.
Ich habe mal OpenVPN auf dem Heim-PC und dem Server eingerichtet und als
tap0 konfiguriert. Die beiden Rechner können sich verbinden, auf dem
Server habe ich dann nebst eth0 eine weitere "Netzwerkkarte" tap0, mit
der Adresse 10.8.0.1. Auf dem Heim-PC ist nebst eth0 auch die tap0
erkennbar, mit der Adresse 10.8.0.2. Der Server und der PC sehen sich
nun über den tap0, perfekt! genauso muss das sein.
JEDOCH scheitere ich nun bei dem Versuch, auf dem PC Routingtabellen
einzurichten, sodass der Server Zugriff auf 192.168 bekommt. Auf dem
Server habe ich folgendes gemacht:
1
ip route add 192.168.1.0/24 dev tap0
wenn ich nun auf dem Heim-PC tcpdump laufen lasse, und vom Server aus
192.168.1.3 anpinge, dann bekommt der Server zwar keine Antwort, aber
immerhin kommen die Pakete am Heim-PC an:
1
# tcpdump -nni tap0
2
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
3
listening on tap0, link-type EN10MB (Ethernet), capture size 262144 bytes
also kommen die Ping-Pakete mal schon bis ins Heimnetz, gut! aber was
muss ich jetzt noch tun?
a) ipv4 Forwarding habe ich aktiviert mit
1
sysctl -w net.ipv4.ip_forward=1
b) ideal wäre es natürlich, wenn der Server vom Heimnetzwerk aus auch
sichtbar wäre (das wäre.
Ich glaube, man müsste "nur" Routingtabellen editieren, oder?
Hier meine Serverkonfiguration:
1
server 10.8.0.0 255.255.255.0
2
verb 3
3
key /etc/openvpn/server/server.key
4
ca /etc/openvpn/server/ca.crt
5
cert /etc/openvpn/server/server.crt
6
dh /etc/openvpn/server/dh.pem
7
keepalive 10 200
8
persist-key
9
persist-tun
10
11
compress lz4-v2
12
push "compress lz4-v2"
13
14
user nobody
15
group nobody
16
proto udp
17
port 1194
18
dev tap
19
status /var/log/openvpn-status.log
20
21
route 192.168.1.0 255.255.255.0 10.8.0.1
ich glaube, dass man mit "route push" die Routingtabellen auf dem PC
anpassen kann, aber wie die sein müssen, weiss ich nicht.
Der Default Router muss die Route des 10.8.0.0/16 Netzes via 192.168.1.3
kennen.
Kann man bei einer FritzBox einstellen, billige Plasterouter können oft
keine extra Routen.
Ach ja: Die Alternative ist das der PC in 192.168.1.3 das 10.x Netz
maskiert (MASQUERADE Target), dann sehen im 192.168.3 Netz alle Anfragen
so aus als würden sie von diesem PC stammen.
Frustus schrieb:> Ich habe mal OpenVPN auf dem Heim-PC und dem Server eingerichtet
Wie genau? OpenVPN unterstützt recht verschiedene Szenarien. Ohne
Deteils zur gewählten Konfiguration zu kennen, kann man kaum sinnvoll
etwas zum Thema sagen.
> Server habe ich dann nebst eth0 eine weitere "Netzwerkkarte" tap0, mit> der Adresse 10.8.0.1.
OK, also offensichtlich das Net2Net-Routing-Szenario. Trivial.
> Auf dem Heim-PC ist nebst eth0 auch die tap0> erkennbar, mit der Adresse 10.8.0.2.
Gut, scheinbar wenigstens auf beiden Seiten für das gleiche Szenario
konfiguriert. Zufall oder Absicht?
> Der Server und der PC sehen sich> nun über den tap0, perfekt! genauso muss das sein.
In diesem Szenario, ja...
> JEDOCH scheitere ich nun bei dem Versuch, auf dem PC Routingtabellen> einzurichten, sodass der Server Zugriff auf 192.168 bekommt.
Das ist doch simpel. Auf der Seite des Servers ist es wirklich ganz
einfach. 192.168.1.0/24 ist über das Gateway 10.8.0.1 zu routen.
Im LAN, kommt's darauf an, ob das VPN-Gateway auch gleichzeitig das
default Gateway des LAN ist oder nicht. Ist es das, sollte keinerlei
weitere Konfiguration nötig sein. Ist es das nicht, braucht das default
GW eine statische Route mit der LAN-Adresse des VPN-GW als Gateway. Das
Ziel der Route läßt sich allerdings aus deinen Angaben nicht eindeutig
ermitteln. Um den Server zu erreichen, sollte aber 10.8.0.1/32
ausreichen.
was für Infos benötigt ihr noch? offenbar ist meine Frage unklar, wie
ich oben lesen konnte.
Also vom Server aus will ich alles, was im 192.168er Netz ist, sehen
können. Also Drucken, RDP, was auch immer. Und zwar unter der selben
Adresse, wie wenn ich im 192.168er Netz direkt wäre. Somit müsste dann
ja auch SAMBA funktionieren.
Im 192.168er Netz wäre es cool, wenn der Server auch unter einer
192.168er Adresse ansprechbar wäre, sofern möglich, ich bezweifle aber,
dass dies möglich ist?
Frustus schrieb:> Im 192.168er Netz wäre es cool, wenn der Server auch unter einer> 192.168er Adresse ansprechbar wäre, sofern möglich, ich bezweifle aber,> dass dies möglich ist?
Ist es natürlich nicht. Er hat doch keine Adresse aus diesem Netz (und
darf in der gewählten Konfiguration auch keine solche haben).
Wenn alles korrekt konfiguriert ist, ist er aber von jedem Client aus
diesem Netz unter seiner Adresse 10.8.0.1 zu erreichen.
hmm da müsste ich wohl in meinem Router des Heimnetzwerks die
Routingtabelle editieren oder? verzwickt ist aber, dass der Router ja
gar nichts vom 10.8.0.1er Netz weiss!
Frustus schrieb:> hmm da müsste ich wohl in meinem Router des Heimnetzwerks die> Routingtabelle editieren oder?
Genau.
> verzwickt ist aber, dass der Router ja> gar nichts vom 10.8.0.1er Netz weiss!
Genau das ist der Sinn einer statischen Route. Dem Router mitzuteilen,
wie das entsprechende Netz zu erreichen ist.
Sag' mal, liest du eigentlich auch? Ich hatte doch weiter oben schon
geschrieben, wie die Route aussehen muss.
c-hater schrieb:> Sag' mal, liest du eigentlich auch? Ich hatte doch weiter oben schon> geschrieben, wie die Route aussehen muss.
klar lese ich, aber verstehe nicht alles auf anhieb. Wenn die VPN
Verbindung auf dem 192.168.1.3er Rechner aufgebaut wird, dann muss die
statische Route genau da hin zeigen, und der betreffende Rechner muss IP
forwarding aktiviert haben. Jetzt ist es klar.
Muss auch noch NAT oder Masquerade in iptables konfiguriert sein?
@Frustus
Der Frust setzt bei mir schon ein, wenn ich die Überschrift von deinem
Thread versuche zu lesen :-(
… und jetzt kommt mir nicht mit dem Tastenabstand auf deinem
Eingabegerät
Forist schrieb:> @Frustus>> Der Frust setzt bei mir schon ein, wenn ich die Überschrift von deinem> Thread versuche zu lesen :-(>> … und jetzt kommt mir nicht mit dem Tastenabstand auf deinem> Eingabegerätlach stimmt, der Typo ist mir bis jetzt gar nicht aufgefallen. Aber
ist ja nicht so schlimm, du wusstest ja, um was es geht :-)
aber gross weiter geholfen hat mir dein Beitrag trotzdem nicht :-(
Was kann ich eigentlich tun, wenn mein Router (eben ein billiger
Mistrouter vom Telekomanbieter) das Einrichten einer zusätzlichen Route
nicht erlaubt? kann ich in dem Fall einfach auf den entsprechenden PCs
die Route eintragen? ich nehme an, die im Heimnetz fehlende Route ist
der Grund, warum ICMP Dchoanfragen nicht beantwortet werden?
Frustus schrieb:> Was kann ich eigentlich tun, wenn mein Router (eben ein billiger> Mistrouter vom Telekomanbieter) das Einrichten einer zusätzlichen Route> nicht erlaubt? kann ich in dem Fall einfach auf den entsprechenden PCs> die Route eintragen?
Ja, kann man. Ist halt lästig, die zusätzliche Route auf jedem Gerät im
LAN manuell hinzufufügen - und zwar permanent (unter Windows heisst das
"persistent").
Einfacher ist es halt, die statische Route im Standard-Gateway
einzutragen. In diesem Fall wird dann ein sog. ReRouting (durch Senden
einer "ICMP Redirect" Message des Standard-Gateways an den PC)
durchgeführt. Der PC wendet sich also an das Standard-Gateway und dieses
antwortet dann: "Hier bist Du falsch, wende Dich stattdessen ans Gateway
192.168.x.x" - was der PC dann auch tut.
Bist Du sicher, dass der Telekom-Router das nicht anbietet? Nenn doch
mal den Typ, oder ist der geheim?
Frank M. schrieb:> Bist Du sicher, dass der Telekom-Router das nicht anbietet? Nenn doch> mal den Typ, oder ist der geheim?
ja, schon. Den Typ weiss ich nicht, das ist so ein "gebrandetes" Gerät,
sprich der echte Hersteller ist nicht genannt. Es steht nur "UPC Connect
Box" drauf, sonst nichts. Und "manufactured by Compal". Toll, also
findet man nicht heraus, wer der Hersteller ist. :-(
So, ich bin einen winzigen Schritt weiter: Mit der Konfig
1
route 192.168.1.0 255.255.255.0 10.8.0.1
kann ich vom Server aus (10.8.0.1) tatsächlich den PC in meinem
Heimnetzwerk erreichen! er Antwortet auf der selben IP, auf der er auch
aus meinem Heimnetz erreichbar ist! Juhu! somit geht schon mal etwas.
Jetzt das nächste Problem.
Ich habe noch einen Laptop im Heimnetzwerk angeschlossen und dort die
statische Route zu 10.8.0.1 konfiguriert. Wir erinnern uns, der PC hat
192.168.1.3 und mein Laptop halt hat jetzt 192.168.1.4. Auf dem Laptop
habe ich nun
1
ip route add 10.8.0.0/24 via 192.168.1.3
ausgeführt. Die Idee war, dass der Laptop die Pakete an den anderen
Rechner sendet, und dieser sie dann weiterleitet. Ich habe also auf dem
Server tcpdump laufen lassen und am Laptop dann den Server angepingt.
Dadurch wurden die Pakete an den anderen Rechner im Heimnetz gesendet,
und dieser hat sie an den Server weitergeleitet, das klappte auch! Man
sah, dass die ICMP Echo Requests am Server ankamen. Soweit so gut! der
Server hat dann aber ARP Requests generiert:
Die hat er ins Heimnetz gesendet (klappt auch), an den Rechner
192.168.1.3. Und der hat sie nicht beantwortet. Was müsste der Rechner
mit den Requests machen? eigentlich müsste er die doch an den
192.168.1.4er Rechner weiterleiten? bemerkenswerterweise tut er das
nicht, obwohl ich
Frustus schrieb:> ich seh nicht ganz das Problem, weshalb ihr nicht weiterhelfen wollt.
Weil du sämtliche potentiellen Lösungen deines Problems einfach
ignorierst, anstatt sie umzusetzen.
Wenn du ein geroutetes VPN aufsetzt, kannst du halt nur im Routing die
Lösung finden. Also statische Route auf dem default Gateway oder auf
jedem einzelnen Client im LAN. Beides wurde dir vorgeschlagen, beides
funktioniert.
Was also willst du denn noch?
Frustus schrieb:> # tcpdump -nni tap0> tcpdump: verbose output suppressed, use -v or -vv for full protocol decode> listening on tap0, link-type EN10MB (Ethernet), capture size 262144 bytes> 16:39:40.770762 ARP, Request who-has 192.168.1.3 tell 10.8.0.1, length 28>> also kommen die Ping-Pakete mal schon bis ins Heimnetz, gut!
Das sind Arp-Requests, keine Ping-Pakete.
Frustus schrieb:> Hallo,> ich habe ein kleines Heimnetzwerk mit der Adresse 192.168.abc.def. In> dem Netzwerk sind ein PC sowie ein Drucker. Der PC hat z.B. 192.168.1.3> und der Drucker 192.168.1.2.>> Nun habe ich auch noch einen Server, und ich will nun den Server mit
Kannst Du mal einen Netzwerkplan zeichnen?
Das Heimnetz habe ich so weit verstanden. Es ist ein 192.168.1.0/24 er
Netz.
Das kann ich erst einmal als einfache Wolke sehen.
Das Netz 10.8.0.0/24 ist nun dein LAN, welches mit einem Router mit dem
Internet verbunden ist?
Sind beide Netze physisch getrennt oder nur durch unterschiedliche IPs?
Wie hängt der Server da drin und wie ist eth0 konfiguriert?
Frustus schrieb:> Also vom Server aus will ich alles, was im 192.168er Netz ist, sehen> können. Also Drucken, RDP, was auch immer. Und zwar unter der selben> Adresse, wie wenn ich im 192.168er Netz direkt wäre. Somit müsste dann> ja auch SAMBA funktionieren.>> Im 192.168er Netz wäre es cool, wenn der Server auch unter einer> 192.168er Adresse ansprechbar wäre, sofern möglich, ich bezweifle aber,> dass dies möglich ist?
Ich habe nochmal versucht, aus Deinem Geschreibsel schlau zu werden und
habe das Gefühl, dass Du gar kein VPN brauchst, sondern einen einfachen,
popeligen Router. Also einen Server mit zwei Netzwerkkarten (oder einer
bei einem nur durch IP-Bereiche getrennten Netz), IP-Forwarding und
einer simplen Firewall.
Daher nochmal die Frage, ob beide Netze physisch getrennt oder verbunden
sind.
Christian H. schrieb:> Kannst Du mal einen Netzwerkplan zeichnen?>> Das Heimnetz habe ich so weit verstanden. Es ist ein 192.168.1.0/24 er> Netz.> Das kann ich erst einmal als einfache Wolke sehen.>> Das Netz 10.8.0.0/24 ist nun dein LAN, welches mit einem Router mit dem> Internet verbunden ist?>> Sind beide Netze physisch getrennt oder nur durch unterschiedliche IPs?>> Wie hängt der Server da drin und wie ist eth0 konfiguriert?
Danke, Christian.
Christian H. schrieb:> habe das Gefühl, dass Du gar kein VPN brauchst, sondern einen einfachen,> popeligen Router
dochdoch, ich brauche schon ein VPN. Warum, erkläre ich unten.
Zuerst zum Netzwerkbild. Siehe Anhang. Der Server ist ein Virtueller
Server, wo auch eine Website usw. betrieben wird. Er hängt direkt am
Internet mit einer statischen IP und einem DNS-Eintrag. Dort habe ich
einen OpenVPN Server eingerichtet und die Zertifikate erstellt.
Danach habe ich auf dem PC zu Hause ebenfalls OpenVPN eingerichtet und
die Zertifikate vom Server runter kopiert. Starte ich nun OpenVPN, dann
erscheint sowohl auf dem Server, als auch auf dem Heim-PC, das tap0
Interface, welches ich auch eingezeichnet habe.
Ich will nun dieses tap0 Interface benutzen, sodass der Server auf mein
Heimnetz zugreifen kann.
Damit könnte ich über den Server z.B. eine RDP Session auf dem Heim-PC
öffnen, oder auf mein NAS zugreifen.
Ich habe nun den Server so konfiguriert, dass er eine statische Route
hat:
ip route add 192.168.1.0/24 via 10.8.0.2 dev tap0
Wenn ich nun vom Server aus den Heim-PC anpinge, dann geht das. Also ein
ping 192.168.1.3
funktioniert und wie erwartet kommen die Antworten zurück. Somit könnte
ich auf dem Heim-PC z.B. eine Netzwerkfreigabe einrichten, und die
könnte der Server nutzen. Soweit so gut! auf dem Heim-PC geht natürlich
ein
ping 10.8.0.1
ebenso, die beiden Rechner sind also durch den tap0 direkt verbunden,
genau so will ich das haben. Aber jetzt kommts: Ich will vom Server aus
beispielsweise auch auf den Laptop zugreifen können. Der hat
192.168.1.5. Dummerweise kann der Server aber nur mit dem PC direkt
"reden", daher muss der PC die Pakete weiterleiten. Dort bin ich jetzt
gescheitert. Wenn ich auf dem Server
ping 192.168.1.5
ausführe, dann wird ein ARP-Request generiert, und zum PC gesendet,
soweit so gut. Der PC wird gefragt
who has 192.168.1.5? tell 10.8.0.1
aber der Request wird weder beantwortet, noch weiter geleitet!
Testweise habe ich auf dem Laptop auch eine statische Route
eingerichtet:
ip route add 10.8.0.1 via 192.168.1.3 dev wlan0
und auf dem PC habe ich ipv4 Forwarding eingerichtet. Wenn ich auf dem
Laptop ein
ping 10.8.0.1
ausführe, dann funktioniert das und der Laptop kann tatsächlich den
Server sehen, denn wenn ich auf dem Server tcpdump laufen lasse, sieht
man, dass die Ping-Pakete ankommen und beantwortet werden. Aber ich
verstehe nicht, weshalb es in die andere Richtung nicht funktionieren
soll.
So, nun noch zu der Frage ob ich VPN brauche oder nicht:
doch, ich brauche VPN. Weil, mein Telekomanbieter und Router sind so
schlecht, dass sie weder statische IPs, noch Portweiterleitungen
unterstützen, und der Router ist ein IPv6 DS LITE Gerät, d.h.
Portweiterleitungen funktionieren schon prinzipbedingt nicht. Dazu ist
die IP nicht statisch; zwar kann sie wochenlang konstant bleiben, aber
das ist halt nicht garantiert. Ich habe also von aussen keinerlei
Möglichkeit, auf mein Heimnetz zuzugreifen. Das VPN ermöglicht dies
aber, und dank dem Keepalive kann der Heim-PC die VPN Verbindung
überwachen und, sofern sie unterbrochen wird, wird sie automatisch
wieder hergestellt.
Nachtrag:
ich HABE also einen Router zu Hause, aber der kann nichts und denn fasse
ich nur mit der Kneifzange an. Er ist wirklich grottig. Leider lebe ich
in einem Land, wo der Routerzwang noch nicht abgeschafft worden ist,
daher habe ich keine Möglichkeit, den Router von meinem Anbieter
auszutauschen.
Der einzige Grund, warum ich noch bei dem Anbieter bin, ist der, dass er
als einziger einen richtig guten Speed anbietet. Bei den Mitbewerbern
ist der Speed teilweise nur die Hälfte.
Leider erlaubt mein Anbieter statische IPs auch nur für Geschäftskunden,
also auch wieder nichts für mich.
Gut. Ich denke mal darüber nach und melde mich heute Abend wieder.
Auf Deinem PC muss auf jeden Fall Proxyarp für das interne Netz
eingerichtet werden. IPv4-Forwarding und entsprechende Firewalleinträge
ebenfalls.
Auch muss auf dem Laptop eine Host-Route für den externen Server
eingerichtet werden. Das hast Du ja schon gemacht.
Christian H. schrieb:> Auf Deinem PC muss auf jeden Fall Proxyarp für das interne Netz> eingerichtet werden. IPv4-Forwarding und entsprechende Firewalleinträge> ebenfalls.
das mit Proxyarp ist ein entscheidender Hinweis!
ich habe es aktiviert mit
1
echo 1 > /proc/sys/net/ipv4/conf/tap0/proxy_arp
und nun konnte ich von meinem Laptop aus den Server pingen und
umgekehrt! Yeah! allerdings kann man vom Server aus dennoch nicht auf
anhieb einen Rechner im 192er Netz pingen. Der erste Versuch, vom Server
den Laptop zu pingen, schlug fehl; danach versuchte ich, vom Laptop den
Server zu pingen, was klappte, und danach klappte es auch in die
umgekehrte Richtung. Etwas funktioniert also noch nicht.
Die iptables Regeln habe ich mit
[code]
iptables -A FORWARD -j ACCEPT
iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i tap0 -m state --state RELATED,ESTABLISHED -j ACCEPT
[/cpde]
konfiguriert.