目录

环境说明
效果说明及截图
①. 安装组件
②. 系统账户建立
③. 编辑vsftpd的配置文件
④. 生成虚拟用户的数据库文件
⑤. 生成一个使用vsftpd_login.db数据文件的PAM认证文件
⑥. 创建共享目录
⑦. 创建虚拟用户的配置文件
⑧. 开启服务测试用户权限

环境说明

  系统: CentOS 6.6 64位

  版本: vsftpd 2.2.2

效果说明及截图

  匿名用户登录仅有下载的权限

  虚拟用户登录有上传下载, 创建删除文件夹, 删除文件, 更改名字等权限

①. 安装组件

#安装vsftpd服务相关组件
a. yum install vsftpd -y
#安装pam认证相关组件
b. yum install pam -y
#安装db4来支持文件数据库
c. yum install db4 -y

②. 系统账户建立

1. 建立vsftpd服务的宿主用户

useradd vsftpd -s /sbin/nologin
#默认的Vsftpd的服务宿主用户是root,但是这不符合安全性的需要。这里建立名字为vsftpd的用户,用他来作为支持vsftpd的服务宿主用户。由于该用户仅用来支持vsftpd服务用,因此没有许可他登陆系统的必要,并设定他为不能登陆系统的用户。

2. 建立virtualuser虚拟宿主用户

useradd virtualuser -s /sbin/nologin
#虚拟用户并不是系统用户,也就是说这些FTP的用户在系统中是不存在的。他们的总体权限其实是集中寄托在一个在系统中的某一个用户身上的,所谓virtualuser的虚拟宿主用户,就是这样一个支持着所有虚拟用户的宿主用户。由于他支撑了ftp的所有虚拟的用户,那么他本身的权限将会影响着这些虚拟的用户,因此,处于安全性的考虑,也要非分注意对该用户的权限的控制,该用户也绝对没有登陆系统的必要,这里也设定他为不能登陆系统的用户。使用-d参数指定用户的主目录,用户主目录并不是必须存在的。如果没有存在指定的目录的话,那么它将不会被建立

③. 编辑vsftpd的配置文件

1. 备份配置文件

cp vsftpd.conf vsftpd.conf.bak

2. vim /etc/vsftpd/vsftpd.conf

 否启用匿名用户
anonymous_enable=YES
#匿名用户根目录, 默认是/var/ftp
#anon_root=/ftp
local_enable=YES
#本地用户根目录
#local_root=/ftp
#匿名用户的权限
write_enable=NO
#上传权限
anon_upload_enable=NO
#创建文件夹
anon_mkdir_write_enable=NO
#如果设为YES,则允许匿名登入者有新增目录的权限,只有在write_enable=YES时,此项才有效当然,匿名用户必须要有对上层目录的写入权
anon_other_write_enable=YES
#表示用户可以浏览FTP目录和下载文件
anon_world_readable_only=NO
#设定禁止上传文件更改宿主
chown_uploads=NO
#设定上传后文件的权限
local_umask=
anon_umask=
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
#设定日志使用标准的记录格式
xferlog_std_format=YES
#设定支撑Vsftpd服务的宿主用户为手动建立的Vsftpd用户
nopriv_user=vsftpd
#主动模式
#connect_from_port_20=YES
#广告信息
dirmessage_enable=YES
ftpd_banner=Welcome to blah FTP service.
#禁止用户登出自己的FTP主目录
chroot_list_enable=NO
chroot_local_user=YES
#禁止用户登录ftp后使用ls -R命令递归查询
ls_recurse_enable=NO
#设定启用虚拟用户功能
guest_enable=YES
#指定虚拟用户的宿主用户
guest_username=virtualuser
#设定虚拟用户的权限符合他们的宿主用户
virtual_use_local_privs=YES
#设定PAM服务下Vsftpd的验证配置文件名。因此,PAM验证将参考/etc/pam.d/下的vsftpd文件配置
pam_service_name=vsftpd
#设定虚拟用户个人Vsftp的配置文件存放路径。也就是说,这个被指定的目录里,将存放每个Vsftp虚拟用户个性的配置文件,一个需要注意的地方就是这些配置文件名必须和虚拟
用户名相同。
user_config_dir=/etc/vsftpd/user_conf
## 这两行很重要!指定PAM配置文件为ftp.vu,并指定不同虚拟用户配置文件的存放路径
listen=YES
#pasv_min_port= #pasv_max_port=

vsftpd.conf

3.建立vsftpd的日志文件,并更该属主为vsftpd的服务宿主用户:

touch /var/log/vsftpd.log
chown vsftpd.vsftpd /var/log/vsftpd.log

4.建立虚拟用户配置文件存放路径:

mkdir /etc/vsftpd/user_conf/

④. 生成虚拟用户的数据库文件:

1. 先创建一个logins.txt,并在里面写入用户名及密码,注意,单数行为用户名,双数行为对应的密码:

vim /root/logins.txt
william
123456

2. 将logins.txt转换成db文件:

db_load -T -t hash -f /root/logins.txt /etc/vsftpd/vsftpd_login.db
chmod 600 /etc/vsftpd/vsftpd_login.db

⑤. 生成一个使用vsftpd_login.db数据文件的PAM认证文件。

vim /etc/pam.d/vsfptd
  auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login crypt=hash
  account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login crypt=hash
注意: 把原有各行均注释掉,然后加入上面两行:
注意: crypt=hash必须加上,否则依然会出priv_sock_get_result问题!
注意: 你的系统如果是64位, 为/lib64, 32位为/lib:

⑥. 创建共享目录

mkdir /var/ftp/sharepoint
给匿名用户sharepoint文件夹授权
setfacl -m u:ftp:rx /var/ftp/sharepoint
getfacl /var/ftp/upload/: 验证
说明: 匿名用户使用ftp系统用户权限, 此处控制了匿名用户对目录的权限

⑦. 创建虚拟用户的配置文件

cd /etc/vsftpd/user_conf

  • vim william

    local_root=/var/ftp
    write_enable=YES
    anon_world_readable_only=NO
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES

  注意: 配置文件以虚拟用户的名字命名

⑧. 开启服务测试用户权限

service vsftpd restart

Vsftpd: 基于PAM认证的虚拟用户和匿名用户的更多相关文章

  1. centos6.5下vsftpd服务的安装及配置并通过pam认证实现虚拟用户文件共享

    FTP的全称是File Transfer Protocol(文件传输协议),就是专门用来传输文件的协议.它工作在OSI模型的第七层,即是应用层,使用TCP传输而不是UDP.这样FTP客户端和服务器建立 ...

  2. 实现基于pam认证的vsftpd

    1 需求 使用指定虚拟用户Allen与Barry登录ftp,认证的源是mysql服务器: Allen可以上传文件,Barry不可以上传文件: 2 环境 [root@centos7 ~]# cat /e ...

  3. Linux:FTP服务匿名用户,本地用户,虚拟用户配置

    匿名用户  FTP协议占用两个端口号: 21端口:命令控制,用于接收客户端执行的FTP命令. 20端口:数据传输,用于上传.下载文件数据. 实验:匿名访问,服务器192.168.10.10    客户 ...

  4. ftp的匿名用户的搭建

    在搭建之前需要server端安装vsftpd用yum装就好,客户端直接装ftp就ok yum装的vsftpd直接就有共享目录,在/var/ftp/pub 目录,看下目录,给他降权,将属主,属组改为ft ...

  5. 9、FTP封杀用户、限制传输速率、限制访问目录、为匿名用户提供下载资源

    一.封杀某些用户访问FTP服务器 例如  封杀 yanji [root@localhost root]#   vi   /etc/vsftpd.ftpusers     (用户控制配置文件,主要用于限 ...

  6. centos7下安装vsftpd与PAM虚拟用户

    Vsftp与PAM虚拟用户 使用yum 安装vsftp yum install vsftpd pam pam-* db4 db4-* 设置开机启动 chkconfig vsftpd on 创建一个保存 ...

  7. vsftpd基于pam_mysql的虚拟用户机制

    何为vsftpd? vsftpd:very secure ftp daemon 程序:/usr/sbin/vsftpd 配置文件:/etc/vsftpd/vsftpd.conf 其用户分为:匿名用户( ...

  8. Linux基础入门之vsFTP+MySQL/MariaDB认证实现虚拟用户配置详解

    https://www.dwhd.org/20150603_144841.html 摘要 VSFTP可以使用系统账户或者匿名账户登录,但是出于安全的考虑,通常建议使用vsftp虚拟账户来登录ftp服务 ...

  9. CentOS6.5下搭建ftp服务器(三种认证模式:匿名用户、本地用户、虚拟用户)

    CentOS 6.5下搭建ftp服务器 vsftpd(very secure ftp daemon,非常安全的FTP守护进程)是一款运行在Linux操作系统上的FTP服务程序,不仅完全开源而且免费,此 ...

随机推荐

  1. Win7旗舰版仅供测试支持正版

    系统效果展示 安装后唯一标准的桌面截图:(如发现安装后与本图不一致,均为第三方安装工具捆绑所为,请注意使用工具!慎用XX桃.XX菜.uXX之类的工具,建议使用推荐的方法安装) 如此清新简洁的安装界面, ...

  2. javaScript类型和对象

    javaScript基本数据类型 Undefined: Null: Boolean: String: Number: Symbol: Object. 注意 JavaScript 的代码 undefin ...

  3. 使用wireshark 对flutter 框架APP进行抓包

    引言 最近公司开发一个APP,由于原生人力不足,直接由前端使用flutter 开发的,而使用flutter框架开发的客户端 fiddler无法抓到包,所以我采用wireshark从路由层面抓包 fid ...

  4. 常见基本数据结构——树,二叉树,二叉查找树,AVL树

    常见数据结构——树 处理大量的数据时,链表的线性时间太慢了,不宜使用.在树的数据结构中,其大部分的运行时间平均为O(logN).并且通过对树结构的修改,我们能够保证它的最坏情形下上述的时间界. 树的定 ...

  5. 如何使用F4的IRAM2内存

    在使用KEIL做F4的项目的时候发现RAM区有片上IRAM2选项,查了datesheet后发现这块是CCM内存区 CCM内存是在地址0x1000000映射的64KB块,只提供CPU通过数据D总线进行访 ...

  6. 基于事件的网关 Event­based Gateway

    基于事件的网关 Event­based Gateway 作者:Jesai 时间:2018年4月21日 21:19:30 什么是事件网关? 基于事件的网关,允许基于事件做选择. 事件网关的执行原理? 网 ...

  7. scrapy在存储数据到json文件中时,中文变成为\u开头的字符串的处理方法

    在settings.py文件中添加 FEED_EXPORT_ENCODING = 'utf-8'

  8. IDEA需要修改的配置

    自动编译开关 忽略大小写开关 智能导包开关 如下图所示,将 自动导入不明确的结构 智能优化包 这两个选项勾上.那么有什么效果呢? 你在代码中,只要敲list,就会出现提示,自动导入java.util. ...

  9. python面向对象(一切皆对象)

    使用面向对象的思想设计一个乌龟的角色: 表面特征:绿色.有4条腿.重10kg.有外壳等等 行为特征:爬.吃.睡觉.将头和四肢缩到壳里等等 class tortoise: bodycolor = &qu ...

  10. Pandas中merge和join的区别

    可以说merge包含了join的操作,merge支持通过列或索引连表,而join只支持通过索引连表,只是简化了merge的索引连表的参数 示例 定义一个left的DataFrame left=pd.D ...