본문 바로가기

천년열혼/리눅스이야기

vsftpd 설정하기

CentOS 5.2 VSFTPD 설치

 

1. vsftpd 설치 전 확인 사항

①  설치전 nobody 유저가 생성되어 있는 확인

     nobody 유저가 없다면 useradd 명령어를 이용하여 계정을 생성

 

② vsftpd 서버는 /usr/share/empty/ 빈 디렉토리가 필요하다.

     디렉토리가 없다면 mkdir /usr/share/empty/ 명령어를 이용하여 생성

 

③ 익명 FTP (anonymous FTP)를 서비스하기 위해서는 ftp계정이 생성되어 있는 확인해야 하며

     ftp계정의 홈디렉토리 /var/ftp 가 존재하는지 확인해야 한다. 계정과 디렉토리가 존재한다면

     디렉토리의 권한을 수정하다록 한다.

   [root@helpdesk var]# chown root.root /var/ftp
   [root@helpdesk var]# chmod og-w /var/ftp

④ vsftpd 소스파일은 configure파일을 제공하지 않는다. make와 make install을 이용하여 바로 설치된다

 

2. vsftpd 설치

[root@helpdesk /]# yum install vsftpd

- 소스파일로 설치하려고 했지만 이것저것 확실히 아는 사항이 적어서 yum을 이용하여 설치하였다.

 

설치가 완료되면 vsftp.conf 설정파일을 /etc/vsftpd/vsftpd.conf에 저장된다.

[root@helpdesk vsftpd-2.0.7]# cp vsftpd.conf /etc

 

3 vsftpd 실행

FTP 서비스 시작 : /etc/initd.d/vsftpd start

FTP 서비스 종료 : /etc/initd.d/vsftpd stop

부팅시 자동 시작 : chkconfig vsftpd on

conf파일 수정후 xinetd 재실행 : /etc/rc.d/init.d/xinetd restart

 

vftp는 기본적으로 익명ftp로 동작하며 유저 ftp를 구동하기 위해서는 conf파일을 수정해야 한다.

 

4. vsftpd.conf 수정하기

 

 # Example config file /etc/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# vsftpd 프로그램 설정파일에 대한 설명
#
#
# 2008년 12월 12일 Kim Seong Ryong


#
# 익명FTP 사용여부를 묻는 옵션. 익명FTP를 활성화 하려면 YES
# 익명FTP를 사용하지 않으려면 주석을 해제한 후 NO를 기입해야 한다.

# No를 입력 하게 될경우 밑에 있는 익명FTP 옵션은 자동으로 적용되지 않는다.
anonymous_enable=YES

#
# 로컬 계정 사용자들이 접속할 수 있도록 설정하는 옵션
local_enable=YES

#
# 접속자들이 쓰기 명령어를 사용할 수 있도록 설정하는 옵션
write_enable=YES

#
# 로컬계정 사용자들이 파일을 생성할때 이용되는 퍼미션
# unask 022로 설정하면 업로드시 644로 생성된다.
local_umask=022

#
# 익명FTP사용자들의 업로드 권한을 나타낸다.
# 위에 익명FTP옵션을 NO했을 경우 적용되지 않는다.
#anon_upload_enable=YES

#
# 익명FTP사용자들의 디렉토리 생성권한을 나타낸다.
# 위에 익명FTP옵션을 NO했을 경우 적용되지 않는다.
#anon_mkdir_write_enable=YES

#
# FTP사용자가 다른 디렉토리로 이동할때 알림메시지로 지정된 파일을
# 설정하고 보여주는 옵션
dirmessage_enable=YES

#
# 업로드와 다운로드의 로그를 남길지 여부를 설정
# 기본저장경로는 /var/log/xfer.log
xferlog_enable=YES

#
# Standalone모드로 운영할 때 데이터 전송포트를 사용할 경우 설정하는 옵션
connect_from_port_20=YES

#
# 익명FTP 사용자가 업로드한 파일의 소유권을 자동으로 변경한 후 그 소유권을
# 변경할 유저를 설정하는 옵션. 절대 root로 설정하지 말것
#chown_uploads=YES
#chown_username=whoever

#
# 업로드/다운로드 로그 생성여부가 YES일 경우 저장경로를 지정할 수 있다.
#logrotae 를 이용하여 로그파일이 너무 크게 생성되지 않도록 조절하자
xferlog_file=/var/log/vsftpd.log

#
# 업로드/다운로드 파일의 로그 파일의 포맷을 설정하는 옵션
# 기본적으로 표준포맷을 사용하는 것으로 되어 있다.
xferlog_std_format=YES

#
#FTP접속자들이 아무작업도 하지 않을경우 자동으로 세션을 종료하는 시간 설정 (기본 300초)
#idle_session_timeout=600

#
#파일 업로드/다운로드시 연결을 유지하는 시간을 설정 (기본 300초)
#data_connection_timeout=120

#
# 익명FTP 접속자가 접속할 때 설정한 유저로 접속하도록 하는 옵션
# 기본값은 nobody 익명으로 파일 업로드시 이곳에 설정한 파일의 소유자로 설정된다.
#nopriv_user=ftpsecure

#
# 비동기식 ABOR 사용 여부 (보안상 비추천)
#async_abor_enable=YES

#
# 아스키모드의 업로드/ 다운로드 가능여부 설정옵션
#ascii_upload_enable=YES
#ascii_download_enable=YES

#
# FTP접속 시 환영 메시지 출력
#ftpd_banner=Welcome to blah FTP service.

#
# 익명FTP접속시 접속자 패스워드 부분에 E-mail주소를 입력하는데
# 이때 접속을 거부할 이메일 주소를 설정하는 옵션이다.
# YES를 하게 될경우  /etc/vsftpd.banned_emails에 접속을 거부할 이메일 주소를 기입한다.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails

#
# chroot에서 제외할 유저를 사용할 지 여부를 결정
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list

#
# 접속자들이 ls-R 명령어를 사용하게 할 것인지 설정하는 옵션
# 시스템 부하로 인하여 사용하지 않는 것이 좋다
#ls_recurse_enable=YES


#
#vftpd에는 옵션파일에 기제되어 있지 않는 옵션들이 더 있으며
#이곳에서는 모두 주석처리하여 설명하도록 하겠습니다.

#
#standalone모드로 서비스 하고자 할 때 설정하는 옵션 설정이 없으면 xinetd 모드로 서비스 한다.
listen=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

anonymous 옵션의 경우 주석으로 처리하여도 익명FTP가 작동하게 되면다 반드시 주석해제 후 NO 옵션을 적용해야 한다.

이밖에 추가 옵션은 천천히 올려보자.

conf파일을 수정한 후 /etc/initd.d/vsftpd restart 명령어를 이용하여 서비스를 재실행한다.

출처 : 호루루연구실 ( starkapin.tistory.com/503 )