ftp는 두개의 포트를 사용하는 건 알죠?
21번으로 command와 command에 대한 성공 여부등을 서버오 주고 받습니다
20번으로는 파일 전송이나 다운 또는 파일 리스트등을 요청했을 때 많은 데이타
전송이 이루어 짐니다.....
20번으로 전송을 받을 때를 생각해 보죠...
클라이언트가 방화벽 뒤에 있다면 어떨까요..
클라이언트에서의 접속 요구는 방화벽이 잘 처리 해주기 때문에 접속이 됩니다.
허나. 서버에서 파일 전송이나 리스트 전송을 위한 커넥션은 서버쪽에서
먼저 하는 것이기 때문에 방화벽을 넘어서 있는 클라이언트에 접속 못합니다.
왜 그런지는 아시겠죠?
모르시면 메스커레이딩 뒤에 있는 또는 nat뒤에 있는
컴퓨터를 외부에서 접속이 가능한 불가능 한지 알아보세요
그래서 passive모드가 생겨 났습니다..
이 모드는 서버에게 전송 요청을 하면 서버는 파일을 바로 전송하는 것이
아니라 몇번 포트로 열어 놓았다 접속해 와라.라는 메세지를 전송 합니다.
그러면 클라이언트 쪽에서 접속을 하는 것입니다.
컨넥션이 성립 되면 서버를 파일 전송을 시작하죠 ^^
한번 확인 해 보세요
리눅스를 쓰시면
[litdemon@litdemon litdemon]$ ftp
ftp> debug
Debugging on (debug=1)
보통 이런 메세지가 왔다갔다 합니다.
user litdemon
위와 같은 방식으로하면 21번을 통해 왔다갔다하는 메세지를 볼수 있을 겁니다.
[litdemon@rosehouse litdemon]$ ftp
ftp> debug
Debugging on (debug=1).
ftp> open
(to) localhost
Connected to rosehouse.securebase.co.kr.
220 BCB1COOL Server (Proftpd FTP Server) [rosehouse.securebase.co.kr]
---> AUTH GSSAPI
500 AUTH not understood.
---> AUTH KERBEROS_V4
500 AUTH not understood.
KERBEROS_V4 rejected as an authentication type
Name (localhost:litdemon): litdemon
---> USER litdemon
331 Password required for litdemon.
Password:
---> PASS XXXX
230 User litdemon logged in.
---> SYST
215 UNIX Type: L8
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
ftp: setsockopt (ignored): Permission denied
---> PASV
227 Entering Passive Mode (127,0,0,1,128,133).
---> LIST
150 Opening ASCII mode data connection for file list
drwxrwxr-x 4 litdemon users 4096 Feb 21 10:31 C
drwxr-xr-x 2 litdemon 503 4096 Jan 26 01:15 Desktop
drwx------ 2 litdemon users 4096 Jan 9 19:14 Documents
drwxrwxr-x 5 litdemon users 4096 Nov 15 20:05 HA
-r--r--r-- 1 litdemon users 12052 Jan 15 13:02 Hanterm
drwxrwxr-x 2 litdemon users 4096 Feb 5 22:34 Work
drwxr-xr-x 2 litdemon 503 4096 Feb 26 19:20 bin
drwxr-xr-x 2 root root 4096 Feb 5 18:39 cam
drwxr-xr-x 48 litdemon litdemon 4096 Feb 21 11:21 cygmon20
drwxr-xr-x 2 litdemon users 4096 Feb 26 15:35 download
drwxrwxrwx 3 litdemon litdemon 4096 Feb 26 19:11 ixp1200
drwxr-xr-x 3 litdemon 503 4096 Jan 30 21:20 local
-rw-r--r-- 1 root root 1064960 Feb 4 14:22 mail.tar
drwx------ 2 litdemon users 4096 Dec 21 21:06 nsmail
drwxr-xr-x 2 litdemon users 4096 Jan 11 14:38 picture
drwxrwxr-x 2 litdemon users 4096 Dec 10 23:36 public_html
drwxr-xr-x 6 litdemon users 4096 Jan 26 00:57 winfile
-rw-r--r-- 1 litdemon users 47278 Dec 19 01:52 xferlog
226 Transfer complete.
ftp>
와하.. 강좌 해버려 기냥 이기회에... 쩝 바빠서.. 분석은 님이 하세요
위는 passive모드로 접속 한 겁니다..
pasv 클라이언트에서 보낸 메세지로 '전송할 것이 있다 접속 포트를 말해라'!! 입니다
담은 서버쪽 대답입니다.
227 Entering Passive Mode (127,0,0,1,128,133).
이 메세지는 '127.0.0.1 번 128*256+133 포트를 준비 해 놓겠다'입니다
그러면 클라이언트에서 요구사항(list)를 하고 접속을 하면
서버에서 리스트를 좌~~~악~~~~
이렇게 열성으로 답했는데.. 님 꼭 공부하세요
: 방화벽 설정을 하려고 하는데
:
: ftp의 두가지 모드 즉
:
: Active 모드와 Passive 모드 두 가지의 차이점에는 어떤것이 있는지
:
: 궁금합니다.
:
: 많은 가르침 부탁드립니다. 건강하세요--리눅스 최강국이 될때까지 난 내가 알고 있는 걸
: 누구에게나 가르쳐 줄수 있다
litdemon.dnip.net