ACL (Access Control List) 이란?
- 라우터를 중심으로 IN, OUT 패킷의 헤더를 검사하여 IP 주소, 패킷 종류에 따라 트래픽을 제어한다.
- 단, 라우터에서 자체 생성하는 트래픽에 대한 접근 제어는 불가능하다.
- 패킷 접근 제어 항목에 따라 크게 Standard ACL 과 Extended ACL 로 분류된다.
- ACL 을 사용할 때 별도의 접근 제어 항목 언급이 없다면, 기본적으로 Implicit deny (암묵적 접근 거부) 로 설정된다.
1) Standard ACL (표준 ACL) : 1 ~ 99 번까지의 number 를 사용하며, 출발지 IP 주소만을 참고하여 필터링을 수행한다.
Router(config)# access-list access-list-number {permit | deny} 출발지 IP 주소 [wildmask]
2) Extended ACL (확장 ACL) : 100 ~ 199 번까지의 number 를 사용하며, 출발지 및 도착지 IP 주소 + 포트 번호 + 프로토콜을 조합하여 필터링을 수행한다.
Router(config)# access-list access-list-number {permit | deny} {protocol | protocol keyword} {source source-wildcard | any} {destination destination-wildcard | any} [protocol specific options] [log]
Router(config)# access-list access-list-number {permit | deny} tcp {source source-wildcard | any} [operator destination-port | destination-port] [established]
- log 옵션 : 패킷 필터링 규칙에 부합하여 Console 로 보내는 Logging 기록을 저장하라는 의미이다.
- established 옵션 : tcp 패킷을 필터링하는 경우에만 사용되며, 필터링에 부합하는 경우 회선을 단방향으로 연결하라는 의미이다.
ACL 작성 유의 사항
- access-list 는 순차적으로 적용되므로, 작성 순서에 유의해야 한다.
- deny 규칙을 먼저 설정한 후, 마무리에 permit 규칙을 설정한다.
- 패킷 필터링 규칙에 일치되는 경우, 더 이상의 엔트리 비교 없이 해당 규칙을 즉시 실행한다.
- ACL 작성 후, 인터페이스에 해당 규칙의 IN / OUT 을 적용해주어야 한다. 기본 값은 OUT 이다.
- 부분 수정이 불가능하므로, 수정이 필요한 경우 처음부터 순차적으로 재작성 해야한다.
- 만약, ACL 의 맨 마지막 엔트리로 permit any 를 작성하지 않는다면 ACL 항목에 없는 패킷들은 모두 deny 된다.
Standard ACL 설정
다음과 같이 토폴로지를 구성하여, 대구에서 서울로 향하는 ping 만을 막고자 한다. (IP 설정 과정은 생략한다.)
Router(config)# access-list 1 deny 30.30.30.0 0.0.0.255
Router(config)# access-list 1 permit any
Router(config)# int f0/0
Router(config-if)# ip access-group 1 out
Router# show ip access-lists -> ACL 정책 확인
다음과 같이 ACL 을 작성하여, 30.30.30.0/24 네트워크 대역의 대구 트래픽을 서울로 향하지 못하게 하며 그 외 네트워크 대역은 모두 접근을 허용하도록 한다.
그 결과, 대구에서 서울로 향하는 ping 통신은 필터링되어 목적지로 도달하지 못하는 것을 확인할 수 있다.
하지만, 다른 네트워크 대역의 트래픽은 정상적으로 서울로 향하고 있음을 확인할 수 있다.
*주의*
왜 int f0/1 인터페이스에 ACL 정책을 설정하면 정상 동작하지 않을까?
Router(config)# access-list 1 deny 30.30.30.0 0.0.0.255
Router(config)# access-list 1 permit any
Router(config)# int f0/1
Router(config-if)# ip access-group 1 in
Router# show ip access-lists -> ACL 정책 확인
다음과 같이 설정하게 되는 경우, int f0/1 인터페이스로 들어가는 30.30.30.0/24 대역의 패킷들이 모든 곳으로의 트래픽 이동이 제한되기 때문이다.
결과적으로, 대구에서 모든 곳으로의 ping 통신이 불가능한 것을 확인할 수 있다.
Extended ACL 설정
다음과 같은 토폴로지를 작성하여, 192.168.1.20 의 IP 주소를 사용하는 PC 에서 DNS 서비스를 이용할 수 없도록 설정하고자 한다. (IP 설정 및 Routing 설정 과정은 생략한다.)
현재, DNS 서버의 설정 사항은 다음과 같다.
또한, WEB 서버 기본 웹 페이지의 설정 사항은 다음과 같다.
아직 ACL 구문이 작성되지 않은 상태이므로, 192.168.1.20 주소의 PC 1 에서 도메인으로 웹 페이지 접속이 가능한 것을 확인할 수 있다.
마찬가지로, 도메인을 활용한 ping 통신도 가능하다.
결과적으로 ACL 구문이 작성되지 않은 현재, PC1 에서는 DNS 서비스를 정상적으로 사용할 수 있음을 확인할 수 있다.
Router(config)# access-list 100 deny udp host 192.168.1.20 any eq 53
Router(config)# access-list 100 permit ip any any
Router(config)# int f0/0
Router(config-if)# ip access-group 100 in
이제, 다음과 같이 ACL 구문을 작성하여 PC1 의 도메인 서비스 이용을 제한하고자 한다. 53 / UDP 포트를 사용하는 출발지가 192.168.1.20 인 DNS 패킷을 도착지에 상관없이 모두 차단하며, 나머지 주소들은 모든 서비스 통신이 가능하도록 설정한다.
ACL 작성 후에도, 도메인이 아닌 IP 주소로의 웹 페이지 접속 및 ping 통신은 여전히 가능한 것을 확인할 수 있다.
단, PC1 에서 DNS 서버를 통해 도메인을 이용하는 통신이 불가능해진 것을 확인할 수 있다.
또한, PC1 을 제외한 다른 PC 들에서는 DNS 서버를 거치는 통신이 정상적으로 이루어지는 것을 확인할 수 있다.
공부하면서 정리한 내용을 글로 작성하였습니다.
혹시나 잘못된 내용이 있다면 댓글로 알려주시면 감사하겠습니다 :)
'Network > PacketTracer Practice' 카테고리의 다른 글
[Network / CISCO] HSRP (Hot Standby Redundancy Protocol) (0) | 2025.02.20 |
---|---|
[Network / CISCO] 동적 라우팅 프로토콜 EIGRP (0) | 2025.02.16 |
[Network / CISCO] 동적 라우팅 프로토콜 RIP (0) | 2025.02.16 |
[Network / CISCO] Static NAT, Dynamic NAT, PAT 실습 (0) | 2025.01.31 |
[Network / CISCO] DHCP (IP 동적 할당) 실습 (0) | 2025.01.29 |