Toon posts:

[JAVA] java + tunneling + firewall

Pagina: 1
Acties:

Verwijderd

Topicstarter
we moeten een filesharing programma maken zodat we via netwerk bestanden kunnen downloaden van andere computers. Dit werkt al door gebruik te maken van SSLSocket en SSLServerSocket en door bytes te versturen naar de streams van die sockets.
Het probleem is echter dat we geen verbinding kunnen maken met een computer waar een firewall op staat ( bvb. XP firewall).
Dit zou moeten gebeuren met tunneling, maar ik weet niet precies hoe. In de reference guid van JSSE ( http://java.sun.com/j2se/...e/JSSERefGuide.html#SSCWT ) staat er een voorbeeld dat gestart moet worden met het ingeven van -Dhttps.proxyHost=host en -Dhttps.proxyPort=port, maar wat is dan die host en port? ik kan toch moeilijk voor elke client die host en port weten?


Hopelijk weet iemand raad...

[ Voor 10% gewijzigd door Verwijderd op 20-11-2003 11:03 ]


  • bodiam
  • Registratie: December 2001
  • Laatst online: 31-12-2024
Beste i5000882,

Die tunneling die je aangeeft betekent dat je gebruikt gaat maken van een proxyserver. Met die -D instelling zet je een System property, in dit geval het ip adres van de proxyserver, en de poort waarop deze server draait.

Indien alle clients op hetzelfde netwerk zitten, gebruiken ze waarschijnlijk dezelfde proxyserver. Deze proxyserver wordt dus gebruikt om van binnen naar buiten te gaan. Hoe je door die firewall van buitenaf komt weet ik niet, aangezien dat afhankelijk is van de instelling van de firewall.

Erik

Verwijderd

P2P... humh bestaan wat mooie tools voor!

http://www.onjava.com/onjava/p2p_java/

JXTA werkt erg mooi en lost veel problemen op

Verwijderd

Topicstarter
Ja JXTA is inderdaad zeer handig om p2p applicaties te maken, alleen jammer dat wij het niet mogen gebruiken bij het maken van onze applicatie. We moeten zelf dingen implementeren en zo trachte zelf p2p te ontwikkelen.

Ik heb al wat gezocht naar java en tunneling met google, maar ik vind steeds dingen waar de tunneling gebeurd via HTTP. Weet iemand of dit enkel via HTTP kan en zoja, hoe verstuurd ik dan mijn bestanden, kan ik dan gewoon weer bytes sturen naar de streams van de sockets?? Ik zou die HTTP tunneling in principe wel kunnen uitproberen voor één geval, maar dan zit ik nog steeds met die proxyHost en proxyServer. Ik kan toch moeilijk op voorhand weten met wie een client gaat verbinden om een bestand af te halen...
Tis mijn allemaal nog een beetje wazig :?.

Alle hulp is welkom!!
groeten

Verwijderd

Stom idee misschien, maar kun je niet gewoon poort 80 gebruiken voor je SSLSocket, dat zou ook gewoon moeten werken. Tis misschien niet al te netjes maar je ben wel van het hele probleem af.

Tunneling zou idd kunnen via een soort proxy. Als ik goed heb opgelet (en dat heb ik niet dus dit zou fout kunnen zijn) moet je twee 'proxy' uiteindes voor je tunnel hebben:


client:port <--> port:proxy:80 <---- tunnel ----> 80:proxy:port <--> port:client

'Port' is de poort die je wil gebruiken. Je proxy accepteerd deze port en voor je request verder aan de proxy aan het uiteinde van je tunnel op poort 80. De proxy aan het uiteinde weet dat poort 80 voor andere requests dan http is (misschien ff de header lezen) en forward deze naar de doel client op de goeie poort.

Je kunt je er makkelijk vanaf maken en poort 80 gebruiken voor je app of een 'local proxy' maken die alleen voor de app (via localhost) als proxy fungeert.

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17-08 23:56

Janoz

Moderator Devschuur®

!litemod

Dat je vooral tunneling over HTTP vindt is heel erg logisch. Meestal is dat de poort die sowieso wel open staat in de firewall dus als je verkeer via de http poort gaat wordt deze wel doorgelaten.

Persoonlijk ben ik van mening dat jullie je probleem verkeerd annpakken. Jullie weten immers welke poort wordt gebruikt (jullie hebben de communicatie zelf gebouwd), dan kan er in de handleiding precies worden gezegd welke poort er open gezet moet worden. Als je een redelijk hoge poort neemt die niet ook door een trojan gebruikt wordt hoeft dit helemaal niet voor problemen te zorgen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1