리눅스 사용기 및 테크팁

FTP(File Transfer Protocol)


인터넷 상에서 파일을 주고 받을 때 많이 사용하는 전송방식입니다.

파일 전송에 촛점을 맞추고 있기에, 다른 프로토콜(http, scp 등)에 비해 속도면에서 우위를 가지고 있으며, 이어받기 등의 부가옵션도 지원합니다.


FTP 역시 SSH와 마찬가지로 서버와 클라이언트로 구성되어 있습니다.

리눅스에서 사용되는 FTP 서버의 종류로는 vsftpd, proftpd, atftpd, tftpd 등이 있으며, 과거에는 proftpd를 많이 사용하였으나, 최근에는 보안이 강화된 vsftpd (very secure FTP daemon)를 기본으로 사용하는 추세입니다.


하모니카 리눅스에서 apt-get 명령을 통해 쉽게 FTP 서버를 설치할 수 있습니다.


vsftpd.png


■ VSFTP 설치


① 먼저, 지원되는 FTP server 패키지를 확인해 봅니다.

$ apt search ftp | grep server

================================================================================

p   atftpd                          - advanced TFTP server                      

p   atftpd:i386                     - advanced TFTP server                      

v   ftp-server                      -                                           

v   ftp-server:i386                 -                                           

p   ftpd                            - File Transfer Protocol (FTP) server       

p   ftpd:i386                       - File Transfer Protocol (FTP) server       

p   ftpd-ssl                        - FTP server with SSL encryption support    

p   ftpd-ssl:i386                   - FTP server with SSL encryption support    

p   gesftpserver                    - sftp server submodule for OpenSSH         

p   gesftpserver:i386               - sftp server submodule for OpenSSH         

v   globus-gridftp-server-control-d -                                           

v   globus-gridftp-server-control-d -                                           

p   globus-gridftp-server-dbg       - Globus Toolkit - Globus GridFTP Server Deb

p   globus-gridftp-server-dbg:i386  - Globus Toolkit - Globus GridFTP Server Deb

p   globus-gridftp-server-progs     - Globus Toolkit - Globus GridFTP Server Pro

p   globus-gridftp-server-progs:i38 - Globus Toolkit - Globus GridFTP Server Pro

p   inetutils-ftpd                  - File Transfer Protocol server             

p   inetutils-ftpd:i386             - File Transfer Protocol server             

p   libglobus-gridftp-server-contro - Globus Toolkit - Globus GridFTP Server Lib

p   libglobus-gridftp-server-contro - Globus Toolkit - Globus GridFTP Server Lib

p   libglobus-gridftp-server-contro - Globus Toolkit - Globus GridFTP Server Lib

p   libglobus-gridftp-server-contro - Globus Toolkit - Globus GridFTP Server Lib

p   libglobus-gridftp-server-contro - Globus Toolkit - Globus GridFTP Server Lib

p   libglobus-gridftp-server-contro - Globus Toolkit - Globus GridFTP Server Lib

p   libglobus-gridftp-server-dbg    - Globus Toolkit - Globus GridFTP Server Deb

p   libglobus-gridftp-server-dbg:i3 - Globus Toolkit - Globus GridFTP Server Deb

p   libglobus-gridftp-server-dev    - Globus Toolkit - Globus GridFTP Server Dev

p   libglobus-gridftp-server-dev:i3 - Globus Toolkit - Globus GridFTP Server Dev

p   libglobus-gridftp-server6       - Globus Toolkit - Globus GridFTP Server    

p   libglobus-gridftp-server6:i386  - Globus Toolkit - Globus GridFTP Server    

p   libnet-tftp-perl                - Perl module for accessing TFTP servers    

p   nordugrid-arc-gridftpd          - ARC GridFTP server                        

p   nordugrid-arc-gridftpd:i386     - ARC GridFTP server                        

i A openssh-sftp-server             - secure shell (SSH) sftp server module, for

p   openssh-sftp-server:i386        - secure shell (SSH) sftp server module, for

p   pure-ftpd                       - Secure and efficient FTP server           

p   pure-ftpd:i386                  - Secure and efficient FTP server           

p   pure-ftpd-common                - Pure-FTPd FTP server (Common Files)       

p   pure-ftpd-ldap                  - Secure and efficient FTP server with LDAP 

p   pure-ftpd-ldap:i386             - Secure and efficient FTP server with LDAP 

p   pure-ftpd-mysql                 - Secure and efficient FTP server with MySQL

p   pure-ftpd-mysql:i386            - Secure and efficient FTP server with MySQL

p   pure-ftpd-postgresql            - Secure and efficient FTP server with Postg

p   pure-ftpd-postgresql:i386       - Secure and efficient FTP server with Postg

p   python-pyftpdlib                - Python FTP server library                 

p   tftpd                           - Trivial file transfer protocol server     

p   tftpd:i386                      - Trivial file transfer protocol server     

p   tftpd-hpa                       - HPA's tftp server                         

p   tftpd-hpa:i386                  - HPA's tftp server                         

p   twoftpd                         - a simple secure efficient FTP server (prog

p   twoftpd:i386                    - a simple secure efficient FTP server (prog

p   twoftpd-run                     - a simple secure efficient FTP server      

p   uec-provisioning-tftpd          - the UEC Provisioning TFTP server          

p   vsftpd                          - lightweight, efficient FTP server written 

p   vsftpd:i386                     - lightweight, efficient FTP server written 

================================================================================


② 설치하고자하는 패키지(vsftpd)를 확인한 뒤, 아래 apt-get 명령으로 설치합니다.

$ sudo apt-get install vsftpd

================================================================================

[sudo] password for user: 

패키지 목록을 읽는 중입니다... 완료

의존성 트리를 만드는 중입니다       

상태 정보를 읽는 중입니다... 완료

다음 새 패키지를 설치할 것입니다:

  vsftpd

0개 업그레이드, 1개 새로 설치, 0개 제거 및 276개 업그레이드 안 함.

111 k바이트 아카이브를 받아야 합니다.

이 작업 후 361 k바이트의 디스크 공간을 더 사용하게 됩니다.

받기:1 http://ftp.daum.net/ubuntu/ trusty-updates/main vsftpd amd64 3.0.2-1ubuntu2.14.04.1 [111 kB]

내려받기 111 k바이트, 소요시간 0초 (487 k바이트/초)

패키지를 미리 설정하는 중입니다...

Selecting previously unselected package vsftpd.

(데이터베이스 읽는중 ...현재 275580개의 파일과 디렉터리가 설치되어 있습니다.)

Preparing to unpack .../vsftpd_3.0.2-1ubuntu2.14.04.1_amd64.deb ...

Unpacking vsftpd (3.0.2-1ubuntu2.14.04.1) ...

Processing triggers for man-db (2.6.7.1-1ubuntu1) ...

Processing triggers for ureadahead (0.100.0-16) ...

ureadahead will be reprofiled on next reboot

vsftpd (3.0.2-1ubuntu2.14.04.1) 설정하는 중입니다 ...

vsftpd start/running, process 4081

Processing triggers for ureadahead (0.100.0-16) ...

================================================================================


③ vsftpd 서비스 데몬을 시작합니다.

$ sudo service vsftpd restart

   vsftpd stop/waiting

   vsftpd start/running, process 4127


④ 클라이언트에서 접속해봅니다. (알ftp, 파일질라 등)



####################

#   [참고]    FTP 서버 추가 설정   #

####################


FTP server 설치 및 구동은 쉽게할 수 있지만, 좀 더 고급지게(?) 사용하기 위해서는 몇 가지 추가 설정이 필요합니다.

vsftpd 서버에 대한 대부분의 설정은 /etc 밑에 있는 vsftpd.conf 파일에서 정의합니다.

$ sudo vi /etc/vsftpd.conf


■ 익명 사용자 접속 (anonymous_enable)

익명 사용자 접속이란, FTP 접속 시 특정 ID 계정으로 인증받고 접속하는 것이 아니라, 익명(anonymous)의 권한으로 접속하게 되는 경우를 말합니다. 일반적으로 공개(public)된 서버에서 사용하는 방식이며, vsftpd의 기본값은 "NO"이므로, 익명 사용자의 접속은 차단되어 있습니다. 만약 익명접속을 허용한다면 "YES"로 변경합니다.

anonymous_enable=NO


■ 기본 접속 경로 지정

vsftpd를 설치하면 "ftp"라는 이름의 사용자가 기본 등록되고, 이 사용자의 기본 접속 경로는 /srv/ftp 입니다.

(이 경로를 기본 경로로 사용해도 좋지만, 대부분 기본으로 설정하고자하는 경로가 다를 것이므로...)

예를들어 /var/ftp 라는 경로를 기본 경로로 사용하고자 한다면, 아래와 같이 해당 경로에 맞는 디렉터리를 만들고 ftp 사용자의 기본 경로를 바꾸면 됩니다.

$ sudo mkdir /var/ftp

$ sudo usermod -d /var/ftp ftp


※ 위 경로는 "익명(anonymous)" 사용자 접속 시의 기본 경로이며,

   FTP 접속 시 서버에 등록된 다른 계정으로 접속한다면,

   해당 계정의 홈 경로로 접속되므로 위 경로는 크게 고려치 않아도 됩니다.

   (예: "hamonikr"라는 계정으로 접속 시, /home/hamonikr 경로로 접속됨)


■ 계정 사용자 접속

서버에 등록된 계정 사용자들의 접속 가능 유무를 설정하는 것으로, 기본값은 "YES" 입니다.

공개(public) 서버에서 익명(anonymous) 접속만 허용하고, 일반 계정 사용자의 접속은 제한한다면, 해당 값을 "NO"로 수정하면 됩니다.

local_enable=YES


■ 업로드 허용

ftp로 접속한 후, 파일 업로드(write)를 허용할지를 설정하는 것으로, 기본값은 "YES" 입니다.

만약 파일 업로드를 하지 못하도록 제한하고자 한다면, "NO"로 수정하고, 앞에 있는 주석(#)을 지워줍니다.

#write_enable=YES


■ 사용자 계정 상위 디렉터리 이동 제한

FTP로 접속 한 사용자가 자신의 경로 위로 이동하지 못하도록 제한하는 것으로, 기본값은 "YES" 입니다.

#chroot_local_user=YES


■ FTP 접속을 거부할 계정 등록

서버에 등록된 여러 사용자 계정 중에서 FTP 접속을 차단할 계정이 있다면, 아래 파일에 ID를 별도로 등록해 줍니다.

$ sudo vi /etc/ftpusers

   baduser1

   baduser2

   ...


■ FTP 서비스 재시작

모든 설정을 마쳤다면, 서비스 데몬을 재시작해야 설정된 내용이 적용됩니다.

$ sudo service vsftpd restart



[요약]  FTP 서버 구축

① ssh 서버 설치

  $ sudo apt-get install vsftpd

② ssh 서비스 구동

  $ sudo service vsftpd restart

③ vsftpd 추가 설정

  $ sudo vi /etc/vsftpd.conf



--------------------------------------------------------------

# 개인 서버 구축 가이드 - 전체 목록

[개인 서버 구축 가이드] ① SSH 서버 (openssh-server)

[개인 서버 구축 가이드] ② FTP 서버 (vsftpd)

[개인 서버 구축 가이드] ③ 파일 공유 서버 (samba-초급)

[개인 서버 구축 가이드] ④ 파일 공유 서버 (samba-중급)

[개인 서버 구축 가이드] ⑤ 파일 공유 서버 (samba-고급)

[개인 서버 구축 가이드] ⑥ 파일 공유 서버 (nfs)

[개인 서버 구축 가이드] ⑦ 파일 공유 서버 (autofs)

[개인 서버 구축 가이드] ⑧ DB 서버 (mariadb)

--------------------------------------------------------------

번호 제목 추천 수 글쓴이 날짜 조회 수
공지 HamoniKR용 통합관제시스템 VIVEex [1] 0 NXware 2020.02.10 1124
공지 아치리눅스 + xfce4 + i3 후기입니다. [2] 1 가벼운게최고 2019.11.12 2514
공지 [설치기] 리눅스민트 19 클린 설치 후기 [3] 0 바람곰돌 2018.07.12 5518
공지 리눅스에서 사용하는 소프트웨어 개발 편집기 [10] 0 Kevin 2018.05.29 5380
공지 [사용기] 음악재생기와 NAS 그리고 환경꾸미기 [13] 0 바람곰돌 2018.05.03 4061
공지 우분투 18.04 LTS Bionic Beaver를 써보았습니다! [18] 0 la_Nube 2018.04.28 14075
공지 만자로를 쓰다가 [3] 0 꼬꼬댁 2018.04.28 6808
공지 리눅스 대초보자의 Deepin OS 사용 후기 공유합니다. [22] 1 PEACH 2018.04.27 7624
공지 작은 교회에서 커뮤니티 실비아판 사용하기 [21] 0 산돌이네 2018.04.01 4289
공지 리눅스 사용기 및 팁엔테크 게시판 사용 도움말 0 관리자 2014.11.03 53170
208 [잡담] 리눅스 이용 비밀번호 푼 듯... 0 행복한펭귄 2016.04.07 5097
207 [개인 서버 구축 가이드] ④ 파일 공유 서버 (samba-중급) [1] file 0 legoboss 2016.04.06 14496
206 [게임] 프리 심슨 온라인 file 0 행복한펭귄 2016.04.06 2831
205 [게임] Warzone2100 v3.1.4 버전 업데이트 소식 file 0 행복한펭귄 2016.04.06 2600
204 [개인 서버 구축 가이드] ③ 파일 공유 서버 (samba-초급) [5] file 0 legoboss 2016.04.05 7957
203 Media 홍보 관계자분들 참고해주세요! [1] 0 식혜고양이 2016.04.05 2235
202 추천 온라인 비디오 에디터 10개 0 행복한펭귄 2016.04.05 2715
201 [가이드] 리눅스지만 인터넷 익스플로러는 쓰고싶어 - 2부 [3] file 0 Inasis 2016.04.04 9474
200 SourceForge Youtube Channel 0 행복한펭귄 2016.04.04 2488
199 프리 소프트웨어 가이드 TJFREE.COM 0 행복한펭귄 2016.04.04 2583
198 유튜브 자막 번역 기능으로 최신 리눅스 정보를 익히자! [1] file 0 행복한펭귄 2016.04.04 3015
197 [강좌] 우분투에서 게임을 즐기는 방법 0 행복한펭귄 2016.04.03 5117
196 [강좌] 사용자 중심의 리눅스 기초 활용법 [2] 0 행복한펭귄 2016.04.03 4873
195 [강좌] 우분투 코리아 유튜브 강좌 모음 0 행복한펭귄 2016.04.03 5839
194 [강좌] 리눅스 시스템 최적화 방안 0 행복한펭귄 2016.04.03 4858
193 [강좌] 리눅스 대박 사용기 0 행복한펭귄 2016.04.03 5283
192 [강좌] 동영상 제작 소프트웨어 가이드 0 행복한펭귄 2016.04.03 5005
191 [설문조사] 어떤 이미지 뷰어를 사용하십니까? (다수 선택 가능) 0 행복한펭귄 2016.04.03 5086
190 [설문조사] 당신이 애용하는 리눅스 비디오 에디터는? [5] 0 행복한펭귄 2016.04.02 5542
189 Make use of Linux [1] 0 행복한펭귄 2016.04.02 5173
  • 하모니카 미디어 에디션
  • 설치가 필요없는 화상통화 하모니
loginbox
아직 회원이 아니세요? 회원가입