Ich muss eingehende und ausgehende Datenverkehr zu/von einer Linux-Box aus einem C++ - Programm steuern. Ich könnte iptables
aus meinem Programm heraus aufrufen, aber ich würde lieber den mittleren Mann ausschneiden und auf die Kernel-API-Funktionen selbst zugreifen.iptables C++ Steuerelement
Ich glaube, ich muss libnfnetlink verwenden, jedoch konnte ich keine API-Dokumentation oder Beispielprogramme finden.
Die Regeln, die ich erstellen muss, sind ziemlich einfach - Dinge wie das Fallenlassen von Paketen mit einem Zielport gleich X usw. Ich habe nicht vor, eine vollständige Firewall-Anwendung zu schreiben.
Kann jemand einen besseren Ansatz vorschlagen oder einen Link zu einigen Dokumentationen oder Beispiel-Apps bereitstellen? Ich würde es eher vermeiden, den iptables-Code zu lesen, aber ich denke, dass ich möglicherweise muss, wenn ich keine besseren Ressourcen finden kann.
Dies ist eine Kopie von http://stackoverflow.com/questions/109553/how-can- i-programmatically-manage-iptables-rules-on-the-fly – Claris
Wenn Sie sich Sorgen um Popen/vfork overhead machen, können Sie einen anderen Prozess verwenden, um alle iptables-Änderungen zu stacken und sie mit iptables-restore ab und zu zu übernehmen. – anttir