Network

[Network] Network ACL

Yoonsoo Park 2024. 8. 26. 11:42

1. 트래픽을 제어하는보안 도구, Network ACL

 ACL(Access Control List)컴퓨터 시스템, 네트워크, 파일 시스템 등 다방면에서 누구에게 어떤 리소스에 대한 어떤 권한을 부여할지 정의하는 리소스를 의미한다. 이번 포스트에서는 라우터, 네트워크 방화벽에서 사용되는 Network ACL에 대해 설명하겠다. 

 

 Network ACL(네트워크 접근 제어 목록)정책 또는 규칙(Access List)을 기반으로 네트워크 장비(라우터, 방화벽)에 들어오는 트래픽을 패킷 단위로 필터링하는 보안 도구이다. 이때 ACL은 주로 IP Header, L4 Header(주로 TCP/UDP)의 정보를 기반으로 출발지(Source), 목적지(Destination) IP 주소, 프로토콜, 출발지, 목적지 포트 번호 등에 정책을 적용하여 트래픽을 제어한다. 여기서 중요한 점은 ACL이 Top-down 방식으로 순차적으로 정책을 적용시킨다는 점이다(이 부분에 대해서는 나중에 더 자세히 설명하겠다).

 

*여전히 라우터에서 ACL이 일부 사용되긴 하지만, 최근에는 대부분 네트워크 방화벽을 통해 해당 기능을 대신하고 있다.  

 

 

1) ACL의 기본 동작

 ACL의 기본 동작은 크게 2가지로 나눌 수 있다. 첫 번째는 접근 정책(Access List)의 조건에 명시된 정보와 전달받은 패킷의 정보를 비교하는 것이다. 정책은 앞서 말했듯이 상위부터 차례대로 적용되고, 첫 번째로 일치하는 규칙이 적용된다(정책을 설정하는 순서가 중요한 이유). 조건의 정보와 패킷의 정보가 일치하면 두 번째로 해당 정책에 지정된 동작(Action)을 수행하게 된다. 여기서 Action이란 Permit(허용), Deny(거부) 두 가지로 이뤄져 있다. 한 가지 중요한 점은 모든 조건에 해당하지 않으면 리스트에 명시되어 있지 않더라도 "Deny All"을 수행한다(Access List를 작성할 때 자주 실수하는 부분이다...).  

ACL의 기본 동작

 

 

2) ACL의 적용 위치설정 순서 

라우터에서는 인터페이스에서 ACL을 통해 패킷 제어가 일어난다. 여기서 중요한 점은 인터페이스에 들어오는 패킷에 대해 필터링을 수행할지, 인터페이스에서 나가는 패킷에 대해 필터링을 수행할지 필터링을 할 지점을 설정해야 하는 것이다. 여기서 인터페이스에 들어오는 패킷에 대해 정책을 적용하는 것을 Inbound, 나가는 패킷에 대해 정책을 적용하는 것을 Outbound라고 한다. 

 

 따라서, ACL을 설정하기 위해서는 1) 필요한 조건에 맞는 정책을 계획하고, 2) 계획에 따라 Access List를 생성하고, 3) ACL을 적용할 인터페이스를 설정 및 Inbound, Outbound 지정하는 과정이 필요하다. 

 

 

2. ACL을 식별하는 2가지 방법, Numbered ACL, Named ACL

 ACL 정책을 설정할 때 ACL 정책을 구분할 정보를 함께 기입하게 된다. 이때 해당 정보를 숫자로 식별하는 Numbered ACL텍스트 이름으로 식별하는 Named ACL로 방법으로 구분된다. Numbered ACL은 전통적으로 사용되어 왔지만, 라우터에 몇 가지 장점을 가지고 있는 Named ACL이 지원되기 시작하면서 Named ACL이 더 널리 사용되는 추세이다. 하지만 여전히 Numbered ACL은 단순한 네트워크를 구성할 때 사용되므로, 두 가지 방법을 다 알아두자.

 

Named ACL의 장점

  • ACL 생성 후에도 개별 라인에 대한 추가, 삭제, 수정이 가능하다(Numbered에서는 일부 수정이 불가)
  • 이름을 통해 ACL의 목적을 쉽게 알 수 있어 가독성과 유지보수성이 높아진다
  • 더 복잡한 조건을 설정할 수 있음 

 

 

1) Numbered ACL 

 ACL의 설정 방법은 Standard ACL과 Extended ACL이 있다. Extended ACL은 Standard ACL에 비해 더 세부적인 조건을 부여할 수 있다. Standard ACL과 Extended ACL의 ACL Number 범위와  필수 조건 및 특징은 다음과 같다. 

 

Standard ACL

  • ACL Number: 1~99, 1300~1999
  • 필수 조건: Source IP 
  • Wildcard Mask를 이용해 IP의 범위를 지정할 수 있음(생략 시 Host를 의미함)
  • 특정 키워드르 이용해 범위 지정 가능
    • 모든 IP: 0.0.0.0~255.255.255.255 = any
    • 특정 IP 하나: = host 1.1.1.2
Router(config)# access-list <ALC number> <permit/deny> <source IP > [wildcard mask]
Standard  방식으로 Access List 정책 설정
Router(config)# interface <interface>
정책을 적용할 인터페이스 설정
Router(config-if)# ip access-group <ALC number> <in(Inbound)/out(Outbound)>
인터페이스 내에서 Inbound, Outbound 설정

 

R1(config)# access-list 1 permit 10.10.10.1
R1(config)# interface fastethernet 1/0
R1(config-if)# ip access-group 1 in

 

Extended ACL

  • ACL Number: 100~199, 2000~2699
  • 필수 조건: Protocol(IP, UDP, TCP), Source IP, Destination IP 
  • Wildcard Mask를 이용해 IP의 범위를 지정할 수 있음(개별 IP일 경우 Host를 명시해야 함)
  • Option
    • 지정된 Protocol의 종류에 따라 다름
    • TCP/UDP인 경우 Source Port, Destination Port를 조건으로 사용할 수 있음

Option

Router(config)# access-list <ACL number> <permit/deny> <protocol> <source IP> [wildcard mask] [source port] <destination IP> [wildcard mask] [destination port] [option]
Extended 방식으로 Access List 정책 설정
Router(config)# interface <interface>
정책을 적용할 인터페이스 설정
Router(config-if)# ip access-group <ALC number> <in(Inbound)/out(Outbound)>
인터페이스 내에서 Inbound, Outbound 설정

 

R1(config)# access-list 100 permit tcp host 10.10.10.1 any eq 80
R1(config)# interface fastethernet 1/0
R1(config-if)# ip access-group 100 in

 

 

2) Named ACL

 Named ACL은 Numbered ACL과 Standard와 Extended 설정을 비롯한 Access-List 설정 방법이 상이하다. 아래 표를 참고하자.

R1(config)# ip access-list [standard/extended] [string]
standard/extended: 정책 종류 설정/ string: 정책 이름 설정 
R1(config-[std/ext])# [action → permit/deny] [조건]
Action : 정책의 허용/거부 여부를 지정
> Standard 형 : [Source IP] [Wildcard Mask]
> Extended 형 : [Protocol] [Source IP] [Wildcard Mask] [옵션]
R1(config)# interface [적용할 interface]
정책을 적용할 인터페이스 설정
R1(config-if)# ip access-group [acl number] [in/out]
인터페이스 내에서 Inbound, Outbound 설정

 

 

Named 방식으로 Standard ACL 설정 예시

R1(config)# access-list standard TEST
R1(config-std)# permit 10.10.10.1
R1(config)# interface fastethernet 1/0
R1(config-if)# ip access-group TEST in

 

 

Named 방식으로 Extended ACL 설정 예시

R1(config)# ip access-list extended TEST2
R1(config-std)# permit icmp host 10.10.10.2 host 172.16.10.20
R1(config-std)# permit tcp host 10.10.10.1 host 172.16.10.20 eq 80
R1(config)# interface fastethernet 0/0
R1(config-if)# ip access-group TEST2 out

 

 

 

힘들지만 오늘도 해낸 나를 위한 한 마디,

"오늘이라는 날이 단 한 번뿐이고, 두 번 다시는 찾아오지 않는 것임을 항상 명심하는 게 좋을 것이다. 시간과 행복은 지체하지 않고 흐른다", 쇼펜하우어

'Network' 카테고리의 다른 글

[Network] LAN 이중화 - STP  (0) 2024.09.05
[Network] NAT  (8) 2024.08.28
[Network] 라우팅 프로토콜 실습 및 설정법  (1) 2024.08.24
[Network] VLAN, L3 Switch  (0) 2024.08.23
[Network] OSI Layer 4(Transport) - TCP, UDP  (0) 2024.08.23