Es gibt vorher wenig auf Google zu diesem Thema anders als Leute, die genau diese Frage stellen.
Wie würde ich anfangen, meine eigene Firewall zu schreiben?
Ich möchte einen für die Windows-Plattform schreiben, aber ich würde mich auch für andere Betriebssysteme für diese Informationen interessieren.
Für Windows 2000 / XP gibt es einen Artikel mit Beispielen zu CodeProject Entwicklung von Firewalls für Windows 2000 / XP Windows Filtering Platform
Diese Frage ist alarmierend ähnlich denen, die sich fragen, wie man einen Verschlüsselungsalgorithmus schreibt. Die Antworten auf beide sollten in sanften Erinnerungen an Industriestandardlösungen enden, die bereits:
Eine Firewall muss jedes -Paket effizient und genau prüfen und läuft daher im Betriebssystemkernel oder Netzwerkstacks. Fehler oder Ineffizienzen gefährden die Sicherheit und Leistung der gesamten Maschine und der nachgeschalteten Maschine.
Der Aufbau einer eigenen Firewall auf niedriger Ebene 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
. Das Googlen eines dieser Punkte wird Sie auf viele Theorien, Beispiele und andere hilfreiche Informationen hinweisen.
Um also loszulegen, würde ich TCP / IP (insbesondere die Header-Informationen: Ports und Protokolle) auffrischen und dann über die verschiedenen Arten von Angriffen und deren Erkennung lernen . 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 die Pakete verfolgen, um sicherzustellen, dass sie genau das tun, was Sie tun möchten?
Viel Glück!
Tags und Links language-agnostic firewall