您的位置:首页 > 编程语言 > PHP开发

vsftpd配置虚拟用户访问和登陆

2014-05-20 16:23 267 查看
vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开发源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。
vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。
在开源操作系统中常用的FTPD套件主要还有ProFTPD、PureFTPd和wuftpd等

以上信息来源于百度~~~~~

一、创建密码文件
首先安装vsftpd过程不说了。需要安装db4-utils 用来转化密码文件。
yum -y install db4-utils
然后新建密码文件
vim /etc/vsftpd/vlogin

tom
123456
这个文件要一行用户名 一行密码!!! 而且千万不能有空行,任何地方都不能有空行 切记切记!
创建好密码文件后 用下面的命令将密码文件装换成数据库文件
db_load -T -t hash -f /etc/vsftpd/vlogin /etc/vsftpd/vlogin.db #这个路径和名字一定要对应上
赋予权限

chmod 600 /etc/vsftpd/{vlogin,login.db}
二、创建pam文件,用户虚拟账户验证
新建一个文件
vim /etc/pam.d/vsftpd.pam

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin #lib64指的是64位系统,32为系统这里写lib就可以 下同~
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vlogin #db=  这个路径和文件名一定不能写错!
@@!!重点!@!
因为虚拟用户毕竟是虚拟的,不能用来登陆系统。所以要和一个系统用户对应起来才能用来FTP登陆。所以要创建一个系统用户和虚拟用户对应。这里的系统用户也可以用来控制登陆后的目录,只要把它的家目录设置成对应目录即可
useradd -s /sbin/nologin -d /home/ftp virtual #名字随意 这里只是做演示
三、修改配置文件

anonymous_enable=NO
local_enable=YES
local_umask=022
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
one_process_model=NO
chroot_local_user=YES
ftpd_banner=Welcom to my FTP server.
anon_world_readable_only=NO
guest_enable=YES
guest_username=virtual   #这里的用户名要和你上面建立的系统用户名字对应
pam_service_name=vsftpd.pam  #这里的文件名要和你建立的pam文件名对应
配置文件可以参考上面的修改就好
修改好之后 重启vsftpd 完成配置
service vsftpd restart
四、验证登陆
[root@localhost vsftpd]# ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 Welcom to my FTP server.
Name (127.0.0.1:root): tom      #这里填写你建立的虚拟用户名称
331 Please specify the password.
Password:                       #这里填写密码
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>               # 出现这个提示就说明成功了!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息