본문 바로가기
FortiGate/Firewall

'Dirty' session 의미

by 에티버스이비티 2021. 1. 27.

다음과 같이 세션의 정보를 확인해보면, 상태정보에 'dirty' 'may_dirty' 등 여러 상태 정보들을 표시한다. 

이 포스팅에서는 'dirty' 세션이 무언인지? 세션의 상태정보가 'dirty'로 설정되는 이유는 무엇인지? 알아본다.

 

FortiGate는 세션의 첫번째 패킷(예: SYN)을 수신하면, 방화벽 정책에 따라 트래픽을 허용할것인지 차단할것인지 CPU에서 판단하게 된다.

이 판단은  방화벽 정책이 변경되지 않는한 세션의 첫번째 패킷에 대해서만 수행한다. 

방화벽 정책에서 트래픽을 허용할 경우 FortiGate는 세션을  생성하고, 세션의 상태정보를 'may_dirty'로 설정한다.

'may_dirty'로 설정된 세션은 방화벽 정책의 변경이나 네트워크 변경등이 없을 경우 CPU의 재 평가 없이 기존 세션 정보를 이용하여 트래픽을 허용한다.

 

만약 방화벽 정책 변경같은  세션의 상태정보가 변경되는 일이 발생하면, 'may_dirty'가 설정된 모든 세션에 'dirty' 상태가 추가 된다.

'dirty'의 의미는 해당 세션의 다음 패킷에대해 FortiGate가 다시 평가를 해야 한다는 의미이다. 정책의 변경 또는 네트워크(예: 라우팅) 설정의 변경으로 인하여, 허용되던 세션이 차단될수도 있고 port1을 통해 보내던 트래픽을 port2를 통해 보내야 할 수도 있기 때문이다.

세션이 'dirty'로 변경되고 다시 평가하여 여전히 허용된다면 'dirty'는 제거되고, 'may_dirty'가 남게된다.

차단된다면 세션의 상태정보는 'block'으로 설정되고 만료될때까지 세션 테이블에 남아 있으면서 해당 세션의 패킷은 모두 차단된다.

 

다음의 경우 세션의 상태정보가 'dirty'로 변경 됨

  • 방화벽 정책에 대한 모든 설정 변경
  • 라우팅 변경
  • 네트워크 관련된 모든 설정 변경 

 

관련 정보 : ebt-forti.tistory.com/37

 

 

댓글