FTP 09 SPARCS 박철웅 [dothack]
CONTENTS :: I. FTP란?? II. FTP 서버 접속&사용 III. 나만의 FTP 서버 구축하기
I. FTP란?? File Transfer Protocol 의 약자로, 컴퓨터들 간에 파 일을 교환하기 위한 표준 프로토콜로서 가장 간단 한 방법. 기본 통신포트는 TCP 21번 포트. FTP 서버 – 인터넷 이용자들에게 정보를 제공해주 는 프로그램 또는 컴퓨터. 화면에 표시할 수 있는 웹 페이지와 관련 파일들을 전송하는 HTTP(Hypertext Transfer Protocol), 전자우편을 전송하는 SMTP(Simple Mail Transfer Protocol) 등과 같이, FTP도 역시 인터넷의 TCP/IP 응용 프로토콜 중의 하나이다. WS_FTP, Cute-Ftp, 알FTP 등의 응용프로그램 또는 콘솔모드로 접속하거나, 인터넷 브라우저를 통한 FTP 사용법이 있다. FTP는 파일뿐만 아니라 웹 페이지들을 인터넷의 모든 사람이 볼 수 있도록 업로드하거나, 다른 서버들로부터 자신의 컴퓨터로 다운로드하는 데에도 사용된다.
I. FTP란?? 장점 종류 월드와이드웹보다 빠른 속도로 전송 받을 수 있다. (월드와이드웹이 사용하기는 편리하지만 상대적으로 속도 도 느리고, 안정적이지 못함) 종류 공개(anonymous) FTP - 누구나 접속하여 자료를 받아갈 수 있다. (그러나 업로드는 대부분 막혀있음) 비공개(private) FTP - 사용자계정과 비밀번호가 필요. 공개(anonymous) FTP - 인터넷에서 FTP를 사용할 때 anonymous FTP는 사용자들이 서버에 자신을 식별시키지 않고서도 파일에 접근할 수 있는 방법을 제공. 보통의 FTP 사이트(비공개 FTP)들은 오직 적법한 사용자 아이디와 패스워드를 가진 사람만이 이용할 수 있는데 반해, anonymous FTP는 파일을 보거나 다운로드하기 위해 해당 서버에서 부여된 사용자 아이디나 패스워드가 없더라도 작업이 가능하기 때문에 anonymous 라고 부른다. Anonymous FTP 서버에 접속한 뒤 사용자 아이디로 "anonymous" 라고 입력하고, 통상적으로 패스워드에는 자신의 이메일 주소를 입력하여 로그인. (이때, 패스워드를 넣지 않거나 어떤 내용을 넣더라도 로그인 하는데 문제가 없음) 비공개(private FTP) – 이용하려면 사용자계정과 비밀번호가 필요하다. 계정과 비밀번호가 있을 경우 허용된 범위 안에서 업로드/다운로드가 가능하다. 우리 스팍스 FTP 서버도 기본적으로는 비공개 FTP이나, 공개 FTP도 옵션으로 제공하고 있다.
I. FTP란?? 웹브라우저인 인터넷 익스플로러로 FTP 서버에 접속하는 방법(윈도우 탐색기로도 가능)
I. FTP란?? 알FTP 응용프로그램을 이용하여 접속하는 방법
II. FTP 서버 접속&사용 Using 알FTP 알FTP로 FTP 서버 접속 및 사용 – Easy
II. FTP 서버 접속&사용 Using 콘솔 - 해당 도메인 or IP주소의 ftp서버에 접속. $ ftp [ftp서버의 도메인 or IP주소] - 사용자계정 및 패스워드 입력. 공개 FTP서버의 경우 Anonymous 입력 - 접속 성공 메시지가 나오면 접속 완료. 윈도우용 콘솔 command.exe로도 가능하지만, 우린 putty를 주로 사용하므로 셸을 띄운 putty 위에서 해보자.
II. FTP 서버 접속&사용 Using 콘솔 FTP 명령어 - 일반 셸 명령어와 같거나 매우 비슷함. Ex) cd : remote시스템의 디렉토리를 변경 chmod : remote 시스템의 파일 퍼미션을 변경 pwd : remote시스템 내의 현재 작업디렉토리 표시 ls 또는 dir : remote시스템의 디렉토리 내용을 표시 exit 또는 quit : ftp접속을 종료하고 빠져나감 ### ftp 명령어 모음 ### ascii : 전송모드를 ASCII모드로 설정한다.(ascii또는 as) binary : 전송모드를 BINARY모드로 설정한다.( binary또는 bi) bell : 명령어 완료시에 벨소리를 나게한다.(bell) bye : ftp접속을 종료하고 빠져나간다.(bye) cd : remote시스템의 디렉토리를 변경한다.(cd 디렉토리명) cdup : remote시스템에서 한단계 상위디렉토리로 이동한다.(cdup) chmod : remote시스템의 파일퍼미션을 변경한다.(chmod 755 index.html) close : ftp접속을 종료한다. (close) delete : remote시스템의 파일을 삭제한다.(delete index.old) dir : remote시스템의 디렉토리 내용을 디스플레이한다.(dir) disconnect : ftp접속을 종료한다.(disconnect) exit : ftp접속을 종료하고 빠져나간다.(exit) get : 지정된 파일하나를 가져온다.(get index.html) hash : 파일전송 도중에 "#"표시를 하여 전송중임을 나타낸다.(hash) help : ftp명령어 도움말을 볼 수 있다.(help또는 help 명령어) lcd : local시스템의 디렉토리를 변경한다.(lcd 디렉토리명) ls : remote시스템의 디렉토리 내용을 디스플레이한다. (ls 또는 ls -l) mdelete : 여러개의 파일을 한꺼번에 지울 때 사용한다.( mdelete *.old) mget : 여러개의 파일을 한꺼번에 가져오려할 때 사용한다. ( mget *.gz) mput : 한꺼번에 여러개의 파일을 remote시스템에 올린다.(mput *.html) open : ftp접속을 시도한다.(open 168.126.72.51또는 open ftp.kornet.net) prompt : 파일전송시에 확인과정을 거친다. on/off 토글 (prompt) put : 하나의 파일을 remote시스템에 올린다.(put index.html) pwd : remote시스템의 현재 작업디렉토리를 표시한다.(pwd) quit : ftp접속을 종료하고 빠져나간다.(quit) rstatus : remote시스템의 상황(version, 어디서, 접속ID등)을 표시한다.(rstatus) rename : remote시스템의 파일명을 바꾼다.(remote 현재파일명 바꿀파일명) rmdir : remote시스템의 디렉토리을 삭제한다.(rmdir 디렉토리명) size :remote시스템에 있는 파일의 크기를 byte단위로 표시한다.(size index.html) status : 현재 연결된 ftp세션모드에 대한 설정을 보여준다.(status) type : 전송모드를 설정한다.(type 또는 type ascii 또는 type binary)
II. FTP 서버 접속&사용 Using 콘솔 그 외 자주 쓰는 FTP 명령어 help [명령어] : ftp명령어 도움말 표시 open [도메인 or IP주소] : ftp접속을 시도 lcd [디렉토리명] : local시스템의 디렉토리를 변경 get | delete | put [파일명] : 해당 이름의 파일을 가져옴/지움/올림 m(get | delete | put) [*.확장자 or 디렉토리] : 여러 개의 파일을 한꺼번에 가져옴/지움/올림 size [파일명 or 디렉토리명] : 크기를 byte단위로 표시 rmdir [디렉토리명] : remote시스템의 디렉토리를 삭제 rename [현재파일명] [바꿀파일명] : 파일명을 바꿈 status : 현재 연결된 ftp세션모드에 대한 설정을 보여줌 ### ftp 명령어 모음 ### ascii : 전송모드를 ASCII모드로 설정한다.(ascii또는 as) binary : 전송모드를 BINARY모드로 설정한다.( binary또는 bi) bell : 명령어 완료시에 벨소리를 나게한다.(bell) bye : ftp접속을 종료하고 빠져나간다.(bye) cd : remote시스템의 디렉토리를 변경한다.(cd 디렉토리명) cdup : remote시스템에서 한단계 상위디렉토리로 이동한다.(cdup) chmod : remote시스템의 파일퍼미션을 변경한다.(chmod 755 index.html) close : ftp접속을 종료한다. (close) delete : remote시스템의 파일을 삭제한다.(delete index.old) dir : remote시스템의 디렉토리 내용을 디스플레이한다.(dir) disconnect : ftp접속을 종료한다.(disconnect) exit : ftp접속을 종료하고 빠져나간다.(exit) get : 지정된 파일하나를 가져온다.(get index.html) hash : 파일전송 도중에 "#"표시를 하여 전송중임을 나타낸다.(hash) help : ftp명령어 도움말을 볼 수 있다.(help또는 help 명령어) lcd : local시스템의 디렉토리를 변경한다.(lcd 디렉토리명) ls : remote시스템의 디렉토리 내용을 디스플레이한다. (ls 또는 ls -l) mdelete : 여러개의 파일을 한꺼번에 지울 때 사용한다.( mdelete *.old) mget : 여러개의 파일을 한꺼번에 가져오려할 때 사용한다. ( mget *.gz) mput : 한꺼번에 여러개의 파일을 remote시스템에 올린다.(mput *.html) open : ftp접속을 시도한다.(open 168.126.72.51또는 open ftp.kornet.net) prompt : 파일전송시에 확인과정을 거친다. on/off 토글 (prompt) put : 하나의 파일을 remote시스템에 올린다.(put index.html) pwd : remote시스템의 현재 작업디렉토리를 표시한다.(pwd) quit : ftp접속을 종료하고 빠져나간다.(quit) rstatus : remote시스템의 상황(version, 어디서, 접속ID등)을 표시한다.(rstatus) rename : remote시스템의 파일명을 바꾼다.(remote 현재파일명 바꿀파일명) rmdir : remote시스템의 디렉토리을 삭제한다.(rmdir 디렉토리명) size :remote시스템에 있는 파일의 크기를 byte단위로 표시한다.(size index.html) status : 현재 연결된 ftp세션모드에 대한 설정을 보여준다.(status) type : 전송모드를 설정한다.(type 또는 type ascii 또는 type binary)
II. FTP 서버 접속&사용 Using 콘솔 FTP 설정 명령어 hash : 파일 전송중에 ‘#’ 표시를 함 bell : 명령어 완료시에 벨소리가 나게함 hash : 파일 전송중에 ‘#’ 표시를 함 prompt : 파일 전송시에 확인과정을 거침 (on/off) type [ascii | binary] : 전송모드를 설정함 promt가 on되어 있는 경우, mget/mdelete/mput 등의 명령어를 실행하면 개개의 파일 하나마다 확인과정을 거치기 때문에 번거로우므로 off해주자. Binary모드는 알파벳,숫자,기호 등과 같은 기본적인 문자 이외의 특수 문자와 제어 문자를 포함하는 파일을 전송하기 위해 사용되는 모드이다. 예를 들어 한글 워드, 한글2007 등과 같은 워드프로세서로 만든 파일은 그들만이 해석할 수 있는 각종 형식,폰트 및 기타의 특성에 관한 정보가 파일에 포함되어 있기 때문에 ASCII 모드로 전송할 수는 없는 것이다. 따라서, ASCII 텍스트 형태가 아닌 여라 가지 다른 형태의 파일은 이진 모드로 전송한다.
III. 나만의 FTP서버 구축하기 인터넷에서 웹하드를 서비스하는 곳은 많지만, 대부분 정액제 또는 기간제로 서비스하기 때문에 어쩌다 잠깐씩 사용하는 사용자의 입장에서는 OTL… 그런 사람에게 유용할 수 있는 툴로 1. 원격 데스크톱 II. FTP서버 구축 단, 서버가 되는 컴퓨터가 항상 on상태여야 하고 고정 IP가 있어야 운영할 수 있다.
III. 나만의 FTP서버 구축하기 – 알FTP 서버 실행을 클릭하면 설정 대화상자가 뜬다. 서버로 사용할 IP 주소(고정)과 서버 메시지를 입력하고, 접근을 허가할 계정과 패스워드 설정 및 공유 디렉토리 지정. 확인을 클릭 서버로서 활성화 되어있는 동안 어디서든지 자유롭게 FTP 서버로서 이용가능
III. 나만의 FTP서버 구축하기 - proftpd gssftpd와 마찬가지로 ftp데몬의 일종. FTP서버프로그램 중에서 가장 강력한 기능. 다운로드 링크 http://www.proftpd.org/ 스팍스 ftp서버는 vsftpd를 쓰고 있음. CharsetLocal UTF-8 CharsetRemote CP949
III. 나만의 FTP서버 구축하기 - proftpd 먼저 다운로드 받은 파일을 /usr/local/src으로 복사. # cp *.tar.gz /usr/local/src 파일의 압축을 풀어주고 디렉토리이름을 proftpd로 변경. # tar –xvzf *.tar.gz # mv * proftpd configure파일을 실행하여 Makefile 을 생성한다. # ./configure –prefix=/usr/local/proftpd 만들어진 Makefile 을 컴파일한다. # make ProFTP 서버를 설치한다. # make install
III. 나만의 FTP서버 구축하기 - proftpd proftpd 환경 파일 설정(proftpd.conf) ServerName “서버이름” : FTP서버 접속시 출력할 서버이름 DefaultRoot / 또는 ~/ : 사용자의 최상위 디렉토리 지정 Port n : FTP서버와 연결할 통로를 지정(default=21) Umask 022 : 새로 만들어지는 파일, 디렉토리의 권한 지정 ex) 이 경우에는 --- -w- -w- 로 마스크 MaxInstances n : 최대 접속 가능한 사용자의수를 지정 <Directory 디렉토리명> … </Directory> : 명시한 디렉토리 에 대한 옵션을 정의 <Anonymous 디렉토리명> … </Anonymous> : 익명으로 접 속시 이용할 수 있는 디렉토리의 옵션 설정
III. 나만의 FTP서버 구축하기 - proftpd proftpd 환경 파일 설정(proftpd.conf) cont. DisplayLogin 텍스트파일 : 익명으로 접속시 보여줄 메시지 파일의 경로를 지정 DisplayFirstChdir 텍스트파일 : 사용자가 다른 디렉토리로 접근했을 때 보여줄 메시지 파일을 지정 User, Group : 사용자가 FTP서버에 접속시 실제적인 권한 ex) nobody, ftp, super
III. 나만의 FTP서버 구축하기 - proftpd # /usr/local/proftpd/sbin/proftpd proftpd 데몬 재시작 및 종료 - ps명령어로 proftpd 데몬의 PID를 알아낸 다음 # kill –HUP PID 명령으로 수정한 환경설정을 업데이트 # kill –TERM PID 명령으로 proftpd 데몬 종료
Q & A ?????