본문 바로가기
Network/이론

[보안] ACL(Access Control List)란?

by 재현짱 2024. 4. 19.
728x90

ACL(Access Control List)란?

 

ACL 개요

  • 특정 트래픽의 접근을 허용 or 차단할지 결정하는 리스트
  • 보안을 위해서 많이 사용
  • L3 장비인 Router에서 설정, Application Layer 부분도 관리하기 때문에 Network Layer 까지라고 단정할 수 없음
  • Application Layer까지 완벽히 막을 수 없기 때문에 Firewall 등의 전문적인 보안 장비를 사용
  • ACL은 크게 Numbered와 Named 두 종류가 존재

표준 엑세스 리스트

  • 출발지 주소로만 이루어진 엑세스 리스트
  • 관리용 트래픽 등 네트워크 장비로 향하는 트래픽에 대한 정책 적용이나 라우팅 정보 필터링 등에 사용 

확장 엑세스 리스트

  • 출발지 IP Address + 목적지 IP Address + Protocol 출발지 port 정보까지 사용
  • 사용자 트래픽을 필터링하는데 사용

Cisco ACL

ACL 특징

  • Access-Lists의 *Packet Filtering을 통해 Network Traffic을 제한하거나, 특정 사용자 및 장치에 의해 사용되는 Network의 자원에 대한 접근을 제한
  • Router를 경유하여 다른 Network나 Host에 대한 접근을 Permit(허용) or Deny(거부) 할 수 있다.
  • 허가 받지 않은 사용자가 원격으로 Network 자원에 대한 접근을 제한 할 수 있다.
  • Router를 통과하는 모든 Traffic을 제한 할 수 있지만 Router 자체적으로 생성되는 Traffic에 대해서는 제한이 불가능하다.

*Packet Filtering: 방화벅이나 Router 등에 적용할 수 있으며 외부에서 내부로 접근할 때 사용하는 Port Number 등을 차단함으로써 보안 수준을 높일 수 있다. 출발지 or 도착지 IP Address에 근거해 트래픽을 허용 or 차단할 것인지를 제어

 

ACL 동작방식

 

Inbound

  • Packet이 Router 내부로 들어올 때 filtering 여부를 결정
  • Router Interface로 packet이 들어올 경우 수신 Interface에 ACL이 설정되어 있는지 확인하고 설정이 되어있지 않으면 그냥 통과
  • 만약 ACL이 설정돼 있다면 들어온 Packet의 정보와 ACL에 설정 내용을 비교해서 통과 여부를 결정

Outbound

  • Packet이 Router 외부로 나갈 때 filtering 여부를 결정
  • Router Interface에서 Packet이 나갈 경우 Interface에 ACL이 설정되어 있는지 확인하고 설정이 되어있지 않으면 그냥 보낸다.
  • 만약 ACL이 설정돼 있다면 나가는 Packet의 정보와 ACL에 설정 내용을 비교해서 통과 여부를 결정.

ACL 동작 순서

ACL 동작 순서

  1. 입력 Interface에 트래픽이 도착하면 Inbound ACL의 첫 번째 조건부터 부합하는지 체크
  2. 조건에 부합시 Permit or Deny 결정. Parmit된 Packet은 계속해서 4단계로 이동, Deny일 경우 Packet을 폐기함
  3. 조건에 부합하지 않다면 다음 조건으로 넘어가서 부합하는 List가 나올 때까지 아래의 동작을 반복 ( Inbound ACL 내의 모든 규칙이 부합하지 않는다면 폐기)
  4. Inbound ACL을 통과한 Packet은 Routing Table을 참조하여(Routing lookup) 출구 Interface로 전송.
  5. 만약 출구 Interface에 Outbound ACL이 적용되어 있다면, Inbound ACL과 마찬가지로 설정된 Access-list에 따라 Peny or parmit한다.

ACL 설정 규칙

 

ACL는 Packet을 비교할 때 몇 가지 중요한 규칙들이 존재함

이 규칙들을 반드시 알고 있어야만 아무 문제 없이 Packet Filtering이 가능

 

  1. Access-list는 항상 순차적으로 비교 ( 첫 번째 줄부터 시작해 두 번째, 세 번째 줄 순으로 비교)
  2. Packet은 설정된 Access-list와 비교하여 일치할 때까지 계속 진행되며, 일치할 경우 더 이상 비교를 하지 않고 일치한 부분을 바로 실행
  3. Access-list를 설정하게 되면 디폴트로 항상 "Deny" 상태이며 특정 Packet만 차단하고 나머지는 "Permit" 으로 허용해주어야 한다.
  4. Access-list를 이용해 설정할 경우 반드시 Interface에 적용시켜야 한다. (Packet을 차단 or 허용할 것인지 혹은 나가는 Packet을 차단 or 허용할 것인지 정의해 주어야만 동작)
  5. Access-list를 먼저 만들고 난 후 해당 Interface에 적용해야함. Access-list를 먼저 설정하지 않으면 아무 의미 없음
  6. Interface에 적용 후 Access-list를 선언할 경우 동작하지 않을 수 있음에 주의