Skip to main content

部署实验

添加用户并分配用户主目录

在vsftpd中,用户需要先在Linux系统中创建,并且需要为其分配一个主目录。以下是具体步骤:

sudo adduser user1

local_root=/home/user1/
chroot_local_user=YES

配置虚拟用户

https://help.aliyun.com/document_detail/142212.html

创建用户密码文件

htpasswd -c /etc/vsftpd/passwd virtualuser1

2.3 添加虚拟用户:

创建FTP用户

useradd -d /ftpfiles/virtualuser1 -s /sbin/nologin virtualuser1
chown virtualuser1:virtualuser1 /ftpfiles/virtualuser1/

2.4 配置vsftpd.conf:

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
guest_enable=YES
guest_username=ftpuser
virtual_use_local_privs=YES
user_sub_token=$USER
local_root=/ftpfiles/$USER
pasv_min_port=40000
pasv_max_port=50000

配置匿名FTP访问

配置匿名FTP访问: 如果想要允许匿名FTP访问,需要在vsftpd.conf文件中进行以下配置:

将以下设置添加到文件末尾以启用匿名FTP:

# 启用匿名FTP
anonymous_enable=YES
# 允许匿名用户上传文件
anon_upload_enable=YES
# 允许匿名用户创建新目录
anon_mkdir_write_enable=YES
# 设置匿名用户的主目录
anon_root=/var/ftp/pub

sudo mkdir /var/ftp/pub sudo chmod 755 /var/ftp/pub

启用SSL /TLS

https://xyz.cinc.biz/2019/11/vsftpd-SSL.html

4.1 生成SSL证书:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/certs/vsftpd.pem

4.2 修改vsftpd.conf:

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
ssl_ciphers=HIGH
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.key
4.3 重启vsftpd:

黑名单与白名单

黑名单与白名单由 serlist_enable 和 userlist_deny 两个参数共同设置

serlist_enable : 是否启用 user_list 文件
userlist_deny : 配置user_list为黑名单还是白名单

简单来说,user_list是一个用户列表,根据userlist_enable和userlist_deny两个参数的不同,有不同的作用:

如果 userlist_enable=NO 则user_list文件无效

设置user_list为白名单

userlist_enable=YES
userlist_deny=NO

设置user_list为黑名单

userlist_enable=YES
userlist_deny=YES

超级黑名单 /etc/vsftpd/ftpusers