![]() |
Re: mini Firewall programmieren ??
großartig!!! :hello:
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 |
Re: mini Firewall programmieren ??
Moin moin,
Zitat:
Infilter (Pakete die am RemotePC ankommen):
Outfilter (Pakete die den RemotePC verlassen wollen):
So sollte es meiner Meinung nach dauerhaft funktionieren. |
Re: mini Firewall programmieren ??
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? |
Re: mini Firewall programmieren ??
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; |
Re: mini Firewall programmieren ??
Moin moin,
ich war mir bezüglich der Deklaration aus ![]() ( ![]() Demnach sollte die Deklaration bei Delphi 5 wie folgt lauten:
Delphi-Quellcode:
Bei Delphi 2007 wäre es so korrekt:
const
PF_ACTION_FORWARD = 0; PF_ACTION_DROP = 1; type PFFORWARD_ACTION = LongInt; PPFFORWARD_ACTION = ^PFFORWARD_ACTION;
Delphi-Quellcode:
Sollte Delphi 2007 benutzt werden, müssten die anderen enums in der Unit ebenfalls geändert werden.
type
_PfForwardAction = ( PF_ACTION_FORWARD = 0, PF_ACTION_DROP ); PFFORWARD_ACTION = _PfForwardAction; PPFFORWARD_ACTION = ^_PfForwardAction; @Morphie: Das mit dem doppeltem P PPFFORWARD_ACTION = ^(P)PFFORWARD_ACTION; war wohl ein Typo vom Author. |
Re: mini Firewall programmieren ??
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) ![]() 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 |
Re: mini Firewall programmieren ??
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.
|
Re: mini Firewall programmieren ??
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz