PPTP Protokoll für JAVA

prototype0815

Aktives Mitglied
Hello Leuts,
ich würde gerne dieses Thema nochmal aufgreifen, das gab es schonmal vor einigen Jahren, aber vielleicht hat sich ja etwas in der Hinsicht getan, und es gibt Lösungen oder fertige Libraries oder Klassen dafür.

Mein Fall sieht so aus, geschäftlich verbinde ich mich per OpenVPN auf eine Maschine, nur ist das Problem das mir ein ovpn Tunnel nicht die Möglichkeiten bietet wie ein "WinVPN" mittels "pptp", deshalb muss ich ein Java Programm schreiben das auf eine bekannte OpenVPN-IP automatisch eine "pptp"-LAN Verbindung erstellt.
Das beste daran ist, dass es dynamisch sein soll. Die OpenVPN-IP´s können sich also ändern. Im Prinzip ein Programm das eine pptp Netzwerkverbindung erstellt, auf die IP die ihm mitgegeben wird.

Eine Möglichkeit die mir einfallen würde währe vorhandene DOS Befehle zu nutzen, da ich mich damit aber ebenfalls nicht auskenne, bräuchte ich auch dafür Hilfe.

LG proto:toll:
 

Anti-Banane

Gesperrter Benutzer
schon mal ganz falscher ansatz !

PPTP selbst ist ein tunnel-protokoll ... und laut wiki dazu auch mitlerweile nicht mehr sicher (ob es das überhaupt jemals war ? denn auth und crypt sind optional und daher implementierungsabhängig)

ergo : PPTP sollte schon mal überhaupt nicht mehr verwendet werden


zweitens : OpenVPN nutzt sein eigenes protokoll, hat also nichts direkt mit PPTP, IPsec oder wie sie nicht alles heißen zu tun (auch wenn ich wette das unter der haube irgendwas in die richtung genutzt wird)


zu dem punkt das die vpn-client-ip's dynamisch sind : kann man machen, würde ich aber nicht
bei einem vpn kann man schon ruhig auf statische ip's gehen da die teilnehmer ja bekannt und zuordbar sind

auch versteh ich die frage nicht wirklich ...

willst du jetzt über den OpenVPN-tunnel einen weiteren tunnel legen ... oder zusätzlich einen zweiten unabhängigen ?

außerdem : java ist dafür nicht wirklich das mittel der wahl da der tunnel letzten endes nur java selbst zur verfügung steht ...
lösungen wie eben OpenVPN die im system ein tun/tap installieren und damit transparent von allen anwendungen genutzt werden können ist deutlich sinnvoller
 

prototype0815

Aktives Mitglied
Es ist so, mein Kollege meint das er mit dem OpenVPN Tunnel eben nicht genau die Features nutzen kann wie er möchte. Mit einem PPTP Tunnel würde das gehen.

Da PPTP wie ihr schon sagtet, nicht allzu sicher ist, öffnen wir zuerst einen OVPN Tunnel der verschlüsselt ist, da sich nun beide PC´s (PC zu Maschinen-PC) im selben Netzwerk befinden ist es sehr einfach einen unverschlüsselten PPTP Tunnel zu machen und zwar genau auf die IP die der Mschinen-PC dank des OVPN hat.

Über diese Verbindung kann nun mein Kollege alles genau so nutzen wie er möchte.

Ich habe vor einiger Zeit ein Programm geschrieben das eine bstimmte Range an IP´s zuerst "anpingt" dann den NetBios Namen des PC´s abfragt und zum Schluss noch prüft ob eine Software aus unserem Haus darauf läuft. Diese Informationen stellt er dann in einer Tabelle zur Verfügung.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Mittlerweile habe ich das Problem "umgangen" es scheint nämlich nicht möglich zu sein das man eine neue VPN-Verbindung per Java anlegt. Deshalb gingen wir davon aus das eine VPN-Verbindung vorhanden sein muss, am besten mit einem bstimmten Namen (sps-ovpn). Wir sprechen hier von einer vorkonfiguierten PPTP Verbindung.
Wenn eine solche angelegt wird taucht folgende Datei im Filesystem auf:
C:\Users\SW\AppData\Roaming\Microsoft\Network\Connections\Pbk\rasphone.pbk
Durch eine kleine Modifikation meines selbst geschriebenen Programms (Aufrufparameter + DoppelklickListener auf die JTable) (durch das klicken wird die IP der angeklickten Zeile benutzt) ist es mir möglich gewesen mithilfe eines BufferedReader und BufferedWriter die Datei zu öffnen, abzuschreiben und ggf. gewünschte Werte zu ändern, abzuspeichern, die alte Datei zu löschen, und die neue Datei in die alte umzubenennen.

Darauf folgt dann noch ein Aufruf eines MS-DOS Befehls der die Verbindung initiert.
Java:
Runtime.getRuntime().exec("rasphone -d \"sps-ovpn\"");
 

Anti-Banane

Gesperrter Benutzer
WIE BITTE ? was bitte ist denn über einen OpenVPN tunnel nicht möglich was über PPTP funktionieren soll ?
frag das mal bitte deinen kollegen wofür er genau PPTP braucht und WARUM es angeblich mit OpenVPN nicht funktionieren soll ... dann könnten wir vielleicht mal gucken ob man ne lösung finden kann


bezüglich dieser wahnwitzigen idee ein TUN/TAP via java im system zu registrieren : geht schon, aber nur mit JNI/JNA ... und DAFÜR ist java nicht erdacht wurden
 

prototype0815

Aktives Mitglied
Die Antwort ist folgende: wenn er per OpenVPN zur Maschine connected, befindet er sich bspw. im 10.8.0.0 Netz. Die SPS Steuerung ist allerdings in einem anderen privaten Netz bspw. 192.168.10.0 und sie lässt sich nur konfiguieren wenn man im selben Netz ist. Deshalb will er eine PPTP Verbindung aufmachen.
 

Anti-Banane

Gesperrter Benutzer
ERLICH ? alter ... ich geh mal kurz in die ecke mich wegkuglen

hat der typ denn mal überhaupt keine ahnung wie n computer funktioniert ? ... sorry ... aber ernsthaft ... wenn man schon sowas wie VPN vor hat sollte man doch bitte mal in der lage sein zu googlen

er kann doch über die server.conf selbst festlegen in welche ip-adressen und -netze verwendet werden

oder er sollte sich vielleicht mit der SPS mal etwas genauer befassen um dort die einstellung zu finden die halt für die beschränkung auf ein spezielles netzt zuständig ist


aber durch einen tunnel noch einen zweiten legen nur damit am ende das ip-netz wieder stimmt ist 1) der falsche ansatz und zeugt 2) leider davon das man überhaupt keine ahnung von dem hat was man da eigentlich macht
 

prototype0815

Aktives Mitglied
Ok, dann lassen wir das mal so im Raum stehen. Gut das ich in diesem kleinen Projekt nur der Entwickler des Java Tools bin, deswegen bin ich nicht in der Verantwortung ob das alles so gut ist wie er es vor hat. Mit SPS kenne ich mich leider gar nicht aus deswegen kann ich zu dem ganzen Thema keine persönliche Stellung nehmen. Aber Danke für eure Hilfe. :toll:
 

Anti-Banane

Gesperrter Benutzer
ja ... bleib locker ... war ja auch nicht auf dich sondern auf den zuständigen kollegen bezogen

ist aber schon ziemlich traurig das man sich software-entwickler oder wie auch immer nennen will und dann nicht mal in der lage ist n rechner zum googlen zu nutzen und sich stattdessen solche aberwitzigen konstrukte einfallen lässt
 

ceving

Aktives Mitglied
Irgendwie hört sich das schon ziemlich gruselig an, was ihr da macht.

Angenommen man kann mit TCP auf eure SPS zugreifen und euch ist TCP, weil im Klartext, nicht sicher genug dann reicht es eigentlich völlig aus, wenn man einen SSL/TLS-Tunnel aufbaut. Dafür gibt es fertige Programme out of the box. Zum Beispiel Stunnel.

Ein VPN braucht man nur, wenn man auch was anderes als TCP transferieren will.

Und das was Stunnel macht, kann man auch sehr einfach in Java direkt selber programmieren. Hier ist ein Beispiel für einen einfachen SSL-Echo-Server:

JAVA + SSL Tutorial

Anstelle die Daten zu echoen müsst ihr lediglich eine TCP-Verbindung zur SPS aufbauen und die Datein in beide Richtungen 1-zu-1 durchreichen.

Sowas zu programmieren ist eine Sache von wenigen Stunden. Und danach hat man eine saubere Betriebssystem-unabhängige Lösung ganz ohne PPTP, RAS, VPN, Runtime-exec oder sonstige Verrenkungen.

Immer vorausgesetzt die SPS redet TCP. Wenn sie Netbios, IPX oder anderes ekliges nicht-routebares Zeug braucht, ist man natürlich aufgeschmissen und dann kommt man nicht um ein VPN, manchmal sogar mit Layer2-Bridge, umhin.
 

Anti-Banane

Gesperrter Benutzer
@ceving
auch wenn das thema scheinbar erledigt zu scheint hast du die eigentlich frage leider nicht verstanden

es geht darum das die SPS sich nur aus einem bestimmten netz ansprechen lässt (eben nur aus 192.168.10.0/24) ... und das OpenVPN netz (standard glaube 10.8.0.0/24) diesem halt nicht entspricht

die lösung die man umsetzen wollte war nun eben durch den OpenVPN-tunnel noch einnen PPTP-tunnel zu ziehen um dann halt dem gewünschten netz zu entsprechen


mal von abgesehen das das totaler müll ist und man das OpenVPN-netz entsprechend anpassen kann durch die konfig und somit als transparenten teil des lokalen netzes machen kann (hab ich mit meinem server selbst ausprobiert) ist java hier an sich schon dafür eigentlich völlig ungeeignet da entsprechend verbindungen über die win-api laufen müssten und eh nur mit tun/tap devies laufen
 

ceving

Aktives Mitglied
es geht darum das die SPS sich nur aus einem bestimmten netz ansprechen lässt (eben nur aus 192.168.10.0/24) ... und das OpenVPN netz (standard glaube 10.8.0.0/24) diesem halt nicht entspricht

Würde man einen SSL-Wrapper benutzen, wäre man genau in dem Netz, weil es gar kein anders Netz gäbe. Das Netz, das hier zum Problem wird, entsteht durch die IP-Tunnelung. Ein Wrapper macht aber keine IP-Tunnelung, sondern packt nur TCP-Pakete in SSL-Pakete (auch wieder TCP) ein.
 

Anti-Banane

Gesperrter Benutzer
-.-'

schon mal an die möglichkeit gedacht das es so einfach vielleicht auch gar nicht umsetzbar ist und daher schon die notwendigkeit eines tunnels besteht ?

wie dem auch sei ... da ja von TO keine rückmeldung kommt sehe ich zumindest die frage als geklärt ...

bezüglich deiner antwort : mir sind solche möglichkeiten bekannt ... wobei auch ich eher auf ein VPN-tunnel als auf simples SSL/TLS setzen würde ... hat bei mir dann aber z.b. den hintergrund das ich dann auch entsprechend das VPN-system so auslegen würde das nur ich mich überhaupt mit verbinden könnte ... was bei einem simplen SSL-Socket und ner scheinbar primitiven SPS weitaus schwieriger wird
 

prototype0815

Aktives Mitglied
wie dem auch sei ... da ja von TO keine rückmeldung kommt sehe ich zumindest die frage als geklärt ...

Also ich lese hier mit freuden mit, bei so was kann man immer einiges lernen :toll:
Da ich erst seit einem Jahr zu den beruflichen Informatikern gehöre ist mein Wissen auf einigen Gebieten noch sehr begrenzt, aber ich freue mich immer über so viel Feedback. :applaus:
 

Anti-Banane

Gesperrter Benutzer
wie gesagt ... es geht hier um gottes willen nicht gegen dich ... sondern erlich gesagt gegen deinen kollegen der sich sowas wahnwitzig einfallen lässt

deine idee da selbst was verschiedenen protokollen tricksen zu wollen war ja gar nicht mal so schlecht

es besteht durch aus die möglichkeit das du halt z.b. einen vorhandenen OpenVPN tunnel nutzt und über diesen mit java daten sendest ... es bringt dir nur nichts wenn dein ziel, also die SPS, diese daten dann nicht verarbeiten kann oder halt nicht will (weil sie z.b. nur daten von einem bestimmten netzt zulässt)

klar könnte man jetzt die pakete spoofen ... aber nicht mit java

das einfachste wäre halt den OpenVPN-tunnel so zu konfigurieren das er den anforderungen der SPS entspricht

die nächste idee wäre, das wenn noch ein binde-glied zwischen sitzt, also z.b. n pc der das ganze umbaut, diesen dazu zu nutzen entsprechende umsetzungen durchzuführen ... mit unix sind das bloß ein paar zeilen

so ... nächster punkt wäre dann schon : SPS hängt selbst direkt am netz und der VPN-tunnel geht direkt auf diese drauf
würde aber auch wieder vorraussetzen das die SPS dann n umfangreichen stack benötigt oder n ganzes system was dann eigentlich in der lage sein sollte über configs das verhalten zu ändern


meine gegenfrage würde diesbezüglich äußern : warum sowas umständliches versuchen wollen wenn es deutlich besser geht
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R PPTP Protokoll für JAVA Netzwerkprogrammierung 3
J Netty umsetzung für ein Protokoll Netzwerkprogrammierung 1
F Protokoll gesucht Netzwerkprogrammierung 21
reibi Socket Socketverbindung nutzt welches Protokoll? Netzwerkprogrammierung 5
T Protokoll Netzwerkprogrammierung 13
T Eigenes Protokoll?Sry ka Netzwerkprogrammierung 4
F Protokoll file:/// Netzwerkprogrammierung 2
G Protokoll definieren - Bücher etc. gesucht Netzwerkprogrammierung 7
P Welches Protokoll für RMI verwenden? Netzwerkprogrammierung 10
C x.400 P7 Protokoll Umsetzung in JAVA Netzwerkprogrammierung 3
K Eigenes Protokoll: Wie? Netzwerkprogrammierung 2
T Message-Protokoll: Verbesserungsmoeglichkeiten im Ansatz? Netzwerkprogrammierung 3
A protokoll unter soap Netzwerkprogrammierung 3
Z Protokoll für Schiffeversenken Netzwerkprogrammierung 5
B Eigenes Protokoll über Sockets verschicken Netzwerkprogrammierung 4
F Client Server Protokoll Netzwerkprogrammierung 4
FrankenDerStein HTTP Https Server Bibliothek für Linux und Android gesucht. Netzwerkprogrammierung 7
FrankenDerStein Socket UDP Multithreading für ein Port Netzwerkprogrammierung 2
M Server-Client-System für Browsergame Netzwerkprogrammierung 5
Tobero Java serversocket nicht nur zuganglich für localhost Netzwerkprogrammierung 6
T Brauche Hilfe beim GET-String für HttpURLConnection Netzwerkprogrammierung 4
F Server für Java Applikationen Netzwerkprogrammierung 16
B Webview für Anwendung Netzwerkprogrammierung 7
M Sicheres Login-System für App implementieren Netzwerkprogrammierung 6
J ERM für kleine Verwaltungsdatenbank Netzwerkprogrammierung 2
H Machbarkeitsfrage: TCP/IP Client (z.B. Netty) für Java Web Applcation Netzwerkprogrammierung 1
Messoras Launcher für mein Spiel Netzwerkprogrammierung 7
F Einfaches Gateway für Log-Files Netzwerkprogrammierung 1
P RMI - Neue eigene Instanz für jeden Aufruf auf nicht serialisierbares Objekt - wie? Netzwerkprogrammierung 0
T FTP Wie Notwendigkeit für "rekey" klientenseitig detektieren? Netzwerkprogrammierung 3
S Webserver für Jar File Netzwerkprogrammierung 4
G Socket Socket verbindung für Chat System Netzwerkprogrammierung 3
V Templates für Java Client rabbitmq Netzwerkprogrammierung 4
M Erreichbar für alle zu sein Netzwerkprogrammierung 9
M Server nur für eine Aufgabe Netzwerkprogrammierung 2
N Selbes URL Objekt für alle Requests nutzen Netzwerkprogrammierung 7
T uberspace.de als (v)root-Ersatz für kleinere Java-Anwendungen? Netzwerkprogrammierung 12
L Proxy für Dateidownload? Netzwerkprogrammierung 3
K HTTP Eigener Http Response für Datei-Download Netzwerkprogrammierung 4
D Socket Leitstelle für Funkspiel Netzwerkprogrammierung 8
F Java-Beispielcode für Zeroconf (ähnlich Apple Bonjour) Netzwerkprogrammierung 7
I HTTP S - Zertifikate+Cockies für Form-basierten Login Netzwerkprogrammierung 2
Ollek Socket Sucher passende Server/Client Lösung für meine Anwendung Netzwerkprogrammierung 2
M Gleicher Port für Senden und Empfangen ? Netzwerkprogrammierung 17
N RMI Einstellungen für "übers Internet" Netzwerkprogrammierung 8
F SSL-Zertifikate für viele Nutzer? Netzwerkprogrammierung 8
K Byte für Byte aus InputStream lesen Netzwerkprogrammierung 5
S wie stell man die classpath für JARs? Netzwerkprogrammierung 3
M Bestimmte Klassen für Netzwerkchecks gesucht Netzwerkprogrammierung 11
M ClassLoader für Axis2 setzen Netzwerkprogrammierung 15
M Welches Speicherformat für News-Database?? Netzwerkprogrammierung 2
Shoox VPN-Verbindung für Datenbankzugriff Netzwerkprogrammierung 2
P Proxy für Anwendung setzten Netzwerkprogrammierung 3
T Bezeichner "end of line" für die Funktion readline Netzwerkprogrammierung 5
A DataGramsocket Übertragungsproblem im Internet (IPs für Voip) Netzwerkprogrammierung 5
E Userliste für Chat Applet Netzwerkprogrammierung 4
S HTTP Kleines Programm für den Routerneustart Netzwerkprogrammierung 3
L Zeitspanne für erneutes senden Netzwerkprogrammierung 16
L Socket Chat Server für mehrere Clients Netzwerkprogrammierung 7
F Netzwerkprogrammierung für Anfänger Netzwerkprogrammierung 2
J Framework/ Muster für Chat-ähnliches Programm gesucht Netzwerkprogrammierung 2
B Variablen ausrichten für Übertragung Netzwerkprogrammierung 2
D FTP Pfadangabe für ftp-upload funktioniert nicht Netzwerkprogrammierung 5
K Getrennte Rechner für RMI-Server/RMI-Registry, bzw. Alternativen? Netzwerkprogrammierung 5
dayaftereh HTTPCleint und HTMLparser für hTTpBot Netzwerkprogrammierung 2
E Socket Client-Applikation mit GUI für Internet IO-Platine Netzwerkprogrammierung 2
0din Grundlage für Bluetooth Netzwerkprogrammierung 5
N "Jungfernflug" der Socketprogrammierung für ein Mühlespiel Netzwerkprogrammierung 8
F Empfehlung für embedded Webserver Netzwerkprogrammierung 10
W Bibliothek für Certificate Management Protocol (CMP) Netzwerkprogrammierung 3
O Client/Server für Ticker Netzwerkprogrammierung 2
J Stubs für SOAP-Webservice generieren. Ich bekomme es einfach nicht hin... Netzwerkprogrammierung 3
dayaftereh Bester Stream für ein Spiel? Netzwerkprogrammierung 15
data89 Sockets: ein alter Hut - für Euch - für mich nicht! Netzwerkprogrammierung 10
G FileDialog für FTP Client Netzwerkprogrammierung 2
H RCON Tool für Gameserver Netzwerkprogrammierung 11
A Wichtig für einen Chat? Netzwerkprogrammierung 4
D Was für Verbindungen mit Socket möglich? Netzwerkprogrammierung 2
S Realisierung eines Netzwerkcodes für ein Strategiespiel Netzwerkprogrammierung 7
G Datagram-Sockets für UDP-Kommunikation Netzwerkprogrammierung 2
W Was für ein Stream soll ich verwenden? Netzwerkprogrammierung 8
A Rezept für Webservices Netzwerkprogrammierung 5
I unc pfad für die klasse file? Netzwerkprogrammierung 4
P eine BufferedReader für alles ankommende Netzwerkprogrammierung 2
T Filter für Input UND OutputStream Netzwerkprogrammierung 4
T Welches Netzwerk ist am bestern für. Netzwerkprogrammierung 2
G server für mein spiel. Netzwerkprogrammierung 5
M Log In Programm für Seiten Netzwerkprogrammierung 2
G Netzwerkprogrammierung für spiele Netzwerkprogrammierung 2
A IRC-Server für das lokale Netzwerk? Netzwerkprogrammierung 12
C Einfacher Filedownload mit Sockets geht nicht für pdffiles Netzwerkprogrammierung 16
S Server für Internetspiel Netzwerkprogrammierung 2
G Objecte für Kommunikation nutzen Netzwerkprogrammierung 2
J Java Programm für Upload von Dateien per HTTP Netzwerkprogrammierung 7
S Voreinstellungen für JavaMail Netzwerkprogrammierung 2
S Idee für Projekt auf Agentenbasis Netzwerkprogrammierung 8
S Suche API für einfachen HTTP-Zugriff. Netzwerkprogrammierung 17
G benötige Beispiel für parallel ablaufende Threads Netzwerkprogrammierung 3
M RMI - Ein Objekt für Alle? Netzwerkprogrammierung 5
T Kann man jeden Port für Programm verwenden? Netzwerkprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben