![]() |
Re: mini Firewall programmieren ??
Lars, Du bist gute 2 Stunden zu spät und hast wohl auch die zweite Seite nicht gesehen? :zwinker:
|
Re: mini Firewall programmieren ??
Zitat:
'n paar Studen durchgehend Mathe zu machen scheint wohl dem Gehirn der Aufmerksamkeit zu schaden :wink: |
Re: mini Firewall programmieren ??
Weis jemand von euch wie man die InstallFW function von DropAllU auf einzelne ports eingrenzen kann?
|
Re: mini Firewall programmieren ??
Liste der Anhänge anzeigen (Anzahl: 1)
Moin moin,
ich hab die Unit von oben mal so angepasst, dass eben nur ein Port geblockt wird. In meinem Fall: Alle ausgehenden Pakete, die als Ziel eine beliebige IP haben und dort auf Port 80 wollen Alle eingehenden Pakete, die von einer beliebigen IP kommen und deren Quellport eben 80 ist. Ansonsten wird nix geblockt. Das Beispiel ist ohne Fehlerbehandlung - ich denke das kann jeder selber einbauen und anpassen...
Delphi-Quellcode:
PS: Es handelt sich hier NICHT um eine Firewall, sondern lediglich nur um einen Paketfilter!
procedure InstallFW(MyIP: String);
var IpLocal : TIpBytes; ipOther : TIpBytes; ipOtherMask : TIpBytes; ipMy : TIpBytes; ipMyMask : TIpBytes; begin if (MyIP <> '') and Not Assigned(Handle_Interface) then begin FillChar(IpLocal, 4, #0); IpLocal := StrToIpBytes(MyIP); PfCreateInterface(0, PF_ACTION_FORWARD, PF_ACTION_FORWARD, False, False, Handle_Interface); PfBindInterfaceToIPAddress(Handle_Interface, PF_IPV4, @ipLocal); // ipMy := StrToIpBytes(PChar(MyIP)); ipMyMask := StrToIpBytes('255.255.255.255'); // ipOther := StrToIpBytes('0.0.0.0'); ipOtherMask := StrToIpBytes('0.0.0.0'); // Eingehende Pakete ZeroMemory(@ipFltIn, SizeOf(ipFltIn)); ipFltIn.dwFilterFlags := 0; ipFltIn.dwRule := 0; ipFltIn.pfatType := PF_IPV4; ipFltIn.fLateBound := 0; ipFltIn.dwProtocol := FILTER_PROTO_TCP; ipFltIn.wDstPort := FILTER_TCPUDP_PORT_ANY; ipFltIn.wDstPortHighRange := FILTER_TCPUDP_PORT_ANY; ipFltIn.DstAddr := @ipMy; ipFltIn.DstMask := @ipMyMask; ipFltIn.wSrcPort := 80; ipFltIn.wSrcPortHighRange := 80; ipFltIn.SrcAddr := @ipOther; ipFltIn.SrcMask := @ipOtherMask; // Ausgehende Pakete ZeroMemory(@ipFltOut, SizeOf(ipFltOut)); ipFltOut.dwFilterFlags := 0; ipFltOut.dwRule := 0; ipFltOut.pfatType := PF_IPV4; ipFltOut.fLateBound := 0; ipFltOut.dwProtocol := FILTER_PROTO_TCP; ipFltOut.wDstPort := 80; ipFltOut.wDstPortHighRange := 80; ipFltOut.DstAddr := @ipOther; ipFltOut.DstMask := @ipOtherMask; ipFltOut.wSrcPort := FILTER_TCPUDP_PORT_ANY; ipFltOut.wSrcPortHighRange := FILTER_TCPUDP_PORT_ANY; ipFltOut.SrcAddr := @ipMy; ipFltOut.SrcMask := @ipMyMask; PfAddFiltersToInterface(Handle_Interface, 1, @ipFltIn, 1, @ipFltOut, nil); end; end; |
Re: mini Firewall programmieren ??
Danke danke danke danke!!
Das hät ich in 100 jahren nicht hinbekommen :D Vielen dank! |
Re: mini Firewall programmieren ??
Hi,
hab das njetzt nochmal ausprobiert aber irgendwie kommt beim compilen immer dieser Fehler: [Pascal Fehler] DropallU.pas(24): E2086 Typ 'PPFFORWARD_ACTION' ist nicht vollständig definiert [Pascal Fataler Fehler] Unit3.pas(7): F2063 Verwendete Unit 'DropallU.pas' kann nicht compiliert werden |
Re: mini Firewall programmieren ??
Moin moin,
kommt der Fehler auch, wenn du mein Beispielcode unverändert kompilierst? |
Re: mini Firewall programmieren ??
Ja, ich hab nichts verändert! Kann mir jemand mal ne exe hochladen ich möchte mal sehen ob's geht :) :) :) Also jetzt von dem was alle blockiert
|
Re: mini Firewall programmieren ??
Liste der Anhänge anzeigen (Anzahl: 1)
Moin moin,
hab dann keine Ideen... Hab kein Turbo Delphi hier um des zu testen. Aber die kompilierte EXE kannste haben... Wie gesagt, blockt nur Port 80 und WinXP SP2 ist Vorraussetzung. Unter Vista wird es nicht funktionieren. |
Re: mini Firewall programmieren ??
funktioniert ja schon extrem gut!
nur hab ich die Geschichte mit dem Regeln-Erstellen nicht so ganz verstanden... Wie würde es dann z.B. aussehen, wenn ich alle Ports -bis auf ein paar (von mir ausgewählte)- sperren wollte? Würd mich über ne Antwort sehr freuen!! :P |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:57 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