How to Install Firewalld on Fedora 40/39/38 Linux

For Fedora Linux users, ensuring network security is a top priority. One effective way to achieve this is using Firewalld, a dynamic firewall manager tailored for Linux systems, including Fedora. This guide will walk you through how to install Firewalld on Fedora Linux, offering you a robust tool to manage and monitor your network traffic.

Firewalld offers several standout features:

  • Dynamic Management: Firewalld allows users to make real-time changes to the firewall settings without restarting the service.
  • Zone-based Management: Users can group network interfaces into different zones, each with specific firewall rules, allowing for varied levels of trust.
  • Rich Language Rules: This feature offers detailed control over firewall settings, accommodating complex rules and exceptions for different networking needs.
  • Service-specific Configurations: Firewalld lets users set specific firewall rules for individual services or applications, adding another layer of customization.
  • IPv6 Support: With compatibility for IPv6, Firewalld ensures your system remains secure as the internet transitions to the next generation of IP addresses.

For both desktop and server Fedora users, Firewalld is invaluable. On the desktop side, it controls incoming and outgoing traffic, ensuring a safer browsing experience, better privacy, and reduced malware or data breach risk. For servers, which are often more exposed to the internet, Firewalld’s management of services and specific firewall configurations for different network zones becomes crucial in reducing vulnerabilities. By the end of this guide, you’ll be well-equipped to enhance your Fedora system’s security, ensuring a secure and efficient networking environment.

Install Firewalld on Fedora Linux via DNF

Step 1: Verification of Firewalld Presence

Before installing Firewalld, checking if it is already installed on your system is crucial. This initial verification helps to avoid potential conflicts or redundancy in the subsequent installation process. The command to accomplish this is straightforward:

firewall-cmd --version

Executing this command should return the Firewalld version if installed on your system. If Firewalld is absent, you will receive an error message indicating its absence.

Step 2: Install Firewalld via DNF Command

If your system has not Firewalld installed, the next step involves installing it. We accomplish this through the dnf package manager, a dependable tool for managing software in Fedora Linux. To install Firewalld, execute the following command:

sudo dnf install firewalld

This command instructs dnf to install the Firewalld package, pulling it from the Fedora repositories. This step is pivotal in your journey towards fortified network security and effective traffic management.

Step 3: Enable Firewalld

Upon successful installation, the next action is to ensure Firewalld is enabled. This means Firewalld will automatically start each time your system boots up, maintaining a consistent security shield for your network. The command to enable Firewalld is:

sudo systemctl enable firewalld

This command uses the systemctl tool to enable the Firewalld service. Every time your Fedora system starts, Firewalld will also commence, keeping your network guarded.

Step 4: Verifying Firewalld Service Operation

The final step in this section is to verify that Firewalld is working correctly. This critical step confirms that the previous steps have been successfully executed and Firewalld is operational. To verify the Firewalld service, use the following command:

sudo systemctl status firewalld

This command returns the status of the Firewalld service. If Firewalld is operational, you will see an output indicating the service is active and running. Otherwise, you must revisit the preceding steps to rectify any encountered issues.

Basic Firewalld Commands on Fedora Linux

Understanding the syntax of Firewalld commands is paramount to their correct usage. The basic syntax takes the following form:

firewall-cmd [options] command
  • firewall-cmd is the command-line client of Firewalld.
  • options are additional parameters that can modify the behavior of the firewall-cmd. Some common options include --zone (to specify a firewall zone), --permanent (to make changes persistent across reboots), and --reload (to apply changes immediately).
  • command is the command to perform a certain action, such as adding or removing a service.

Understanding the syntax, we shall now explore ten of the most frequently employed basic Firewalld commands.

Display All Zones with Firewalld

This command allows you to view all existing zones within Firewalld.

firewall-cmd --list-all-zones

Get the Default Zone with Firewalld

With this command, you can retrieve the name of the default zone.

firewall-cmd --get-default-zone

Set a Default Zone with Firewalld

You can set a new default zone by using the command below, replacing “zone_name” with the name of your preferred zone.

firewall-cmd --set-default-zone=zone_name

List Services in a Zone with Firewalld

You can list all services within a specific zone using this command, replacing “zone_name” with the name of your zone.

firewall-cmd --zone=zone_name --list-services

Add a Service to a Zone with Firewalld

Adding a service to a certain zone becomes simple with this command. Replace “zone_name” with your zone’s name and “service_name” with the service you wish to add.

firewall-cmd --zone=zone_name --add-service=service_name

Remove a Service from a Zone with Firewalld

If you need to remove a service from a specific zone, use this command. Replace “zone_name” with your zone’s name and “service_name” with the service you wish to remove.

firewall-cmd --zone=zone_name --remove-service=service_name

Reload Firewalld

This command allows you to apply changes without interrupting existing connections.

firewall-cmd --reload

List All Rules in a Zone with Firewalld

To view all the rules within a zone, use the following command, replacing “zone_name” with the name of your zone.

firewall-cmd --zone=zone_name --list-all

Add a Port to a Zone with Firewalld

Adding a specific port to a zone is straightforward with this command. Replace “zone_name” with your zone, “port_number” with the port number, and “protocol” with the protocol (either tcp or udp).

firewall-cmd --zone=zone_name --add-port=port_number/protocol

Remove a Port from a Zone with Firewalld

Conversely, if you need to remove a port from a zone, use the following command. Replace “zone_name” with your zone, “port_number” with the port number, and “protocol” with the protocol.

firewall-cmd --zone=zone_name --remove-port=port_number/protocol

Advanced Firewalld Commands and Scenarios on Fedora Linux

Navigating the advanced landscape of Firewalld requires understanding more intricate commands and scenarios. Let’s explore five such scenarios to deepen your grasp of Firewalld further.

Scenario 1: Adding a Port to a Zone with Firewalld

To add a specific port to a zone, use:

sudo firewall-cmd --zone=your_zone --add-port=your_port/protocol

Replace “your_zone”, “your_port”, and “protocol” with your zone name, desired port, and protocol (either tcp or udp).

Scenario 2: Remove a Port from a Zone with Firewalld

To remove a port from a zone:

sudo firewall-cmd --zone=your_zone --remove-port=your_port/protocol

Again, “your_zone”, “your_port”, and “protocol” should be replaced with your specific details.

Scenario 3: Create a New Zone with Firewalld

For creating a new zone:

sudo firewall-cmd --new-zone=your_zone --permanent

Replace “your_zone” with the name you desire for the new zone.

Scenario 4: Delete a Zone with Firewalld

To delete a zone:

sudo firewall-cmd --delete-zone=your_zone --permanent

Here, “your_zone” should be replaced with the name of the zone you wish to delete.

Scenario 5: Block an IP Address with Firewalld

Finally, to block a specific IP address:

sudo firewall-cmd --zone=your_zone --add-source=ip_address
sudo firewall-cmd --zone=your_zone --add-rich-rule='rule family="ipv4" source address="ip_address" reject'

In these commands, “your_zone” and “ip_address” should be replaced with the zone name and the IP address you wish to block. The first command adds the IP address to the zone, while the second rejects all traffic from that IP.

Closing Thoughts on Firewalld on Fedora Linux

Throughout this guide, we’ve provided a comprehensive overview of installing and managing Firewalld on Fedora Linux. From installation to implementing basic commands and tackling advanced scenarios, the steps outlined should empower any user, regardless of their level of expertise, to proficiently navigate Firewalld. For continued success, it’s recommended to keep exploring this powerful firewall solution’s capabilities and use official resources for ongoing learning and troubleshooting.

Leave a Comment