Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Internet-Zugriff via Proxy (squid) (https://www.delphipraxis.net/60590-internet-zugriff-via-proxy-squid.html)

Svenska 9. Jan 2006 19:01


Internet-Zugriff via Proxy (squid)
 
Hallo,

ich möchte mit Delphi 7 Internetprogrammierung machen, es funktioniert auch soweit ganz gut (ClientSocket und ServerSocket). Allerdings auch in der Schule und da gibt es Probleme:

Wir können dort zwar Software installieren, aber das ist umständlich und muss nach jedem Rechnerneustart erneut gemacht werden, außerdem muss das Programm jedesmal runtergeladen werden (wir können keine .exe Dateien auf dem Homelaufwerk speichern, außerdem hat das nur 15 MB). Und wir haben in der Schule einen Proxy-Server (einen Squid auf Port 3128).

Wie kann ich jetzt über diesen Proxy eine Verbindung ins Internet herstellen?
Mit putty.exe kann ich auf alle Internetprotokolle zugreifen (HTTP, FTP, ICQ, IRC wären wichtig), jedenfalls gibt es eine Verbindung und ich kann mit dem Server kommunizieren (über ICQ schwierig). Aber wie kriege ich das mit Delphi 7 hin, unter Verwendung der Standardkomponenten?

Ich möchte nämlich einen kleinen IRC-Clienten im Informatikunterricht schreiben, aber zum Vorführen muss es in der Schule klappen - und daran scheitert es. Indys fallen leider raus.

Soweit ich weiß, muss ich dazu eine Verbindung zum Proxy direkt herstellen und dem dann mitteilen, zu welchem Server ich mich verbinden will; wenn mir einer hierzu ein Tutorial oder ein Howto geben könnte, würd ich mich sehr freuen.

MfG
Svenska

mkinzler 9. Jan 2006 21:23

Re: Internet-Zugriff via Proxy (squid)
 
Was meinst du mit Standardkomponenten? Bei den Indykomponenten gibt es z.B. die Klasse TIdConnectThroughHttpProxy.
Die Klasse THTTPSend aus dem OS-Paket Synapse hat direkt Properties für die Proxyeinstellungen.
Der Squid ist aber nur Proxy(Stellvertreter) für die Protokolle http, https, ftp. Andere Protokolle müssen ggf über diese Protokolle "getunnelt" werden.

Svenska 9. Jan 2006 21:40

Re: Internet-Zugriff via Proxy (squid)
 
Hallo,

ich hab doch geschrieben, dass Indys nicht gehen....?!?
Standardkompontenten = TServerSocket, TClientSocket.

Meine Frage war nur, wie ich über den Proxy eine direkte Verbindung zu einem Server aufbauen kann, also z.B. IRC über ebendiesen Proxy betreiben kann.

Gruß,
Svenska

mkinzler 9. Jan 2006 22:13

Re: Internet-Zugriff via Proxy (squid)
 
Zitat:

Zitat von Svenska
Meine Frage war nur, wie ich über den Proxy eine direkte Verbindung zu einem Server aufbauen kann, also z.B. IRC über ebendiesen Proxy betreiben kann.

Gruß,
Svenska

Über einen Proxy kannst du keine direkten Verbindungen aufbauen. Ein Proxy sendet als Folge einer Anfrage von einem Client eine weitere Anfrage an das eigentliche Ziel ( Absender-Adresse+Prt sind IP/port des Proxies) und leitet die Antwort des Zielservers an den Client zurück ( Es gibt also 2 Verbindugen: Client<->Proxy + Proxy<->Zielserver).
Der Proxy versteht wie gesagt nur ein paar Protokolle. Andere Protokolle müssen ggf "getunnelt" werden. D.H du brauchst einen Server im Internet der dir IRC nach HTTP vermittelt.

Zitat:

Mit putty.exe kann ich auf alle Internetprotokolle zugreifen (HTTP, FTP, ICQ, IRC wären wichtig)
Putty stellt über die Protokolle ssh oder telnet eien Verbindung mit dem Server her, auf welchem der putty läuft.
Programme die dann in putty gestartet werden laufen auf dem Gatewayrechner, welcher direkt auf Internet zugreift. Willst kannst also einen eigenen Proxy für die gewollten Protokolle schreiben.

Basilikum 9. Jan 2006 23:11

Re: Internet-Zugriff via Proxy (squid)
 
es gibt sehr wohl die Möglichkeit, via Proxy eine direkte Verbindung zu einem Ziel-TCP-Server aufzubauen: HTTP-Request-Method "CONNECT"

diese wird auch verwendet, um ein durchgehendes SSL-Tunnel vom Browser bis zum Server - auch via Proxy (aber nicht als Man-In-The-Middle) - aufzubauen...

Client:
CONNECT www.domain.com:443 HTTP/1.0

Server:
HTTP/1.0 200 OK

nach der Antwort vom Proxy besteht eine direkte, transparente Verbindung zum eigentlichen Server...

der Haken an der Sache: "gute" Proxy-Admins erlauben die CONNECT-Methode lediglich auf Well-Known-Ports wie z.B. 443 (HTTPS)...

RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1

Svenska 10. Jan 2006 08:27

Re: Internet-Zugriff via Proxy (squid)
 
Hallo,

mit putty.exe kann ich nur eine Verbindung zu Servern herstellen, wenn ich den Proxy dort eintrage.

Also muss ich zum Proxy im Prinzip eine HTTP-Verbindung herstellen, kann dann aber alle möglichen Binärdaten/Textdaten mit jedem Protokoll auf jedem Port durchführen?

Ich werde den Vorschlag gleich mal ausprobieren.
Danke einstweilen!

Es funktioniert, danke vielmals! Ich hatte nicht gedacht, dass man das über ein (zurechtgestutztes) HTTP machen muss. Jedenfalls kann ich mich prima zu irc.quakenet.org:6667 und login.icq.com:5190 verbinden, geh also mal davon aus, dass der Server-Admin schlecht ist.

Gruß,
Svenska

monXii 13. Dez 2008 19:15

Re: Internet-Zugriff via Proxy (squid)
 
ich habe ähnliches vor..
habe aber garkeinen ansatz wie ich es realisieren soll..

also ich will über einen proxy auf einen IRC-Server connecten..
die posts hier drüber konnten mir nicht weiter helfen..
ich habe es schonmal mit der Indy Komponente IdIRC versucht..
so alles ganz schön und gut.. nur finde ich dort keine proxy einstellungsmöglichkeiten..
jetz dachte ich das das ja auch irgendwie anders gehen muss.. :)
weil damals habe ich das mal in MSL (mirc scripting language) mit sockets geschafft.. :D

hoffe mir kann jmd helfen..



EDIT:
oder sollte ich lieber n neuen thread aufmachen? =)

SirTwist 14. Dez 2008 08:43

Re: Internet-Zugriff via Proxy (squid)
 
Die üblichen Proxies sprechen eigentlich nur HTTP, HTTPs und vielleicht noch FTP. In kommerziellen CLients wie mIRC sind natürlich passende Erweiterungen drin, dass mIRC zum Proxy hin HTTP spricht und den Proxy bittet, eine transparente VErbindung zur Zieladresse durchzuschalten. Erst in diesem transparenten Kanal spricht mIRC dann IRC.

Wäre es nicht viel einfacher, den Admin zu bitten, den Port 6666 freizuschalten? Dann kann man einfach so ircen ohne endlos viel Zeit in irgendwelche Proxyprogrammierung zu stecken.

mkinzler 14. Dez 2008 10:21

Re: Internet-Zugriff via Proxy (squid)
 
Ein Proxy (Stellvertreter) arbeitet auf Ebene 7 (IP Ebene 5). Er muss also pro Protokoll implemnetiert werden. Eine Freischaltung des Ports verstösst höchstwahrscheinlich der Sicherheitrichtlinien des Unternehmens. Besser wäre eine Tunnelung.

SirTwist 14. Dez 2008 11:32

Re: Internet-Zugriff via Proxy (squid)
 
Hi mkinzler,
Zitat:

Zitat von mkinzler
Ein Proxy (Stellvertreter) arbeitet auf Ebene 7 (IP Ebene 5). Er muss also pro Protokoll implemnetiert werden. Eine Freischaltung des Ports verstösst höchstwahrscheinlich der Sicherheitrichtlinien des Unternehmens. Besser wäre eine Tunnelung.

Das mit dem Verstoß gegen die Sicherheitsrichtlinien ist mir schon klar ;-) Nur dann verstößt die selbst geschaffene Tunnelung eines nicht gewünschten Protokolls erst recht gegen die Richtlinie - unabhängig davon, ob es technisch möglich ist oder nicht.

Eine konstruktive Antwort auf die ursprüngliche Frage ist also in 80% der Fälle die Anleitung, die Richtlinie zu umgehen, sei es in der Schule, Uni, zuhause oder in einer Firma. Die restlichen 20% würde ich dösigen Admins zuschreiben, die nicht wissen, wie sie mit Firewall/Proxy umgehen können.

Nebenbei: am einfachsten ist es, irgendwo draußen im Netz einen SSH-Server auf Port 443 laufen zu lassen, dann kann ich mich darauf verbinden und innerhalb der SSH-Verbindung so ziemlich jeden anderen TCP-Connect durchtunneln.

Gruß,
SirTwist


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:07 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz