Firewalld

{{Short description|Firewall management software}}

{{technical|date=January 2019}}

{{DISPLAYTITLE:firewalld}}{{distinguish|Firewall (disambiguation){{!}}Firewalled}}

{{Infobox software

| name = firewalld

| logo =

| screenshot =

| caption =

| collapsible =

| author =

| developer = Eric Garver, Thomas Woerner, Red Hat, Inc.

| released = {{Start date and age|2011|01|03}}{{cite web|title=firewalld releases|url=https://github.com/firewalld/firewalld/releases|website=github.com repository|access-date=29 March 2017}}

| latest release version = {{wikidata|property|preferred|references|edit|P348|P548=Q2804309}}

| latest release date = {{Start date and age|{{wikidata|qualifier|preferred|single|P348|P548=Q2804309|P577}}}}

| latest preview version =

| latest preview date =

| repo = {{URL|https://github.com/firewalld/firewalld.git}}

| programming language = Python

| operating system = Linux

| platform = Netfilter

| size =

| language =

| genre =

| license = GNU General Public License 2

| website = {{URL|https://www.firewalld.org/}}

| bodystyle = width:28em;

}}

firewalld is a firewall management tool for Linux operating systems. It provides firewall features by acting as a front-end for the Linux kernel's netfilter framework. firewalld's current default backend is nftables. Prior to v0.6.0, iptables was the default backend.{{cite web|url=https://github.com/firewalld/firewalld/releases/tag/v0.6.0|title=Release firewalld-0.6.0 · firewalld/firewalld|website=Firewalld github|access-date=2019-06-12}} Through its abstractions, firewalld acts as an alternative to nft and iptables command line programs. The name firewalld adheres to the Unix convention of naming system daemons by appending the letter "d".{{cite book|last1=Kerrisk|first1=Michael|title=The Linux Programming Interface|url=https://archive.org/details/linuxprogramming00kerr|url-access=limited|date=2010|publisher=No Starch|location=San Francisco, California|isbn=9781593272203|page=[https://archive.org/details/linuxprogramming00kerr/page/n811 768]}}

firewalld is written in Python. It was intended to be ported to C++, but the porting project was abandoned in January 2015.{{cite web|title=firewalld development page|url=https://www.firewalld.org/development/|website=firewalld project website|access-date=9 February 2016|archive-url=https://web.archive.org/web/20160203173005/https://www.firewalld.org/development/|archive-date=3 February 2016|url-status=dead}}

Features

firewalld supports both IPv4 and IPv6 networks and can administer separate firewall zones with varying degrees of trust as defined in zone profiles. Administrators can configure Network Manager to automatically switch zone profiles based on known Wi-Fi (wireless) and Ethernet (wired) networks, but firewalld cannot do this on its own.{{cite web|title= FirewallD|url= https://fedoraproject.org/wiki/FirewallD|website= Fedora community wiki|access-date= 9 February 2016}}

Services and applications can use the D-Bus interface to query and configure the firewall.{{cite web|title= firewalld project home page|url= https://www.firewalld.org/|website= firewalld project website|access-date= 9 February 2016}} firewalld supports timed rules, meaning the number of connections (or "hits") to a service can be limited globally. There is no support for hit-counting and subsequent connection rejection per source IP; a common technique deployed to limit the impact of brute-force hacking and distributed denial-of-service attacks.{{cite web|last1= Aleksandersen|first1= Daniel|title= Comparing and contrasting Uncomplicated Firewall and FirewallD|url= https://www.slightfuture.com/technote/ufw-vs-firewalld|website= Slight Future|date= 9 February 2016|access-date= 9 February 2016}}

firewalld's command syntax is similar to but more verbose than other iptables front-ends like Ubuntu's Uncomplicated Firewall (ufw). The command-line interface allows managing firewall rulesets for protocol, ports, source and destination; or predefined services by name.

Services are defined as XML files containing port- and protocol-mappings, and optionally extra information like specifying subnets and listing required Kernel helper modules.

{{cite web

|title= firewalld service configuration files

|url= https://twoerner.fedorapeople.org/firewalld/doc/firewalld.service.html

|website= Thomas Woerner's space on Fedora People

|access-date= 9 February 2016

}}

The syntax resembles that of systemd's service files. A simple service file for a web server listening on TCP port 443 might look like this:

Web Server

Public web host over HTTPS.

Forward and output filtering

firewalld v0.9.0 added native support for forward and output forwarding via policy objects.{{cite web|title= Policy Objects Introduction|url= https://firewalld.org/2020/09/policy-objects-introduction|website= firewalld blog|date= 2 September 2020|access-date= 20 August 2021}} This allows filtering traffic flowing between zones. Policies support most firewalld primitives available to zones: services, ports, forward-ports, masquerade, rich rules, etc.

Limitations

By default firewalld does not block outbound traffic as required by standards such as NIST 800-171 and 800-53. However, an outbound block can be added with a policy.

Graphical front-ends (GUIs)

firewall-config is a graphical front-end that is optionally included with firewalld, with support for most of its features.

firewall-applet is a small status indicator utility that is optionally included with firewalld. It can provide firewall event log notifications as well as a quick way to open firewall-config. firewall-applet was ported from the GTK+ to the Qt framework in the summer of 2015 following the GNOME Desktop’s deprecation of system tray icons.{{cite web|last1=Woerner|first1=Thomas|title=On the way to Qt|url=https://www.firewalld.org/2015/06/on-the-way-to-qt|website=firewalld blog|access-date=9 February 2016|archive-url=https://web.archive.org/web/20160216230645/https://www.firewalld.org/2015/06/on-the-way-to-qt/|archive-date=16 February 2016|url-status=dead}}

Adoption

{{Portal|Free and open-source software|Linux}}

firewalld ships by default on the following Linux distributions:

firewalld is enabled by default in all of these distributions. firewalld is also available as one of many firewall options in the package repository of many other popular distributions such as Debian{{cite web|title=Package: firewalld|url=https://packages.debian.org/stable/firewalld|website=Debian package repository|access-date=9 February 2016}} or Ubuntu.

References

{{reflist}}