码迷,mamicode.com
首页 > 其他好文 > 详细

搭建vsftp pam认证

时间:2017-03-16 22:35:27      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:搭建vsftp pam认证

1、yum安装vsftpd程序:

[root@NcBank01 other]# yum install vsftpd -y


2、修改配置文件

[root@NcBank01 other]# vi /etc/vsftpd/vsftpd.conf

anonymous_enable=NO 

 //是否允许anonymous登录FTP服务器,默认是允许的。
local_enable=YES  

//是否允许本地用户登录FTP服务器,默认是允许
write_enable=YES  

//是否允许用户具有在FTP服务器文件中执行写的权限,默认是允许
anon_umask=022  

//设置虚拟用户的文件生成掩码为022,默认是077
dirmessage_enable=YES  

//激活目录信息,当远程用户更改目录时,将出现提示信息
xferlog_enable=YES  

//启用上传和下载日志功能
connect_from_port_20=YES  

//启用FTP数据端口的连接请求
xferlog_file=/var/log/vsftpd.log  

//设置日志文件的文件名和存储路径,这是默认的
xferlog_std_format=YES  

//是否使用标准的ftpd xferlog日志文件格式
listen=YES  

//使vsftpd 处于独立启动模式
user_config_dir=/etc/vsftpd/vuser_dir  

//使用虚拟用户配置文件的目录
pam_service_name=/etc/pam.d/vsftpd  

//设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d/目录下.
userlist_enable=NO  

//用户列表中的用户是否允许登录FTP服务器,默认是不允许
chroot_list_enable=YES  

//如果希望用户登录后不能切换到自己目录以外的其它目录,需要设置该项
tcp_wrappers=YES  

//使用tcp_wrqppers作为主机访问控制方式
guest_enable=YES  

//是否启用来宾用户(也就是启用虚拟用户)
guest_username=root  

//如果启用了虚拟用户后上传文件修改文件的用户名
chown_uploads=YES  

//是否启用上传文件后修改为指定的属主
chown_username=root  

//是否启用上传文件后修改为指定的属主用户


3、在/etc/vsftpd/下创建两个目录

vuser_db  #后续存放虚拟用户的配置文件
vuser_dir  #存放虚拟用户的认证文件

//以下是login_vuser虚拟用户的帐号密码格式,奇数行为用户名,双数行为密码
user003
20150105
user004
20150106
user005
20150107

//生成数据库文件
//选项-T允许应用程序能够将文本文件转译载入进数据库。由于我们之后是将虚拟用户的信息以文件方式存储在文件里的,为了让Vsftpd这个应用程序能够通过文本来载入用户数据,必须要使用这个选项。
如果指定了选项-T,那么一定要追跟子选项-t
子选项-t,追加在在-T选项后,用来指定转译载入的数据库类型。扩展介绍下,-t可以指定的数据类型有Btree、Hash、Queue和Recon数据库。
-f:参数后面接包含用户名和密码的文本文件,文件的内容是:奇数行用户名、偶数行密码
[root@master vuser_db]# db_load -T -t hash -f /etc/vsftpd/vuser_db/login_vuser /etc/vsftpd/vuser_db/vuser.db


4、更改pam认证模块

[root@master vuser_db]# cd /etc/pam.d/
[root@master vuser_db]# vim vsftpd  //这个文件名要与主配置文件中的pam_service_name指定的一致
//最后面的vuser就是vuser.db,但是这里的后缀不是需要写的
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_db/vuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_db/vuser


5、为虚拟用户创建对应的文件vi

[root@master vsftpd]# cd /etc/vsftpd/vuser_dir/
[root@master vuser_dir]# ll  //login_vuser中有多少个帐号就创建多少个虚拟用户文件
total 6
-rw-r--r--. 1 root root 177 Jan  5 17:03 user003
-rw-r--r--. 1 root root 177 Jan  5 17:09 user004
-rw-r--r--. 1 root root 177 Jan  5 17:19 user005
[root@master vuser_dir]# vim user003
anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/data/www/test  //指定虚拟用户有权限登录到哪个目录
chown_upload_mode=0777  //虚拟用户上传文件的权限设置

到这里基本上算是配置完成了,可以启动vsftpd服务了:

root@master vsftpd]# service vsftpd start



6添加新的虚拟用户

[root@NcBank01 vsftpd]# vi adduser.txt

账号

密码

db_load -T -t hash -f adduser.txt  addftpuser.bdb


db_dump addftpuser.bdb > addftpuser.txt

db_dump vuser.db > vuser.db.txt


然后打开Mobileusers.txt 和 addftpuser.txt

 

格式类似:

VERSION=3                          #版本
format=bytevalue                  #本文格式
type=hash                            #加密方式
h_nelem=2                            #文件内含用户的数量
db_pagesize=4096
HEADER=END                          #头属性结束
 6674707573657231                #第一个用户的用户名
 313233343536                       #第一个用户的密码
 6674707573657232                 #第二个用户的用户名
 313233343536                        #第二个用户的密码
DATA=END                              #数据属性结束

将addftpuser.txt中的内容相应的加入到Mobileusers.txt 中并且修改文件内用户的数量

之后在使用db_load回复pam的配置文件。

(执行操作之前一定要做备份)

 

db_load -f vuser.db.txt vuser.db 

 

[root@NcBank01 vsftpd]# ll /etc/vsftpd/vuser_dir/

total 8

-rw-r--r-- 1 root root 173 May  6 11:26 user003

-rw-r--r-- 1 root root 173 May  23 11:19 user004

创建虚拟文件给与权限

重启vsftp即可


搭建vsftp pam认证

标签:搭建vsftp pam认证

原文地址:http://10865275.blog.51cto.com/10855275/1907257

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!