vsftp(Very Secure FTP)服务是一款FTP软件,它安全、高效、稳定,在企业中很常用。
vsftp安装
安装vsftp
yum install vsftp* -y
配置虚拟用户
系统用户访问可以解决匿名用户带来的安全问题,但是系统用户一般可以用于登录linux系统,存在安全隐患,故可以使用多个虚拟用户映射一个服务器系统用户,对外只暴露虚拟用户,该虚拟用户不能登录linux系统,并且可以设置相应的权限来保障系统安全
**创建虚拟用户列表**
vim /etc/vsftpd/virtusers_list
# 第一行账号 第二行密码 以此类推
# 口令库文件中,奇数行设置虚拟用户的用户名,偶数行设置用户的口令.
# 请注意,请不要有注释等与账号密码无关的行
caiwubu
666666
yanfabu
666666
生成虚拟用户数据文件
#db_load 将virtusers中的密码加密,并生成virtusers.db给系统使用,virtusers文件可删除
db_load -T -t hash -f /etc/vsftpd/virtusers_list /etc/vsftpd/virtusers.db
#设定PAM验证文件,并指定对虚拟用户数据库文件进行读取
chmod 700 /etc/vsftpd/virtusers.db
配置pam验证文件
vim /etc/pam.d/vsftpd 在行首插入如下,其他的注释
auth required pam_userdb.so db=/etc/vsftpd/virtusers
account required pam_userdb.so db=/etc/vsftpd/virtusers
#db=后面的文件要与步骤二中的一致
新建一个系统用户(不需要设置密码,不需要登录系统)
useradd -s /sbin/nologin ftpuser
配置虚拟用户配置文件
mkdir -p /etc/vsftpd/vsftpd_user_conf/
vim /etc/vsftpd/vsftpd_user_conf/caiwubu
# 财务部用户登录的根目录
local_root=/home/ftpuser/caiwubu
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
vim /etc/vsftpd/vsftpd_user_conf/yanfabu
# yanfabu用户登录的根目录
local_root=/home/ftpuser/yanfabu
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
创建 虚拟用户登录的根目录
mkdir -p /home/ftpuser/{caiwubu,yanfanbu}
chown -R ftpuser:ftpuser /home/ftpuser
配置 vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
# ---------virtusers config--------------------
# 启用pam认证
pam_service_name=vsftpd
# 启用虚拟用户
guest_enable=YES
# 虚拟用户映射系统用户ftpuser
guest_username=ftpuser
# 虚拟用户与本地用户权限相同
virtual_use_local_privs=YES
# 虚拟用户配置文件目录
user_config_dir=/etc/vsftpd/vsftpd_user_conf
# -----------(可选)访问权限控制----------------
# 将用户目录限制为根目录(看不到家目录的其他目录)
allow_writeable_chroot=YES
# 是否禁止本地用户切换到家目录上级目录,绑定家目录为用户的根目录
chroot_local_user=NO
# 是否启用chroot列表文件,写入文件中的用户将锁定家目录
chroot_list_enable=NO
# 指定用户列表文件的文件路径
chroot_list_file=/etc/vsftpd/chroot_list
# ------------(可选) 被动模式-------------------
# 启用被动模式
pasv_enable=YES
# 端口范围
pasv_min_port=30000
pasv_max_port=31000
# Connect_from_port_20=NO 需要修改上面的此项
重启vsftp的服务,使用windows打开测试
`systemctl restart vsftpd.service`