vsftpd服务器userlist_enable和userlist_deny配置项的应用

本文详细解析了VSFTPD服务的配置方法,包括不同类型的用户访问控制、权限设置及文件列表管理等,通过实例展示了如何利用vsftpd.conf文件中的参数实现精确的访问策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://blog.youkuaiyun.com/chengqiuming/article/details/70139671

访问分为,

A虚拟用户

B系统用户

C匿名用户(https://blog.youkuaiyun.com/Michaelwubo/article/details/82528830

 

B:如下是系统用户

local_enable=YES
write_enable=YES(write_enable=YES,但/var/ftp/jettech目录没有写权限也不可以,需要加w权限chmod -R a+w /var/ftp/jettech)
local_umask=022
local_root=/var/ftp/jettech(所有用户访问统一个目录)
dirmessage_enable=YES
xferlog_enable=YES
xferlog_std_format=YES
connect_from_port_20=YES


chroot_list_enable=YES      
chroot_list_file=/etc/vsftpd/chroot_list 强制进入chroot_list用户的家目录。要把local_root注释掉


listen=YES
pam_service_name=vsftpd


userlist_deny=YES
userlist_enable=NO

一 准备工作

cakin1,cakin2,cakin3均为系统用户 useradd -m cakin1 cakin2 cakin3

建立3个用户cakin1,cakin2,cakin3,将cakin1添加到/etc/vsftpd/ftpusers文件中,将cakin2添加到/etc/vsftpd/user_list文件中,cakin3不添加到这两个文件中。

 

二 vsftpd.conf文件中userlist_enable和userlist_deny组合应用

1.当userlist_enable为NO时,ftpusers文件中的用户将禁止访问FTP服务器。因此ftpusers文件又被称为“禁止使用vsftpd的用户列表文件”。此时只有cakin2和cakin3可以访问服务器,测试结果如下:此时只有user_list和不在ftpusers里面的系统用户可以访问


 

2.当userlist_enable为YES,userlist_deny为NO时,FTP服务器仅允许user_list中的用户访问。此时只有cakin2可以访问服务器,测试结果如下:此时只有user_list里面的系统用户可以访问


 

3.当userlist_enable为YES,userlist_deny为YES时,ftpusers和user_list文件中的用户均不能访问FTP服务器。  此时只有cakin3可以访问服务器。测试结果如下:此时只有不在ftpusers和user_list的系统用户可以访问

#安装必要组件 yum install -y vsftpd db4-utils #备份原始配置 cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak #第一部分:基础配置 cat /etc/vsftpd/vsftpd.conf << EOF listen=YES listen_ipv6=NO anonymous_enable=YES local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES allow_writeable_chroot=YES tcp_wrappers=yes pam_service_name=vsftpd #匿名用户配置 anon_root=/var/ftp/pub no_anon_password=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES anon_umask=022 #被动模式配置 pasv_enable=YES pasv_min_port=30000 pasv_max_port=31000 pasv_address=$(hostname -I | awk '{print $1}') #虚拟用户配置 user_config_dir=/etc/vsftpd/virtual_users guest_enable=YES guest_username=ftp_virtual virtual_use_local_privs=NO pam_service_name=vsftpd_virtual EOF #第二部分:匿名用户配置 mkdir -p /var/ftp/pub/upload chown ftp:ftp /var/ftp/pub/upload chmod 755 /var/ftp/pub chmod 777 /var/ftp/pub/upload no_anon_password=YES #第三部分:本地用户配置 useradd -m ftp_local echo "ftp_local:local123" | chpasswd #从黑名单移除用户 sed -i '/ftp_local/d' /etc/vsftpd/{user_list,ftpusers} #第四部分:虚拟用户配置 #创建虚拟用户映射账户 useradd -d /var/ftp/virtual -s /sbin/nologin ftp_virtual mkdir -p /var/ftp/virtual/{user1,user2} chown -R ftp_virtual:ftp_virtual /var/ftp/virtual #创建虚拟用户凭证文件 cat > /etc/vsftpd/virtual_users.txt << EOF virtual1 virtual123 virtual2 virtual456 EOF #生成数据库文件 db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db chmod 600 /etc/vsftpd/virtual_users.* #创建 PAM 配置文件 cat > /etc/pam.d/vsftpd_virtual << EOF auth required pam_userdb.so db=/etc/vsftpd/virtual_users account required pam_userdb.so db=/etc/vsftpd/virtual_users EOF #创建虚拟用户独立配置 mkdir -p /etc/vsftpd/virtual_users #用户1配置(可写) cat > /etc/vsftpd/virtual_users/virtual1 << EOF local_root=/var/ftp/virtual/user1 anon_world_readable_only=NO write_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES
03-25
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值