Vsftpd: 基于PAM认证的虚拟用户和匿名用户
目录
环境说明
效果说明及截图
①. 安装组件
②. 系统账户建立
③. 编辑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认证的虚拟用户和匿名用户的更多相关文章
- centos6.5下vsftpd服务的安装及配置并通过pam认证实现虚拟用户文件共享
FTP的全称是File Transfer Protocol(文件传输协议),就是专门用来传输文件的协议.它工作在OSI模型的第七层,即是应用层,使用TCP传输而不是UDP.这样FTP客户端和服务器建立 ...
- 实现基于pam认证的vsftpd
1 需求 使用指定虚拟用户Allen与Barry登录ftp,认证的源是mysql服务器: Allen可以上传文件,Barry不可以上传文件: 2 环境 [root@centos7 ~]# cat /e ...
- Linux:FTP服务匿名用户,本地用户,虚拟用户配置
匿名用户 FTP协议占用两个端口号: 21端口:命令控制,用于接收客户端执行的FTP命令. 20端口:数据传输,用于上传.下载文件数据. 实验:匿名访问,服务器192.168.10.10 客户 ...
- ftp的匿名用户的搭建
在搭建之前需要server端安装vsftpd用yum装就好,客户端直接装ftp就ok yum装的vsftpd直接就有共享目录,在/var/ftp/pub 目录,看下目录,给他降权,将属主,属组改为ft ...
- 9、FTP封杀用户、限制传输速率、限制访问目录、为匿名用户提供下载资源
一.封杀某些用户访问FTP服务器 例如 封杀 yanji [root@localhost root]# vi /etc/vsftpd.ftpusers (用户控制配置文件,主要用于限 ...
- centos7下安装vsftpd与PAM虚拟用户
Vsftp与PAM虚拟用户 使用yum 安装vsftp yum install vsftpd pam pam-* db4 db4-* 设置开机启动 chkconfig vsftpd on 创建一个保存 ...
- vsftpd基于pam_mysql的虚拟用户机制
何为vsftpd? vsftpd:very secure ftp daemon 程序:/usr/sbin/vsftpd 配置文件:/etc/vsftpd/vsftpd.conf 其用户分为:匿名用户( ...
- Linux基础入门之vsFTP+MySQL/MariaDB认证实现虚拟用户配置详解
https://www.dwhd.org/20150603_144841.html 摘要 VSFTP可以使用系统账户或者匿名账户登录,但是出于安全的考虑,通常建议使用vsftp虚拟账户来登录ftp服务 ...
- CentOS6.5下搭建ftp服务器(三种认证模式:匿名用户、本地用户、虚拟用户)
CentOS 6.5下搭建ftp服务器 vsftpd(very secure ftp daemon,非常安全的FTP守护进程)是一款运行在Linux操作系统上的FTP服务程序,不仅完全开源而且免费,此 ...
随机推荐
- 清晰架构(Clean Architecture)的Go微服务: 程序容器(Application Container)
清晰架构(Clean Architecture)的一个理念是隔离程序的框架,使框架不会接管你的应用程序,而是由你决定何时何地使用它们.在本程序中,我特意不在开始时使用任何框架,因此我可以更好地控制程序 ...
- Redhat6 RPM 软件管理常用命令汇总
软件的安装时操作系统管理的基础,与Windows不同,Linux的软件管理有很多种方式,Redhat的最常用的是RPM方式,安装集成在光盘中的RPM包.这种方式比Windows平台的软件管理更加便捷( ...
- pqsql 防注入
在数据库查询时经常会遇到根据传入的参数查询内容的情况,传入的参数有可能会带有恶意代码,比如or 1=1,这样where判断为true,就会返还所有的记录.为了解决这个问题,可以在参数外面包一层单引号, ...
- C#实现DataTable转TXT文件
实现DataTable转TXT文件代码如下: public ExecutionResult DataTableToTxt(DataTable vContent, string vOutputFileP ...
- 1z0-062 题库解析2
Examine the parameters for a database instance: NAME TYPE VALUE-------------------------------- ---- ...
- 使用wireshark 对flutter 框架APP进行抓包
引言 最近公司开发一个APP,由于原生人力不足,直接由前端使用flutter 开发的,而使用flutter框架开发的客户端 fiddler无法抓到包,所以我采用wireshark从路由层面抓包 fid ...
- Java配置文件读取中文乱码问题
背景 这是我之前在做的用友服务对接开发,昨天领导拿给财务测试时告诉我有乱码,当时我第一想法是用友那边的编码格式有问题,因为还在做其他任务,我说等问一下用友他们用的什么编码格式我们这边改一下,然后今天早 ...
- 贪心 + DFS
A New Year party is not a New Year party without lemonade! As usual, you are expecting a lot of gues ...
- python 注册登录(文件操作)
name = input("请注册用户:") password = input("请注册密码:") with open(file="user" ...
- Qt Installer Framework翻译(5-3)
推广更新 创建在线安装程序,以便能够向安装产品的用户推广更新. 为了推广更新,需要执行以下步骤: 将待更新内容复制到package文件夹. 在package.xml文件中增加待更新组件的元素的值. 使 ...