iptables is the firewall for ubuntu.
Firewallld is just scripts that manage the firewall. Default for redhat and centos but works on many debian distributions.
UFW is also just scripts that manage the firewall. Default for ubuntu desktop if installed. For a server its command line only. Although you could create commands in the webmin, other, custom commands for things you use all the time.
You can remove firewalld and just manage iptables on your own through the webmin, networking, firewall. The good thing about firewalld is that it manages ipv4 and v6. Where as if managed through iptables, you’d have to mange each separately.
Another good “manager” for linux firewalls is CSF. Config server firewall. Little more complicated to setup and get used to, but worth it. Manages firewall and bans abusers. After having used/tried all the above, Ive gone to CSF. Mainly because of clustering, and ability to handle repeat offenders. An IP can be automatically banned across all servers, not just the server where the attempt happened. And the ability to temp ban, then permanently ban repeat offenders. Where as fail2ban, when I used it, would constantly ban and release the same IPs over and over.