본문 바로가기

IT 이야기/방화벽(VPN)

[Fortigate] Session-helper / 비정규포트를 이용한 ftp 설정

728x90
반응형

포티게이트 방화벽의 Sesison-Helper

 

 

안녕하세요.

오늘은 Fortigate 방화벽의 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 은 Sesison-helper 에 정의되어 있을 경우

정의된 Session-helper 에 의해 처리됩니다.

 

 

 

 

사전 정의된 Session-Helper 내용

기본적으로 정규 포트의 경우 사전에 정의되어 있으며 필요할 경우 비정규 포트에 해당 기능을 설정해주어야 합니다.

예를 들어 외부 공격으로부터 보호하기 위해 FTP의 기본 서비스 포트인 21번을 사용하지 않고 8282번을 사용한다고 했을 경우 

방화벽 Policy 에서 해당 서비스 포트를 허용해줬는데도 불구하고 정상적인 FTP 서비스가 되지 않는다면

8282 포트를 session-helper 기능을 이용해 ftp 포트라고 정의해줘야 합니다.

 

 

 

Session-Helper 설정 방법

Session-helper 는 CLI 로만 설정이 가능합니다.

방화벽에 접속하신 후 미리 정의된 Sesion-helper 의 내용을 보는 방법은 다음과 같습니다.

FW01 (global) # show system session-helper 
config system session-helper
    edit 1
        set name pptp
        set protocol 6
        set port 1723
    next
    edit 2
        set name h323
        set protocol 6
        set port 1720
    next
    edit 3
        set name ras
        set protocol 17
        set port 1719
    next
    edit 4
        set name tns
        set protocol 6
        set port 1521
    next
    edit 5
        set name tftp
        set protocol 17
        set port 69

 

 

 

특정 서비스 포트를 추가할 경우 아래와 같이 미리 정의된 설정을 확인하신 후 없는 번호를 사용하여 추가해 주셔야 합니다.

FW01 (global) # config system session-helper 

FW01 (session-helper) # show | grep edit
    edit 1
    edit 2
    edit 3
    edit 4
    edit 5
    edit 6
    edit 7
    edit 8
    edit 9
    edit 10
    edit 11
    edit 12
    edit 15
    edit 16
    edit 17
    edit 18
    edit 19
    edit 20
    edit 21
    edit 13
    edit 22
    edit 26

위에서 보시는 것처럼 26번까지의 session-helper 가 미리 정의되어 있으므로,

 

 

 

27번을 만들어 보겠습니다.

FW01 (session-helper) # edit 27
new entry '27' added                          ### 27번 session-helper 가 신규 생성됨

FW01 (27) # set 			      ### set 명령 후 "?"를 입력하여 사용할 수 있는 명령어 확인
*name        Helper name.
*protocol    Protocol number.
*port        Protocol port.
 
FW01 (27) # set name 
ftp        FTP.
tftp       TFTP.
ras        RAS.
h323       H323.
tns        TNS.
mms        MMS.
sip        SIP.
pptp       PPTP.
rtsp       RTSP.
dns-udp    DNS UDP.
dns-tcp    DNS TCP.
pmap       PMAP.
rsh        RSH.
dcerpc     DCERPC.
mgcp       MGCP.
 
FW01 (27) # set name ftp

FW01 (27) # set protocol 
protocol    Enter an integer value from <0> to <255>.

FW01 (27) # set protocol 6

FW01 (27) # set port 
port    Enter an integer value from <1> to <65535>.

FW01 (27) # set port 8282

FW01 (27) # end

27번 정책을 신규 생성하였으며,

서비스 포트 8282번을 ftp 로 사용할 수 있도록 설정하였습니다.

set protocol 의 "6" 은 TCP 이고, "17"은 UDP 입니다.

 

 

 

추가적으로 향후 관리를 위해 GUI 상에서 Session-helper 가 적용된 서비스포트는 색상을 달리 표현해 두는 것도 좋을 것 같습니다.

 

 

 

 

 

 

 

 

 

 

읽어주셔서 감사합니다
티스토리 댓글과 공감은 로그인이 필요 없습니다.
로그인하시면 구독 가능합니다.

 

 

728x90
반응형