Skip to content

조회 수 16336 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

FTP Passive mode

FTP 서버의 Passive 모드는 명령어 연결(Control connection)과 데이터 연결(Data Connection)을 분리해서 접속하는 방식이다.

Active 모드


Active 모드는 클라이언트가 보내중 정보를 기준으로 서버에서 클라이언트의 Data 포트에 접속을 시도한 후 클라이언트의 요청에 따라 데이터를 전송하는 방식이다.
하지만 Ip 공유기등 사설 IP에서 접속을 시도할 경우 클라이언트의 Data 포트가 막힐 가능성이 있기 때문에 500 Illegal PORT command 와 같은 오류를 출력할 수 있다.
즉 명령은 전달이 되었지만 실제적으로 전송을 담당하는 데이터 포트가 막혀서 데이터를 전송 못할 가능성이 있다.

연결 과정
1. FTP 서버 IP xxx.xxx.xxx.xxx 포트 21 번으로 접속
2. FTP 서버의 21 포트 -> 클라이언트 1023(n) 이상의 포트 (서버에서 클라이언트의 Command 포트로 응답)
3. FTP 서버의 20번 포트 -> 클라이언트 n+1 번 포트 (서버에서 클라이언트의 data포트로 접속)
4. FTP 서버의 20번 포트 <- 클라이언트 n+1 번 포트 (클라이언트에서 서버의 data포트로 응답)

1201988087.gif

*실제로 포트 번호는 정해진것이 아닌 1023포트 이상에서 서버나 클라이언트가 정함

연결 과정에 있어서 클라이언트는 서버에 접속할때 PORT xxx,xxx,xxx,xxx,yy,nn 이런식의 메세지를 전달한다. 여기서 xxx 는 IP Address를 나타내고 포트는 마지막 부분
yy,nn 부분이다 포트번호는 (yy * 256) + nn 으로 결정이 되어 클라이언트의 포트를 서버에알려준다.

Passive 모드


Passive 모드는 데이터 포트와 명령포트 전부 클라이언트에서 서버로 연결을 하는 방식이다. 즉 클라이언트의 공유기의 간섭없이 서버와의 통신이 가능하다.
하지만 클라이언트에서 접속하는 데 있어서 열어둔 포트가 서버의 방화벽에서 막혀 있지 않아야 한다.

연결과정
1. FTP 서버 IP xxx.xxx.xxx.xxx 포트 21번에 접속
2. FTP 서버의 21포트 -> 클라이언트 1023(n) 이상의 포트(서버에서 클라이언트의 Command 포트로 응답)
3. FTP 서버의 Passive 설정된 범위의 포트 -> 클라이언트 n+1 포트(클라이언트에서 접속)
4. FTP 서버의 Passive 설정된 범위의 포트 -> 클라이언트 n+1 포트(클라이언트에서의 데이터 전송)

1341023808.gif

포트의 범위는 서버의 서비스에 간섭이 없는 범위내에서 적당히 설정한다. 여기서 적당히는 클라이언트의 접속량에 따라 다르다. 또 웹 서비스의 경우 8080포트 등으로 운영이 될 수 있고
또 IRC 나 기타 서비스의 간섭이 없는 범위내에서 포트를 설정해야 한다. 보통 1000~2000 사이의 범위를 정해서 포트를 열어둔다.

설정방법

* 아래 설정 방법에서 시작 은 포트 범위를 나태낸다
LINUX 서버
wu-ftpd
/etc/ftpaccess
passive ports 0.0.0.0/0 시작 끝

proftpd
/etc/proftpd/conf/proftpd.conf
PassivePorts 시작 끝

vsftpd
/etc/vsftpd/vsftpd.conf
pasv_enable=YES
pasv_min_port=시작
pasv_max_port=끝

* 리눅스 서버의 Passive 모드 설정할때는 ip_conntrack 모듈이 필요하다. 이 모듈은 열려있는 포트가 몇번 포트에 의해서 연결이 되었는지 정보를 담고 있다.
그 정보를 담고 있는 부분은 /proc/net/ip_contrack 에 존재한다. 커널 모듈을 등록시켜줘야 한다.
modprobe ip_conntrack
modprobe ip_conntrack_ftp

Iptable 설정
/etc/sysconfig/iptable-config 파일 내의 IPTABLES_MODULES 항목을 추가 하거나 주석을 제거한다.
IPTABLES_MODULES="ip_conntrack_netbios_ns ip_conntrack_ftp"

iptables -A INPUT -p tcp --sport 1024:65535 --dport [포트시작]:[포트끝] -m state --state ESTABLISHED,RELATED -j ACCEPT

Windows 서버
1. 시작 - 제어판 - 관리도구 - 인터넷정보서비스 - 로컬컴퓨터 - 속성 - 메타베이스 직접 편집 허용 체크
2. C:\%SystemRoot%\system32\inetsrv\metabase.xml 열기
3. PassivePortRange="시작-끝" 으로 수정
4. metabase.xml 저장
5. IIS 재시작
6. Ipsec, 또는 방화벽에 설정한 포트 번호 추가

* Windows 2000 에서는 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msftpsvc\Parameters\ 에 REG_SZ 값으로 PassivePortRange 값을 추가한다.


List of Articles
번호 제목 글쓴이 날짜 조회 수
101 메일 서버 설치하기(ApmSetup, hMailServer, SquirreMail) ADMINPLAY 2010.05.30 50329
100 Windows 2008 원격수 늘리기(터미널서비스 세션수 증가) file ADMINPLAY 2011.04.21 30128
99 Windows 2003 제품키 변경하는 방법 file ADMINPLAY 2010.01.13 25722
98 윈도우 원격 데스크톱 콘솔로 연결하기(mstsc /console, /admin) file ADMINPLAY 2010.11.01 25717
97 FFmpeg 라이브러리 사용하기 ADMINPLAY 2012.02.07 25002
96 코모도 인터넷 시큐리티 - 한글 언어팩 1 file ADMINPLAY 2010.05.23 24920
95 이 웹 사이트 복원 시도를 중단했습니다. 문구가 나올 때 해결... ADMINPLAY 2012.05.30 23966
94 오라클 한글깨짐 문제 해결법 10g ADMINPLAY 2010.02.24 20373
93 HMail Server 4.4.1 file ADMINPLAY 2010.05.30 19728
92 IE8 복원 탭오류 (이 웹 사이트 복원 시도를 중단 했습니다.) file ADMINPLAY 2011.06.05 19420
91 [Windows Media Player] 윈도우 미디어 플레이어에서 지원하는... ADMINPLAY 2012.01.16 19361
90 오류: 연결할 수 없는 호스트로 소켓 작업을 시도했습니다. (0... ADMINPLAY 2009.08.08 17969
89 Window 환경에서 ffmpeg 사용법 및 옵션 ADMINPLAY 2012.01.16 17309
88 윈도우즈 프로세스 설명 1 l2zeo 2010.03.31 17080
» FTP Passive 모드 설정방법(Linux, Windows) file ADMINPLAY 2009.07.27 16336
86 Window XP에서 IPv6 주소 설정 방법 l2zeo 2010.05.29 16023
85 Ffmpeg 기본 사용법 ADMINPLAY 2012.01.16 15872
84 [Windows Server 2008] 사용자 격리(전역 가상 디렉터리 사용 ... ADMINPLAY 2012.02.15 15782
83 Windows Update Error 0x80072EFD - 윈도우 업데이트 오류 ADMINPLAY 2009.04.17 15672
82 Mysql root 비밀번호 변경 (Window - RWAPM) 1 ADMINPLAY 2010.05.30 15440
Board Pagination Prev 1 2 3 4 5 6 Next
/ 6

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234