Linux/CentOS7

vsftpd

장성한군사 2019. 5. 22. 16:28

--------------------------
작성일자 20190522
작성자 Kevin
커널 버젼 3.10.0-957.el7.x86_64
배포버전 CentOS 7.6.1810
---------------------------
Case 1]모든 사용자의 접근을 자신의 홈 디렉터리로 제한한다.
즉, 다른 디렉터리로 이동이 불가능하다.
chroot_local_user=YES
allow_writeable_chroot=YES
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list


Case 2] /etc/vsftpd/chroot_list에 등록된 사용자의 접근을 
자신의 홈 디렉터리로 제한한다.즉, 다른 디렉터리로 이동이 불가능하다.
#chroot_local_user=YES
allow_writeable_chroot=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list


Case 3] /etc/vsftpd/chroot_list에 등록된 사용자들은 모든 상위디렉터리로 이동이 자유롭다만, chroot_list에 등록되지 않은 사용자들은 자신의 홈 디렉터리로 제한한다.
chroot_local_user=YES
allow_writeable_chroot=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list


Case4]  /etc/vsftpd/user_list에 등록된 사용자들은 접속이 거부된다.
(userlist_deny=YES가 기본값이다)


Case5] userlist_deny=NO 로 설정할 경우, /etc/vsftpd/user_list에 등록된 사용자들은 접속만을 허용한다.


Case6] /etc/vsftpd/ftpusers에 등록된 사용자는 vsftp에 로그인이 허용되지 않는다.


Case7]  root 사용자를 ftp 를 통하여 접속을 허용하고 로그인을 허용하고자 할경우?
/etc/vsftpd/ftpusers 와 /etc/vsftpd/user_list 에서 root 삭제


Case8] /etc/vsftpd/user_list 있는 모든 사용자를 ftp 를 통하여 접속을 허용하고 로그인 을 허용하고자 할 경우?
userlist_deny=NO

Case9] 최대 접속자수를 2사용자로 제한해 보세요.
max_clients=2

Case10] 동일한 IP를 통한 접속 제한을 1사용자로 제한해 보세요.
max_per_ip=1

Case11] 로컬사용자 기본 디렉터리 변경
#mkdir /etc/skel/ftp
#useradd user01
#useradd user02
#vi /etc/vsftpd/vsftpd.conf
user_sub_token=$USER
local_root=/home/$USER/ftp

Case12] passive mode 포트 범위지정
#vi /etc/vsftpd/vsftpd.conf
pasv_min_port=50000
pasv_max_port=55000

#firewall-cmd --permanent --add-port=50000-55000/tcp
#firewall-cmd --reload

Case13] TLS FTP 만들기
# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Generating a 2048 bit RSA private key
...........+++
......+++
writing new private key to '/etc/ssl/private/vsftpd.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:KR
State or Province Name (full name) []:Seoul
Locality Name (eg, city) [Default City]:Seocho
Organization Name (eg, company) [Default Company Ltd]:KoreaAcademy 
Organizational Unit Name (eg, section) []:Education Department   
Common Name (eg, your name or your server's hostname) []:srv
Email Address []:srv@infosec.local



#vi /etc/vsftpd/vsftpd.conf
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH