본문으로 바로가기

[Ubuntu] 우분투 vsftpd 설치

category 리눅스/Ubuntu 2013.08.16 00:47

우분투 12.04 버전의 vsftpd는 2.3.5 가 설치된다(현재기준 - 2013.08.15). 이 버전은 chroot 적용에 문제가 있습니다. 이 기능을 사용하지 않고 FTP 서버를 운영할 계획이라면 문제가 없으나 chroot를 적용해야 될 경우라면 vsftpd 3.0 버전을 설치해야 합니다.

VSFTP 설치

두 가지 버전의 설치 방법을 알아본다.

vsftpd 2.3.5 버전의 설치

$ sudo apt-get install vsftpd

vsftpd 3.0.2 버전 설치

다운로드에서 원하는 32/64 비트를 설치한다.

아래는 64비트용의 예이다.

# wget을 이용해 다운로드
$ wget http://us.archive.ubuntu.com/ubuntu/pool/main/v/vsftpd/vsftpd_3.0.2-1ubuntu2_amd64.deb

# 설치
$ sudo dpkg -i vsftpd_3.0.2-1ubuntu2_amd64.deb

# 설정 파일 열어 수정
$ sudo vi /etc/vsftpd.conf
chroot_local_user=YES
allow_writeable_chroot=YES

# 재시작
$ sudo restart vsftpd

VSFTP 설정

아래의 값을 참고하여 설정한 후에, 저장하고 vsftpd를 재시작 해준다.

# 설정 파일 열기
$ sudo vi /etc/vsftpd.conf

# anonymous 유저 사용 불가
anonymous_enable=NO

# 계정사용자 접속 가능
local_enable=YES

# 업로드 가능
write_enable=YES

# 디렉토리나 파일 생성시 umask 값
local_umask=022

# 접속시 메세지
ftpd_banner=Welcome to uzuro FTP service

# 접속시 출력 메세지 설정 ( shell등을 이용해 접속시 )
# 사용자 홈디렉토리에 .message 파일에 작성
dirmessage_enable=YES

# chroot 적용
# 아래와 같은 설정을 할 경우 사용자들은 자신의 계정에서 상위 디렉토리로 이동할수 없게된다.
chroot_local_user=YES

# 특정 사용자만을 Jail 설정할 경우
# chroot_list에 등록되어있는 계정에만 chroot가 적용
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

# 특정 사용자를 제외한 나머지 사용자만을 Jail 설정할 경우
# chroot_list에 등록된 계정을 제외한 나머지가 자신의 계정에 chroot가 걸림
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

# 계정마다 동적으로 설정할 경우
# 아래와 같이 설정을 하게 되면 /etc/passwd 파일을 참고하여 jail 설정을 할 수 있게 됨
# /etc/passwd 파일을 수정하여 경로에 .을 찍게 되면 그 지점이 chroot지점이 됨
# theeye:x:600:100::/home/./theeye:/bin/bash
chroot_local_user=YES
passwd_chroot_enable=YES

FTP 디렉토리 변경

vsftpd를 설치하면서 자동으로 ftp 유저가 생성되며 홈디렉토리로 /srv/ftp 로 지정된다. 이것을 변경해 보자.

# 사용할 디렉토리 생성
$ sudo mkdir /home/ftp

# ftp 유저의 홈디렉토리를 변경 
$ sudo usermod -d /home/ftp ftp

# 재시작
$ sudo restart vsftpd

FTP 접속을 거부할 유저 등록

한 줄에 한명씩 아이디를 등록하면 해당 유저는 접속이 거부된다.

# 이 곳에 등록
$ sudo vi /etc/ftpusers

# 재시작
$ sudo restart vsftpd


신고

댓글을 달아 주세요

  1. 무신론자 2013.11.13 00:54 신고

    anonymous_enable=YES

    로 해놓으면 local 유저가 로그인가능한데

    anonymous_enable=NO 로 하면은 local 유저가 로그인이 불가능합니다.

    아마 pam 설정에 문제가 있는거 같은데 도저히 못찾겠습니다. 어떻게 해야할까요?

  2. 무신론자 2013.11.13 00:55 신고

    Ubuntu server 쓰고 있으며 설치후에 아무것도 건드리지 않고 바로 vsftpd 설치했는데 이럽니다.

티스토리 툴바