Cisco 라우터에서 표준 Access-List 예제
ACL 여정 1/5 — 출발점. 가장 단순한 필터 — “누구에게서 온 트래픽인가?” 출발지 IP 하나로만 판단합니다. 전체 여정(ACL → 장비 보호 → IPsec → 방화벽)은 01 Security Journey Overview 참조.
Cisco IOS 라우터에서 access-list를 어떻게 구성하는지 보여드리기 위해 몇 가지를 구성해 봅시다. 이 강의에서는 표준 access-list를 다룹니다. 토폴로지는 다음과 같습니다.
라우터 두 개와, 각 라우터에 루프백 인터페이스가 있습니다. 두 라우터가 서로의 루프백 인터페이스에 도달할 수 있도록 정적 라우트 두 개를 사용합니다.
R1(config)# ip route 2.2.2.0 255.255.255.0 192.168.12.2
R2(config)# ip route 1.1.1.0 255.255.255.0 192.168.12.1참고: 네트워크를 광고하기 위해 라우팅 프로토콜을 사용하는 경우, access-list가 RIP, EIGRP 또는 OSPF 트래픽을 차단하지 않도록 주의하세요…
표준 Access-List 구성
이제 표준 access-list부터 시작해 봅시다! R2에서 192.168.12.0/24 네트워크의 트래픽만 허용하는 것을 만들어 봅시다.
R2(config)# access-list 1 permit 192.168.12.0 0.0.0.255이 단일 permit 항목으로 충분합니다. access-list 맨 아래에는 “deny any”가 있습니다. 보이지는 않지만 존재합니다. 이 access-list를 R2에 인바운드로 적용해 봅시다.
R2(config)# interface fastEthernet 0/0
R2(config-if)# ip access-group 1 inip access-group 명령을 사용해 인터페이스에 적용합니다. in 키워드로 인바운드로 적용했습니다.
R2# show ip interface fastEthernet 0/0
FastEthernet0/0 is up, line protocol is up
Internet address is 192.168.12.2/24
Broadcast address is 255.255.255.255
Address determined by setup command
MTU is 1500 bytes
Helper address is not set
Directed broadcast forwarding is disabled
Outgoing access list is not set
Inbound access list is 1show ip interface 명령으로 access-list가 적용되었는지 확인할 수 있습니다. 위에서 access-list 1이 인바운드로 적용된 것을 볼 수 있습니다.
이제 트래픽을 발생시켜 봅시다.
R1# ping 192.168.12.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.12.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/4 ms핑이 성공했습니다. access-list를 확인해 봅시다.
R2# show access-lists
Standard IP access list 1
10 permit 192.168.12.0, wildcard bits 0.0.0.255 (27 matches)보시는 것처럼, access-list는 항목별 매칭 횟수를 보여줍니다. 이를 사용해 access-list를 검증할 수 있습니다. access-list를 다룰 때 유용한 것을 보여드리겠습니다.
R1# ping 192.168.12.2 source loopback 0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.12.2, timeout is 2 seconds:
Packet sent with a source address of 1.1.1.1
U.U.U
Success rate is 0 percent (0/5)핑을 보낼 때 source 키워드를 사용해 인터페이스를 선택할 수 있습니다. 이 IP 패킷의 소스 IP 주소는 이제 1.1.1.1이며, access-list가 패킷을 드롭하기 때문에 이 핑이 실패하는 것을 볼 수 있습니다.
R2# show access-lists
Standard IP access list 1
10 permit 192.168.12.0, wildcard bits 0.0.0.255 (27 matches)show access-list 명령으로는 보이지 않습니다. “deny any”가 패킷을 드롭하기 때문입니다.
다른 시나리오
뭔가 다른 것을 원한다면 어떨까요? 192.168.12.0/24 네트워크의 트래픽을 거부하지만 다른 모든 네트워크는 허용한다고 가정해 봅시다. 다음과 같이 할 수 있습니다.
R2(config)# access-list 2 deny 192.168.12.0 0.0.0.255
R2(config)# access-list 2 permit any첫 번째 항목이 192.168.12.0/24 소스를 거부하고, 두 번째 항목 permit any로 나머지 모든 소스를 허용합니다. 암시적 deny any가 맨 마지막에 있으므로 permit any를 명시하지 않으면 모든 트래픽이 차단됩니다 — 이를 깜빡하는 실수가 가장 흔합니다.
단일 항목 ACL 수정
표준 access-list를 수정할 때 주의할 점이 있습니다. 전통적인 번호 기반 ACL(예: access-list 1 ...)은 항목 하나만 지우는 방법이 없습니다. no access-list 1을 하면 ACL 전체가 삭제됩니다. 개별 항목을 편집하려면 named ACL을 사용해야 합니다.
R2(config)# ip access-list standard BLOCK_INTERNAL
R2(config-std-nacl)# 10 deny 192.168.12.0 0.0.0.255
R2(config-std-nacl)# 20 permit any라인 번호(10, 20)로 개별 항목 추가·삭제가 가능합니다.
R2(config-std-nacl)# no 10
R2(config-std-nacl)# 10 deny host 192.168.12.5기존 번호 ACL도 IOS 12.3 이후 시퀀스 번호로 개별 삭제는 가능하지만, 가독성과 관리 편의성 때문에 새로 만들 때는 named ACL을 권장합니다.
양방향 트래픽의 함정
표준 ACL은 소스 IP만 매칭하기 때문에, 반환(return) 트래픽이 의도치 않게 차단되는 상황을 자주 만들어냅니다.
예를 들어 R2의 fa0/0 인바운드에 “15.0.0.0/8 차단” ACL을 걸었다고 합시다.
access-list 5 deny 15.0.0.0 0.255.255.255
access-list 5 permit any
interface fa0/0
ip access-group 5 in이 상태에서 PC2(17.x.x.x)가 PC1(15.x.x.x)로 ping을 보내면 요청은 정상적으로 나가지만 응답은 돌아오지 못합니다. 응답 패킷의 소스가 15.0.0.0/8이기 때문에 R2 인바운드에서 차단되기 때문이죠.
핵심 원칙:
- 표준 ACL은 소스만 본다 → 무조건 목적지에 가까운 라우터에 적용해야 의도치 않은 양방향 차단을 피할 수 있습니다.
- 확장 ACL(source + destination + port)을 쓰면 반환 트래픽을 의식하지 않고 소스에 가까운 라우터에서 필터링할 수 있습니다.
- ACL 방향(
in/out)을 바꾸면 동일한 항목도 완전히 다른 결과를 냅니다. 트래픽 흐름 방향을 머릿속에 그려보고 배치하세요.
2. 결론
- 표준 ACL은 소스 IP만 필터링하며, 번호 1
99 또는 13001999를 사용합니다. - ACL 맨 아래에는 암시적 deny any가 있으므로, 일부만 거부하고 싶다면
permit any를 반드시 명시하세요. - 표준 ACL은 항상 목적지에 최대한 가까운 인터페이스에 적용하는 것이 정석입니다.
- 세밀한 제어가 필요하다면 확장 ACL(extended access-list)로 넘어가세요.
show access-lists의 매칭 카운터는 ACL 동작 검증에 매우 유용합니다.
출처: networklessons.com - Standard access-list example on Cisco Router
태그: ACL, Security
→ 다음 편: 12_확장 ACL — 프로토콜·포트·목적지까지 구분하는 정밀 필터로 확장합니다.