Skip to content

Access Control Lists (ACLs): Network Security đŸ›Ąī¸ ​

āĻāĻ•āϟāĻŋ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇ āϕ⧋āύ āĻŸā§āϰāĻžāĻĢāĻŋāĻ• āĻĸ⧁āĻ•āϤ⧇ āĻĒāĻžāϰāĻŦ⧇ āφāϰ āϕ⧋āύāϟāĻŋ āĻĒāĻžāϰāĻŦ⧇ āύāĻž, āϤāĻž āύāĻŋ⧟āĻ¨ā§āĻ¤ā§āϰāĻŖ āĻ•āϰāĻžāϰ āϏāĻŦāĻšā§‡ā§Ÿā§‡ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ• āĻāĻŦāĻ‚ āĻļāĻ•ā§āϤāĻŋāĻļāĻžāϞ⧀ āĻŽāĻžāĻ§ā§āϝāĻŽ āĻšāϞ⧋ ACL (Access Control List)āĨ¤ āĻāϟāĻŋ āĻ…āύ⧇āĻ•āϟāĻž āϏāĻŋāĻ•āĻŋāωāϰāĻŋāϟāĻŋ āĻ—āĻžāĻ°ā§āĻĄā§‡āϰ āĻŽāϤ⧋ āĻ•āĻžāϜ āĻ•āϰ⧇, āϝāĻžāϰ āĻ•āĻžāϛ⧇ āĻāĻ•āϟāĻŋ āϞāĻŋāĻ¸ā§āϟ āĻĨāĻžāϕ⧇ āϝ⧇ āϕ⧇ āϭ⧇āϤāϰ⧇ āϝ⧇āϤ⧇ āĻĒāĻžāϰāĻŦ⧇ āφāϰ āϕ⧇ āĻĒāĻžāϰāĻŦ⧇ āύāĻžāĨ¤


ā§§. ACL āϕ⧀ āĻāĻŦāĻ‚ āϕ⧇āύ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ? (Use Cases) ​

ACL āĻšāϞ⧋ āĻāĻ•āϗ⧁āĻšā§āĻ› āϰ⧁āϞāϏ (Rules) āϝāĻž āϰāĻžāωāϟāĻžāϰ āĻŦāĻž āϏ⧁āχāĻšā§‡āϰ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇ āĻĒā§āĻ°ā§Ÿā§‹āĻ— āĻ•āϰāĻž āĻšā§Ÿ āĻŸā§āϰāĻžāĻĢāĻŋāĻ• āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝāĨ¤

  • Security: āφāύāĻ…āĻĨāϰāĻžāχāϜāĻĄ āĻāĻ•ā§āϏ⧇āϏ āĻŦāĻ¨ā§āϧ āĻ•āϰāĻžāĨ¤
  • Traffic Control: āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āϏāĻžāĻŦāύ⧇āϟ āĻŦāĻž āφāχāĻĒāĻŋ-āϕ⧇ āχāĻ¨ā§āϟāĻžāϰāύ⧇āĻŸā§‡ āϝ⧇āϤ⧇ āĻŦāĻžāϧāĻž āĻĻ⧇āĻ“ā§ŸāĻžāĨ¤
  • Efficiency: āĻ…āĻĒā§āĻ°ā§Ÿā§‹āϜāύ⧀āϝāĻŧ āĻŸā§āϰāĻžāĻĢāĻŋāĻ• āĻŦā§āϞāĻ• āĻ•āϰ⧇ āĻŦā§āϝāĻžāĻ¨ā§āĻĄāωāχāĻĨ āĻŦāĻžāρāϚāĻžāύ⧋āĨ¤

⧍. ACL āĻāϰ āĻĒā§āϰāĻ•āĻžāϰāϭ⧇āĻĻ (Types of ACLs) ​

āĻ•. Standard ACL (āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻāϏāĻŋāĻāϞ): ​

āĻāϟāĻŋ āϕ⧇āĻŦāϞ Source IP Address āĻĻ⧇āϖ⧇ āĻŸā§āϰāĻžāĻĢāĻŋāĻ• āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ āĻ•āϰ⧇āĨ¤

  • Range: ā§§ - ⧝⧝ āĻāĻŦāĻ‚ ā§§ā§Šā§Ļā§Ļ - ⧧⧝⧝⧝āĨ¤
  • Placement: āĻāϟāĻŋ āĻ—āĻ¨ā§āϤāĻŦā§āϝ⧇āϰ (Destination) āϝāϤ āĻ•āĻžāϛ⧇ āϏāĻŽā§āĻ­āĻŦ āϤāϤ āĻ•āĻžāϛ⧇ āĻŦāϏāĻžāύ⧋ āωāϚāĻŋāϤāĨ¤

āĻ–. Extended ACL (āĻāĻ•ā§āϏāĻŸā§‡āĻ¨ā§āĻĄā§‡āĻĄ āĻāϏāĻŋāĻāϞ): ​

āĻāϟāĻŋ āĻ…āύ⧇āĻ• āĻŦ⧇āĻļāĻŋ āĻ…ā§āϝāĻžāĻĄāĻ­āĻžāĻ¨ā§āϏāĻĄāĨ¤ āĻāϟāĻŋ Source IP, Destination IP, Protocol (TCP/UDP), āĻāĻŦāĻ‚ āĻĒā§‹āĻ°ā§āϟ āύāĻŽā§āĻŦāϰ āĻĻ⧇āϖ⧇ āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

  • Range: ā§§ā§Ļā§Ļ - ⧧⧝⧝ āĻāĻŦāĻ‚ ⧍ā§Ļā§Ļā§Ļ - ⧍ā§Ŧ⧝⧝āĨ¤
  • Placement: āĻāϟāĻŋ āϏ⧋āĻ°ā§āϏ⧇āϰ (Source) āϝāϤ āĻ•āĻžāϛ⧇ āϏāĻŽā§āĻ­āĻŦ āϤāϤ āĻ•āĻžāϛ⧇ āĻŦāϏāĻžāύ⧋ āωāϚāĻŋāϤ āϝ⧇āύ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇ āĻ…āĻĒā§āĻ°ā§Ÿā§‹āϜāύ⧀āϝāĻŧ āĻĄāĻžāϟāĻž āύāĻž āĻĸāϕ⧇āĨ¤

āĻ—. Named ACL: ​

āύāĻŽā§āĻŦāϰ⧇āϰ āĻŦāĻĻāϞ⧇ āύāĻžāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϝ⧇ āĻāϏāĻŋāĻāϞ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšā§ŸāĨ¤ āĻāϟāĻŋ āĻŽāĻĄāĻŋāĻĢāĻžāχ āĻ•āϰāĻž āϏāĻšāϜāĨ¤


ā§Š. āĻ“āϝāĻŧāĻžāχāĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ āĻŽāĻžāĻ¸ā§āĻ• (Wildcard Masks) ​

āϏāĻžāĻŦāύ⧇āϟ āĻŽāĻžāĻ¸ā§āϕ⧇āϰ āĻ āĻŋāĻ• āωāĻ˛ā§āĻŸā§‹ āĻšāϞ⧋ āĻ“āϝāĻŧāĻžāχāĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ āĻŽāĻžāĻ¸ā§āĻ•āĨ¤ āĻāϟāĻŋ āĻāϏāĻŋāĻāϞ-āĻ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āφāχāĻĒāĻŋ āϰ⧇āĻžā§āϜ āĻŦā§‹āĻāĻžāϤ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšā§ŸāĨ¤

  • Subnet Mask: 255.255.255.0
  • Wildcard Mask: 0.0.0.255 (āĻāϰ āĻŽāĻžāύ⧇ āĻšāϞ⧋ āĻļ⧇āώ āĻ…āĻ•ā§āĻŸā§‡āϟāϟāĻŋ āϝāĻž āχāĻšā§āĻ›āĻž āĻšāϤ⧇ āĻĒāĻžāϰ⧇)āĨ¤

ā§Ē. ACL āĻāϰ āĻ•āĻžāĻœā§‡āϰ āύāĻŋ⧟āĻŽ (How ACL Works) ​

āϰāĻžāωāϟāĻžāϰ āϝāĻ–āύ āϕ⧋āύ⧋ āĻĒā§āϝāĻžāϕ⧇āϟ āĻĒāĻžā§Ÿ, āϏ⧇ āĻāϏāĻŋāĻāϞ āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āωāĻĒāϰ āĻĨ⧇āϕ⧇ āύāĻŋāϚ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āĻšā§‡āĻ• āĻ•āϰ⧇:

  1. Top-down Processing: āĻĒā§āϰāĻĨāĻŽ āϝ⧇ āϰ⧁āϞ⧇āϰ āϏāĻžāĻĨ⧇ āĻŽā§āϝāĻžāϚ āĻ•āϰāĻŦ⧇, āϏ⧇āĻ–āĻžāύ⧇āχ āϏ⧇ āĻĨ⧇āĻŽā§‡ āϝāĻžāĻŦ⧇ (āĻĒāĻžāϏ āĻŦāĻž āĻŦā§āϞāĻ• āĻ•āϰāĻŦ⧇)āĨ¤
  2. Implicit Deny: āϞāĻŋāĻ¸ā§āĻŸā§‡āϰ āĻļ⧇āώ⧇ āĻāĻ•āϟāĻŋ āχāύāĻ­āĻŋāϜāĻŋāĻŦāϞ āϰ⧁āϞ āĻĨāĻžāϕ⧇ āϝāĻžāϰ āĻŽāĻžāύ⧇ āĻšāϞ⧋ "āĻĒā§āϝāĻžāϕ⧇āϟ āϝāĻĻāĻŋ āωāĻĒāϰ⧇āϰ āϕ⧋āύ⧋ āϰ⧁āϞ⧇āϰ āϏāĻžāĻĨ⧇ āύāĻž āĻŽā§‡āϞ⧇, āϤāĻŦ⧇ āϏ⧇āϟāĻŋ āĻŦā§āϞāĻ• āĻšāĻŦ⧇"āĨ¤ āϤāĻžāχ āĻāϏāĻŋāĻāϞ-āĻ āĻ…āĻ¨ā§āϤāϤ āĻāĻ•āϟāĻŋ Permit āϰ⧁āϞ āĻĨāĻžāĻ•āϤ⧇ āĻšā§ŸāĨ¤

ā§Ģ. ACL āĻāϰ āϏ⧇āϰāĻž āĻĒā§āĻ°ā§āϝāĻžāĻ•āϟāĻŋāϏ (Best Practices) ​

  • Top Down: āϏāĻŦāĻšā§‡ā§Ÿā§‡ āĻ¸ā§āĻĒ⧇āϏāĻŋāĻĢāĻŋāĻ• āϰ⧁āϞāϗ⧁āϞ⧋āϕ⧇ āωāĻĒāϰ⧇ āϰāĻžāϖ⧁āύāĨ¤
  • Documentation: āϰ⧁āϞāϗ⧁āϞ⧋āϰ āϏāĻžāĻĨ⧇ āĻ•āĻŽā§‡āĻ¨ā§āϟ āĻŦāĻž āĻĄā§‡āϏāĻ•ā§āϰāĻŋāĻĒāĻļāύ āϝ⧁āĻ•ā§āϤ āĻ•āϰ⧁āύāĨ¤
  • Implicit Deny: āĻŽāύ⧇ āϰāĻžāĻ–āĻŦ⧇āύ āϝ⧇ āϰ⧁āϞ āĻŽā§āϝāĻžāϚ āύāĻž āĻ•āϰāϞ⧇ āϏ⧇āϟāĻŋ āĻŦā§āϞāĻ• āĻšā§Ÿā§‡ āϝāĻžāĻŦ⧇, āϤāĻžāχ āĻĒā§āĻ°ā§Ÿā§‹āϜāĻ¨ā§€ā§Ÿ āĻŸā§āϰāĻžāĻĢāĻŋāĻ• āϝ⧇āύ āĻĒāĻžāϰāĻŽāĻŋāϟ āĻĒāĻžā§Ÿ āϤāĻž āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧁āύāĨ¤
  • Placement: āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻāϏāĻŋāĻāϞ āĻ—āĻ¨ā§āϤāĻŦā§āϝ⧇ āφāϰ āĻāĻ•ā§āϏāĻŸā§‡āĻ¨ā§āĻĄā§‡āĻĄ āĻāϏāĻŋāĻāϞ āϏ⧋āĻ°ā§āϏ⧇āϰ āĻ•āĻžāϛ⧇ āĻŦāϏāĻžāύāĨ¤

ā§Ŧ. āĻĄā§‡āĻ­āĻ…āĻĒāϏ āĻĒāĻžāϰāϏāĻĒ⧇āĻ•ā§āϟāĻŋāĻ­: āĻĢāĻžāϝāĻŧāĻžāϰāĻ“āϝāĻŧāĻžāϞ āĻ“ IaC ​

  • Stateless Firewall: āĻŸā§āĻ°ā§āϝāĻžāĻĄāĻŋāĻļāύāĻžāϞ āĻāϏāĻŋāĻāϞ āĻšāϞ⧋ 'Stateless'āĨ¤ āĻ…āĻ°ā§āĻĨāĻžā§Ž āϏ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĒā§āϝāĻžāϕ⧇āϟāϕ⧇ āφāϞāĻžāĻĻāĻžāĻ­āĻžāĻŦ⧇ āĻšā§‡āĻ• āĻ•āϰ⧇āĨ¤ āφāϧ⧁āύāĻŋāĻ• āĻĢāĻžāϝāĻŧāĻžāϰāĻ“āϝāĻŧāĻžāϞāϗ⧁āϞ⧋ (āϝ⧇āĻŽāύ: AWS Security Groups) āĻšāϞ⧋ 'Stateful', āϝāĻž āϏ⧇āĻļāύ āĻŽāύ⧇ āϰāĻžāĻ–āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤
  • Infrastructure as Code (IaC): āĻŸā§‡āϰāĻžāĻĢāĻ°ā§āĻŽ (Terraform) āĻŦāĻž āĻāύāϏāĻŋāĻŦāϞ (Ansible) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻ–āύ āĻ…āĻŸā§‹āĻŽā§‡āĻŸā§‡āĻĄ āωāĻĒāĻžāϝāĻŧ⧇ āĻāϏāĻŋāĻāϞ āϰ⧁āϞ āĻĒ⧁āĻļ āĻ•āϰāĻž āĻšā§Ÿ āϝ⧇āύ āĻšāĻŋāωāĻŽā§āϝāĻžāύ āĻāϰāϰ āύāĻž āĻšā§ŸāĨ¤
  • Micro-segmentation: āĻ•ā§āϞāĻžāωāĻĄ āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŽāĻžāχāĻ•ā§āϰ⧋āϏāĻžāĻ°ā§āĻ­āĻŋāϏ⧇āϰ āϜāĻ¨ā§āϝ āφāϞāĻžāĻĻāĻž āφāϞāĻžāĻĻāĻž āϟāĻžāχāϟ āĻāϏāĻŋāĻāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšā§Ÿ āϜāĻŋāϰ⧋ āĻŸā§āϰāĻžāĻ¸ā§āϟ āϏāĻŋāĻ•āĻŋāωāϰāĻŋāϟāĻŋ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāϤ⧇āĨ¤

āĻŽāύ⧇ āϰāĻžāϖ⧁āύ!

āĻāĻ•āϟāĻŋ āϭ⧁āϞ āĻāϏāĻŋāĻāϞ āϰ⧁āϞ āĻĒ⧁āϰ⧋ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āϕ⧇ āĻ…āϚāϞ āĻ•āϰ⧇ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āϤāĻžāχ āĻĒā§āϰ⧋āĻĄāĻžāĻ•āĻļāύ āϰāĻžāωāϟāĻžāϰ⧇ āϰ⧁āϞ āĻĒ⧁āĻļ āĻ•āϰāĻžāϰ āφāϗ⧇ āϏāĻŦāϏāĻŽā§Ÿ āĻ˛ā§āϝāĻžāĻŦ āĻŦāĻž āĻ¸ā§āĻŸā§‡āϜāĻŋāĻ‚ āĻāύāĻ­āĻžāϝāĻŧāϰāύāĻŽā§‡āĻ¨ā§āĻŸā§‡ āĻŸā§‡āĻ¸ā§āϟ āĻ•āϰāĻž āωāϚāĻŋāϤāĨ¤

Released under the MIT License.