본문 바로가기

OS/Ubuntu

[Ubuntu] FTP서버구축(vsftpd) with filezilla

우분투에 ftp 서버를 설치해보자..

웹서버를 사용할려면 필수조건인 ftp 서버 설치.

우분투에서 가장 많이 쓰이고 있는 vsftpd .

설치는 매우 간단하다.

root 계정이 아닐경우, 
$> sudo apt-get install vsftpd

root 계정일 경우 
$> apt-get install vsftpd

이렇게 하면 간단하게 설정 끝.

하지만 vsftpd 설정이 필요하다. 

$> sudo gedit /etc/vsftpd.conf

config 파일에서 아래 내용을 확인해서 수정을 해주면 끝

615ea69c5e3fa41e2b35bd958100a99c.png

anonymous_enable=No
허가되지 않은 분들의 접속을 막기 위해 NO 를 선택하자.


local_enable=YES

local user 의 접속을 허용하자. 만약 앞에 주석처리(#)가 되어 있다면 주석처리만 삭제 


write_enable=YES

FTP를 이용한 수정권한을 가지기 위해서는 write_enable 을 활성화 하도록 하자.

permission 수정을 위해서는 필요한 듯 하다.


local_umask=022 

안해도 무방하나, 많은 사람들이 022를 쓴다고 하니, 이것도 사용하는 걸로...


이렇게 설정이 끝났으면, vsftpd 를 restart 를 시켜주자.


$>sudo /etc/init.d/vsftpd restart


이렇게 하면 vsftpd 는 가동되고 있을 것이다. 


$>netstat -ntl 


21번 port 가 실행되고 있으면 되는가보다 하면 된다. 


출처 : 「Issue거리 - 우분투에 ftp를 설치해보자」 http://182.209.70.20/?document_srl=61836.




먼저 filezilla라는 프로그램을 먼저 소개할까한다.

  소프트웨어 센터에서 손쉽게 받을수있다.


보통 소프트웨어 센터에서 filezilla검색해서 설치할수 있지만 안될땐

시냅틱에가서 설치해주자.(시냅틱에서도 filezilla검색)


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

vsftp를 설치하기전에 다른 ftp가 설치되어 있는지 확인 합니다.

# sudo dpkg -l|grep ssh


설치

# sudo apt-get install vsftpd(시냅틱에서 svftpd를 검색해서 설치해도 무관)


서비스 확인

# netstat -ntl


vsftp설정파일

# sudo gedit /etc/vsftpd.conf



포트변경시

설정파일에 listen_port=111 추가

/etc/services 에 ftp 해당 포트 동일하게 변경후 재시작


ftp재시작(설정파일을 바꾸거나 했을때 실행)

$ sudo /etc/init.d/vsftpd restart "or" $ sudo restart vsftpd


1. anonymous_enable

익명 사용자의 접속 허용 여부를 설정하는 항목으로 default 값은 YES 입니다.

FTP 서버를 공개해서 운영할 것이 아니라면 NO로 설정값을 바꿔줍니다. 


2. local_enable

 로컬 계정 사용자의 접속 허용 여부를 설정하는 항목입니다.  default 값은 YES로 설정되어 있으며

NO로 설정했을 때 로컬 계정으로 접속시 메세지를 출력하면서 접속을 거부하게 됩니다.


3. write_enable

 default 값은 NO이고 값을 YES 로 바꿔줍니다. ftp 접속상태에서 쓰는 전용명령어 write를 허용할 것인지에 대한 설정입니다. 


4. local_umask

 로컬 계정 사용자들의 umask 값을 설정하는 부분입니다. default 값은 077 입니다.

umask 값이 077 일 경우에 새로 생성되는 파일의 퍼미션은 600 이 되고 디렉토리 생성시의 퍼미션은 700이 됩니다.

보통은 local_umask 값을 022로 설정 

umask 값이 022 일 경우에 새로 생성되는 파일의 퍼미션은 655 이고 디렉토리의 경우는 755가 됩니다. 

 

5. file_open_mode

 ftp에 파일을 업로드 하였을 경우의 파일의 퍼미션을 설정해주는 부분입니다.(설정파일에 없기때문에local_umask바로 밑중에 추가)


local_umask=022

 file_open_mode=0644

 


6. chroot_list_enable

7. chroot_list_file = /etc/vsftpd.chroot_list

 7번과 8번의 옵션은 함께 작동하는 옵션입니다. chroot_list_enable의 값이 YES 이고 chroot_list_file = /etc/vsftpd.chroot_list

의 주석이 해제되어 있을 경우에 $sudo vi /etc/vsftpd.chroot_list  로 vsftpd.chroot_list에 유저아이디를 등록하면 등록된 유저는 자신에게 할당된 디렉토리를 벗어날 수 없게 됩니다.

vsftpd.chroot_list의 유저아이디 구분은 line으로 구분하기 때문에 enter로 구분하는 것입니다.



8. chroot_local_user(이걸로 루트로 못가게 함 모두 yes해주고 list에 공백을 두면 등록된 유저가 없기때문 루트로못감)

이 옵션은 ftp를 사용하는 계정이 여러개이고, 이런 여러 계정들이 자신에게 할당된 디렉토리를 벗어날 수 없도록 설정하는 부분입니다.

이 옵션은 전체 로컬 사용자들을 대상으로 chroot 기능이 적용됩니다.

만약 chroot_local_user 옵션과 chroot_list_enable 옵션이 둘 다 YES 가 설정된다면

sudo vi /etc/vsftpd.chroot_list  로/etc/vsftpd.chroot_list 에 등록된 유저만이 자신에게 할당된 디렉토리 밖으로 벗어날 수 있는 권한을 가지게 됩니다. 



9.이제 ftp를 여러 계정에서 이용하게 하기 위해서  사용자 계정을 추가하는 것을 알아봅시다.


 # gedit /etc/login.defs

 파일에 CREATE_HOME yes 라는 라인 하나를 추가시켜 주거나 주석해제시킨다음에 다음에 useradd 명령어를 사용할 때 유저폴더가 자동으로 생성되게 됩니다. 


보통의 리눅스에서 사용자 계정 생성 명령어는 아래와 같습니다.

# useradd 유저아이디 : 유저아이디로 계정을 생성합니다.

 # passwd 유저아이디 : 유저아이디의 비밀번호를 설정합니다.


이렇게 계정을 생성하게 되면 보통 /home 폴더에 생성한 유저아이디를 이름으로 가지는 폴더가 생성이 됩니다.

이것이 생성되지 않을 경우가 있는데 이런 경우에는 수동으로 생성해 줄수도 있고,

계정 생성시 아래와 같은 명령어를 이용하면 자동으로 생성이 됩니다.


# useradd -m 유저아이디 



출처 : http://uyeong.tistory.com