Back to Checks
linode

Linode Cloud Firewall outbound rules are configured

networking_firewall_outbound_rules_configured
Service: networkingSeverity: low
OfficialBuilt-inVerified
Categories:internet-exposed
Resource Type:NotDefined

Linode Cloud Firewalls are checked to determine whether explicit outbound rules are configured. Defined egress rules express which destinations, ports, and protocols an instance is permitted to reach, rather than depending only on the firewall's default policy.

Risk

Without explicit outbound rules, egress behavior depends solely on the default policy and no intended destination allow-list exists. Unconstrained or undocumented egress complicates auditing and can enable data exfiltration or connections to malicious endpoints if a host is compromised.

Run this check with Prowler

Run in Prowler Cloud
Run
prowler linode --checks networking_firewall_outbound_rules_configured

Recommendation

Configure explicit outbound rules to control allowed egress destinations, ports, and protocols.

Remediation

Other

1Log in to the Linode Cloud Manager
2Navigate to Firewalls
3Select the associated firewall
4Click Add an Outbound Rule in the Rules tab

Check Code

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


class networking_firewall_outbound_rules_configured(Check):
    """Check if Linode Cloud Firewall has outbound rules configured."""

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

        Iterates over all Cloud Firewalls and checks whether at least one
        explicit outbound rule is configured.

        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 len(fw.outbound_rules) == 0:
                report.status = "FAIL"
                report.status_extended = (
                    f"Firewall '{fw.label}' has no outbound rules configured."
                )
            else:
                report.status = "PASS"
                report.status_extended = f"Firewall '{fw.label}' has {len(fw.outbound_rules)} outbound rule(s) configured."

            findings.append(report)

        return findings