AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi mini Firewall programmieren ??
Thema durchsuchen
Ansicht
Themen-Optionen

mini Firewall programmieren ??

Ein Thema von Gigant02 · begonnen am 26. Aug 2006 · letzter Beitrag vom 20. Feb 2009
Antwort Antwort
Seite 5 von 5   « Erste     345   
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#41

Re: mini Firewall programmieren ??

  Alt 26. Jun 2008, 14:24
großartig!!!

Nun weiß ich wirklich mehr...

Wenn ich mich über RDP mit dem Rechner verbinde, geschieht das über den lokalen Port 3389, jedoch über den remoteport 1137 (in meinem fall jetzt)
der Remoteport ändert sich nur leider bei jeder Verbindung. (wird hochgezählt)

hab nun erstmal die Ports 1130-1140 freigegeben, hoffe das ist so festgelegt ;D
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#42

Re: mini Firewall programmieren ??

  Alt 26. Jun 2008, 14:47
Moin moin,
Zitat von Morphie:
Bin über RDP auf dem Rechner drauf, auf dem ich das Programm ausführe, die Verbindung wird trotzdem unterbrochen...
Gedankenfehler von mir?
Evtl. doch ein Denkfehler? Wenn du das Programm auf dem Remote-PC startest, dann sollte der Filter wie folgt aussehen:
Infilter (Pakete die am RemotePC ankommen):
  • SourceAddr: any bzw. IP von deinem PC, wenn nur der Zugelassen werden soll
  • SourcePort: any
  • DestAddr: IP des Remote-PCs
  • DestPort: 3389

Outfilter (Pakete die den RemotePC verlassen wollen):
  • SourceAddr: IP des Remote-PCs
  • SourcePort: 3389
  • DestAddr: any bzw. IP von deinem PC, wenn nur der Zugelassen werden soll
  • DestPort: any

So sollte es meiner Meinung nach dauerhaft funktionieren.
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#43

Re: mini Firewall programmieren ??

  Alt 26. Jun 2008, 15:00
Es sieht so aus:
Delphi-Quellcode:
ZeroMemory(@ipFlt.ipFltIn, SizeOf(ipFlt.ipFltIn));
      ipFlt.ipFltIn.dwFilterFlags := 0;
      ipFlt.ipFltIn.dwRule := 0;
      ipFlt.ipFltIn.pfatType := PF_IPV4;
      ipFlt.ipFltIn.fLateBound := 0;
      ipFlt.ipFltIn.dwProtocol := FILTER_PROTO_TCP;

      ipFlt.ipFltIn.wDstPort := FILTER_TCPUDP_PORT_ANY;
      ipFlt.ipFltIn.wDstPortHighRange := FILTER_TCPUDP_PORT_ANY;
      ipFlt.ipFltIn.DstAddr := @ipMy;
      ipFlt.ipFltIn.DstMask := @ipMyMask;
      ipFlt.ipFltIn.wSrcPort := 3389;
      ipFlt.ipFltIn.wSrcPortHighRange := 3389;
      ipFlt.ipFltIn.SrcAddr := @ipOther;
      ipFlt.ipFltIn.SrcMask := @ipOtherMask;

      // Ausgehende Pakete
      ZeroMemory(@ipFlt.ipFltOut, SizeOf(ipFlt.ipFltOut));
      ipFlt.ipFltOut.dwFilterFlags := 0;
      ipFlt.ipFltOut.dwRule := 0;
      ipFlt.ipFltOut.pfatType := PF_IPV4;
      ipFlt.ipFltOut.fLateBound := 0;
      ipFlt.ipFltOut.dwProtocol := FILTER_PROTO_TCP;
      ipFlt.ipFltOut.wDstPort := 3389;
      ipFlt.ipFltOut.wDstPortHighRange := 3389;
      ipFlt.ipFltOut.DstAddr := @ipOther;
      ipFlt.ipFltOut.DstMask := @ipOtherMask;
      ipFlt.ipFltOut.wSrcPort := FILTER_TCPUDP_PORT_ANY;
      ipFlt.ipFltOut.wSrcPortHighRange := FILTER_TCPUDP_PORT_ANY;
      ipFlt.ipFltOut.SrcAddr := @ipMy;
      ipFlt.ipFltOut.SrcMask := @ipMyMask;

      PfAddFiltersToInterface(Handle_Interface, 1, @ipFlt.ipFltIn, 1, @ipFlt.ipFltOut, nil);

ich denke @ipOther (0.0.0.0) steht für "Any", oder?
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#44

Re: mini Firewall programmieren ??

  Alt 26. Jun 2008, 15:14
Ok, nicht ganz korrekt:
Delphi-Quellcode:
//
// Infilter (Pakete die am RemotePC ankommen):
//
// SourceAddr: any bzw. IP von deinem PC, wenn nur der Zugelassen werden soll
      ipFlt.ipFltIn.SrcAddr := @ipOther;
      ipFlt.ipFltIn.SrcMask := @ipOtherMask;
// SourcePort: any
      ipFlt.ipFltIn.wSrcPort := FILTER_TCPUDP_PORT_ANY;
      ipFlt.ipFltIn.wSrcPortHighRange := FILTER_TCPUDP_PORT_ANY;
// DestAddr: IP des Remote-PCs
      ipFlt.ipFltIn.DstAddr := @ipMy;
      ipFlt.ipFltIn.DstMask := @ipMyMask;
// DestPort: 3389
      ipFlt.ipFltIn.wDstPort := 3389;
      ipFlt.ipFltIn.wDstPortHighRange := 3389;
//
// Outfilter (Pakete die den RemotePC verlassen wollen):
//
// SourceAddr: IP des Remote-PCs
      ipFlt.ipFltOut.SrcAddr := @ipMy; //<-- Hier die IP des Remote-PCs
      ipFlt.ipFltOut.SrcMask := @ipMyMask;
// SourcePort: 3389
      ipFlt.ipFltOut.wSrcPort := 3389;
      ipFlt.ipFltOut.wSrcPortHighRange := 3389;
// DestAddr: any bzw. IP von deinem PC, wenn nur der Zugelassen werden soll
      ipFlt.ipFltOut.DstAddr := @ipOther; //<-- evtl. IP von dem PC der sich zu dem Remote-PC verbinden darf, dann aber mit entsprechender Maske
      ipFlt.ipFltOut.DstMask := @ipOtherMask;
// DestPort: any
      ipFlt.ipFltOut.wDstPort := FILTER_TCPUDP_PORT_ANY;
      ipFlt.ipFltOut.wDstPortHighRange := FILTER_TCPUDP_PORT_ANY;
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#45

Re: mini Firewall programmieren ??

  Alt 12. Jul 2008, 23:51
Moin moin,

ich war mir bezüglich der Deklaration aus s.o. nicht sicher und habe hier im Forum nachgefragt.
(Hier)
Demnach sollte die Deklaration bei Delphi 5 wie folgt lauten:
Delphi-Quellcode:
const
  PF_ACTION_FORWARD = 0;
  PF_ACTION_DROP = 1;

type
  PFFORWARD_ACTION = LongInt;
  PPFFORWARD_ACTION = ^PFFORWARD_ACTION;
Bei Delphi 2007 wäre es so korrekt:
Delphi-Quellcode:
type
  _PfForwardAction = (
    PF_ACTION_FORWARD = 0,
    PF_ACTION_DROP );
  PFFORWARD_ACTION = _PfForwardAction;
  PPFFORWARD_ACTION = ^_PfForwardAction;
Sollte Delphi 2007 benutzt werden, müssten die anderen enums in der Unit ebenfalls geändert werden.

@Morphie: Das mit dem doppeltem P PPFFORWARD_ACTION = ^(P)PFFORWARD_ACTION; war wohl ein Typo vom Author.
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat
Sougetsu

Registriert seit: 18. Feb 2009
20 Beiträge
 
#46

Re: mini Firewall programmieren ??

  Alt 19. Feb 2009, 04:28
moin allen

auch wenn dieses thema schon etwas älter ist..... bin ich doch froh, dass es noch da ist.
bin hier schon öffters rumgeschlendert und habe mir das ein oder andere thema durchgelesen, war immer sehr hilfreich.

nun habe ich mich auch mal registriert und möcht auch einen kleinen beitrag leisten^^
das thema hier ist sehr interessant.

habe mich auch mal dran versucht und hier ist mein bisheriges ergebnis. (Rar File on Rapidshare + Source + Bilder)
PaketFilter Example

noch nix besonderes, eine app gui zum starten und anlegen von filtern.
basierend auf den vorlagen von x000x Hinweis: evtl. noch bugs drinne

die regeln werden noch nicht gespeichert, also wenn man es schließt ist alles wieder offen bzw wie es vorher war.
paar bildchen hab ich auch schon mal mit reingepackt, so als vorgeschmack.

benutzung ist dabei einfach, starten, ip eingeben, start klicken, regel erstellen (add klicken), von haus aus wird
alles erstmal geblockt.

für kritik bin ich immer offen, da ich noch anfänger bin, wird es bestimmt ein paar bereiche geben die man hätte
einfacher schreiben können...

was mich noch interessiert wäre ob man das erweitern kann um regeln auch direkt auf anwendungen zu legen!?

das war es erstmal... ich bedanke mich bei x000x für seine hilfreichen beiträge und allen anderen, in deren themen ich mal
war um lösungen/anregungen zu finden =)

greetz
Sougetsu
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#47

Re: mini Firewall programmieren ??

  Alt 19. Feb 2009, 09:22
Wenn du einen anwendungsspezifischen Firewall haben willst, brauchst du einen Application Gateway, der auf OSI-Schicht 7 arbeitet. paketfilter arbeite nur auf OSI-Schicht 3. Das heißt, du musst alle Pakete komplett bis auf Schicht 7 auspacken und analysieren.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Sougetsu

Registriert seit: 18. Feb 2009
20 Beiträge
 
#48

Re: mini Firewall programmieren ??

  Alt 20. Feb 2009, 04:30
Moin

ursprünglich war ich auf der langen suche nach einer firewall für ein w2k3 server os.
anfangs hatte ich auch keine gefunden (freeware). nur die, der bekannten marken.

war daher alles nur ernüchternd. auf das thema hier dann gestossen und gedacht schreibst
eben selbst eine.
mit dem paketfilter war es schon ein guter anfang.

doch leider arbeitet er nicht tiefgehend genug.
naja und noch tiefer im os zu proggen mit eigenen treibern etc pp ist für mich noch zu
schwer.
das überlass ich dann doch lieber denen dies drauf haben.

glücklicherweise habe ich aber heute eine freeware firewall gefunden, die ich nun nutze.
handhabung ist ein bisschen umständlich aber sie tuts und das langt.

in diesem sinne
greetz
Sougetsu
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 5   « Erste     345   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:20 Uhr.
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