Part – 1 firewalld – Dynamic Firewall Manager Explained ( CentOS 7, RHEL 7, Fedora)

This time I want to explain firewalld for those that are new to CentOS 7 and like me are only used to iptables. This first blogpost is just a rewrite of the manual page for firewalld. This post is the first of many parts how many I’ll write depends on how many people who wants this information. If I see that it’s popular I will write a lot about it. In this blog post I have written the command for you to grab the right manual page like this: man firewalld when you see a command like this [ man page number page ]  for example:  man 5  it’s opens up page 5 of the command. sometimes you just can write [man page] for example: man instead but I usually type the page number to make sure I am in the right spot it’s just a habit of mine often you do not have to type the page number.

Manual page: firewalldDynamic Firewall Manager

These are the command line options of firewalld:

-h –help | “Prints a short help text and exists.”
Example: firewalld -h

Set the debug level for firewalld to level. The range of the debug level is 1 (lowest level) to 10 (highest level). The debug output will be written to the firewalld log file /var/log/firewalld.
Example: firewalld –debug[=5]

Print garbage collector leak information. The collector runs every 10 seconds and if there are leaks, it prints information about the leaks.
Example: firewalld –debug-gc

Turn off daemon forking. Force firewalld to run as a foreground process instead of as a daemon in the background.
Example: firewalld –nofork

Disable writing pid file. By default the program will write a pid file. If the program is invoked with this option it will not check for an existing server process.
Example: firewalld –nopid

firewalld provides a dynamically managed firewall with support for network/firewall zones to define the trust level of network connections or interfaces. It has support for IPv4, IPv6 firewall
settings and for ethernet bridges and has a separation of runtime and permanent configuration options. It also supports an interface for services or applications to add firewall rules directly.

firewalld has a D-BUS interface for firewall configuration of services and applications. It also has a command line client for the user. Services or applications already using D-BUS can request
changes to the firewall with the D-BUS interface directly. For more information on the firewalld D-BUS interface, please have a look at manual page 5 of firewalld.dbus.

man 5 firewalld.dbus

firewalld provides support for zones, predefined services and ICMP types and has a separation of runtime and permanent configuration options. Permanent configuration is loaded from XML files in
/usr/lib/firewalld or /etc/firewalld (see the section called “DIRECTORIES”).

If NetworkManager is not used, there are some limitations: firewalld will not get notified about network device renames. If firewalld gets started after the network is already up, the connections
are not bound to a zone. Manually created interfaces are not bound to a zone. Please add them to a zone with firewall-cmd –zone=zone –add-interface=interface.

Example: firewall-cmd –zone=public –add-interface=wlp3s0

A network or firewall zone defines the trust level of the interface used for a connection. There are several pre-defined zones provided by firewalld. Zone configuration options and generic
information about zones are described in man 5

A service can be a list of local ports and destinations and additionally also a list of firewall helper modules automatically loaded if a service is enabled. Service configuration options and
generic information about services are described in man 5 firewalld.service . The use of predefined services makes it easier for the user to enable and disable access to a service.

ICMP types
The Internet Control Message Protocol (ICMP) is used to exchange information and also error messages in the Internet Protocol (IP). ICMP types can be used in firewalld to limit the exchange of these
messages. For more information, please have a look at man firewalld.icmptype .

Runtime configuration
Runtime configuration is the actual active configuration and is not permanent. After reload/restart of the service or a system reboot, runtime settings will be gone if they haven’t been also in
permanent configuration.

Permanent configuration
The permanent configuration is stored in config files and will be loaded and become new runtime configuration with every machine boot or service reload/restart.

Direct interface
The direct interface is mainly used by services or applications to add specific firewall rules. The rules are not permanent and need to get applied after receiving the start, restart or reload
message from firewalld using D-BUS.

firewalld supports two configuration directories:

Default/Fallback configuration in: /usr/lib/firewalld
This directory contains the default and fallback configuration provided by firewalld for icmptypes, services and zones. The files provided with the firewalld package should not get changed and the
changes are gone with an update of the firewalld package. Additional icmptypes, services and zones can be provided with packages or by creating files.

System configuration settings in: /etc/firewalld
The system or user configuration stored here is either created by the system administrator or by customization with the configuration interface of firewalld or by hand. The files will overload the
default configuration files.

To manually change settings of pre-defined icmptypes, zones or services, copy the file from the default configuration directory to the corresponding directory in the system configuration directory
and change it accordingly.

For more information on icmptypes, please have a look at the man pages man 5 firewalld.icmptype , for services at man 5 firewalld.service  and for zones at  man 5 .

Currently only SIGHUP is supported.

Reloads the complete firewall configuration. You can also use firewall-cmd –reload. All runtime configuration settings will be restored. Permanent configuration will change according to options


man 1 firewall-applet
man 1 firewalld
man 1 firewall-cmd
man 1 firewall-config
man 5 firewalld.conf
man 5
man 5 firewalld.icmptype
man 5 firewalld.lockdown-whitelist
man 1 firewall-offline-cmd
man 5 firewalld.richlanguage
man 5 firewalld.service
man 5
man 5 firewalld.zones

firewalld home page at

More documentation with examples:



I am a Senior System Administrator that work daily with Virtualization,Xenserver, Linux, IT automation, Ansible,Windows, Active Directory, Exchange and a lot more. Here you will find tips and trix from early junior, middle junior and senior to unique information of the topics I mentioned earlier. If you need help with something do not hesitate to contact me I will gladly help.

Tagged with: , , , , , , , ,