Back to Checks
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 CloudRun
prowler linode --checks networking_firewall_outbound_rules_configuredRecommendation
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