Back to Checks
Linode Cloud Firewall inbound rules are configured
networking_firewall_inbound_rules_configured
Service: networkingSeverity: low
OfficialBuilt-inVerified
Categories:internet-exposed
Resource Type:NotDefined
Linode Cloud Firewalls are checked to determine whether explicit inbound rules are configured. Defined ingress rules express the intended allow-list of sources, ports, and protocols instead of relying solely on the firewall's default policy.
Risk
Without explicit inbound rules, ingress filtering depends entirely on the default policy and no intentional allow-list is documented. This makes the firewall's behavior ambiguous and harder to audit, raising the chance of overly permissive access or gaps in the protection operators expect.
Run this check with Prowler
Run in Prowler CloudRun
prowler linode --checks networking_firewall_inbound_rules_configuredRecommendation
Configure explicit inbound rules to define allowed ingress sources, ports, and protocols and enforce expected security boundaries.
Remediation
Other
1Log in to the Linode Cloud Manager
2Navigate to Firewalls
3Select the associated firewall
4Click Add an Inbound 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_inbound_rules_configured(Check):
"""Check if Linode Cloud Firewall has inbound rules configured."""
def execute(self) -> list[CheckReportLinode]:
"""Execute the networking_firewall_inbound_rules_configured check.
Iterates over all Cloud Firewalls and checks whether at least one
explicit inbound 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.inbound_rules) == 0:
report.status = "FAIL"
report.status_extended = (
f"Firewall '{fw.label}' has no inbound rules configured."
)
else:
report.status = "PASS"
report.status_extended = f"Firewall '{fw.label}' has {len(fw.inbound_rules)} inbound rule(s) configured."
findings.append(report)
return findings