Cisco IOS Firewall 1: 트래픽 필터링, Established 필터링, DACL

라우터에서 과다한 패킷 수신으로 서버 부하, 네트워크 부하 현상을 예방할 수 있는 방법이 있다. 트래픽 필터링과 방화벽을 구축하는 것이다.
아래의 기능을 설정할 수 있다.

┌─ 트래픽 필터링
├─ Established 필터링
├─ Dynamic ACL
├─ Reflexive ACL
├─ CBAC
├─ IP Fragments 공격 방지
└─ ICMP Flooding공격 방지

이 게시글에서는 밑줄이 쳐진 3가지 기능에 대해 알아볼 것이다.


[트래픽 필터링]

ACL을 이용해 구성한다. 먼저, 내부 네트워크 접근을 차단할 항목을 설정한 다음 내부 네트워크 접근이 가능한 항목을 설정한다.

트래픽 필터링 설정 Topology

[요청사항]
‘라우터 3725’에서 설정할 것.
1: 출발지 192.168.0.0/24에서 접근하는 텔넷 트래픽 차단 및 로그 확인.
2: 출발지 192.168.0.0/24에서 실시하는 PING 차단.
3: 단, 192.168.20.0/24에서 192.168.0.0/24로는 PING 허용.
4: 이외 나머지 트래픽은 접근 허용.

[설정]

3725(config)# ip access-list extended Packet_Filter
3725(config-ext-nacl)# deny tcp 192.168.0.0 0.0.0.255 192.168.20.0 0.0.0.255 eq 23 log-input
3725(config-ext-nacl)# deny icmp 192.168.0.0 0.0.0.255 192.168.20.0 0.0.0.255 echo
3725(config-ext-nacl)# permit ip any any
3725(config-ext-nacl)# exit
3725(config)#
3725(config)# int fa0/0
3725(config-if)# ip access-group Packet_Filter in

[확인]
– TELNET 접속 시도 (37251라우터 → VPC4)
‘37251’에서 ‘3725’로 텔넷 접속을 시도하면 접속 불가하다고 뜬다. 동시에 ‘3725’ 라우터에서는 로그가 출력되는 것을 볼 수 있다.

(좌) 37251 라우터 (우) 3725 라우터

– PING 테스트 (VPC3 → VPC4)
트래픽 필터링을 걸기 전엔 정상적으로 PING이 나가는 것을 확인할 수 있다. 트래픽 필터링 이후에는 ICMP Type 3 시간 초과 에러를 표출한다.


[Established 필터링]

TCP의 ACK나 RST 패킷만을 허용한다. 하지만 ACK 패킷은 TCP에만 존재하기 때문에 TCP 이외의 서비스들에 대한 방화벽 수행은 어렵다.

[설정]
위에 있는 토폴로지 참고. 난 OSPF로 라우팅을 해놨기 때문에 established 필터링을 적용하기 전 ospf에 대한 패킷은 모두 허용으로 해둔다.

3725(config)# access-list 100 permit ospf any any
3725(config)# access-list 100 permit tcp any any established
3725(config)#
3725(config)# int fa0/0
3725(config)# ip access-group 100 in

[확인]
-37251 라우터 → 37252 라우터
‘목적지에 도달할 수 없다’고 나옴.

– 37252 라우터 →37251 라우터
정상 접속 가능


[Dynamic ACL]

‘Lock and Key’라고도 불린다.
인증된 외부 Network로부터 전송되는 패킷을 허용하기 위해 라우터에 자동으로 ACL을 추가한다. 인증여부는 TELNET 정상 접속 여부를 통해 진행한다. 자동으로 생성된 항목은 일정 시간이 경과되면 자동으로 삭제된다. 외부에 있는 관리자가 내부 네트워크로 접근해야할 때, 사용하기 적합할 것 같다.

  • 동작과정
Dynamic ACL Topology
  1. 외부 PC에서 Lock and Key 기능이 설정된 R2로TELNET 접속 시도.
  2. R2는 TELNET으로 접속한 PC에 대해 사용자 인증을 실시.
    (RADIUS / TACACS+ 인증 가능)
  3. 사용자가 인증되면, 자동으로 TELNET 접속이 해제된다. 외부 PC의 네트워크가 내부로 접근할 수 있도록 ACL을 자동으로 생성한다.
  4. 생성된 ACL은 일정 시간이 지나면, 자동으로 삭제된다.

[설정]

R2(config)# username cisco123 password ciscopwd123
R2(config)# username cisco123 autocommand access-enable host timeout 10
R2(config)#
R2(config)# ip access-list extended LAK_Traffic
R2(config-ext-nacl)# permit ospf any any
R2(config-ext-nacl)# permit tcp any host 5.5.5.6 eq telnet
R2(config-ext-nacl)# dynamic L&K permit ip any 6.6.6.0 0.0.0.3
R2(config-ext-nacl)# deny ip any 6.6.6.0 0.0.0.3
R2(config-ext-nacl)# exit
R2(config)#
R2(config)# int fa0/0
R2(config-if)# ip access-group LAK_Traffic in

2: ‘cisco123’으로 사용자 인증이 되면, ‘autocommand access-enable’에 의해 TELNET 접속 종료가 되고, ‘host’에 의해 TELNET 접속 시 사용된 출발지 IP 주소가 자동으로 생성되는 ACL의 출발지 주소로 사용되게끔 한다. ‘timeout’에 의해 자동으로 설정된 ACL이 몇 분 후에 제거될지 설정한다.
7: ‘dynamic’를 이용하여 사용자 인증이 허용된 출발지 주소에 대해 자동으로 ACL항목이 생성되도록 한다.

[확인]
– TELNET 인증 전, PING 테스트

R1에서 ‘R3의 6.6.6.2’로 PING 테스트를 하지만 실패되는 것을 확인할 수 있다. R2에서 ACL 정보를 확인했을 때, 40번 항목에 의해 패킷 11개가 차단된 것을 확인할 수 있다.

– TELNET 인증

R1에서 R2로 TELNET 접속하자마자 바로 종료되며, R2에서 ACL 정보를 확인하면 30번 항목과 40번 항목 사이에 자동으로 ACL 하나가 추가된 것을 알 수 있다.

– TELNET 인증 후, PING 테스트

정상적으로 PING 테스트가 성공하고, R2의 ACL 정보에선 ACL 항목이 유지되는 시간을 확인할 수 있다.

답글 남기기

이메일 주소는 공개되지 않습니다.