[시스코 보안 아카데미 1기] Time-Based , Reflexive, Dynamic ACL, Stateful Inspection

Time-Based ACL

  1. 시간 범위(Time-Range) 설정
    • time-range TELNET
      periodic weekdays 8:00 to 18:00
  2. 확장 ACL 설정
    • ip access-list extended TELNET_ACL
      deny tcp host 203.230.7.2 host 203.230.7.1 eq telnet time-range TELNET
      permit icmp any any
  3. 인터페이스에 ACL 적용
    • intesrface Ethernet0/0
      ip address 203.230.7.1 255.255.255.0
      ip access-group TELNET_ACL in

동작 원리

  • 월요일~금요일 오전 8시부터 오후 6시까지 203.230.7.2에서 203.230.7.1로 Telnet 트래픽이 들어오면 ACL에 의해 차단
  • 그 외 시간에는 ACL이 적용되지 않으므로 Telnet 트래픽이 허용
  • ICMP(핑) 트래픽은 시간과 관계없이 언제나 허용

Reflexive ACL

상태 기반 접근 제어 목록의 일종으로, 아웃바운드 트래픽이 허용되면 해당 세션에 대한 리플렉티브 ACL 엔트리가 생성되어 그에 대한 응답 트래픽을 인바운드에서 허용하는 방식

  1. 글로벌 설정
    • ip reflexive-list timeout 120
      
  2. 인터페이스 설정
    • interface Ethernet0/0
      ip address 203.230.7.1 255.255.255.0
      ip access-group inboundfilters in
      ip access-group outboundfilters out
      
  3. 인바운드 ACL 설정
    • ip access-list extended inboundfilters
      permit icmp 3.3.3.0 0.0.0.255 203.230.7.0 0.0.0.255
      
  4. 아웃바운드 ACL 설정
    • ip access-list extended outboundfilters
      permit icmp 203.230.7.0 0.0.0.255 3.3.3.0 0.0.0.255
      permit tcp 203.230.7.0 0.0.0.255 3.3.3.0 0.0.0.255 reflect tcptraffic timeout 300
      

동작 원리

  • Outbound 트래픽이 outboundfilters ACL에 의해 허용될 때, reflect tcptraffic 명령어에 의해 세션이 생성됩니다. 이 세션은 리플렉티브 ACL 엔트리에 기록
  • Inbound 트래픽이 들어올 때 evaluate tcptraffic 명령어에 의해 리플렉티브 엔트리를 참조하여 해당 세션에 대한 응답 트래픽이 허용
  • 예를 들어, 203.230.7.0/24 네트워크에서 **3.3.3.0/24**로 TCP 패킷이 나가면 세션이 생성되고, 이후 반대 방향에서 들어오는 트래픽이 이 세션에 맞는 응답이면 인바운드에서 허용

Dynamic Access Control List (Dynamic ACL)

이 방법은 인증된 사용자만이 일시적으로 특정 네트워크에 접근할 수 있도록 설정하는 방식

username test password 0 test
username test autocommand access-enable host timeout 10
interface e0/0
ip address 10.1.1.1 255.255.255.0
ip access-group 101 in
access-list 101 permit tcp any host 10.1.1.1 eq telnet
access-list 101 dynamic testlist timeout 15 permit ip 10.1.1.0 0.0.0.255 172.16.1.0
line vty 0 4
password cisco
login
  1. test 사용자가 Telnet으로 **10.1.1.1**에 로그인
  2. 인증이 완료되면, **autocommand access-enable**이 실행되어 **testlist**라는 동적 ACL이 활성화
  3. 이 동적 ACL은 인증된 사용자만이 10.1.1.0/24 네트워크에서 172.16.1.0 네트워크로 접근할 수 있도록 15분 동안 허용
  4. 15분 후 동적 ACL이 만료되어 더 이상 접근이 허용되지 않는다.

Stateful Inspection

Stateful과 Stateless는 상태정보를 관리하느냐 차이이며 ACL은 Stateless

  • 1.1.1.1에서 3.3.3.3으로 Telnet요청하면 ACL에 의해 reply가 차단되어 Telnet 접속이 불가능하다.
  • 하지만 Stateful Inspection을 이용하면 텔넷 요청이 들어오면 Stateful Inspection으로 처리되어 세션테이블에 기록된다. ACL 에 의해 차단 대상이지만 세션테이블을 참고해 합법적인 트래픽으로 인식해 ACL 설정을 무시하고 응답 패킷을 허용한다.
ip inspect name myfw tcp timeout 3600
ip inspect name myfw udp timeout 3600
ip inspect name myfw tftp timeout 3600
ip inspect name myfw ftp timeout 3600
ip inspect name myfw http timeout 3600
int e0/1
ip access-group 111 in
access-list 111 deny ip any any
int e0/0
ip inspect myfw in

inspect session 보는법

R1에서 R3로 telnet 접속 후 R2에서 show ip inspect session

  • 이 세션의 의미는 **203.230.7.1**에서 **3.3.3.3**의 Telnet 서비스(포트 23)로 트래픽이 가고 있으며, CBAC의 Stateful Inspection에 의해 이 트래픽이 현재 모니터링되고 있음을 나타낸다.
  • Stateful Inspection을 통해 세션이 허용되었기 때문에, ACL이 Telnet 응답을 차단하더라도 이 세션은 정상적으로 통신할 수 있음
728x90