Firewalld

Last updated
firewalld
Developer(s) Eric Garver, Thomas Woerner, Red Hat, Inc.
Initial releaseJanuary 3, 2011;13 years ago (2011-01-03) [1]
Stable release
2.1.0 [2]   OOjs UI icon edit-ltr-progressive.svg / 5 January 2024;17 days ago (5 January 2024)
Repository github.com/firewalld/firewalld.git
Written in Python
Operating system Linux
Platform Netfilter
License GNU General Public License 2
Website www.firewalld.org

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. [3] 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". [4]

Contents

firewalld is written in Python. It was intended to be ported to C++, but the porting project was abandoned in January 2015. [5]

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. [6]

Services and applications can use the D-Bus interface to query and configure the firewall. [7] 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. [8]

firewalld's command syntax is similar to but more verbose than other iptables front-ends like Ubuntu's Uncomplicated Firewall (ufw). [8] 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. [9] 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:

<?xml version="1.0" encoding="utf-8"?><service><short>WebServer</short><description>PublicwebhostoverHTTPS.</description><portport="443"protocol="tcp"/></service>

Forward and output filtering

firewalld v0.9.0 added native support for forward and output forwarding via policy objects. [10] 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. [11]

Adoption

firewalld ships by default on the following Linux distributions: [7]

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 [13] or Ubuntu.

Related Research Articles

<span class="mw-page-title-main">Linux distribution</span> Operating system based on the Linux kernel

A Linux distribution is an operating system made from a software collection that includes the Linux kernel and often a package management system. Linux users usually obtain their operating system by downloading one of the Linux distributions, which are available for a wide variety of systems ranging from embedded devices and personal computers to powerful supercomputers.

<span class="mw-page-title-main">GNOME Evolution</span> Personal information manager software and workgroup information management tool for GNOME

GNOME Evolution is the official personal information manager for GNOME. It has been an official part of GNOME since Evolution 2.0 was included with the GNOME 2.8 release in September 2004. It combines e-mail, address book, calendar, task list and note-taking features. Its user interface and functionality is similar to Microsoft Outlook. Evolution is free software licensed under the terms of the GNU Lesser General Public License (LGPL).

yum (software) Free and open-source command-line package management utility

The Yellowdog Updater Modified (YUM) is a free and open-source command-line package-management utility for computers running the Linux operating system using the RPM Package Manager. Though YUM has a command-line interface, several other tools provide graphical user interfaces to YUM functionality.

<span class="mw-page-title-main">Rhythmbox</span> Free and open source audio player

Rhythmbox is a free and open-source audio player software, tag editor and music organizer for digital audio files on Linux and Unix-like systems.

phpLDAPadmin is a web app for administering Lightweight Directory Access Protocol (LDAP) servers. It's written in the PHP programming language, and is licensed under the GNU General Public License. The application is available in 14 languages and supports UTF-8 encoded directory strings.

Technical variations of Linux distributions include support for different hardware devices and systems or software package configurations. Organizational differences may be motivated by historical reasons. Other criteria include security, including how quickly security upgrades are available; ease of package management; and number of packages available.

<span class="mw-page-title-main">Firestarter (firewall)</span> Personal firewall

Firestarter is a personal firewall tool that uses the Netfilter (iptables/ipchains) system built into the Linux kernel. It has the ability to control both inbound and outbound connections. Firestarter provides a graphical interface for configuring firewall rules and settings. It provides real-time monitoring of all network traffic for the system. Firestarter also provides facilities for port forwarding, internet connection sharing and DHCP service.

<span class="mw-page-title-main">Compiz</span> Compositing window manager for the X Window System

Compiz is a compositing window manager for the X Window System, using 3D graphics hardware to create fast compositing desktop effects for window management. Effects, such as a minimization animation or a cube workspace, are implemented as loadable plugins. Because it conforms to the ICCCM conventions, Compiz can be used as a substitute for the default Mutter or Metacity, when using GNOME Panel, or KWin in KDE Plasma Workspaces. Internally Compiz uses the OpenGL library as the interface to the graphics hardware.

<span class="mw-page-title-main">PulseAudio</span> Sound server for Unix-like operating systems

PulseAudio is a network-capable sound server program distributed via the freedesktop.org project. It runs mainly on Linux, including Windows Subsystem for Linux on Microsoft Windows and Termux on Android; various BSD distributions such as FreeBSD, OpenBSD, and macOS; as well as Illumos distributions and the Solaris operating system. It serves as a middleware in between applications and hardware and handles raw PCM audio streams.

IcedTea is a build and integration project for OpenJDK launched by Red Hat in June 2007. IcedTea also includes some addon libraries: IcedTea-Web is a free software implementation of Java Web Start and the Java web browser applet plugin. IcedTea-Sound is a collection of plugins for the Java sound subsystem, including the PulseAudio provider which used to be included with IcedTea. The Free Software Foundation recommends that all Java programmers use IcedTea as their development environment.

<span class="mw-page-title-main">Fail2ban</span> Intrusion prevention software framework

Fail2ban is an intrusion prevention software framework. Written in the Python programming language, it is designed to prevent brute-force attacks. It is able to run on POSIX systems that have an interface to a packet-control system or firewall installed locally, such as iptables or TCP Wrapper.

Uncomplicated Firewall (UFW) is a program for managing a netfilter firewall designed to be easy to use. It uses a command-line interface consisting of a small number of simple commands, and uses iptables for configuration. UFW is available by default in all Ubuntu installations since 8.04 LTS. UFW has been available by default in all Debian installations since 10.

<span class="mw-page-title-main">TurnKey Linux Virtual Appliance Library</span> Open-Source virtual appliance library

The TurnKey Linux Virtual Appliance Library is a free open-source software project which develops a range of Debian-based pre-packaged server software appliances. Turnkey appliances can be deployed as a virtual machine, in cloud computing services such as Amazon Web Services or installed in physical computers.

<span class="mw-page-title-main">Smuxi</span> IRC client

Smuxi is a cross-platform IRC client for the GNOME desktop inspired by Irssi. It pioneered the concept of separating the frontend client from the backend engine which manages connections to IRC servers inside a single graphical application.

nftables is a subsystem of the Linux kernel providing filtering and classification of network packets/datagrams/frames. It has been available since Linux kernel 3.13 released on 19 January 2014.

<span class="mw-page-title-main">KVIrc</span> IRC Client

KVIrc is a graphical IRC client for Linux, Unix, Mac OS and Windows. The name is an acronym of K Visual IRC in which the K stands for a dependency to KDE, which became optional from version 2.0.0. The software is based on the Qt framework and its code is released under a modified GNU General Public License.

A delta update is a software update that requires the user to download only those parts of the software's code that are new, or have been changed from their previous state, in contrast to having to download the entire program. The use of delta updates can save significant amounts of time and computing bandwidth. The name "delta" derives from the mathematical science use of the Greek letter delta, Δ or δ to denote change.

dracut (software) Software to automate the Linux boot process

Dracut is a set of tools that provide enhanced functionality for automating the Linux boot process. The tool named dracut is used to create a Linux boot image (initramfs) by copying tools and files from an installed system and combining it with the Dracut framework, which is usually found in /usr/lib/dracut/modules.d.

<span class="mw-page-title-main">Windows Subsystem for Linux</span> Compatibility layer for running Linux binary executables natively on Windows

Windows Subsystem for Linux (WSL) is a feature of Windows that allows developers to run a Linux environment without the need for a separate virtual machine or dual booting. There are two versions of WSL: WSL 1 and WSL 2. WSL 1 was first released on August 2, 2016, and acts as a compatibility layer for running Linux binary executables by implementing Linux system calls on the Windows kernel. It is available on Windows 10, Windows 10 LTSB/LTSC, Windows 11, Windows Server 2016, Windows Server 2019 and Windows Server 2022.

References

  1. "firewalld releases". github.com repository. Retrieved 29 March 2017.
  2. "Release 2.1.0". 5 January 2024. Retrieved 19 January 2024.
  3. "Release firewalld-0.6.0 · firewalld/firewalld". Firewalld github. Retrieved 2019-06-12.
  4. Kerrisk, Michael (2010). The Linux Programming Interface . San Francisco, California: No Starch. p.  768. ISBN   9781593272203.
  5. "firewalld development page". firewalld project website. Archived from the original on 3 February 2016. Retrieved 9 February 2016.
  6. "FirewallD". Fedora community wiki. Retrieved 9 February 2016.
  7. 1 2 "firewalld project home page". firewalld project website. Retrieved 9 February 2016.
  8. 1 2 Aleksandersen, Daniel (9 February 2016). "Comparing and contrasting Uncomplicated Firewall and FirewallD". Slight Future. Retrieved 9 February 2016.
  9. "firewalld service configuration files". Thomas Woerner's space on Fedora People. Retrieved 9 February 2016.
  10. "Policy Objects Introduction". firewalld blog. 2 September 2020. Retrieved 20 August 2021.
  11. Woerner, Thomas. "On the way to Qt". firewalld blog. Archived from the original on 16 February 2016. Retrieved 9 February 2016.
  12. 1 2 "Firewalld - openSUSE Wiki".
  13. "Package: firewalld". Debian package repository. Retrieved 9 February 2016.