centos7 vsftp虚拟多用户配置

前天配置的vsftp存在一些问题,用户都是服务器真实用户,有一定的安全隐患,所以配置虚拟多用户设置,而且对每一个用户的设置也方便不少。

准备工作

防火墙设置,开放21端口

firewall-cmd --zone=public --add-port=21/tcp --permanent 
firewall-cmd --reload

查看selinux是否关闭

getenforce

如果不是disable

关闭selinux
setenforce 0
永久关闭
vi /etc/selinux/config
SELINUX=disabled

安装vsftpd

yum install -y vsftpd

立即启动

systemctl start vsftpd

跟随系统启动而启动

systemctl enable vsftpd

添加宿主用户,没有建立home目录,禁止ssh登录

useradd vsftpd  -s /bin/false

创建虚拟用户主目录,比如虚拟用户叫ftp1,ftp2执行下面的命令。

mkdir /var/www/ftp1 -p
mkdir /var/www/ftp2 -p

创建这个虚拟用户

vim /etc/vsftpd/vir_users.conf
文件内容如下,一行用户名,一行密码
ftp1
520140
ftp2
520140

根据这个文件创建数据库文件

db_load -T -t hash -f /etc/vsftpd/vir_users.conf /etc/vsftpd/vir_users.db
chmod 600 /etc/vsftpd/vir_users.db

启用这个数据库文件

vim /etc/pam.d/vsftpd

注释掉所有内容后,增加下面的内容,如果不注释的话会连接不上,待研究

auth    sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vir_users
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vir_users

我直接清空,一个个注释太麻烦

cat /dev/null > /etc/pam.d/vsftpd
echo 'auth    sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vir_users' >>/etc/pam.d/vsftpd
echo 'account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vir_users' >>/etc/pam.d/vsftpd

创建虚拟用户配置文件

mkdir /etc/vsftpd/userconf

建立用户配置文件
这里的文件名称必须与虚拟用户名一致

vim /etc/vsftpd/userconf/ftp1

内容

local_root=/var/www/ftp1/
write_enable=YES
virtual_use_local_privs=YES   #虚拟用户和本地用户权限相同
vim /etc/vsftpd/userconf/ftp2

内容

local_root=/var/www/ftp2/
write_enable=YES
virtual_use_local_privs=YES   #虚拟用户和本地用户权限相同

最后修改主配置文件
更改

anonymous_enable=NO

去掉注释

chroot_local_user=YES
ascii_upload_enable=YES
ascii_download_enable=YES

增加

guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd/userconf
allow_writeable_chroot=YES

更改文件所有者并设置权限

chown -R vsftpd:vsftpd /var/www
chmod 755  /var/www -R

注意有可能755权限导致连接不上,改为555即可,很奇怪的问题,半天没办法设置为755,突然可以了
重启服务器生效

systemctl restart vsftpd

配置介绍:

anonymous_enable=NO 禁止匿名用户登录
chroot_local_user=YES 禁止用户访问除主目录以外的目录
ascii_upload_enable=YES ascii_download_enable=YES 设定支持ASCII模式的上传和下载功能
guest_enable=YES 启动虚拟用户
guest_username=vsftpd 虚拟用户使用的系统用户名
user_config_dir=/etc/vsftpd/userconf 虚拟用户使用的配置文件目录

allow_writeable_chroot=YES 最新版的vsftpd为了安全必须用户主目录(也就是/home/vsftpd/ftp1)没有写权限,才能登录,或者使用allow_writeable_chroot=YES
virtual_use_local_privs=YES   #虚拟用户和本地用户权限相同
点赞

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注