본문으로 바로가기

vsftpd 설치 및 설정

category 서버 & 시스템/Linux 2017. 11. 27. 13:33
반응형

1. vsftpd 설치 확인

# rpm -qa |grep vsftpd


2. ftp 설치

# yum -y install vsftpd


3. 설치 확인

# rpm -qa |grep vsftpd


4. vsftpd.conf 설정 

# vi /etc/vsftpd/vsftpd.conf


listen=YES  \\ 다수의 사용자 시 standalone이 유리

chroot_local_user=YES \\ 전체 사용자를 대상으로 FTP접속 시 유저가 홈 디렉터리를 벗어나지 못하도록 설정, YES로 설정시 chroot_list에 적힌 계정은 deny

chroot_list_enable=YES \\ YES로 설정시 홈디렉터리가 아닌 실제 root디렉터리로 진입

chroot_list_file=/etc/vsftpd/chroot_list \\ chroot_list에 있는 계정으로 접속시 상위 디렉터리 이동 제한이없고, 리스트에 없는 사용자는 상위디렉터리 이동 제한 됨.(chroot_list_enable이  YES로 설정시)

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

use_localtime=YES

max_clients=30 \\ 동시 접속자 수 제한

max_per_ip=5 \\ 한 IP당 동시에 5번까지만 접속 가능, ddos(서비스거부공격)을 방어하기 위한 공격으로 활용 가능

pasv_enable=YES \\ 패시브모드 사용

pasv_min_port=50001

pasv_max_port=50005




* 그 외 추가 설정 가능







cf) FTP JAIL 설정


* vsftpd는 기본적으로 자신의 홈 디렉터리를 벗어나지 못하도록 설정 되어있음

* home을 벗어나, chroot_list에 home디렉터리를 벗어나서 가능하도록 계정 추가 가능


(chroot → 특정사용자들에 대해 자신의 홈디렉터리를 root디렉터리로 인식하는 기능)


1) /etc/vsftpd/user_list

이 파일에 등록된 사용자들은 ftp접속 거부

vsftpd.conf 에서 userlist_deny=YES 가 기본설정

NO로 설정시 여기에 등록된 사용자들은 접속이 허용됨



2) /etc/vsftpd/ftpusers

/etc/pam.d/vsftpd를 확인해보면 /etc/vsftpd/ftpusers에 등록된 사용자들은 접속을 거부하겠다고 나와있음

즉, PAM에서 설정하여 사용하고 있는 ftp접속 거부자 리스트파일


접속을 거부하고자 하는 사용자가 있다면 ftpusers에 계정등록하면 됨



3) hosts.allow와 deny

vsftpd : [해당IP] 설정





cf) chroot 설정 (/etc/vsftpd.conf)


1. 전체 사용자를 대상으로 자기 자신 홈디렉터리를 상위디렉터리로 이동하지 못하게 설정

chroot_local_user=YES



2. 단순히 사용자를 홈디렉터리만 접근 가능하게

chroot_list_user=YES


chroot_local_user=YES

chroot_list_enable=YES

→ 둘다 YES이면 chroot_list에 등록된 사용자는 상위디렉터리 이동에 제한이 없고, 등록되지 않은 사용자는 상위디렉터리 이동에 제한이 생김


3.  특정 사용자를 제외한 나머지만 Jail 설정할 경우

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

→ 2와는 반대로 chroot_list에 등록된 계정을 제외한 나머지가 자신의 계정에 chroot에 걸림


4. 계정마다 동적으로 설정


# vi /etc/vsftpd.conf \\ FTP설정파일 수정

chroot_local_user=YES

passwd_chroot_enable=YES



# vi /etc/passwd

 itsyou:x:501:501::/home/itsyou:/bin/bash

→ 해당 계정의 홈디렉터리 폴더를 수정하면 해당 지점이 chroot가 됨


# chown -R [원하는 디렉터리] \\ 권한 설정


# vi /etc/vsftpd/chroot_list

 itsyou 

→ 계정추가


# /etc/init.d/vsftpd start


# netstat -nltp |grep vsftpd


# chkconfig vsftpd on


# chkconfig --list |grep vsftpd





cf) vsftpd root 접속 가능하게 하기

# vi /etc/vsftpd/user_list

 # root \\ 주석처리



# vi /etc/vsftpd/ftpusers

 # root \\ 주석처리


 ftp 재시작 할 필요는 없음 





반응형

'서버 & 시스템 > Linux' 카테고리의 다른 글

MySQL 업그레이드 (5.1 → 5.6)  (0) 2018.01.15
Mysql 언어셋 변경 (utf8 → euckr)  (0) 2018.01.11
MySQL binlog 설정 및 삭제, 복구  (0) 2017.10.28
Java & Tomcat & Apache 연동  (0) 2017.10.15
iptables 설정  (0) 2017.10.11