오늘은 FTP 프로토콜의 Passive Mode와 Active Mode에 대해서 알아보죠. ^^
왜 알아봐야 하느냐? 관제센터에서 근무하면 FTP 서비스포트 오픈에 대한 방화벽 정책을 수립하게 됩니다. 이 경우 Active Mode와 Passive Mode를 모르게 되면 고객사에서 전화가 와서 서비스가 안된다고 해도 해결을 해주지 못하게 됩니다. 난감하죠…--;;;
물론 방화벽 내 Session Helper문제였다면 금방 해결이 되겠지만 그렇지 않고 정말 Mode의 문제였다면 절대 몰라서는 안되겠죠! ^^
그럼 알아보도록 하죠.
앞서 말했다시피 FTP Protocol의 통신모드에는 Passive Mode와 Active Mode가 존재하게 됩니다.
왜 사람들이 Passive mode가 Active mode보다 보안상 안전하다고 말하는지는 다음 설명을 잘 읽고 생각해 보시기 바랍니다..^^
먼저 Active Mode입니다.
[그림 1. 최초 접속요청]
[그림 1]과 같이 먼저 Client는 Server의 21번 포트로 접근하여 Login요청을 하게 됩니다. Server는 당연히 정상적인 접근일 경우 그에 대해 승인을 하고 Login을 할 수 있게 되겠죠.
[그림 2. Data전송을 위한 절차]
Client가 Login을 하게 되면 [그림 2]와 같이 Server에게 “Data전송을 위해서 내 쪽의 xxxx포트로 접속해”라고 알려주게 됩니다. 그럼 Server는 20번 포트를 이용하여 Client가 알려준 포트로 접속을 하고 Data를 전송하게 되죠.
위와 같은 절차로 이루어지는 것이 Active Mode입니다.
다음은 Passive Mode입니다.
[그림 3. 최초 접속요청]
Passive Mode 경우도 일단 최초 Login 절차까지는 동일합니다. Server의 21번포트로 접속을 하게 되고 Server는 승인을 하게 되죠.
[그림 4. Data전송을 위한 절차]
하지만 Data전송을 할 때 Active Mode와는 달리 Client는 Server쪽에서 알려준 임의포트와 연결하여 Data를 송수신하게 됩니다.
위의 과정을 설명만으로 알려드리도 아시겠지만 예를 들어서 알려드리도록 하겠습니다..^^
먼저 Active mode입니다.
실습환경
1. Server IP : 10.20.30.207
2. Client IP : 10.20.30.206
Client는 Server의 21번 포트로 접속합니다.
FTP서버(10.20.30.207)에 로그인하여 Data를 전송하면 연결상태는 다음과 같아 집니다.
그림과 같이 FTP서버(10.20.30.207)가 20번 포트를 이용하여 Client(10.20.30.206)와 Data를 주고
받고 있습니다. 더 자세히 Client(10.20.30.206)에서 자신의 포트 번호를 알려주는 과정을 알고
싶은 경우 Wireshark 등의 패킷캡쳐 프로그램을 사용하여 패킷을 확인하여 알아볼 수 있으나..ㅎ
그 부분은 궁금하신 분이 직접 해 보시는 것도 괜찮겠죠? (절대 귀찮아서가 아닙니다.ㅋ --;;)
다음은 Passive mode입니다.
접속은 똑같이 21번 포트로 접속하게 됩니다.
그 후 Passive mode의 경우는 FTP서버(10.20.30.207)의 임의포트로 Client(10.20.30.206)가 접속합니다.
물론 FTP의 동작방식인 Active mode와 Passive mode를 아시는 분들이 대다수라 생각됩니다.
하지만 모르는 분들을 위해서 작성한 것이니 아시더라도 복습한다 생각해 주세요 ^^본 포스팅의 저작권은 보안인닷컴과 작성자에 있으며 상업적 이용을 배제하며 콘텐츠 이용시에는 반드시 출처와 링크를 이용해 주시기 바랍니다. 무단도용은 저작권법에 저촉을 받습니다..
****************************************************************************************************