Wie würde ich anfangen, meine eigene Firewall zu schreiben?


8

Es gibt vorherige wenig auf dem Google zu diesem Thema anders als Leute, die genau diese Frage stellen.

Wie würde ich anfangen, meine eigene Firewall zu schreiben?

Ich bin auf der Suche nach einem für die Windows-Plattform, aber ich würde auch diese Informationen für andere Betriebssysteme auch interessiert sein.

8

Für Windows 2000/XP gibt es einen Artikel mit Beispielen auf Codeproject Developing Firewalls for Windows 2000/XP

für Vista denke ich, den Sie verwenden müssen Windows Filtering Platform


2

Die übliche Vorgehensweise ist API Einhaken zu verwenden. Google kann dir das beibringen. Hängen Sie einfach alle wichtigen Netzwerk-Sachen, wie connect 's und listens, und verweigern Sie, was Sie wollen.

  0

API-Hooking kann für eine so genannte "Anwendungsfirewall" nützlich sein, aber für eine Netzwerkfirewall müssen Sie auf der Ebene des Netzwerktreiberstapels arbeiten. 21 nov. 082008-11-21 23:48:06


6

Diese Frage ist alarmierend ähnlich denen, die fragen, wie man einen Verschlüsselungsalgorithmus schreibt. Die Antworten auf beide sollten in sanften Mahnungen über Industriestandard-Lösungen Ende, das bereits:

  • verkörpern Jahre Erfahrung und ständiger Verbesserung,
  • sind wahrscheinlich weitaus sicherer als jede home-grown-Lösung und
  • Konto für Nebenanforderungen wie Effizienz.

muss eine Firewall jedes Paket effizient und genau prüfen, und es läuft daher innerhalb des OS-Kernel oder Netzwerk-Stacks. Fehler oder Ineffizienzen gefährden die Sicherheit und Leistungsfähigkeit der gesamten Maschine und der nachgeschalteten Maschinen.

Der Aufbau einer eigenen Low-Level-Firewall ist eine hervorragende Übung, die eine Ausbildung in vielen Technologien ermöglicht. Aber für jede reale Anwendung ist es viel sicherer und intelligenter, eine Shell um die vorhandene Firewall-API herum zu erstellen. Unter Windows wird der Befehl netsh dies tun; Linux verwendet netfilter und iptables. Wenn Sie eines dieser Dinge googlen, werden Sie auf viele Theorien, Beispiele und andere hilfreiche Informationen hingewiesen.

Also, um loszulegen, Ich würde auf TCP/IP (insbesondere die Header-Informationen: Ports und Protokolle) auffrischen, dann lernen Sie über die verschiedenen Arten von Angriffen und wie man sie erkennen. Erfahren Sie mehr über jedes Betriebssystem, das von Interesse ist, und wie es mit den Netzwerkstapeln interagiert. Denken Sie schließlich über Administration und Protokollierung nach: Wie werden Sie Ihre Firewall konfigurieren und Pakete überwachen, um sicherzustellen, dass sie genau das tut, was Sie tun wollen?

Viel Glück!