Einfach nur iptables, ohne irgendwelche Extras. In Zukunft halt nftables. Zusätzlich das Paket iptables-persistent, damit die Regeln beim Systemstart automatisch geladen werden.
Bei den meisten Systemen habe ich ein Bashscript, das die Regeln erstmalig erstellt und danach für iptables-persistent abspeichert. Bei Änderungen wird immer nur dieses Script bearbeitet, da die Daten für Firewallregeln aus unterschiedlichen Quellen aufgebaut werden müssen. Auf kleineren Systemen bearbeite ich die /etc/iptables/rules.v{4,6} auch direkt, ohne übergeordnetes Hilfsscript.
Ich nutze auch iptables und ein Script zum erzeugen der Filterketten und Regelsätze für (je nach host) meine LXC-Container bzw KVM-VMs.