~/network/acl
보안

ACL

Access Control List

접근 제어 목록(ACL)은 네트워크 장비에서 IP주소, 프로토콜, 포트 번호를 기반으로 트래픽을 허용하거나 거부하는 보안 규칙 집합을 의미한다. 즉, 시스템 리소스에 대한 권한을 정의하고 트래픽 필터링의 기능을 수행하여, 방화벽을 구축하는 데 있어 가장 중요한 요소이다.

5-tuple

ACL은 출발지 IP / 목적지 IP / 출발지 Port / 목적지 Port / 프로토콜 이 5개의 정보를 본다.

ACL 설정 시 주의 사항

  1. 서브넷 범위가 작은 항목부터 설정한다.

ACL 필터 항목을 설정하면, 설정된 순서대로 순서 번호가 할당된다. 이때, 라우터는 ACL 항목에 할당된 순서번호를 작은 순서부터 차례대로 검사하여 패킷 정보와 일치한 항목이 있으면 필터링을 하고 다음 순서의 ACL 항목은 검사하지 않는다.

  1. ACL 항목 마지막에는 명시적으로 deny any로 처리된다.

패킷 정보와 일치하는 ACL 항목이 없다면 모든 패킷을 차단한다. 따라서 특정 서브넷만 차단하고자 한다면, 해당 서브넷 deny 등록 후 permit any를 설정해야한다.

  1. ACL 항목은 부분 삭제와 부분 추가가 불가능하다.

ACL 항목을 추가하면 맨 마지막 항목으로 추가되며, 삭제를 하면 모든 항목들이 삭제된다. 단, Named ACL은 순서번호를 직접 설정할 수 있기 때문에 부분 추가와 부분 삭제가 가능하다. 룰이 진짜 동작하는지는 hit config와 log로 확인한다.

ACL Type

  1. Standard : 출발지만 확인하는 기본 ACL
    • 수신한 패킷의 내용 중 출발지 주소만 확인하여 필터링하는 방식
    • 서비스나 특정 트래픽의 구분 없이 필터링하는 경우에 사용
    • 특정 네트워크의 범위를 지정하여 Object로 사용할 경우에도 쓰임
  2. Extended : 여러 옵션을 확인하는 확장 ACL
    • 출발지/목적지 주소, 프로토콜과 포트번호까지 확인하여 필터링하는 방식
    • 특정 서비스나 트래픽의 구분을 통해 상세한 필터링 가능
  3. Ethernet : Ethernet 프레임을 확인하는 L2 ACL
    • 수신한 프레임의 Ethernet 타입 코드를 확인하여 필터링하는 방식
    • L2 계층에서 특정 프로토콜의 트래픽을 구분하여 차단하는 경우에 사용
  4. Extended Ethernet : 여러 옵션을 확인하는 확장 Ethernet ACL
    • 출발지/목적지 MAC 주소와 Ethertype까지 확인하여 필터링하는 방식
    • MAC 주소 기반의 상세한 L2 필터링이 필요한 경우에 사용
  5. Named : 번호 대신 이름으로 식별되는 ACL
    • Numbered ACL과 동일하게 동작하지만 의미 있는 이름(예: filter_to_server)을 부여하여 관리
    • 순서번호를 직접 지정할 수 있어 부분 추가/삭제가 가능
    • ACL 항목이 많아 식별과 유지보수가 필요한 경우에 사용
    • Standard Named ACL 또는 Extended Named ACL로 구성 가능

ACL은 식별 방식에 따라 크게 Numbered ACL(번호로 식별, 위 1~4번)과 Named ACL(이름으로 식별, 위 5번)로 나뉜다. Cisco IOS에서는 Numbered ACL은 종류별로 사용하는 번호 범위가 정해져 있다.

종류번호 범위
Standard1~99 (확장: 1300~1999)
Extended100~199 (확장: 2000~2699)
Ethernet200~299
Extended Ethernet1100~1199

벤더별 번호 체계

번호 체계는 벤더마다 다르게 구현된다.

벤더ACL 식별 방식
Cisco IOS1~99(Standard), 100~199(Extended) 등 번호 기반
Huawei2000~2999(Basic), 3000~3999(Advanced) 등 번호 기반 (범위가 다름)
Juniper (Junos)번호 없음. firewall filter + 이름 있는 term으로 정의
Linux iptables/nftables번호 체계 없음. table/chain/rule 구조
AWS Network ACLrule number(1~32766)로 우선순위 지정

참고 자료

https://eveningdev.tistory.com/65#google_vignette