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 3 von 5     123 45      
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#21

Re: mini Firewall programmieren ??

  Alt 31. Jan 2008, 12:59
Lars, Du bist gute 2 Stunden zu spät und hast wohl auch die zweite Seite nicht gesehen?
  Mit Zitat antworten Zitat
Benutzerbild von Hador
Hador

Registriert seit: 11. Dez 2004
Ort: Recke
682 Beiträge
 
Turbo Delphi für Win32
 
#22

Re: mini Firewall programmieren ??

  Alt 31. Jan 2008, 13:06
Zitat von Die Muhkuh:
Lars, Du bist gute 2 Stunden zu spät und hast wohl auch die zweite Seite nicht gesehen?
Oh Gott, ich glaub ich sollte ins Bett gehen
'n paar Studen durchgehend Mathe zu machen scheint wohl dem Gehirn der Aufmerksamkeit zu schaden
Lars Kiesow
http://www.larskiesow.de

Computer gehorchen deinen Befehlen, nicht deinen Absichten.
  Mit Zitat antworten Zitat
k4ni

Registriert seit: 17. Jul 2007
Ort: Ulm
258 Beiträge
 
Delphi 7 Enterprise
 
#23

Re: mini Firewall programmieren ??

  Alt 31. Jan 2008, 13:45
Weis jemand von euch wie man die InstallFW function von DropAllU auf einzelne ports eingrenzen kann?
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

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

Re: mini Firewall programmieren ??

  Alt 7. Feb 2008, 20:34
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:
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;
PS: Es handelt sich hier NICHT um eine Firewall, sondern lediglich nur um einen Paketfilter!
Angehängte Dateien
Dateityp: zip filterexample_135.zip (2,9 KB, 86x aufgerufen)
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat
k4ni

Registriert seit: 17. Jul 2007
Ort: Ulm
258 Beiträge
 
Delphi 7 Enterprise
 
#25

Re: mini Firewall programmieren ??

  Alt 7. Feb 2008, 22:15
Danke danke danke danke!!
Das hät ich in 100 jahren nicht hinbekommen Vielen dank!
  Mit Zitat antworten Zitat
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#26

Re: mini Firewall programmieren ??

  Alt 20. Feb 2008, 16:20
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
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

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

Re: mini Firewall programmieren ??

  Alt 20. Feb 2008, 18:18
Moin moin,

kommt der Fehler auch, wenn du mein Beispielcode unverändert kompilierst?
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#28

Re: mini Firewall programmieren ??

  Alt 20. Feb 2008, 19:21
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
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

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

Re: mini Firewall programmieren ??

  Alt 21. Feb 2008, 21:18
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.
Angehängte Dateien
Dateityp: rar filterexample_exe_206.rar (168,9 KB, 24x aufgerufen)
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat
MorphieX

Registriert seit: 6. Jan 2007
10 Beiträge
 
Delphi 2007 Professional
 
#30

Re: mini Firewall programmieren ??

  Alt 25. Jun 2008, 15:21
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!!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 5     123 45      


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 21:48 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