CBAC 실습
https://404notonc.tistory.com/79
올해 초에 CBAC에 대해 정리했었는데 이론만 정리하고 실습이 부족했던 느낌이라 간단하게 실습해보고 url filter 하는 방법에 대해 알아보겠습니다.
interface GigabitEthernet0/0
ip address [공인망] 255.255.248.0
ip access-group OUTBOUND_DENY in
ip nat outside
ip virtual-reassembly in
duplex auto
speed auto
media-type rj45
!
interface GigabitEthernet0/1
ip address 192.168.10.1 255.255.255.0
ip nat inside
ip virtual-reassembly in
duplex auto
speed auto
media-type rj45
!
interface GigabitEthernet0/2
no ip address
shutdown
duplex auto
speed auto
media-type rj45
!
interface GigabitEthernet0/3
no ip address
shutdown
duplex auto
speed auto
media-type rj45
!
ip forward-protocol nd
!
!
no ip http server
no ip http secure-server
ip nat pool INBOUND [공인망 IP] [공인망 IP] netmask 255.255.255.248
ip nat inside source list 100 pool INBOUND overload
ip route 0.0.0.0 0.0.0.0 [공인망으로 나가는 경계 라우터]
!
ip access-list extended OUTBOUND_DENY
deny ip any any
!
ipv6 ioam timestamp
!
!
access-list 100 permit ip 192.168.10.0 0.0.0.255 any
라우터 설정은 일단 CBAC 설정을 위해 위와 같이 아웃바운드 트래픽은 모두 허용하지만 그에 대한 응답인 인바운드 트래픽은 모두 차단하도록 구성하였습니다. 위 첫 사진의 로그를 보시면 호스트의 요청에 대한 응답이 거부되는 것을 확인할 수 있습니다.
접속이 잘 되던 호스트에서 네이버에 접속하지 못하는 모습을 확인할 수 있습니다.
https 연결을 허용하도록 해보겠습니다. 정말 멍청했습니다. DNS를 안열어놓고 https만 열어놓는다면 도메인을 통해 접속할 수 없겠죠? 저는 그런 실수를 범해 상당히 해맸습니다. DNS는 TCP와 UDP를 모두 사용하는 것으로 알고 있어 TCP를 허용해줬는데도 안되더라고요. 구글 DNS는 기본적으로 UDP를 이용하는 것 같습니다
DNS는 영역 전송에 TCP를 사용하고 이름에 UDP를 사용하고 일반(기본) 또는 역방향 쿼리를 사용합니다. UDP를 사용하여 작은 정보를 교환할 수 있는 반면 TCP는 512바이트보다 큰 정보를 교환하는 데 사용해야 합니다. 클라이언트가 DNS에서 응답을 받지 못하는 경우 3-5초 간격 후에 TCP를 사용하여 데이터를 다시 전송해야 합니다.
마이크로 소프트에서는 이렇게 설명하고 있네요. 아무튼 본론으로 돌아와서
ip inspect name WEB icmp
ip inspect name WEB dns
ip inspect name WEB https
int [intterface]
ip inspect [name] [in/out]
위와 같이 구성했고 아래의 사진처럼 네이버에 접속되는 것을 확인할 수 있습니다
sh ip inspect sessions를 통해 확인해보면 inspect를 통해 저장된 세션을 확인할 수 있습니다.
CBAC URL FILTER
이렇게만 보면 너무 간단한 설정입니다. CBAC의 장점은 stateful inspection을 지원한다는 점도 있지만 7계층 방화벽 솔루션으로써 url도 필터링할 수 있습니다. 저는 그래서 유튜브에 대한 접속을 차단하는 방화벽 설정을 해보겠습니다.
현재 호스트에서 유튜브와 네이버를 모두 연결할 수 있습니다.
일단 실습으로 들어가기 전에 urlfilter 명령어를 익힐 필요가 있습니다. 글을 쓰면서 실습을 하고 있었는데 http에 대한 url만차단 가능한 것 같습니다,,,ㅠ
명령어는 따로 정리해놓도록 하겠습니다.
ip urlfilter exclusive-domain [permit/deny] [site-url]
#허용할 또는 거부할 도메인 지정
ip urlfilrer allow-mode <on/off>
# 화이트 리스트로 작동할지, 블랙 리스트로 작동할지 결정
# on 이면 규칙 외 url 모두 허용
# off 면 규칙 외 url 모두 거부
ip inspect name [inspect 이름] http urlfilter
#inspect 문과 연결
위와 같이 설정하시면 http 도메인에 대해서 url 필터링이 가능해집니다. https에 대해서는 좀 더 찾아봐야겠습니다.
'네트워크 > 네트워크 일반' 카테고리의 다른 글
OPNsense로 Static NAT, Source NAT, 포트포워딩 하기 (0) | 2023.10.03 |
---|---|
QoS에 대해 알아보자 (0) | 2023.08.08 |
Reflexive ACL(가난한 자의 stateful inspection) (0) | 2023.06.18 |
VLAN hopping(DTP,Native VLAN, Switch spoofing, Double tagging attack) (0) | 2023.06.02 |
HSRP,VRRP,GLBP 이론 및 설정법 (0) | 2023.05.13 |