FTP와 Passive 모드

gary324의 이미지

학교 연구실 컴에 proftpd를 설치했습니다.

연구실 내에선 접속이 잘되더군요..

집에 와서 해보니 안됩니다..ㅠㅜ

그래서 게시판을 찾아보니 passive모드로 하면 된다고 합니다.

근데 passive모드로 안하고 접혹하려면 어떻게 해야하지는 자세히

나와있지 않습니다.

참고할 문서나 답을 알고 계신분 답변 부탁바랍니다.

함기훈의 이미지

passive 모드로 접속하면 안되는 이유라도 있는 것인가요?
대부분의 ftp client (심지어 익스도)는
passive 모드 접속 기능을 가진 것으로 알고 있습니다만..

간다.

멈출까 나아갈까
망설이고 있을 때에는
나아가라고 배웠다.

지리즈의 이미지

FTP의 접속원리상..
방화벽 내부의 ftp서버는 패시브모드가 아니면...
접속이 불가능한 경우가 있습니다.

정확히 말하면..
방화벽 내부의 FTP에 접속할 수 있는 방법을 해결하기 위해
나온것이 Passive 모드입니다.

만약 Passive모드를 사용안 하실려면..
ftp는 사용할 수 없고.
ssh의 sftp와 같이 단일포트를 사용하는 서비스를 이용해야 합니다.

근데... 혹시 telnet, ssh와 같은 다른 서비스는 정상적으로 작동이 되나요?
만약 다른 서비스도 작동되지 않는다면.. 방화벽의 설정을 바꾸어야 할 수도 있습니다. 그럴 경우 네트워크 관리자에게 사용할 프로토콜에 대해서
요청신청을 해야할 겁니다. 다른 서비스가 정상적으로 작동되는지
먼저 확인해 보세요.

gary324 wrote:
학교 연구실 컴에 proftpd를 설치했습니다.

연구실 내에선 접속이 잘되더군요..

집에 와서 해보니 안됩니다..ㅠㅜ

그래서 게시판을 찾아보니 passive모드로 하면 된다고 합니다.

근데 passive모드로 안하고 접혹하려면 어떻게 해야하지는 자세히

나와있지 않습니다.

참고할 문서나 답을 알고 계신분 답변 부탁바랍니다.

There is no spoon. Neo from the Matrix 1999.

caramis의 이미지

어... passive모드와는 좀 다른 얘깁니다만...
요즘 학교들은 (제가 다니는 학교를 포함해서...) 방화벽으로 학교 네트워크를
보호하고 있어서 외부에서는 80번 포트만 접속이 가능한 경우가 많습니다.
혹시 NAT문제가 아니라 포트자체가 막혀있는게 아닌지 먼저 확인하셔야
겠습니다. 공유기등에 의한 NAT문제라면 passive모드를 사용하셔야 합니다.

from caramis ~ !

pynoos의 이미지

FTP는 그 탄생이 꽤 오래되었음에도 상당히 매력적인 프로토콜입니다.

Control 채널과 Data 전송 채널이 다르다는 것이지요.

그것은 Control 채널은 일반적으로 Client-server 방식을 따릅니다만,
데이터 채널 (Directory list도 포함)은 Control 채널이 Client라고 해서 데이터 채널이 Client라는 법은 없습니다.

데이터를 받는 쪽을 Passive mode라고 한다면, FTP 서버가 passive일 수도 있고, 클라이언트가 passive 일수 있습니다.
디폴트로는 클라이언트가 passive 입니다만, 서버를 passive로 둘 수 있습니다.
대개 ftp-passive mode라고 하는 것은 서버가 passive 라는 말입니다.

passive 모드가 되면, ftp는 완벽히 server mode로만 작동합니다.

FTP 서버가 방화벽안에 있으면 밖에서는 대개 접속이 안되는 것인데,
방화벽에서 내부의 21번을 접속할 수 있도록 허용한다면,
왠만해서는 밖에서 내부의 FTP 서버에 데이터 채널을 passive 모드로 열 수가 없습니다.
임의의 포트로 할당되는 FTP server의 데이터 채널을 FTP client가 접속할 수 없기 때문이지요.

이경우 default인 normal 모드(?)로 접속해서.. 서버가 마치 클라이언트인양 밖으로 접속해서 User에게 접속하는 것이 일반적입니다.
그런데 이것마저 방화벽에서 막는 방법은 FTP Server가 normal mode일 때, 데이터채널을 User쪽으로 접속시도할 때, 다른 클라이언트 서버 프로그램의 클라이언트가 임의의 포트를 가지고 접속하는 것과 달리, 클라이언트임에도 불구하고 20번으로 고정되어 접속합니다.
(표준은 서버포트보다 하나 작은 값으로 접속하도록되어 있습니다.)

.............

사족이지만, FTP 가 매력적인것은 데이터 전송이 서버에서 서버로 전송할 수 있는 것에 있습니다.

FTP 클라이언트는 두 서버에 접속합니다. 한쪽은 passive 모드로 바꿉니다.
이때 서버는 임의의 포트를 알려주는데, 이 주소를 다른 쪽에 데이터 채널을
여는데 사용합니다. 그러면, 한 서버에서 다른 서버로 데이터를 바로 전송시킬 수 있는 방법이 생깁니다.

pynoos의 이미지

지리즈 wrote:
FTP의 접속원리상..
방화벽 내부의 ftp서버는 패시브모드가 아니면...
접속이 불가능한 경우가 있습니다.

정확히 말하면..
방화벽 내부의 FTP에 접속할 수 있는 방법을 해결하기 위해
나온것이 Passive 모드입니다.

헙.. 제가 쓴것과 반대군요...

방화벽 내부 사용자가 외부 FTP 서버에 접속할 때는 Passive로 해야하지만..
방화벽에서 FTP 를 지원하면, PORT 명령을 잘 처리해주는 것으로 알고 있습니다. 그런 경우는 passive mode가 아니어도 접속이 잘 됩니다.

방화벽 내부에 FTP 가 있는데, 인증이 가능한 방화벽 설정이라면... 데이터도 물론 전송이 되겠지요........

지리즈의 이미지

pynoos wrote:

헙.. 제가 쓴것과 반대군요...

헉 제가 잘못 알고 있었습니다. ㅎㅎ

여지껏 잘 못 알고 있었다니.. T.T 이런.. ㅎㅎ

http://slacksite.com/other/ftp.html

There is no spoon. Neo from the Matrix 1999.

gary324의 이미지

답변 감사합니다. 여러분~~~ 좋은 참고 되었습니다.

대학생입니다~!