目录

环境说明
效果说明及截图
①. 安装组件
②. 系统账户建立
③. 编辑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. 15.Python文本转化语音方法

    1.用pywin32模块来将文本转化为语音 通过pip install pywin32安装模块,pywin32是个万金油的模块,太多的场景使用到它,但在文本转语音上,它却是个青铜玩家,简单无脑但效果不 ...

  2. mysql oracle sql获取树 父级 子级 及自己

    select * from ( select t.*,d.TABLE_NAME,d.QUERY_SQL,d.data_control_col,d.id table_id,d.where_sql fro ...

  3. 学以致用,react学习前奏准备阶段

    ReactJS:支持React开发,提供JSX代码提示,高亮显示,ReactJS官方介绍 1.cdm→  componentDidMount: fn() { ... }   cdm 2.cdup→  ...

  4. CMS总结

    过程 初始标记 从roots(例如:thread stack引用的对象,static对象),新生代对象,标记直接引用的老年代对象. 并发标记 利用初始标记阶段标记的对象,递归标记整个老年代. 该阶段与 ...

  5. must appear in the GROUP BY clause or be used in an aggregate function

    今天在分组统计的时候pgsql报错 must appear in the GROUP BY clause or be used in an aggregate function,在mysql里面是可以 ...

  6. Spring Boot2 系列教程(二十一) | 自动配置原理

    微信公众号:一个优秀的废人.如有问题,请后台留言,反正我也不会听. 前言 这个月过去两天了,这篇文章才跟大家见面,最近比较累,大家见谅下.下班后闲着无聊看了下 SpringBoot 中的自动配置,把我 ...

  7. 通过ArcGIS将数据存储到SQL Server2012中

    一.软件安装: ARCGIS 10.3安装 SQLserver2012安装 ARCGIS 10.3 安装(注意ARCGIS10.3并不用安装配置ARCSDE). https://wenku.baidu ...

  8. 使用RobotFramework的JavaRemoteLibrary

    终于被迫使用了Java的远程接口库(为了同时使用Java和python的用例库,且为了在pybot下跑速度能快一些),路途比实际想的要坎坷,记录下来. 远程库的原理在前边一篇文章中记录过: http: ...

  9. 小白学Java:奇怪的RandomAccess

    目录 小白学Java:奇怪的RandomAccess RandomAccess是个啥 forLoop与Iterator的区别 判断是否为RandomAccess 小白学Java:奇怪的RandomAc ...

  10. 关于爬虫的日常复习(18)——scrapy系列3