Forum: Mikrocontroller und Digitale Elektronik OpenVPN Haimnetzwerk erreichen


von Frustus (Gast)


Lesenswert?

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
4
16:39:40.770762 ARP, Request who-has 192.168.1.3 tell 10.8.0.1, length 28
5
16:39:41.801760 ARP, Request who-has 192.168.1.3 tell 10.8.0.1, length 28
6
16:39:42.825728 ARP, Request who-has 192.168.1.3 tell 10.8.0.1, length 28
7
16:39:43.849984 ARP, Request who-has 192.168.1.3 tell 10.8.0.1, length 28
8
16:39:44.873782 ARP, Request who-has 192.168.1.3 tell 10.8.0.1, length 28
9
16:39:45.897999 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! 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.

von Jim M. (turboj)


Lesenswert?

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.

von Jim M. (turboj)


Lesenswert?

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.

von c-hater (Gast)


Lesenswert?

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.

von Frustus (Gast)


Lesenswert?

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?

von c-hater (Gast)


Lesenswert?

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.

von Frustus (Gast)


Lesenswert?

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!

von c-hater (Gast)


Lesenswert?

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.

von Frustus (Gast)


Lesenswert?

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?

von Forist (Gast)


Lesenswert?

@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

von Frustus (Gast)


Lesenswert?

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ät

lach 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 :-(

von Frustus (Gast)


Lesenswert?

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?

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

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?

von c-hater (Gast)


Lesenswert?

Frustus schrieb:

> Muss auch noch NAT oder Masquerade in iptables konfiguriert sein?

Nein, wozu sollte das hier gut sein?

von Frustus (Gast)


Lesenswert?

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:
1
ARP, Request who-has 192.168.1.4 tell 10.8.0.1, length 28
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
1
sysctl -w net/ipv4/ip_forward=1
ausgeführt hab.

von c-hater (Gast)


Lesenswert?

Frustus schrieb:

[...]

Du hast keine Ahnung, was du da tust. Lerne erstmal die Grundlagen. Das 
Forum ist nicht dazu da, sie dir beizubringen.

von Frustus (Gast)


Lesenswert?

Jajaja....
es funktioniert ja schon fast!

von Md M. (Firma: Potilatormanufaktur) (mdma)


Lesenswert?

Frustus schrieb:
> es funktioniert ja schon fast!

Dann ist ja fast alles gut :)

von Frustus (Gast)


Lesenswert?

ich seh nicht ganz das Problem, weshalb ihr nicht weiterhelfen wollt. 
Würde euch ja kein Zacken aus der Krone brechen.

von c-hater (Gast)


Lesenswert?

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?

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

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.

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

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?

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

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.

von Frustus (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Frustus (Gast)


Lesenswert?

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.

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

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.

von Frustus (Gast)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.