Back to Checks
Linode Cloud Firewall default inbound policy is DROP
networking_firewall_default_inbound_policy_drop
Service: networkingSeverity: high
OfficialBuilt-inVerified
Categories:internet-exposed
Resource Type:NotDefined
Linode Cloud Firewalls apply a default inbound policy to ingress traffic that does not match any explicit rule. This check verifies the default is set to DROP, enforcing a default-deny posture so that only traffic intentionally permitted by a rule is allowed in.
Risk
When the default inbound policy is ACCEPT instead of DROP, any traffic not explicitly denied by a rule is permitted. This default-allow posture can silently expose services, management ports, and unintended endpoints to the internet, enlarging the attack surface and increasing the risk of unauthorized access.
Run this check with Prowler
Run in Prowler CloudRun
prowler linode --checks networking_firewall_default_inbound_policy_dropRecommendation
Set the default inbound policy to DROP and allow only explicitly required inbound traffic.
Remediation
Other
1Log in to the Linode Cloud Manager
2Navigate to Firewalls
3Select the associated firewall
4In the Rules tab, set the default inbound policy to DROP
Check Code
from prowler.lib.check.models import Check, CheckReportLinode
from prowler.providers.linode.services.networking.networking_client import (
networking_client,
)
class networking_firewall_default_inbound_policy_drop(Check):
"""Check if Linode Cloud Firewall default inbound policy is DROP."""
def execute(self) -> list[CheckReportLinode]:
"""Execute the networking_firewall_default_inbound_policy_drop check.
Iterates over all Cloud Firewalls and checks whether the default
inbound policy is DROP.
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.inbound_policy == "DROP":
report.status = "PASS"
report.status_extended = (
f"Firewall '{fw.label}' has default inbound policy set to DROP."
)
else:
report.status = "FAIL"
report.status_extended = f"Firewall '{fw.label}' has default inbound policy set to {fw.inbound_policy}."
findings.append(report)
return findings