본문 바로가기

서버·DB·C#

우분투에 커맨드 라인으로 vsftpd FTP 서버 설치 구성하기

반응형

vsftpd는 리눅스 운영체제에서 많이 사용하는 간편한 FTP 서버입니다.

가볍게 동작하고 구성도 쉽습니다.

 

1. 패키지 설치

apt로 설치합니다. 패키지 크기도 작습니다.

 

sudo apt-get install vsftpd

 

 

2. 환경설정 수정

vi 에디터로 vsftpd 설정 파일을 수정합니다.

vsftpd 환경 설정 파일은 /etc/vsftpd.conf 입니다.

 

sudo vi /etc/vsftpd.conf

 

설정 중에서 다음 행들을 찾아서 앞의 "#"을 제거합니다.

 

write_enable=YES
chroot_local_user=YES
chroot_local_user=YES
allow_writeable_chroot=YES

 

write_enable은 업로드 및 쓰기를 켜는 것입니다.

계정 홈이 아닌 다른 경로를 FTP 홈으로 사용할 경우 다음과 같이 경로를 명시해야 합니다.

 

local_root=ftp_home_path_here

 

 

3. vsftpd 서비스 재실행

vsftpd.conf 환경 설정을 수정한 후에는 서비스를 재실행해야 환경 설정 변경이 적용됩니다.

 

sudo service vsftpd restart

 

 

4. FTP 용 우분투 계정 추가

FTP로 사용할 계정을 하나 추가하고 패스워드 설정을 합니다.

보안상 FTP로 접근하는 계정은 루트 계정이 아닌 별도의 계정을 만들어서 사용하는 것이 좋습니다.

 

계정 추가

sudo useradd apost

패스워드 설정

sudo passwd apost

 

 

5. FTP 폴더 생성 및 권한 설정

FTP 루트로 사용할 폴더를 정합니다. 폴더가 없으면 새로 만든 후

mkdir templitbuilder

 

해당 폴더의 소유 권한을 새로 만든 FTP 계정으로 변경합니다.

계정 홈 폴더가 아닌 경우 소유 권한을 부여하지 않으면 vsftp 설정에서 쓰기 옵션을 켰어도 권한이 없어서 업로드(삭제)를 할 수 없습니다.(계정 홈 이하 폴더를 FTP 루트로 사용하면 필요 없음)

 

sudo chown apost:apost /var/www/templitbuilder

 

 

6. 동작 확인

ftp 클라이언트로 접속해서 파일 업로드 다운로드가 잘 되는지 확인합니다.

 

 

 

7. 에러 상황 대응하기

# 로그인은 되지만 (아이디, 패스워드 로그인 성공)

refusing to run with writable root inside chroot()

 

과 같은 에러베시지가 표시되고 FTP 서버에 접속하지 못하는 경우 

 

allow_writeable_chroot=YES

 

속성 옵션 행을 vsftpd.conf 파일에 추가해주면 됩니다.

 

 

# 소유자 권한이 없어서 업로드한 파일에 접근할 수 없을 경우, 업로드하는 파일의 소유자 권한을 변경할 수 있습니다.

vsftpd.conf 파일에서 다음 2가지 옵션 항목을 주석을 해제(# 제거) 해주면 됩니다.

ftp_account는 실제 사용하는 FTP 계정을 입력해야 합니다.

 

chown_uploads=YES
chown_username=ftp_account

 

 

# 업로드한 파일의 접근 권한이 600(-rw-------)으로 설정되는 경우

 

 

vsftpd.conf 파일의 다음 옵션의 주석을 해제(# 제거)하면 됩니다.

 

local_umask=022

 

기본 권한 마스크 값은 077이기 때문에 업로드한 파일은 600(666 - 066)이 됩니다.

umask 옵션을 따로 설정해야 업로드하는 파일의 권한을 변경할 수 있습니다.

022는 666 - 022를 해서 644로 파일 권한이 설정됩니다.

  • 폴더는 777 - umask값
  • 파일은 666 - umask값

이 접근 권한이 됩니다.

반응형

Comments


❌ 닫기