ZFW를 공부해야 하기도 하고 CBAC에 대한 공부가 부족했다고 생각하여 찾아보던 중 Reflexive ACL에 대해 알게 됐다.
요즘은 아래의 사이트를 학교에서 월정액 결제를 지원해줘서 아래 사이트 위주로 네트워크 공부를 하고 있다. 약간 쉽게 설명해주다보니 좋긴 한데 종속성? 이라고 해야하나 공부가 종속되는 느낌이여서 1차 적으로 아래 사이트를 통해 공부하고 이해가 안되는 부분은 구글링을 통해 공부하고 있다.
www.networklessons.com
아무튼 ACL은 대표적인 비상태 검사 기반 방화벽으로 세션을 저장하지 못한다. 하지만 Reflexive ACL을 이용하면 부분적으로 이런 점을 해결해줄 수 있다.
들어가기 전, Reflexive ACL은 CBAC와 ZFW라는 좋은 솔루션이 있기 때문에 잘 사용하지 않는다고 한다. Reflexvie ACL의 가장 큰 문제점은 통신 중 포트가 변경될 수 있는 애플레케이션 ftp등에 대해 작동하지 않는다는 것이다. 또, 실습할 때 주의할 점은 NAT 구성시 INBOUND 정책에 NAT 구성을 동일하게 해줘야한다. 그렇지 않고 다른 ACL에 설정하면 서로 적용이 안되는 문제가 있었다. NAT는 작동해서 트래픽을 전송하지만 Reflexive ACL의 정책에 위반되어 packet filtered 옵션을 나타내며 통신되지 않았었다.
ip access-list extended OUTBOUND
permit ip any any reflect EVALUATE
int g0/0
ip access-group OUTBOUND out
ip access-list extened INBOUND
evaluate EVALUATE
int g0/1
ip access-group INBOUND in
위와 같은 방법으로 구축되는데 reflect 라는 단어에 집중해야한다. RACL은 외부로 나가는 outbound 트래픽에 대해 세션을 저장해준다. 그렇다면 어떤 방식으로 세션을 저장할까?
permit ip any any reflect EVALUATE
EVALUATE라는 임시 acl을 만들어서 세션을 저장한다. 따라서 외부로 나가는 트래픽에 대해 EVALUATE에 그 상태를 저장하고 임시 acl을 생성한다.
evaluate EVALUATE
위 명령어를 통해서 INBOUND 트래픽 즉 들어오는 패킷을 검사하고 EVALUATE 임시 ACL에 생성되어 있는 트래픽이라면 허용하고 아니라면 ACL의 기본 특성인 규칙 외 모두 차단에 의해서 차단한다. 아래에서 한번 어떻게 작동하는지 확인해보겠다.
내부망인 Ubuntu에서 한번 host pc로 ping을 날려보겠다. 정상적으로 잘 통신이 된다.
sh access-lists 명령어를 통해 확인해보면 Reflexive ACL이 설정되어 기본값인 300초 동안 세션을 저장하고 허용하고 있는 것을 확인할 수 있다.
당연히 외부에서의 접속은 만료된다. 사실 정적 nat를 구성해주니 외부에서 내부로 통신이 됐다. 이건 왜 그런지 조금 더 알아봐야 할 거 같다 나의 ACL구성 실수 인지,,, 아니면 port forwarding이 ACL보다 위에서 작동하는지 아직은 어째서 그런건지 모르겠다. 아무튼 이상으로 글을 마무리 하겠다.
'네트워크 > 네트워크 일반' 카테고리의 다른 글
QoS에 대해 알아보자 (0) | 2023.08.08 |
---|---|
CBAC 실습 및 URL FILTER (0) | 2023.06.19 |
VLAN hopping(DTP,Native VLAN, Switch spoofing, Double tagging attack) (0) | 2023.06.02 |
HSRP,VRRP,GLBP 이론 및 설정법 (0) | 2023.05.13 |
OSPF STUB AREA (0) | 2023.05.13 |