VSFTPD 配置虚拟用户
1. 新建系统用户
$ useradd -s /sbin/nologin -c "VSFTPD SYSTEM Users" vsftpd |
2. 创建虚拟用户目录
在系统用户家目录下新建虚拟用户目录,并更改目录权限和属组权限
$ mkdir /home/vsftpd/ftpuser{1,2} |
3. 创建虚拟用户
在 /etc/vsftpd/
目录下新建 viruser.conf
文件(文件名可以自定义)。
在文件中添加虚拟用户、密码,格式如下:
ftpuser1 |
4. 生成 FTP 验证数据库文件
生产验证数据库文件
$ db_load -T -t hash -f /etc/vsftpd/viruser.conf /etc/vsftpd/viruser.db
更改文件访问权限
$ chmod 600 /etc/vsftpd/viruser.db
5. 配置登录pam身份验证文件
注释 /etc/pam.d/vsftpd
文件中的所有内容,添加如下配置:
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/viruser |
6. 配置虚拟用户配置文件
创建配置文件目录
$ mkdir /etc/vsftpd/virconf
添加配置文件以及虚拟用户权限配置
$ cat>/etc/vsftpd/virconf/ftpuser1<<EOF
local_root=/home/vsftpd/ftpuser1 #设置登录后禁锢的目录
anon_umask=022 #设置用户上传的文件的权限为022
write_enable=YES #给用户写权限
anon_upload_enable=yes #开放上传权限
anon_world_readable_only=no #开放下载权限
anon_mkdir_write_enable=yes #开放创建目录的权限
anon_other_write_enable=yes #开放删除和重命名的权限
EOF
$ cat>/etc/vsftpd/virconf/ftpuser2<<EOF
local_root=/home/vsftpd/ftpuser2 #设置登录后禁锢的目录
anon_umask=022 #设置用户上传的文件的权限为022
write_enable=YES #给用户写权限
anon_upload_enable=yes #开放上传权限
anon_world_readable_only=no #开放下载权限
anon_mkdir_write_enable=yes #开放创建目录的权限
anon_other_write_enable=yes #开放删除和重命名的权限
EOF
7. 修改主配置文件
配置文件路径为: /etc/vsftpd/vsftpd.conf
更改配置前,先对原文件进行备份。
$ cp -a /etc/vsftpd/vsftpd.conf{,.bak} |
对配置文件进行变更:
# 更改
anonymous_enable=NO #禁止匿名用户登录
# 取消注释
chroot_local_user=YES #禁止用户访问除主目录以外的目录
ascii_upload_enable=YES
ascii_download_enable=YES #设定支持ASCII模式的上传和下载功能
# 开启IPV4监听,注释IPV6监听
listen=YSE
#listen_ipv6=NO
# 设置虚拟用户进行PAM认证的文件名,文件路径为/etc/pam.d/vsftpd
pam_service_name=vsftpd
# 文件尾部加入如下配置
guest_enable=YES #启动虚拟用户
guest_username=vsftpd #虚拟用户使用的系统用户名
user_config_dir=/etc/vsftpd/virconf #虚拟用户使用的配置文件目录
allow_writeable_chroot=YES #最新版的vsftpd为了安全必须用户主目录(也就是/home/vsftpd/ftpuser1)要有写权限,才能登录最终所有的开启的配置:
$ grep -Ev '^&|^#|^[[:space:]]*$' /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
connect_from_port_20=YES
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd/virconf
allow_writeable_chroot=YES
8. 重启 vsftpd 服务
$ systemctl restart vsftpd.service |
参考链接:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 DevOps Technology Stack!
评论