Session-Helper
- Session Helper는 특정 애플리케이션 프로토콜이 사용하는 포트를 변경하거나, 애플리케이션 계층에서 발생하는 문제를 해결하기 위해 사용된다.
- 이를 통해 포트 포워딩이나 NAT 기능을 사용할 필요 없이 특정 프로토콜을 지원하는 특정 포트를 열어주어 트래픽을 허용할 수 있다.
- 예를 들어, SIP 프로토콜을 사용하는 VoIP 트래픽이 Fortigate 장비를 통과할 때, Session Helper는 SIP 트래픽이 사용하는 포트를 확인하여 해당 포트를 열어준다. 이를 통해 VoIP 서비스를 지원하기 위한 별도의 NAT 설정 없이도 SIP 트래픽을 정상적으로 라우팅할 수 있다.
- Session Helper는 기본적으로 FortiOS에 포함되어 있으며, 다양한 애플리케이션 프로토콜에 대한 세션 헬퍼가 제공된다.
- 또한, 사용자 정의 Session Helper를 만들어 특정 프로토콜에 대한 지원을 추가할 수 있다.
- Fortigate 방화벽은 Session-Helper를 사용하여 특별한 요구사항이 있는 세션을 처리한다.
- Session-Helper는 세션에서 필요한 지원 기능을 Proxy 처럼 작동하여 수행한다.
- Session-Helper를 통해 SIP, FTP, TNS, TFTP 등 여러가지 설정을 정의할 수 있다.
- 예를 들어, FTP Session-Helper는 단일 FTP Session에서 시작된 Multi Session을 추적할 수 있다.
- FTP Server가 Client Program에 대한 연결을 열도록 허용한다.
Session-Helper의 구성
- Session-Helper의 구성은 TCP 또는 UDP 포트 및 Protocol에 Session-Helper의 구성을 Binding한다.
- 특정 Session이 방화벽 정책에 의해 허용되면 해당 포트 및 Protocol은 Session-Helper에 정의되어 있을 경우 정의된 Session-Helper에 의해 처리된다.
사전 정의된 Session-Helper 내용
- 기본적으로 정규 포트의 경우 사전에 정의되어 있으며 필요할 경우 비정규 포트에 해당 기능을 설정해주어야 한다.
- 예를 들어 외부 공격으로 보호하기 위해 FTP의 기본 서비스 포트인 21번을 사용하지 않고 8282번을 사용한다고 했을 경우 방화벽 Policy 에서 해당 서비스 포트를 허용해줬는데도 불구하고 정상적인 FTP 서비스가 되지 않는다면 8282 포트를 Session-Helper 기능을 이용해 ftp 포트라고 정의해줘야 한다.
Session-Helper 설정 방법
- Session-Helper는 CLI 로만 설정 가능하다.
- 방화벽에 접속 후 미리 정의된 Session-Helper 의 내용을 보는 방법은 다음과 같다.
show system session-helper
특정 서비스 포트를 추가할 경우 아래와 같이 미리 정의된 설정을 확인한 후 없는 번호를 사용하여 추가해야 한다.
config system session-helper
show | grep edit
27번을 만든다.
27번 정책을 신규 생성하였으며, 서비스 포트 8282번을 ftp 로 사용할 수 있도록 설정하였다.
set protocol 의 “6”은 TCP 이고, “17” UDP 이다.
추가적으로 향후 관리를 위해 GUI 상에서 Session-helper 가 적용된 서비스포트는 색상을 달리 표현해 두는 것도 좋다.
신규 생성한 서비스 포트 정책을 삭제하는 방법
config system session-helper delete 27
OR
config system session-helper
delete 27