Network ACL allows unrestricted ingress to SSH (22) or RDP (3389)
- Severity
- Medium
- Service
- VPC
- Check ID
- NACL_ALLOWS_UNRESTRICTED_SSH_RDP
What this check finds
A NACL ALLOW rule that permits traffic from 0.0.0.0/0 or ::/0 to port 22 (SSH) or 3389 (RDP) exposes every subnet associated with that NACL to brute-force and credential-stuffing attacks from the entire internet. NACLs are the subnet-level firewall and should restrict administrative port access to known CIDRs.
Passing looks like: Network ACLs restrict SSH/RDP ingress.
How to fix it
Remove or restrict the ALLOW rule for port 22 or 3389 from 0.0.0.0/0 in the NACL. Replace with a rule that allows only known management IP ranges.
AWS CLI
aws ec2 replace-network-acl-entry --network-acl-id ACL_ID --rule-number RULE_NUM --protocol tcp --rule-action allow --ingress --cidr-block MANAGEMENT_CIDR --port-range From=22,To=22
Names in capitals are placeholders for your own resource. Review a command before you run it.
AWS console
VPC → Network ACLs → select NACL → Inbound rules → Edit.
Compliance controls it is evidence for
A failing result counts against these controls in KloudLytics; a passing one is evidence towards them. How compliance mapping works
| Framework | Controls |
|---|---|
| CIS AWS Foundations Benchmark v5.0.0 |
|
| NIST SP 800-53 Rev5 (Moderate) |
|
| NIST Cybersecurity Framework 2.0 |
|
| ISO/IEC 27001:2022 Annex A |
|
Checked on every scan
KloudLytics runs this check each time it scans a connected AWS account, through a read-only role, and lists every affected resource with its region. On Pro and Business a fix is written for the specific resource rather than the general case above. The exact access it needs