FTP 프로토콜 관련하여 질문드립니다.
글쓴이: webispy / 작성시간: 금, 2005/12/23 - 6:16오후
안녕하세요. FTP 클라이언트를 만드는 중에 문제점이 있어서 방법을 찾다가 질문 드립니다.
RFC959문서에 보면
User-PI - Server A User-PI - Server B ------------------ ------------------ C->A : Connect C->B : Connect C->A : PASV A->C : 227 Entering Passive Mode. A1,A2,A3,A4,a1,a2 C->B : PORT A1,A2,A3,A4,a1,a2 B->C : 200 Okay C->A : STOR C->B : RETR B->A : Connect to HOST-A, PORT-a
이렇게 FTP서버간 파일전송을 가능하게 하는 방법(?)이 나와있습니다.(클라이언트는 두 서버간 중계역활을 하는 것이지요.)
근데 위 방법처럼 하니까 B->C : 200 Okay가 안되고 500 Illegal PORT command 오류가 발생합니다.
제 생각에 클라이언트가 PORT명령을 보낼때 클라이언트 아이피가 아닌 다른 아이피여서 보안상 거부하는 것이 아닐까 하는데..
명쾌한 답을 얻고 싶습니다.
Forums:
음..쓰신 내용만으로는...혹, service port 번호를 잘
음..쓰신 내용만으로는...
혹, service port 번호를 잘못 쓰신 것 아닙니까?
그리고, ftp는 control 명령을 날리는 포트와 데이터 전송에 사용되는 포트가 틀리니 이 점도 주의해야 합니다.
만일, 서비스 포트 설정에 문제가 없고 만일.. 시험하고 있는 환경이 유닉스/리눅스 서버라면..(요즘은 XP도 까다롭지만)
서버의 보안 설정을.. 점검해보세요..
시험할 때, ethereal이나 tcpdump를 같이 쓰면서 디버깅해도 좋을 것입니다.
A few Good Man
제가 위의 예제를 제대로 이해한 것이라면(?) 좌측의 A1,A2,A3,A
제가 위의 예제를 제대로 이해한 것이라면(?) 좌측의 A1,A2,A3,A4,a1,a2는 중계서버의 아이피와 포트를 준것으로 보이는데요? 먼저 FTP의 normal mode와 passive mode의 차이를 인지하셔야 할듯 합니다.
normal mode: command-channel ==> C->S
data-channel ==> S->C
passive mode: command-channel ==> C->S
data-channel ==> C->S
^^
-----[꼬릿말 절취선 시작]-----
삽질전에 먼저 구글신께 기도하자.
-----[꼬릿말 절취선 끝]-----
댓글 달기