An Access Control List (ACL) is a rule set that defines which users, systems, or processes are granted or denied access to specific resources. ACLs are fundamental to information assurance (IA) because they enforce the principle of least privilege, ensuring that only authorized entities can access or modify sensitive systems, files, or network traffic.
In networking, ACLs are commonly associated with routers,
firewalls, and switches where they control packet flow based on criteria
like source/destination IP, protocol, or port. In operating systems and
applications, ACLs define which users or groups can read, write, or execute
files and services.
Types of
ACLs
- File
System ACLs (Host-Based ACLs)
- Used
by operating systems (e.g., Windows NTFS permissions, Linux
chmod/setfacl) to control access to files and directories.
- Network
ACLs (Router/Firewall ACLs)
- Define
traffic rules at the interface level (inbound or outbound).
- Examples:
- Permit
HTTP (TCP 80) from subnet 192.168.1.0/24.
- Deny
ICMP echo requests from outside networks.
- Switch
Port ACLs (Layer 2 ACLs)
- Applied
on switch ports to filter traffic before it’s forwarded.
- Often
used in campus networks to enforce VLAN security.
- Directory
Service ACLs (e.g., Active Directory)
- Define
what users/groups can access objects in a directory (like user accounts,
groups, printers).
- Example:
only administrators can reset passwords or modify group memberships.
- Application
ACLs
- Control
access within specific software applications or databases.
- Example:
A database ACL restricting access to certain tables or views.
- Cloud
ACLs
- Used
in cloud platforms like AWS, Azure, and GCP.
- Example:
AWS S3 bucket ACLs specify who can read/write objects.
- Often
combined with Identity and Access Management (IAM) policies.
How ACLs
Are Used
- Network
security: Filter malicious or unauthorized traffic (e.g., blocking
known bad IPs).
- Segmentation:
Control communication between internal subnets or VLANs.
- Access
governance: Enforce role-based access to files, directories, and
databases.
- Regulatory
compliance: Ensure sensitive data is accessible only to approved
entities.
- Intrusion
prevention: Drop traffic based on suspicious patterns (e.g., known
attack ports).
How ACLs
Are Configured
- On
Routers and Firewalls
- Syntax
depends on vendor (Cisco IOS, Juniper, pfSense, etc.).
- Example
(Cisco standard ACL):
access-list 10 permit
192.168.1.0 0.0.0.255
access-list 10 deny any
interface g0/0
ip access-group 10 in
- Example
(extended ACL):
access-list 100 permit tcp
192.168.1.0 0.0.0.255 any eq 80
access-list 100 deny ip any
any
- On
Operating Systems (File ACLs)
- Windows:
GUI (Properties → Security Tab) or icacls command.
- Linux:
setfacl -m u:alice:rwx file.txt.
- On
Applications/Databases
- SQL:
GRANT SELECT ON Customers TO
AnalystUser;
DENY DELETE ON Customers TO
AnalystUser;
Summary
ACLs are versatile security controls used at multiple
layers of IT infrastructure:
- Filesystem
(OS-level security)
- Routers,
firewalls, switches (network traffic filtering)
- Directories
and databases (user rights and privileges)
- Cloud
platforms (object and service access control)
They are configured differently depending on the platform
but always serve the same function: restricting access to protect confidentiality,
integrity, and availability (CIA triad).
