Windows-Firewall lässt Java nicht durch

RungetSvohu

Bekanntes Mitglied
Hallo Leute,

ich möchte über Java eine FTP-Verbindung aufbauen, das klappt auch bei ausgeschalteter Firewall, doch wenn sie an ist kommt:
Java:
	java.net.SocketException: Software caused connection abort: socket write error
	at java.net.SocketOutputStream.socketWrite0(Native Method)
	at java.net.SocketOutputStream.socketWrite(Unknown Source)
	at java.net.SocketOutputStream.write(Unknown Source)
	at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source)
	at sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source)
	at sun.nio.cs.StreamEncoder.implFlush(Unknown Source)
	at sun.nio.cs.StreamEncoder.flush(Unknown Source)
	at java.io.OutputStreamWriter.flush(Unknown Source)
	at java.io.BufferedWriter.flush(Unknown Source)
	at org.apache.commons.net.ftp.FTP.__send(FTP.java:496)
	at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:470)
	at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:547)
	at org.apache.commons.net.ftp.FTP.port(FTP.java:872)
	at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:667)
	at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2990)
	at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2965)
	at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2623)
	...

Habe Windows 7 und benutze die Firewall, die dort dabei ist. Nur irgendwie sehe ich nicht, wo man ihr sagen könnte, dass sie meine Javaprozesse nicht blocken soll.

Wisst ihr, wie das geht?
 
Guten Tag,

Code:
Systemsteuerung  ->  System und Sicherheit  ->  Windows Firewall  ->  Ein Programm oder Feature durch die Windows Firewall zulassen  ->  Einstellungen ändern  ->  Anderes Programm zulassen...

Und jetzt nur noch die javaw.exe deines Java Home Verzeichnisses angeben.

MfG

Hauke 🙂
 
Guten Tag,

Code:
Systemsteuerung  ->  System und Sicherheit  ->  Windows Firewall  ->  Ein Programm oder Feature durch die Windows Firewall zulassen  ->  Einstellungen ändern  ->  Anderes Programm zulassen...

Und jetzt nur noch die javaw.exe deines Java Home Verzeichnisses angeben.

MfG

Hauke 🙂

Das war schon drin. Habe nun auch noch die eclipse.exe hinzugefügt (ich lasse es nämlich über eclipse laufen), scheint aber auch nichts zu bringen.
 
Systemsteuerung -> System und Sicherheit -> Windows Firewall -> Windows-Firewall ein- oder ausschalten -> Windows-Firewall deaktivieren, Windows-Firewall deaktivieren.
Wer braucht heutzutage noch Firewalls?
 
Wer braucht heutzutage noch Firewalls?

Die Frage ist n Witz oder ?
Ist zwar richtig das wenn man eigene Security-Software nutzt die ne FireWall drin hat die Win-FireWall abschalten kann (und auch eigentlich muss), aber grundsätzlich sollte man schon n FireWall haben. Gründe FÜR eine FireWall gibt es viele :
-eingehenden und ausgehenden Datenverkehr steuern
-Konfiguration von verschiedenen Netzwerken, deren Segmenenten und Teilnehmern
-Schutz vor remote-Angriffen
-Schutz vor Ausschleusen persönlicher Daten
-Zugangssteuerung in größeren Netzwerken

Wenn du also sagst man bräuchte keine FireWall dann hast du dich mit deinem System noch nie in einem größeren Netzwerk eingeklinkt in dem so einiges nach eben solchen "Opfern" scanned und angreift. Und genau so warst du auch scheinbar noch nicht in der Position zu entscheiden wer mit welchem System welche Rechte hat ins Internet zu gehen oder im LAN bleiben muss.

Sicher kann gerade die Win-FireWall manchmal schon richtig abnerven, aber nur weil man zu faul ist diese richtig einzustellen sollte man sie trotzdem nicht einfach so abschalten. Das Risiko ist einfach zu hoch. Und wenn du jetzt kommst von wegen : mein Router hat eine ... ja gut und is bestimmt auch richtig und hat eher was mit NAT zu tun ... aber schwachstellen gibt es auch dort um Schadcode ins LAN zu schleußen.

Ich finde deine Antwort einfach nur verantwortungslos. Vielleicht wirst du deine Meinung ja ändern wenn dir mal etwas passiert was selbst durch die einfach Win-FireWall hätte verhindert werden können.
 
Es klappt leider immer noch nicht. Ich habe zwar eclipse.exe und auch die ganzen java.exe und javaw.exe freigegeben, aber ohne Erfolg. Der Fehler tritt aber noch nicht beim Login ins FTP-Account auf, sondern erst beim Aufrufen dieser Funktion:

Java:
FTPFile[] org.apache.commons.net.ftp.FTPClient.listFiles(String pathname) throws IOException

Schalte ich die Firewall ab, funktioneirt alles prima. Wie oben schon angegeben wird auch keine IOException sondern eine java.net.SocketException geworfen.

Ich hoffe, ihr wisst Rat. Danke!
 
Vielleicht liegt es daran, dass FTP 2 Ports verwendet um zu kommunizieren:
siehe WIKIPEDIA

Wenn du nur der Control Port frei geschalten ist, könnte der Verbindungsaufbau klappen. Wenn der Data Port zu ist, dann könnte es dein Phänomen ähneln.
 
Vielleicht liegt es daran, dass FTP 2 Ports verwendet um zu kommunizieren:
siehe WIKIPEDIA

Wenn du nur der Control Port frei geschalten ist, könnte der Verbindungsaufbau klappen. Wenn der Data Port zu ist, dann könnte es dein Phänomen ähneln.

Aber über Control Panel\All Control Panel Items\Windows Firewall\Allowed Programs schalte ich doch komplette Anwendungen frei und nicht nur bestimmte Ports, oder? Was muss ich ändern, damit es geht?
 
Ich habe hier noch einen Punkt "Erweiterte Einstellungen" kein Plan wie das im Englischen genau heißt.
Da kann ich extra für ein- und ausgehende Verbindungen Regeln anwenden. Auch auf Ports.
Vielleicht hilft das ja.

Edit: Allerdings ist das die Win7 Enterprise-Edition. Ich weiß nicht, ob es das in der Professional oder Home auch gibt...
 
Ja, das gibt es bei mir auch, heißt einfach "Advanced Settings". Nur da blicke ich nicht so recht durch, muss ich zugeben. Habe mal alle Regeln, die etwas mit Java oder Eclipse zu tun hatten, aktiviert, geht aber dennoch nicht.
 
Hab damit leider auch nie was gemacht...

Hast Du es für beides angepasst? Also Eingehende und Ausgehende Verbindungen?!
Was anderes wüsste ich dann auch nicht mehr...
 
Ich habe nun einmal zum Test alles, was mit Java und Eclipse zu tun hat, deaktiviert. Komischerweise kann ich nun weiterhin problemlos http-Request machen (das sollte doch nun blockiert werden). Die FTP Geschichte geht weiterhin nicht.
 
Dann würde ich es (nochmal?) über die Ports (20,21) probieren.
Also diese in dieser erweiterten Einstellung für Ein- und Ausgang freigeben.
Wenn man da auf Neue Regel klickt, kann man ja statt Programm auch Port auswählen.

Sonst hab ich aber wirklich keine Idee mehr...
Geht denn FileZilla oder Ähnliches?
 
Dann würde ich es (nochmal?) über die Ports (20,21) probieren.
Also diese in dieser erweiterten Einstellung für Ein- und Ausgang freigeben.
Wenn man da auf Neue Regel klickt, kann man ja statt Programm auch Port auswählen.
Welches Programm soll ich da dann eintragen? Bringt das überhaupt etwas, wenn es scheinbar überhaupt keine Rolle spielt, was da eingetragen ist? Ich habe, wie eben gesagt, Java und Eclipse komplett rausgenommen und http geht nach wie vor.

Sonst hab ich aber wirklich keine Idee mehr...
Geht denn FileZilla oder Ähnliches?

Ja, ich benutze täglich Filezilla und zu Filezilla gibt es keinen einzigen Eintrag. Das lässt Windows einfach so durch. Was ist denn das bitte für eine Firewall?
 

Zurück
Oben