What Is an Access Control List (ACL)? Meaning & Examples

Access Control List (ACL)?

An Access Control List (ACL) is a set of rules that determines who or what can access a network, server, file, directory, or other computing resource. ACLs allow or deny access based on conditions such as IP addresses, users, groups, protocols, ports, or permission levels.

In server environments, ACLs help administrators restrict unauthorized access while allowing legitimate users and applications to reach the resources they need.

How Does an Access Control List Work?

An access control list evaluates an incoming request against predefined rules. Based on those rules, the system decides whether the request should be allowed or denied.

Depending on where the ACL is used, rules can consider:

  • Source and destination IP addresses
  • TCP or UDP protocols
  • Port numbers
  • Users and groups
  • File or directory permissions

For example, a server administrator could allow SSH access on port 22 only from a trusted office IP while blocking SSH requests from other addresses.

Rule order can also matter. In systems that process ACL entries sequentially, placing rules incorrectly may unintentionally allow unwanted traffic or block legitimate users.

Types of Access Control Lists

Different types of ACLs are used depending on the level of control required.

Standard ACL

A standard ACL typically makes access decisions using limited information, such as the source IP address. It is suitable for relatively simple network filtering requirements.

Extended ACL

An extended ACL offers more detailed filtering. Rules can consider source and destination IP addresses, protocols, and port numbers, allowing administrators to control specific types of network traffic.

File System ACL

A file system ACL manages access to files and directories. It can provide more granular permissions than traditional owner and group permissions by assigning rights to specific additional users or groups.

What Is an ACL in Networking?

In networking, an ACL controls incoming or outgoing traffic based on predefined conditions. Network ACLs are commonly used to restrict access to sensitive services and control communication between systems.

A simple network ACL could look like this:

SourcePortAction
Trusted administrator IP22Allow
Any443Allow
Any22Deny

In this example, anyone can access the website through HTTPS on port 443, but SSH access is limited to an approved administrator IP.

ACLs in Linux and Windows Servers

Access control lists are used in both Linux and Windows environments, although their implementation differs.

ACL in Linux

Linux traditionally provides permissions for the file owner, group, and other users. ACLs extend this system by allowing administrators to assign additional permissions to individual users or groups.

Linux administrators can use commands such as getfacl to view ACL information and setfacl to modify permissions. These controls can be useful on a Linux VPS where several users, services, or applications require different access levels.

ACL in Windows

Windows uses ACLs to control permissions for resources such as files and folders.

A Discretionary Access Control List (DACL) determines which users or groups are allowed or denied access. A System Access Control List (SACL) is used for auditing specified access attempts.

These permissions can help administrators control access to resources hosted on a Windows VPS or Windows Server environment.

ACL vs Firewall: What's the Difference?

Although both can control network access, an ACL and a firewall are not the same.

Access Control ListFirewall
Uses allow and deny rulesProvides broader network protection
Can control network or resource accessPrimarily controls network traffic
Can apply to users, files, and directoriesGenerally focuses on connections
Often provides straightforward rule-based filteringMay include stateful inspection and other security features

ACLs and firewalls can be used together rather than choosing one over the other.

Why Are ACLs Important for VPS and Dedicated Servers?

VPS and dedicated servers can host websites, databases, APIs, business applications, and other workloads. Not every user or service should have unrestricted access to these resources.

ACLs help administrators follow the principle of least privilege, where users and applications receive only the permissions they need.

For example, administrators can restrict SSH or RDP access to trusted IP addresses, limit database connectivity, protect sensitive directories, and control communication between applications.

For 1Gbits Dedicated Servers, Linux VPS, and Windows VPS, access controls can form part of a broader security strategy alongside firewalls, secure authentication, software updates, backups, and server monitoring.

Access Control List Best Practices

Keep ACL rules specific and avoid granting broader permissions than necessary. Administrators should regularly review rules, remove permissions that are no longer required, document important changes, and test new configurations before applying them to production servers.

ACLs should also be combined with other security controls rather than treated as a complete security solution on their own.

Frequently asked questions