So far, we've looked at iptables, a generic firewall management system that's available on all Linux distros, and ufw, which is only available for Ubuntu. For our next act, we turn our attention to firewalld, which is specific to Red Hat Enterprise Linux 7 and all of its offspring.
Unlike ufw for Ubuntu, firewalld isn't just an easy-to-use frontend for iptables. Rather, it's an entirely new way of doing your firewall business, and it isn't compatible with iptables. Understand, though, that iptables still comes installed on the Red Hat 7 family, but it isn't enabled, because you can't have iptables and firewalld enabled at the same time. If you have to use older shell scripts that leverage iptables, you can disable firewalld and enable iptables.
The bottom line is, you can run either iptables or firewalld on your Red Hat or CentOS machine, but you can't run both at the same time.
If you're running Red Hat or CentOS on a desktop machine, you'll see in the applications menu that there is a GUI frontend for firewalld. On a text-mode server, though, all you have is the firewalld commands. For some reason, the Red Hat folk haven't created an ncurses-type program for text-mode servers, the way they did for iptables configuration on older versions of Red Hat.
A big advantage of firewalld is the fact that it's dynamically managed. That means that you can change the firewall configuration without restarting the firewall service, and without interrupting any existing connections to your server.