PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Durch VPN-Tunnel einzelne PCs im Netzwerk erreichen



Peace-on-earth
24.03.04, 11:31
Ich habe einen SuSE 7.3-Server mit SuSEfirewall2 und T-DSL mit dynamischer IP. Über VPN und dyndns kann ich auf diesen Server draufzugreifen. Dienste, welche auf dem Server laufen, funktionieren über diese Verbindung ohne Probleme.
Wünschenswert wäre es, über diesen VPN-Tunnel auch auf die einzelnen Rechner im Netzwerk zugreifen zu können. Der Rechner, welcher sich über den VPN-Tunnel ins lokale Netzwerk einwählt, soll so verbunden sein, wie wenn er direkt mit dem lokalen Netzwerk verbunden wäre.
Nun ist meine Vermutung, man müsste die Pakete irgendwie ins lokale Netwerk weiterleiten. Ich habe schon ein paar Dinge versucht, doch leider klappte nichts. Ich möchte erwähnen, dass ich nicht sehr viel Ahnung von dieser Materie habe. Sicherlich ist es nur ein iptables-Befehl. Eleganter wäre - da ich eh mit der SuSEfirewall2 arbeite - dort die Einstellung machen zu können.
Kann mir geholfen werden.......???? :eek:

Schärple
24.03.04, 13:59
Klaro, Du solltest auf jeden Fall IP-Forwarding aktivieren und auch darauf achten, dass die
Routingtabelle auf deinem externen Rechner und deinem Router angepasst wird. Da Du
vermute ich für deine VPN interfaces ein eigenes Subnet verwendest, musst Du auch
die Routingtabelle explizit anpassen.

Achte dabei darauf, dass dein Router für deine Netzclients, als auch für deinen externen Rechner
als Gateway fungiert. Die Routingtabelle muss also in _beide_ Richtungen angepasst werden.


HTH

Peace-on-earth
24.03.04, 14:13
Lieber Schärple,

danke vorab gleich mal für Deine Antwort.

okay....:ugly: ! Das war nun ein wenig viel für mich. Mit Routing-Geschichten habe ich mich das letzte Mal vor einem halben Jahr beschäftigt, als ich den Clients das Internet per Masquerading zur Verfügung stellte. Somit ist IP_FORWARDING ja schon mal aktiviert.
Ich werde mal konkreter:

route.conf:
192.168.15.0 0.0.0.0 255.255.255.0 eth0
192.168.100.0 0.0.0.0 255.255.255.0 eth1


192.168.98.1 0.0.0.0 255.255.255.255 ippp0


Wobei eth0 das lokale Netz ist, eth1 der DSL-Anschluss und ippp0 eine ISDN-Karte ist. Zugreifen möchte ich nun z.B. auf 192.168.15.121.
Was hätte ich nun zu tun?

Schärple
24.03.04, 17:11
Leider hast Du bisher nicht erzählt, mit was du dein VPN realisiert hast.
Ich verwende dafür z.B. OpenVPN, welches mir dann für jeden VPN-Tunnel
ein virtuelles Device erstellt (default: tun0). dieses Interface binde ich
dann an eine IP Adresse in einem Subnet, das ich nur für die beiden
Tunnelenden verwende.

Also bei mir sieht das dann am Router in etwa so aus:

Router netdevices:
eth0/ppp0 (ins internet, dynamische IP)
eth1 (ins intranet, z.b. 192.168.0.0)
tun0 (in den VPN Tunnel, z.b. 10.10.0.1)

tun0 ist wie gesagt ein virtuelles Device, das Du aber wie eine reelle NIC
ansprechen kannst.

Stells Dir so vor, du sitzt an deinem externen Rechner, und sendest eine
Anfrage an einen Computer in deinem Intranet. Nun musst Du deinem
Externen Computer sagen, über welche(s) IP/Device er sein Ziel erreichen
kann. Normalerweise versucht dein Rechner, wenn er nach einem anderen
sucht, der nicht im selben Subnet ist und mittels arp-Protokoll aufgelöst werden
könnte das Defaultgateway zu benutzen. Sie soll er ja nun aber nicht machen,
da du zum Einen eine private Adresse auflösen möchtest, die im Internet nicht
geroutet wird und zum Anderen sollen diese Anfragen ja durch den VPN Tunnel
geleitet werden.
Ich setze nun einmal voraus, das Du ein Interface an deinem Rechner hast, mit
dem Du dein Ende des Tunnels ansprichst (tun0). Das Andere Ende des
Tunnels ist nun also dein Gateway, welches die Anfragen weiterleitet.
Auf dem Externen Rechner fügst Du nun also eine Route in der Art
" route add -net 192.168.0.0 -dev tun0 " hinzu. Ab jetzt weiss dein externer
Rechner, dass er das Netz 192.168.0.0 über das interface tun0 erreichen kann.
Was jetzt noch genauso wichtig ist, ist dass Du den Rechnern in deinem
Intranet, bzw. dem Router sagst wie er deinen Externen Rechner zu erreichen
hat (bzw. das Netzwerk hinter diesem) dazu musst Du einen ähnlichen Eintrag
in die Routingtabelle deines Routers machen.

Danach solltest Du alle Rechner in deinem Intranet erreichen können.

Peace-on-earth
24.03.04, 23:37
Den VPN habe ich mittels pptpd aus dem SuSE 7.3-Paket realisiert. Sobald ich eingewählt bin, steht ppp1 zur Verfügung.


Ich versuche das mal, verständnishalber, zu umreisen:

Ich muss die Routingtabelle meines Laptops (WIN 2000), mit dem ich mich von außerhalb über VPN einwähle, anpassen. Ich muss sagen, wenn ich einen Ping an 192.168.15.121 (ein Netzwerkdrucker) ausführe, leite dies zum Server im Internet.
Genauso muss ich die Routingtabelle meines Servers anpassen. Pakete, die nun für 192.168.15.121 ankommen müssen auch an eth0 (also ins Intranet) weitergeleitet werden.

Habe ich das richtig verstanden? Nachdem ich auf diesem Gebiet, wie schon erwähnt, als absouluter Newbie einzustufen bin, wie müsste meine route.conf aussehen? Wie müsste die bei meinem W2K-Rechner aussehen und wo finde ich die überhaupt? Und wieso funktioniert bei bestehender Verbindung der Ping mit lokaler IP (192.168.15.100) zum Server schon? Der dürfte doch gar nicht funktionieren, da die eth0 mit ppp1 bisher ja nicht verbunden ist, oder? Oder komplett falsch? ppp1 habe ich vorerst komplett freigeschalten mit:

iptables -I INPUT -i ppp1 -j ACCEPT
iptables -I OUTPUT -o ppp1 -j ACCEPT

Schärple
25.03.04, 10:03
poste mal bitte den Output von "ifconfig" und "route" auf deinem Server und "ipconfig" sowie "routes show" auf deinem Notebook. Vielleicht verlierst Du noch ein paar Worte über die Topologie deiner Netze (welche Subnets usw.) Dann können wir uns das mal genauer anschauen.


Gruß

Peace-on-earth
25.03.04, 11:30
server:~ # ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:FC:A2:F3:95
inet addr:192.168.15.100 Bcast:192.168.15.255 Mask:255.255.255.0
inet6 addr: fe80::250:fcff:fea2:f395/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1492 Metric:1
RX packets:13186387 errors:0 dropped:0 overruns:0 frame:0
TX packets:8033448 errors:0 dropped:0 overruns:0 carrier:0
collisions:218619 txqueuelen:100
RX bytes:3927506864 (3745.5 Mb) TX bytes:1554822576 (1482.7 Mb)
Interrupt:12 Base address:0x2000

eth1 Link encap:Ethernet HWaddr 00:50:FC:A2:F3:80
inet addr:192.168.100.100 Bcast:192.168.100.255 Mask:255.255.255.0
inet6 addr: fe80::250:fcff:fea2:f380/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:789203 errors:0 dropped:0 overruns:0 frame:0
TX packets:637126 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:740679873 (706.3 Mb) TX bytes:99580989 (94.9 Mb)
Interrupt:9

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:7580 errors:0 dropped:0 overruns:0 frame:0
TX packets:7580 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4861252 (4.6 Mb) TX bytes:4861252 (4.6 Mb)

ppp0 Link encap:Point-to-Point Protocol
inet addr:80.138.134.141 P-t-P:217.5.98.157 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:17604 errors:0 dropped:0 overruns:0 frame:0
TX packets:16119 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:10197127 (9.7 Mb) TX bytes:3061393 (2.9 Mb)





server:~ # route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
217.5.98.157 * 255.255.255.255 UH 0 0 0 ppp0
192.168.100.0 * 255.255.255.0 U 0 0 0 eth1
192.168.100.0 * 255.255.255.0 U 0 0 0 eth1
192.168.15.0 * 255.255.255.0 U 0 0 0 eth0
192.168.15.0 * 255.255.255.0 U 0 0 0 eth0
default 217.5.98.157 0.0.0.0 UG 0 0 0 ppp0



C:\Dokumente und Einstellungen\laptop>ipconfig

Windows 2000-IP-Konfiguration

Ethernetadapter "Interne Netzwerkkarte":

Verbindungsspezifisches DNS-Suffix:
IP-Adresse. . . . . . . . . . . . : 192.168.15.112
Subnetzmaske. . . . . . . . . . . : 255.255.255.0
Standardgateway . . . . . . . . . : 192.168.15.100



C:\Dokumente und Einstellungen\laptop>route PRINT
================================================== =========================
Schnittstellenliste
0x1 ........................... MS TCP Loopback interface
0x1000003 ...00 03 0d 03 a6 bc ...... SiS NIC SISNIC
================================================== =========================
================================================== =========================
Aktive Routen:
Netzwerkziel Netzwerkmaske Gateway Schnittstelle Anzahl
0.0.0.0 0.0.0.0 192.168.15.100 192.168.15.112 1
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
192.168.15.0 255.255.255.0 192.168.15.112 192.168.15.112 1
192.168.15.112 255.255.255.255 127.0.0.1 127.0.0.1 1
192.168.15.255 255.255.255.255 192.168.15.112 192.168.15.112 1
224.0.0.0 224.0.0.0 192.168.15.112 192.168.15.112 1
255.255.255.255 255.255.255.255 192.168.15.112 192.168.15.112 1
Standardgateway: 192.168.15.100
================================================== =========================
Ständige Routen:
Keine



Server: 192.168.15.100, stellt Internetverbindung über Masquerading zum Intranet her, VPN-Tunnel

Laptop: im Moment im Intranet direkt gesteckt, daher kein ppp1 beim Server. Baue ich den Tunnel im Intranet (also nich außerhalb) auf ergibt sich Folgendes:

server:~ # ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:FC:A2:F3:95
inet addr:192.168.15.100 Bcast:192.168.15.255 Mask:255.255.255.0
inet6 addr: fe80::250:fcff:fea2:f395/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1492 Metric:1
RX packets:13192583 errors:0 dropped:0 overruns:0 frame:0
TX packets:8041473 errors:0 dropped:0 overruns:0 carrier:0
collisions:218644 txqueuelen:100
RX bytes:3928164145 (3746.1 Mb) TX bytes:1563155825 (1490.7 Mb)
Interrupt:12 Base address:0x2000

eth1 Link encap:Ethernet HWaddr 00:50:FC:A2:F3:80
inet addr:192.168.100.100 Bcast:192.168.100.255 Mask:255.255.255.0
inet6 addr: fe80::250:fcff:fea2:f380/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:795583 errors:0 dropped:0 overruns:0 frame:0
TX packets:641898 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:748498755 (713.8 Mb) TX bytes:100152178 (95.5 Mb)
Interrupt:9

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:7580 errors:0 dropped:0 overruns:0 frame:0
TX packets:7580 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4861252 (4.6 Mb) TX bytes:4861252 (4.6 Mb)

ppp0 Link encap:Point-to-Point Protocol
inet addr:80.138.134.141 P-t-P:217.5.98.157 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:23940 errors:0 dropped:0 overruns:0 frame:0
TX packets:20843 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:17873977 (17.0 Mb) TX bytes:3524988 (3.3 Mb)

ppp1 Link encap:Point-to-Point Protocol
inet addr:192.168.3.240 P-t-P:192.168.4.241 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1490 Metric:1
RX packets:61 errors:0 dropped:0 overruns:0 frame:0
TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:5524 (5.3 Kb) TX bytes:226 (226.0 b)



server:~ # route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
217.5.98.157 * 255.255.255.255 UH 0 0 0 ppp0
192.168.4.241 * 255.255.255.255 UH 0 0 0 ppp1
192.168.100.0 * 255.255.255.0 U 0 0 0 eth1
192.168.100.0 * 255.255.255.0 U 0 0 0 eth1
192.168.15.0 * 255.255.255.0 U 0 0 0 eth0
192.168.15.0 * 255.255.255.0 U 0 0 0 eth0
default 217.5.98.157 0.0.0.0 UG 0 0 0 ppp0


Ich weiß nicht, ob diese Tabellen anders aussehen, wenn ich z.B. zu Hause, außerhalb des Intranets, bin. Wenn Du diesen Output benötigst, kann ich ihn nachher posten. Zu den Netzen gibt's nicht sehr viel zu sagen. Ich hab hier im Büro den Linux-Server stehen, der u.a. dem Intranet Zugang zum Internet ermöglicht. Im Intranet sind einzelne Windows Workstations, z.T. mit W2K, z.T. noch mit NT. T-DSL Business 1500, aber nicht mehr lange, dann Q-DSLmax 3.084 mit fester IP-Adresse (noch nicht bekannt).
Ziel ist es, mein Notebook mit nach Hause zu nehmen, und dort wie im Büro-Intranet zu arbeiten. Ich möchte z.B. auf Netzwerkdrucker und andere Rechner zugreifen können, eben so wie wenn ich direkt gesteckt wäre. Zuhause teile ich mir Arcor-DSL 768 mit einem Bekannten. Ein kleines Netzwerk mit drei Rechner, verbunden über einen D-Link-Router, der gleichzeitig für's Internet sorgt. Dort benutze ich nicht die oben angegebene 'interne Netzwerkkarte' sondern eine PCMSIC-WLAN von D-Link. DHCP akitiviert, aber eine feste IP wäre kein Thema. Als Standardgateway ist dort 192.168.0.1 eingetragen.


Ich hoffe, mit diesen Informationen kannst Du etwas anfangen. Schon mal vielen lieben Dank für Deine Bemühungen...


Stephan

Schärple
25.03.04, 15:03
ok damit kömmer arbeiten ;].

Was mir jetzt noch fehlt:

In welchem Subnet sind die Clients auf die du zugreifen willst? (192.168.100.0 oder 192.168.15.0)

Peace-on-earth
25.03.04, 16:01
in 192.168.15.0 sind die Clients, das ist im Büro
in 192.168.100.0 bin ich mit meinem Notebook, wenn ich zu Hause in meinem "DSL-Netzwerk" sitze


:)

Schärple
25.03.04, 18:27
Okay,

ich gehe davon aus, dass auch deinem NB wenn das VPN aktiv ist, die Defaultroute auf
das Internetdevice, also nicht dein VPN-Device zeigt. Du musst nun dem Notebook eine
Route zuteilen, nachder es das Netz 192.168.15.0 erreichen kann. Wie das genau in Win
geht weiss ich nicht, aber halte Dich daran: "Route zum Netz 192.168.15.0 über Gateway
192.168.3.240 (Das Ende des Tunnels am Router, welches die weiteren peerings kennt)".

Auf dem Router musst Du eine Route definieren, nach der die vom Notebook gesendeten Packete
auch wieder zurück finden. Das machst Du via " route add -host 192.168.4.241 -dev ppp1" (Erreiche
den Host 192.168.4.241 über das Device ppp1).


mal sehn, obs hilft ;]

Peace-on-earth
25.03.04, 18:52
ich gehe davon aus, dass auch deinem NB wenn das VPN aktiv ist, die Defaultroute auf
das Internetdevice, also nicht dein VPN-Device zeigt. Du musst nun dem Notebook eine
Route zuteilen, nachder es das Netz 192.168.15.0 erreichen kann.

Ähm, gute Frage. Wenn der VPN aktiv ist, komme ich zumindest nicht ins Internet. Den Server selbst (192.168.15.100) kann ich in der Windows-Konsole bei aktivem VPN pingen. Kann es sein das die Route des NBs bei aktivem VPN schon passt? Der Parallelbetrieb Internet VPN wäre meine nächste Frage gewesen..... aber erst mal ganz egal.


Das geschieht auf dem Server:

server:~ # route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
217.5.98.157 * 255.255.255.255 UH 0 0 0 ppp0
192.168.4.240 * 255.255.255.255 UH 0 0 0 ppp1
192.168.100.0 * 255.255.255.0 U 0 0 0 eth1
192.168.100.0 * 255.255.255.0 U 0 0 0 eth1
192.168.15.0 * 255.255.255.0 U 0 0 0 eth0
192.168.15.0 * 255.255.255.0 U 0 0 0 eth0
default 217.5.98.157 0.0.0.0 UG 0 0 0 ppp0
server:~ # route add -host 192.168.4.240 -dev ppp1
route: invalid option -- d
Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables
route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.

route {-h|--help} [<AF>] Detailed usage syntax for specified AF.
route {-V|--version} Display version/author and exit.

-v, --verbose be verbose
-n, --numeric don't resolve names
-e, --extend display other/more information
-F, --fib display Forwarding Information Base (default)
-C, --cache display routing cache instead of FIB

<AF>=Use '-A <af>' or '--<af>'; default: inet
List of possible address families (which support routing):
inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)
netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP)
x25 (CCITT X.25)


Nachdem ppp1 nun 192.168.4.240 hat, habe ich Deinen Befehl mit dieser IP ausgeführt. Aber war irgendwie nix. :(

Schärple
26.03.04, 09:59
Sorry,

sollte heißen:


route add -host 192.168.4.240 dev ppp1 (nicht -dev).

Aber deine Routingtabelle stimmt eigentlich schon soweit. Was passiert denn wenn du
einen Rechner im 15er Subnet pingen möchtest?

Peace-on-earth
26.03.04, 13:33
Ich bin inzwischen ein ganzes Stück weitergekommen. Habe es geschafft, den Drucker (192.168.15.121) im Büro von zu Hause aus anzupingen.
Habe nach langen Versuchen die richtigen (?) Einstellungen bei SuSEfirewall2 gefunden:

FW_DEV_INT="eth0 ppp1"
eigentlich logisch, das VPN-Device ppp1 ist natürlich ein internes. Bis dato hatte ich das in dem Skript gar nicht erwähnt. Irritierend war aber, das der VPN-Server trotzdem pingbar war. Aber das übersteigt wohl meinen Wissenshorizont.

FW_ALLOW_CLASS_ROUTING="yes"
was dieser Eintrag genau macht, habe ich nicht wirklich verstanden. Habe das beim googlen gefunden. Vielleicht hast Du oder ein Anderer einen Hintergrund dazu?

Der Drucker und auch andere Clients im 15er-Netz sind jetzt pingbar. Der Drucker hat einen eigenen Web-Server drauf, über den ich den Zustand der Verbrauchsmaterialien abfragen kann. Auf diese Seite komme ich unter Verwendung seiner ganz normalen IP ohne Mucken. Nur drucken kann ich nicht drauf. Genauso ein anderer Drucker mit Print-Server. Die Firewall bringt nur folgende Meldung:

Mar 26 15:13:00 server kernel: martian source 195.185.175.254 from 195.185.175.10, on dev eth0
Mar 26 15:13:00 server kernel: ll header: ff:ff:ff:ff:ff:ff:00:50:da:43:fd:7e:08:06

Mit der kann ich gar nichts anfangen. An was liegt das jetzt an der Route oder an der Firewall?


Aber deine Routingtabelle stimmt eigentlich schon soweit. Was passiert denn wenn du einen Rechner im 15er Subnet pingen möchtest?

Wenn ich z.B. in der ssh-shell, also eigentlich am Linux-Server, mein NB zu Hause pinge (im Moment für den Server die IP 192.168.4.241) funktioniert das einwandfrei. So wie's aussieht, funtkioniert das Pingen nun.



route add -host 192.168.4.240 dev ppp1 (nicht -dev).

habe ich nun erst mal noch nicht angewandt, da es ja gerade tut, zumindest das Pingen untereinander.