리눅스 팁 & 테크

조회 수 10975 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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

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)

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

  • profile
    행복한펭귄 2016.04.02 14:40

    간단하지만 핵심적인 내용을 명확하게 정리해 주셨네요.


    클라우드 서비스를 무료로 사용하는 것이 쉬워진 환경에서 직접 FTP 서버를 구축해서 자신의 시스템을 사용하실 분이 대중적인 관점에서 그렇게 비중이 높지는 않지만, 특별한 용도로 자신만의 FTP 서버를 구축해서 사용해야 할 필요성이 있을 때가 분명하게 있습니다.


    복잡한 서버 책을 참고하실 필요없이, 이 정도 자상하고 명확한 설명이면 어느 정도 컴퓨터 사용해 보신 분이면 이해해서 바로 FTP 서버 구축해서 적절하게 자신의 용도에 맞게 사용할 수 있으리라 보입니다.


    개인 보다는 주로 공공 단체와 종교 기관, 학교, 학원 등과 같은 곳에서 자체 FTP 서버를 구축해서 보안 관리하면서 사용하시면 유익하게 사용하실 수 있겠네요.


    참고로 개인적으로 학원, 종교 단체, 학교에서 예전에 다양한 리눅스 배포판의 FTP 서버를 구축해서 관리해 보았는데, 생각보다 많은 실제 사용자분들이 좋다고 하시더라구요. 


    솔직히 사용하시는 분은 리눅스로 구축했는지도 전혀 모르지만 말입니다. 최종 사용자 입장에선 윈도우, 리눅스 뭐 이런 것이 그렇게 중요하지 않죠. 그저 사용하기 쉽고, 접근성이 편하고, 보안성이 완벽하고, 뭐 새로운 것 배울 필요없이 사용할 수 있다면 제일 좋아하지요.


    과거에는 클라이언트는 당연히 윈도우즈를 서버는 리눅스였지만, 최근에는 서버와 클라이언트 모두 리눅스로 적목하는 곳도 점점 많아지고 있는 중이라는 좋은 소식이 많아지고 있습니다. 아주 특수한 경우를 제외하고는 말입니다.


    당연하지요. 리눅스 데스크탑도 정점 발전해서 아주 특수한 분야를 제외하곤 충분히 사용할 수 있기 때문이죠. ㅋㅋ


    legoboss님의 서버 강의를 열심히 익히시고, 혹시 시간되시면 좀더 전문적으로 알고 싶으신 분은 제가 게시판에 소개한 "리눅스는 이것이다"라는 유튜브 강의 (엄청나게 자상하게 설명했음)을 통해 리눅스와 리눅스 서버의 세계에 푹 빠져보시길 바랍니다. 많은 도움이 되실 것이라 확신합니다.


    설령 서버 구축과는 거리가 멀고 관심이 전혀 없으신 분이더라도, 리눅스를 좀더 잘 알고 사용하면 데스크탑 용도로만 사용하는데도 많은 도움이 되니 차분하게 장기적인 시간을 가지고 익혀보고 관심 가져보면 손해 볼 것이 전혀 없습니다. 거기다 알려드린 모든 소프트웨어와 강의는 무료입니다.


    오직 당신의 열정과 시간만 투자하시면 됩니다. 거기다 자상하게도 안내해 드리는 마음 마음씨 착한(!) 전문가(!)들이 이 곳 커뮤니티에서 정성껏 돕고 있으니 이 얼마나 즐거운 일입니까?


    즐겁게 리눅스 라이프를 즐기시길...


List of Articles
번호 제목 추천 수 글쓴이 날짜 조회 수
공지 유튜브 프리미엄 우회 결제 - 우크라이나 file 1 Kevin 2023.12.17 4030
공지 리눅스에서 자기 노트북의 모델명이 무엇인지 궁금할때는 dmidecode file 1 Kevin 2023.12.17 303
공지 하드웨어 호환성을 확인하고 싶을 때는 linux-hardware.org 를 사용해보세요 file 0 Kevin 2023.11.23 658
공지 하모니카 7.0 카카오톡 hidpi 설정하기 1 file 0 Kevin 2023.11.22 426
공지 리브레오피스에서 hwp 사용하기 4 file 0 타조 2023.10.11 943
281 Mobile Newsletter를, 쉽게 만들고 싶다면?? 0 식혜고양이 2016.06.12 2220
280 암호관리 유틸 : 키패스 (keepass) 2 0 string 2016.06.12 3477
279 제 아이디어입니다만 1 0 해바라기별 2016.06.11 5299
278 하모니카로 아두이노 프로그래밍하기 5 0 seo 2016.06.10 3726
277 공공기관 민원서비스만이라도 리눅스가 되었으면 하는 바램. 3 file 0 해바라기별 2016.06.09 5557
276 디지탈 사이니지 시장에도 리눅스 도입이 되었습니다. 3 file 0 행복한펭귄 2016.06.09 6115
275 도서 관리 s/w 1 0 식혜고양이 2016.06.08 2869
274 아크 테마 중에서 아이콘만 적용시키기 2 0 string 2016.06.07 4715
273 저번달에 폴라리스OS(PolarisOS)가 출시되었더군요. 3 0 해바라기별 2016.06.07 6179
272 요런 것도 있네요! 1 0 식혜고양이 2016.06.05 2265
271 전자책을 쉽게 만들고 싶다면?! 1 0 식혜고양이 2016.06.05 2897
270 우아한 기행문을 쓰고 싶다면~?! 1 0 식혜고양이 2016.06.03 2914
269 sport 경기 보려면?! 3 0 식혜고양이 2016.06.02 2583
268 구형 노트북에 최신 구글 크롬 운용체계(OS)를 설치!! 12 0 codemaker 2016.05.31 12887
267 필요에 따른 유틸 설치 3 0 string 2016.05.31 9844
266 터미널을 이용하여 clamav를 활용하기 2 0 string 2016.05.30 6611
265 사업하는 분들께 추천! 1 0 식혜고양이 2016.05.30 2938
264 오!!!이런게 있군요!!! 1 0 식혜고양이 2016.05.27 2996
263 터미널 기반의 음악재생기 XMMS2 6 0 string 2016.05.27 3842
262 크롬 유저라면 꼭 알아야 할 확장 프로그램 1 0 행복한펭귄 2016.05.23 3974
Board Pagination Prev 1 ... 28 29 30 31 32 33 34 35 36 37 ... 47 Next
/ 47
CLOSE