В различных версиях ядра Linux используются разные механизмы фильтрации сетевых пакетов.
Самый ранний с исторической точки зрения механизм ipfw, управляемый командой ipfwadm, использовался в ядрах 1.2 - 2.2.
В версии 2.2.10 появился механизим ipchains, который позволил создавать "подпрограммы" из правил, но ещё не умел отслеживать состояние соединений.
С версии 2.4 появился механизм с поддержкой состояний — netfilter, который управляется программой iptables.
С версии 3.13 добавлен механизм nftables, заменяющий iptables, ip6tables, arptables и ebtables. nftables управляется утилитой nft.
В настоящий момент основным механизмом предлагается сделать bpfilter, на основе виртуальной машины eBPF.
Надо различать механизмы сетевой фильтрации в ядре и прикладные программы, которые этими механизмами управляют.
iptables — явное создание, удаление, печать правил netfilter
UFW — генерация правил на основе существующих шаблонов в Ubuntu