Cisco IOS 시간 기반 Access-List
ACL 여정 5/5 — 여정의 마지막 조각. 지금까지의 모든 ACL(표준·확장·VACL·Infrastructure) 위에 시간 조건을 얹는 기법입니다. 업무시간/야간 차등 정책의 핵심 도구.
특정 요일이나 업무 시간 동안 특정 트래픽을 차단하는 것이 유용할 수 있습니다. 예를 들어, 월요일부터 금요일 9:00 ~ 17:00 사이에 모든 페이스북 트래픽을 차단하고 싶을 수 있습니다.
이는 access-list에서 시간 범위(time range) 를 사용해 달성할 수 있습니다. 이를 사용하면 access-list의 문장이 지정한 시간 범위 동안에만 활성화됩니다. 예제를 살펴봅시다!
1. 구성
시간 기반 access-list를 시연하기 위해 다음 토폴로지를 사용합니다.
위에는 라우터 세 개가 있습니다. R1이 컴퓨터의 사용자이고 R3이 일종의 웹 서버라고 상상해 봅시다. 우리는 R1에서 R3의 웹 서버에 대한 접근을 평일 9:00~17:00 사이에 차단하고 싶습니다. R2에 시간 기반 access-list를 구성하겠습니다.
time range 명령은 시계에 의존하므로 시간과 날짜가 정확한지 확인하세요.
R2# clock set 12:48:00 14 July 2015일반적으로 NTP를 사용하는 것이 더 좋지만, 이 예제에서는 수동으로 구성하겠습니다. 이제 시간 범위를 구성할 수 있습니다.
R2(config)# time-range WORK_HOURS
R2(config-time-range)# periodic ?
Friday Friday
Monday Monday
Saturday Saturday
Sunday Sunday
Thursday Thursday
Tuesday Tuesday
Wednesday Wednesday
daily Every day of the week
weekdays Monday thru Friday
weekend Saturday and Sunday옵션이 꽤 많습니다. 특정 요일을 선택하거나 weekdays, weekend 같은 범위를 사용할 수 있습니다. weekdays를 선택해 봅시다.
R2(config-time-range)# periodic weekdays 09:00 to 17:00이제 업무 시간을 위한 “WORK_HOURS”라는 시간 범위가 있습니다. access-list를 만들어 봅시다.
R2(config)# ip access-list extended NO_FACEBOOK
R2(config-ext-nacl)# deny tcp any host 192.168.23.3 eq 80 time-range WORK_HOURS
R2(config-ext-nacl)# permit ip any any위 access-list는 우리가 지정한 시간 범위 동안에만 192.168.23.3의 TCP 포트 80으로 가는 트래픽을 차단하는 문장이 있습니다. 인터페이스에 활성화해 봅시다.
R2(config)# interface FastEthernet 0/0
R2(config-if)# ip access-group NO_FACEBOOK in이제 R1에서 R3에 연결을 시도할 수 있습니다.
R1# telnet 192.168.23.3 80
Trying 192.168.23.3, 80 ...
% Destination unreachable; gateway or host downR3의 웹 서버에 연결할 수 없습니다. 이것이 시간 범위 때문일까요?
2. 검증
먼저 라우터의 현재 시각을 확인합니다.
R2# show clock
12:48:42.123 UTC Tue Jul 14 2015화요일 12:48이므로 periodic weekdays 09:00 to 17:00 범위 안에 들어갑니다. access-list를 확인해 보면 time-range 상태가 active로 표시됩니다.
R2# show access-lists
Extended IP access list NO_FACEBOOK
10 deny tcp any host 192.168.23.3 eq www time-range WORK_HOURS (active)
20 permit ip any anytime-range 자체의 상태도 별도 명령으로 확인할 수 있습니다.
R2# show time-range
time-range entry: WORK_HOURS (active)
periodic weekdays 9:00 to 17:00
used in: IP ACL entry이제 시간을 업무 시간 바깥으로 바꿔 동일 access-list가 어떻게 달라지는지 보겠습니다.
R2# clock set 20:00:00 14 July 2015
R2# show access-lists
Extended IP access list NO_FACEBOOK
10 deny tcp any host 192.168.23.3 eq www time-range WORK_HOURS (inactive)
20 permit ip any any동일 문장이 (inactive)로 바뀌었고, 이 상태에서 R1에서 192.168.23.3의 80번 포트로의 연결은 정상적으로 허용됩니다. 같은 ACL인데 시각에 따라 적용 여부가 달라지는 것이 바로 시간 기반 access-list의 핵심입니다.
팁:
clock set은 검증용으로만 편리할 뿐, 운영 환경에서는 반드시 NTP로 시각을 동기화하세요. 라우터 시계가 어긋나면 의도한 시간 범위가 그대로 어긋나, “왜 9시가 지났는데도 아직 막히지 않지?” 같은 문제의 대부분이 실제로는 시계 문제입니다.
3. 활용 시 고려사항
periodic에는weekdays,weekend,daily같은 범위와 개별 요일을 모두 지정할 수 있습니다. 예를 들어 일요일~목요일을 묶어 걸고 싶다면periodic Sunday Monday Tuesday Wednesday Thursday 09:00 to 17:00식으로 요일을 나열하면 됩니다.- 시간 기반 ACL은 L3/L4 정보만 필터링할 수 있습니다. 즉 호스트네임이나 URL 기반 차단은 불가능하며, “페이스북을 막고 싶다”와 같은 요구는 일반적으로 웹 필터링/프록시(Websense, Umbrella 등)나 DNS 기반 필터가 담당합니다. 굳이 라우터만으로 처리해야 한다면 특정 AS 번호에 속하는 prefix 전체를 막는 식의 우회가 필요합니다.
- 라우터 정책으로 접근 시간을 통제하는 방식은 구성은 간단하지만 관리 범위가 좁습니다. 조직 차원의 웹 사용 정책을 강제하는 용도라면 전용 웹 필터링 제품이 더 적합합니다.
4. 결론
time-range+ access-list를 조합하면 요일과 시간대에 따라 활성/비활성 상태가 바뀌는 동적 ACL을 만들 수 있습니다.show access-lists와show time-range에서(active)/(inactive)상태를 확인할 수 있으므로, 동작 확인 시에는 항상 이 두 명령을 함께 보는 것이 좋습니다.- 시간 기준이 곧 라우터의 시계이므로 NTP 동기화는 필수입니다.
- 간단한 “업무 시간에만 차단” 같은 요구에는 유용하지만, URL/애플리케이션 기반 정교한 제어가 필요하다면 전용 보안 장비나 웹 필터링 솔루션을 고려해야 합니다.
출처: networklessons.com - Cisco IOS Time Based Access-List
태그: ACL, Security
ACL 여정 완료. 하지만 L3 ACL만으론 ARP·DHCP·STP 같은 L2 공격을 막지 못합니다. 다음 편에서 L2 보안 4대 기둥 + STP 보안으로 스위치 레벨 방어를 완성합니다 → 02_L2 보안 기본기