现在的位置: 首页 > 综合 > 正文

用pam_userdb进行vsftpd进行验证

2013年03月12日 ⁄ 综合 ⁄ 共 1791字 ⁄ 字号 评论关闭

1vsftpd安装

通常,装好RHCE AS3/4以后,vsftpd服务都已经安装完成。

如果安装RHCE AS3/4时未选择安装vsftpd,你也可以使用rpm –ivh vsftp…rpm使用手动安装,或者直接去vsftpd网站(http://vsftpd.beasts.org/)下载最新的tar.gz格式源码包,解包后使用make/make install即可

2vsftpd配置

Vsftpd默认使用linux系统账号登录,维护管理不太方便,也容易引发安全问题。因此,建议采用pam_userdb或是pam_mysql进行虚拟用户配置。

 

1)使用PAM_USERDB保存ftp登录账号

A、创建一个临时文件,如/etc/vsftpd/ftpusers,按下面的格式在此文件中添加虚拟的用户:

用户名1
密码
1
用户名
2
密码2

B、然后用db_load命令生成pam_userdb认证所需的账号文件

db_load -T -t hash -f a.txt /etc/vsftpd/vsftpd.login.db

如果操作系统的版本是AS3以前的版本就不需要在/etc/vsftpd/vsftpd.login.db后加.db,如:

db_load -T -t hash -f a.txt /etc/vsftpd/vsftpd.login

这样即可。

CPAM配置信息

/etc/pam.d/下创建一个文件,如/etc/pam.d/ftp.vsftpd,文件内容如下

auth        required   pam_userdb.so       db=/etc/vsftpd/vsftpd.login
account   required   pam_userdb.so       db=
/etc/vsftpd/vsftpd.login

在以上语句中不要在vsftpd.login后加.db

D、编辑/etc/vsftpd.conf

通常, /etc/vsftpd.conf中只放置一些基本的配置信息(所有用户公共性的配置),然后针对具体用户做更详细的配置,下面是一个简单的vsftpd配置示例。

listen=YES
listen_port=21
#
禁止匿名登录

anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
guest_enable=YES
#
所有虚拟用户等同于ftp这个系统账号的权限
guest_username=ftp
#
允许匿名下载
anon_world_readable_only=NO
max_clients=100
max_per_ip=10
#
pam部分配置的文件名应匹配,这里是ftpd.vsftpd
pam_service_name=
ftp.vsftpd
#
指定每个虚拟用户账号配置目录,这里是/etc/vsftpd/virtual
#
如果需要对web这个账号进行详细配置,你需要创一个#/etc/vsftpd/virtual/web的文件,这个文件的配置方法在下一步里详细说明。

user_config_dir=/etc/vsftpd/virtual/
#指定默认的ftp目录,如果不设置,则默认的ftp目录为ftp这个系统账号的默认目录(见/etc/passwd文件内容)
local_root=/var/ftp
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES

按照上面这个配置文件,虚拟用户可以正常的登录ftp,在ftp上下载数据,但是不能创建目录,不能上传数据,用户的根目录指向/var/ftp。如果需要允许个别用户上传,或是更改用户的ftp根目录指向,我们需要在/etc/vsftpd/virtual目录下根据用户名创建相应的配置文件。以web这个用户账号为例,其配置文件/etc/vsftpd/virtaul/web的内容如下:

 

local_root=/home/web
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES

如果是直接添加用户想把用户限制在自己的目录里,可以在vsftpd.conf最后加一行:

chroot_local_user=YES

【上篇】
【下篇】

抱歉!评论已关闭.