Linux搭建FTP服务器 - 虚拟用户访问
vsftp(Very Secure FTP)服务是一款FTP软件,它安全、高效、稳定,在企业中很常用。vsftp安...
扫描右侧二维码阅读全文
30
2021/12

Linux搭建FTP服务器 - 虚拟用户访问

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`
Last modification:December 30th, 2021 at 09:16 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment