요즘은 리눅스에서도  다양한 파일전송수단이 있어서 FTP 를 사용하는 경우가 많이 줄어들기는 했는데, 웹서버를 운영하는 경우에는 FTP가 필요하더군요.


여기서는 vsftpd 를 이용해서 가상유저기반 FTP 서버를 구성하는 방법을 정리해보려고 합니다.

설치환경은 우분투 리눅스를 기준으로 합니다.



설치하기


vsftpd  데몬 설치 

$sudo apt-get install vsftpd


패스워드체크 모듈 설치 

$sudo apt-get install libpam-pwdfile



이제 관련 설정파일 생성 및 수정/추가 작업입니다.


아래 그림에서 번호 순서대로 진행합니다.


(설정파일들 관계도)



1) /etc/vsftpd.conf 설정파일 작성(수정)

$sudo vi /etc/vsftpd.conf


  vsftpd.conf 파일 하단에 아래의 내용으로 추가합니다.


#가상유저 사용가능하도록 하기

guest_enable=YES


#가상유저 로그인시 실제 유저 매핑

guest_username=vsftpuser


#가상유저의 사용자권한을 로컬유저의 권한과 동일하게

virtual_user_local_privs=YES


# user id를 매핑할 문자열,  local_root 에서 사용자 매핑에 사용할 문자열값을 지정합니다.

user_sub_token=$ID


# 사용자가 ftp용 홈디렉토리를 설정합니다.

local_root=/home/vsftpuser/$ID


# 유저의 가상루트 영역 제한 여부 

chroot_local_user=YES


#

chroot_list_enable=YES


# ftp통신내역 로깅하기 

log_ftp_protocol=YES


# 사용자 인증방법 설정

pam_service_name=vsftpd.pam.conf



2. pam 설정을 해야합니다.  

이는 passwd 파일을 이용해서 인증이 되도록 하기 위함입니다.

/etc/pam.d/vsftpd 파일을 vsftp.pam.conf로 복사합니다. 해당 파일을 수정합니다. 


$cd  /etc/pam.d

$sudo cp vsftpd vsftp.pam.conf

$sudo vi vsftp.pam.conf


아래 내용을 파일 상단에 삽입

auth sufficient pam_pwdfile.so pwdfile /etc/vsftpd/passwd

account required pam_permit.so



3. /etc/vsftpd/passwd 파일에 사용자(user1)추가 


$sudo mkdir /etc/vsftpd

$sudo htpasswd -c /etc/vsftpd/passwd user1



설정에 대한 상세한 도움말 링크

https://security.appspot.com/vsftpd/vsftpd_conf.html


4. /etc/vsftpd/users/[사용자] 설정파일 만들기

$sudo mkdir /etc/vsftpd/users

$sudo vi /etc/vsftpd/users/user1


아래 내용을 파일에 추가

guest_username=vsftpuser




설정이 끝나면 서비스를 시작합니다.(데몬모드)


$sudo service vsftpd start


또는 어플리케이션모드 실행하기

$sudo /usr/sbin/vsftpd



문제가 있을경우 아래 로그확인 방법으로 진행 상황을 확인합니다.



vsftpd 실행상태를 로그로 확인합니다.


$sudo tail -f /var/log/vsftpd.log


인증 처리 로그를 확인합니다


$sudo tail -f /var/log/auth.log



+ Recent posts