설치 및 설정
설치는 간단하게 yum으로 한다.
$ yum -y install vsftpd
접근 설정
구버전 리눅스인 경우 selinux 를 중지시킨다.
$ setenforce 0
$ vi /etc/sysconfig/selinux : disabled
...(생략)...
SELINUX=disabled # disabled 로 수정
iptables 를 사용 중인 경우 vsftp 가 사용하는 포트를 접근 허용 설정한다(기본 22).
$ vi /etc/sysconfig/iptables
...(생략)...
# FTP 포트 추가
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
접속 계정의 홈 디렉토리 설정
vsftp는 기본적으로 user의 홈 디렉토리로 접속하게 된다.
/home/계정이름 외에 다른 디렉토리를 지정하고 싶다면 usermod로 수정하면 된다.
$ usermod -d 경로 계정명
기타 설정
/etc/vsftpd/vsftpd.conf 파일을 편집하여 익명 사용자 접속, chroot(홈 디렉토리의 상위 디렉토리로 이동 가능 여부) 허용 여부, 접근 디렉토리 권한 등을 설정 후 서비스 운영을 하면 된다.
옵션 | 값 | 설명 |
anonymous_enable | YES / NO | 익명 사용자의 접속 허용 여부. 아무나 FTP 서버에 접속할 수 있는가? |
anon_upload_enable | YES / NO | 익명 사용자의 파일 업로드 허용 여부. |
anon_mkdir_write_enale | YES / NO | 익명 사용자의 폴더 생성 허용 여부. |
chown_uploads | YES / NO | 익명 ftp서비스에서 익명 접속자가 업로드한 파일의 소유권 변경 여부. |
chown_username | user | 익명 접속자가 업로드한 파일의 소유권 변경 후 그 소유권을 변경할 사용자 지정(기본값은 whoever이고 root 설정 시 보안상 위험). |
nopriv_user | user | 익명 접속자가 접속하는데 사용할 user. |
deny_email_enable | YES / NO | 익명 접속을 거부할 E-mail 주소. |
banned_email_file | path | 익명 접속을 거부할 이메일의 파일 경로. |
local_enable | YES / NO | Local User의 FTP 접속 허용 여부. |
write_enable | YES / NO | 사용자의 File Upload 허용 여부. |
local_umask | xxx | Local User의 umask값. |
dirmessage_enable | YES / NO | 특정 폴더 접속 시 .message 파일의 메시지를 보여줄 것인지의 여부. |
xferlog_enable | YES / NO | 파일 전송 내역의 로그 작성 여부. |
xferlog_file | path | 파일 전송 내역의 로그파일 경로. |
xferlog_std_format | YES / NO | 파일 전송 내역의 로그파일 작성 시 표준 xferlog 포멧의 사용 여부. |
connect_from_port_20 | YES / NO | port방식의 전송의 허용여부. NO시 passive방식의 전송만 지원한다. |
idle_session_timeout | Number/sec | 아무 입력이 없을시 접속을 종료할 시간( /sec ). |
data_connection_timeout | Number/sec | 파일 전송 시 연결을 유지하는 시간( / sec ). 지정된 시간동안 파일전송이 완료되지 않으면 연결을 끊는다. |
async_abor_enable | YES / NO | async ABOR 명령 가능 여부. |
ascii_upload_enable | YES / NO | ASCII 파일 업로드 가능 여부. |
ascii_download_enable | YES / NO | ASCII 파일 다운로드 가능 여부. |
ftpd_banner | Message | ftp 접속시의 메세지. 비 활성화 시 버전정보를 출력하기 때문에 위험하다. |
chroot_local_user | YES / NO | 모든 접속자의 홈 디렉토리 위로 이동 불가 여부. |
chroot_list_enable | YES / NO | 명시된 사용자의 홈 디렉토리 위로 이동 불가 여부. |
chroot_list_file | Path | 홈 디렉토리 위로 이동을 불가하게 할 사용자 리스트의 파일 경로. chroot_local_user와 chroot_list_enable 옵션에 모두 YES값 설정 시 지정된 파일에 명시된 사용자만이 홈 폴더 상위의 접근이 가능하다. |
ls_recurse_enable | YES / NO | 접속자들의 ls 명렁어의 R 옵션 사용 불가 여부. 성능 향상을 위해 사용 |
listen | YES / NO | FTP 서버의 standalone으로 운영 여부. |
pam_service_name | vsftpd | pam 사용자 인증 설정. 본 설정 적용 시 /etc/pam.d/vsftpd 파일 사용. /etc/vsftpd/ftpusers에 기술된 사용자들은 차단되게 된다. |
userlist_enable | YES / NO | /etc/vsftpd/user_list에 기술된 사용자들의 접속 차단 여부. |
tcp_wrappers | YES / NO | tcp wrappers적용 여부. 적용 시 /etc/hosst.allow에 접속 허용자, /etc/hosts.deny에 접속 차단자를 기술 |
기타 TIP
ftp service PORT 변경 방법
/etc/vsftpd/vsftpd.conf 파일의 listen_port=21 값을 지정하고자 하는 포트로 변경한다(listen_port 옵션이 없다면 추가).
터미널 외의 환경에서 접속 불가능한 경우
cmd 또는 터미널에서 ftp 명령어를 통해 접속은 되지만, winscp 혹은 윈도우 탐색기 등에서 접속 시 문제가 있다면 iptables-config 파일의 IPTABLES_MODULES 옵션에 다음 값을 추가한다.
$ vi /etc/sysconfig/iptables-config
IPTABLES_MODULES="ip_conntrack_netbios_ns ip_conntrack_ftp ip_conntrack ip_nat_ftp"
$ service iptables restart
'서버&시스템 > Linux' 카테고리의 다른 글
yum 실행 시 Error: rpmdb open failed (1) | 2013.01.09 |
---|---|
rsync 원격 서버 백업 설정 (0) | 2012.11.16 |
Error: Cannot retrieve repository metadata ( repomd.xml) for respository (0) | 2012.07.25 |
mysql 5.1.32 소스 설치 중 오류 (0) | 2012.07.25 |
JDK + tomcat 설치 (0) | 2012.03.08 |