Back to Checks
linode

Linode Cloud Firewall status is enabled

networking_firewall_status_enabled
Service: networkingSeverity: high
OfficialBuilt-inVerified
Categories:internet-exposed
Resource Type:NotDefined

Linode Cloud Firewalls can be in an enabled or disabled state. This check verifies the firewall status is enabled, because a firewall must be active for its inbound and outbound policies and rules to actually filter network traffic.

Risk

A disabled firewall enforces none of its configured rules or default policies, leaving attached instances with no network filtering. This can unexpectedly expose management ports and services to the internet, significantly increasing the risk of unauthorized access and exploitation.

Run this check with Prowler

Run in Prowler Cloud
Run
prowler linode --checks networking_firewall_status_enabled

Recommendation

Enable Linode Cloud Firewalls so configured network filtering controls are actively enforced.

Remediation

Other

1Log in to the Linode Cloud Manager
2Navigate to Firewalls
3Click on the Enable button from the options corresponding to the firewall whose status you would like to update

Check Code

from prowler.lib.check.models import Check, CheckReportLinode
from prowler.providers.linode.services.networking.networking_client import (
    networking_client,
)


class networking_firewall_status_enabled(Check):
    """Check if Linode Cloud Firewalls are enabled."""

    def execute(self) -> list[CheckReportLinode]:
        """Execute the networking_firewall_status_enabled check.

        Iterates over all Cloud Firewalls and checks whether each one has
        an enabled status.

        Returns:
            list[CheckReportLinode]: A list of findings for each firewall.
        """
        findings = []

        for fw in networking_client.firewalls:
            report = CheckReportLinode(
                metadata=self.metadata(),
                resource=fw,
                resource_name=fw.label,
                resource_id=str(fw.id),
                region="global",
            )
            report.resource_tags = fw.tags

            if fw.status == "enabled":
                report.status = "PASS"
                report.status_extended = f"Firewall '{fw.label}' is enabled."
            else:
                report.status = "FAIL"
                report.status_extended = (
                    f"Firewall '{fw.label}' is not enabled (status: {fw.status})."
                )

            findings.append(report)

        return findings