Java vs. firewall: Wie Java-Anwendungen ihren eigenen Regelsatz haben

8

Nehmen wir an, ich habe eine Java-Anwendung programmiert, die einen Internetzugang benötigt. Normalerweise erscheint die Firewall und fragt, ob das OK ist. Jetzt habe ich die Möglichkeit, generell den Internetzugang zu erlauben oder bestimmte Regeln zu verwenden. Da ich nur einen Webdienst überprüfe, würde ich eine Regel festlegen, die den Zugriff auf genau diesen Server an einem Port einschränkt.

Jetzt habe ich Java-Anwendung # 2, die auch Internetzugang benötigt. Wenn ich mich entschied, Antrag Nr. 1 vollen Zugang zu geben, dann hat auch Nr. 2 vollen Zugriff. Für die Lösung mit der oben genannten Regel müsste ich eine weitere Regel hinzufügen oder einfach aufgeben und uneingeschränkten Zugriff gewähren und daher der Anwendung Nr. 1 vollen Zugriff gewähren.

Ich denke, Sie können sehen, was mein Problem ist. Vor einiger Zeit bin ich in dieselbe Situation geraten und habe ein oder zwei Wrapper ausprobiert, die ein JAR in eine ausführbare Datei konvertieren. Mir ist aufgefallen, dass sie am Ende einfach die JVM starteten, wodurch die übliche Java-Binärdatei die Internetverbindung öffnete.

Meine Frage ist also: Welche Optionen muss ich haben, damit ein Benutzer für jede Java-Anwendung andere Firewall-Regeln angeben kann?

BEARBEITEN : Nachdem ich den ersten Kommentar gelesen habe, möchte ich klarstellen, dass ich nicht darüber nachdenke, wie ich die Firewall konfigurieren soll, sondern eher, wie Java-Anwendungen selbst mehr oder weniger haben weniger einzigartige Möglichkeit, sich selbst zu identifizieren oder einen anderen Zugang zum Netzwerkzugriff zu haben.

    
sjngm 06.07.2011, 05:46
quelle

4 Antworten

4

Wenn Sie benötigen, ist feinkörniger Zugang. Warum erstellen Sie keine Richtliniendatei und erlauben dem Sicherheitsmanager, die SocketPermissions zu steuern, die Ihrem Programm zugewiesen sind?

Ссылка .

Beispiel unten.

%Vor%     
Deepak Bala 06.07.2011, 06:45
quelle
2

Eine Firewall ist wie eine halbdurchlässige Membran, die ausgehende, aber nicht eingehende Verbindungen zulässt:

%Vor%

Sie können dies umgehen, indem Sie einen Proxy außerhalb der Firewall einrichten, der eingehende Verbindungen von der Außenwelt sowie eingehende Verbindungen von Ihrem "echten" Server akzeptiert. Der Proxy kann die externen Anforderungen an einen der eingehenden Sockets von einem der Server weiterleiten:

%Vor%

Abgesehen davon, dass Sie Ihre genaue Situation nicht kennen, ist dies vielleicht nicht die beste Wahl. Beispielsweise können Sie etwas tun, das nicht wirklich einen Server benötigt, oder vielleicht möchten Sie wirklich einen Server laufen lassen, aber vielleicht sollte man einen auf der Cloud-Computing-Infrastruktur laufen lassen. Es ist schwierig, ein aktuelles Design ohne zusätzliche Details zu empfehlen, was Sie erreichen möchten.

    
Michael Aaron Safyan 06.07.2011 05:59
quelle
0

Einfach alberne Art und Weise um dies herum. Kopieren und benennen Sie java.exe in andere Namen um.

Wenn Sie zwei Apps haben, benennen Sie java [w] .exe in:

um

MyApp.exe

MyApp2.exe

Dann können Sie spezifische Regeln in Ihre Firewall basierend auf ausführbaren Dateien einfügen.

    
Andrew T Finnell 06.07.2011 06:49
quelle
0

Versenden Sie Ihr jvm mit Ihrem Produkt und schreiben Sie ein Skript, um es zu starten und die notwendigen Variablen zu setzen, damit es unabhängig von anderen jvm auf dem System funktioniert.

i.e. Klassenpfad / app / starten / java -jar jar.file

Auf diese Weise wird nur Ihre Version von Java gestartet.

    
Kristen Gillard 24.10.2015 06:41
quelle

Tags und Links