Dieses Projekt enthält eine einfache Linux-Firewall, die aus einem Kernel-Modul und einem Benutzerprogramm besteht.
Die Regeln werden in einer JSON-Datei definiert und über Netlink an den Kernel gesendet.
Die Firewall soll Netzwerkverkehr basierend auf benutzerdefinierten Regeln zulassen, blockieren oder ablehnen.
Die Regeldefinition erfolgt über eine JSON-Datei, die vom Benutzerprogramm verarbeitet wird.
-
Makefile
Baut das Kernel-Modul. -
firewall.c
Kernelseitige Firewall-Logik und Netlink-Empfang. -
Rules_and_Jasson/rules.c
Benutzerprogramm zum Parsen der JSON-Regeln und Senden an den Kernel. -
Rules_and_Jasson/firewall_rules.json
Beispiel-Regeln für die Firewall.
- Die Regeln werden aus einer JSON-Datei gelesen.
- Die Regeln werden validiert und in eine interne Struktur geladen.
- Das Benutzerprogramm sendet die Regeln über Netlink an den Kernel.
- Das Kernel-Modul prüft eingehenden bzw. ausgehenden Netzwerkverkehr und entscheidet anhand der Regeln.
- Linux-System mit Kernel-Entwicklungstools
- Root-Rechte für das Laden des Moduls
- GCC / Build-Tools
- Jansson-Library für JSON-Parsing
Im Projektverzeichnis:
make