firewall-cmd is a command line front-end for firewalld (firewalld daemon), a dynamic firewall management tool with D-Bus interface.
It supports both IPv4 and IPv6; it also supports networks firewall zones, bridges and ipsets. It allows for timed firewall rules in zones, logs denied packets, automatically loads kernel modules, and so many other features.
Firewalld uses runtime and permanent configuration options, which you can manage using firewall-cmd. In this article, we will explain how to solve “firewall-cmd: command not found” error on RHEL/CentOS 7 Linux systems.
Read Also: Useful ‘FirewallD’ Rules to Configure and Manage Firewall in Linux
We encountered the above error while trying to configure firewall rules on a newly launched AWS (Amazon Web Services) EC2 (Elastic Cloud Compute) RHEL 7.4 Linux instance, as shown in screenshot below.
To fix this error, you need to install firewalld on RHEL/CentOS 7 using yum package manager as follows.
$ sudo yum install firewalld
Next, start firewalld and enable it to auto-start at system boot, then check its status.
$ sudo systemctl start firewalld $ sudo systemctl enable firewalld $ sudo systemctl status firewalld
Now you can run firewall-cmd to open a port (5000 in this example) in the firewall like this, always reload firewall configurations for the changes to take effect.
$ sudo firewall-cmd --zone=public --add-port=5000/tcp --permanent $ sudo firewall-cmd --reload
To block the above port, run these commands.
$ sudo firewall-cmd --zone=public --remove-port=5000/tcp --permanent $ sudo firewall-cmd --reload
You might also like to read these useful firewalld guides:
- How to Start/Stop and Enable/Disable FirewallD and Iptables Firewall in Linux
- How to Configure FirewallD in CentOS/RHEL 7
- Useful ‘FirewallD’ Rules to Configure and Manage Firewall in Linux
- Firewall Essentials and Network Traffic Control Using FirewallD and Iptables
- How to Block SSH and FTP Access to Specific IP and Network Range in Linux
In this article, we have explained how to solve “firewall-cmd: command not found” on RHEL/CentOS 7. To ask any questions or share some thoughts, use the comment form below.
Thanks for making this, it was useful. Trying to expand my skills beyond iptables.
I’m getting this error when checking the status of firewalld:
ERROR: Exception DBusException: org.freedesktop.DBus.Error.AccessDenied: Connection “:1.11” is not allowed to own the service “org.fedoraproject.FirewallD1” due to security policies in the configuration file