共计 10241 个字符,预计需要花费 26 分钟才能阅读完成。
vsftpd 可以支持虚拟用户,这样这些用户跟系统用户不搭嘎,只能访问 FTP 服务提供的资源,系统势必就要安全的多了。我们实现 FTP 匿名用户可以有两种方式,可以把虚拟用户列表保存到本地一个数据文件中,也可以把数据保存至数据库文件中。下面分别介绍两种实现方式:
本地数据文件方式:
环境及需求:CentOS5.8
软件包:vsftpd, db4-utils(要用到其提供的 db_load 工具把文本格式的用户列表转换成二进制的数据格式供 vsftpd 使用)
1、安装所需软件包
yum –y install vsftpd db4-utils
2、创建用户口令文件
[root@ha1 vsftpd]# cd /etc/vsftpd/
[root@ha1 vsftpd]# vim vuser
tom /* 奇数行为用户名
tompwd /* 偶数行为上面用户的密码
jerry
jerrypwd
3、生成用户口令文件,并记得更改文件权限只有 root 有读写权限
[root@ha1 vsftpd]# db_load -T -t hash -f vuser vuser.db
[root@ha1 vsftpd]# ls
chroot_list ssl vsftpd.conf vuser
ftpusers user_list vsftpd_conf_migrate.sh vuser.db
[root@ha1 vsftpd]# chmod 700 vuser vuser.db
[root@ha1 vsftpd]# ll vuser vuser.db
-rwx—— 1 root root 26 Oct 29 13:40 vuser
-rwx—— 1 root root 12288 Oct 29 13:42 vuser.db
4、为其提供 PAM 的配置文件
[root@ha1 vsftpd]# cd /etc/pam.d/
[root@ha1 pam.d]# vim vsftpd.vuser
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser 注意这里 db 文件名后面的.db 不用带上,这个相当于后缀吧,.db 前面的才是文件名
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser
5、创建虚拟用户映射的系统用户,指定其家目录,不需要登陆权限及密码
[root@ha1 pam.d]# useradd -d /var/ftp/vuser -s /sbin/nologin vftpuser
[root@ha1 pam.d]# ll -d /var/ftp/vuser/
drwx—— 3 vftpuser vftpuser 4096 Oct 29 13:55 /var/ftp/vuser/
6、编辑 vsftpd 配置文件使其支持虚拟用户
[root@ha1 pam.d]# vim /etc/vsftpd/vsftpd.conf #添加以下几行
guest_enable=YES /* 启用虚拟用户
guest_username=vftpuser /* 指定 FTP 虚拟用户映射到的系统用户
pam_service_name=vsftpd.vuser /* 定义 PAM 认证文件
保存退出,重启 vsftpd 服务
service vsftpd restart
7、用虚拟账号登陆验证,可以看到可以成功使用 tom 账号登陆 ftp 并且上传文件,文件位于 vftpuser 家目录 /var/ftp/vuser 下
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2013-11/92210p2.htm
推荐阅读:
玩转 vsftpd 服务器的四大高级配置:http://www.linuxidc.com/Linux/2013-09/90565.htm
vsFTPd 配置教程:http://www.linuxidc.com/Linux/2013-09/90562.htm
Ubuntu 实用简单的 FTP 架设 http://www.linuxidc.com/Linux/2012-02/55346.htm
Ubuntu 上架设 FTP 服务器和 Apache 服务器 http://www.linuxidc.com/Linux/2011-04/35295.htm
Ubuntu 13.04 安装 LAMP\vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm
RHEL6 平台下 SeLinux 和 vsftpd 的匿名上传的简单案例 http://www.linuxidc.com/Linux/2013-04/82300.htm
Linux 系统 vsftpd 源码安装 http://www.linuxidc.com/Linux/2013-03/81475.htm
vsftpd 的安全配置案例分析 http://www.linuxidc.com/Linux/2012-12/76501.htm
通过 MySQL 数据库服务器提供口令数据
1、安装 mysql
yum –y install mysql-server mysql-devel
2、编译安装 pam-mysql
下载地址:http://nchc.dl.sourceforge.net/project/pam-mysql/pam-mysql/0.7RC1/pam_mysql-0.7RC1.tar.gz
下载完解压,编译安装,configure 只要指定一下—with-mysql 即可,
[root@ha1 pam_mysql-0.7RC1]# make && make install
3、创建用户口令数据库
创建一个用户文件 vim /etc/vsftpd/vuser (字段之间用 Tab 键隔开,由于我的表有个 id 字段,所以第一个字段直接加个 Tab)
tom tom
jerry jerry
我们用 vftpuser 登陆 mysql 验证一下是否具有查询权限
4、为 mysql 创建一个 pam 配置文件
[root@ha1 pam.d]# cd /etc/pam.d
[root@ha1 pam.d]# vim vsftpd.mysql
auth required /usr/lib/security/pam_mysql.so user=vftpuser passwd=vftpuser host=localhost db=vsftpd table=vuser usercolumn=name passwordcolumn=password crypt=0
account required /usr/lib/security/pam_mysql.so user=vftpuser passwd=vftpuser host=localhost db=vsftpd table=vuser usercolumn=name passwordcolumn=password ctypt=0
5、创建虚拟用户映射的系统用户,指定其家目录,不需要登陆权限及密码
[root@ha1 pam.d]# useradd -d /var/ftp/vuser -s /sbin/nologin vftpuser
[root@ha1 pam.d]# ll -d /var/ftp/vuser/
drwx—— 3 vftpuser vftpuser 4096 Oct 29 13:55 /var/ftp/vuser/
6、修改 vsftpd 配置文件,支持通过 mysql 认证
[root@ha1 pam.d]# vim /etc/vsftpd/vsftpd.conf
guest_enable=YES
guest_username=vftpuser
pam_service_name=vsftpd.mysql
anon_world_readable_only=NO
用 windows 客户端登陆验证,需要注意的是虚拟用户默认使用的是匿名用户的权限,配置文件要加上一句 anon_world_readable_only=NO, 不然的话 ls 命令结果列不出来。
vsftpd 可以支持虚拟用户,这样这些用户跟系统用户不搭嘎,只能访问 FTP 服务提供的资源,系统势必就要安全的多了。我们实现 FTP 匿名用户可以有两种方式,可以把虚拟用户列表保存到本地一个数据文件中,也可以把数据保存至数据库文件中。下面分别介绍两种实现方式:
本地数据文件方式:
环境及需求:CentOS5.8
软件包:vsftpd, db4-utils(要用到其提供的 db_load 工具把文本格式的用户列表转换成二进制的数据格式供 vsftpd 使用)
1、安装所需软件包
yum –y install vsftpd db4-utils
2、创建用户口令文件
[root@ha1 vsftpd]# cd /etc/vsftpd/
[root@ha1 vsftpd]# vim vuser
tom /* 奇数行为用户名
tompwd /* 偶数行为上面用户的密码
jerry
jerrypwd
3、生成用户口令文件,并记得更改文件权限只有 root 有读写权限
[root@ha1 vsftpd]# db_load -T -t hash -f vuser vuser.db
[root@ha1 vsftpd]# ls
chroot_list ssl vsftpd.conf vuser
ftpusers user_list vsftpd_conf_migrate.sh vuser.db
[root@ha1 vsftpd]# chmod 700 vuser vuser.db
[root@ha1 vsftpd]# ll vuser vuser.db
-rwx—— 1 root root 26 Oct 29 13:40 vuser
-rwx—— 1 root root 12288 Oct 29 13:42 vuser.db
4、为其提供 PAM 的配置文件
[root@ha1 vsftpd]# cd /etc/pam.d/
[root@ha1 pam.d]# vim vsftpd.vuser
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser 注意这里 db 文件名后面的.db 不用带上,这个相当于后缀吧,.db 前面的才是文件名
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser
5、创建虚拟用户映射的系统用户,指定其家目录,不需要登陆权限及密码
[root@ha1 pam.d]# useradd -d /var/ftp/vuser -s /sbin/nologin vftpuser
[root@ha1 pam.d]# ll -d /var/ftp/vuser/
drwx—— 3 vftpuser vftpuser 4096 Oct 29 13:55 /var/ftp/vuser/
6、编辑 vsftpd 配置文件使其支持虚拟用户
[root@ha1 pam.d]# vim /etc/vsftpd/vsftpd.conf #添加以下几行
guest_enable=YES /* 启用虚拟用户
guest_username=vftpuser /* 指定 FTP 虚拟用户映射到的系统用户
pam_service_name=vsftpd.vuser /* 定义 PAM 认证文件
保存退出,重启 vsftpd 服务
service vsftpd restart
7、用虚拟账号登陆验证,可以看到可以成功使用 tom 账号登陆 ftp 并且上传文件,文件位于 vftpuser 家目录 /var/ftp/vuser 下
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2013-11/92210p2.htm
推荐阅读:
玩转 vsftpd 服务器的四大高级配置:http://www.linuxidc.com/Linux/2013-09/90565.htm
vsFTPd 配置教程:http://www.linuxidc.com/Linux/2013-09/90562.htm
Ubuntu 实用简单的 FTP 架设 http://www.linuxidc.com/Linux/2012-02/55346.htm
Ubuntu 上架设 FTP 服务器和 Apache 服务器 http://www.linuxidc.com/Linux/2011-04/35295.htm
Ubuntu 13.04 安装 LAMP\vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm
RHEL6 平台下 SeLinux 和 vsftpd 的匿名上传的简单案例 http://www.linuxidc.com/Linux/2013-04/82300.htm
Linux 系统 vsftpd 源码安装 http://www.linuxidc.com/Linux/2013-03/81475.htm
vsftpd 的安全配置案例分析 http://www.linuxidc.com/Linux/2012-12/76501.htm
虚拟用户高级设置
虚拟用户默认使用的匿名用户的权限,当然 vsftpd 还支持继承系统用户的权限:
virtual_use_local_privs 参数
当 virtual_use_local_privs=YES 时,虚拟用户和本地用户有相同的权限;
当 virtual_use_local_privs=NO 时,虚拟用户和匿名用户有相同的权限,默认是 NO。
当 virtual_use_local_privs=YES,write_enable=YES 时,虚拟用户具有写权限(上传、下载、删除、重命名)。
当 virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,
anon_upload_enable=YES 时,虚拟用户不能浏览目录,只能上传文件,无其他权限。
当 virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=NO 时,虚拟用户只能下载文件,无其他权限。
当 virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=YES 时,虚拟用户只能上传和下载文件,无其他权限。
当 virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_mkdir_write_enable=YES 时,虚拟用户只能下载文件和创建文件夹,无其他权限。
当 virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_other_write_enable=YES 时,虚拟用户只能下载、删除和重命名文件,无其他权限。
此外,如果有需要,我们还可以为我们的虚拟用户分别定义权限:
此时只要在 vsftpd.conf 加上一行
user_config_dir=/etc/vsftpd/vsftpd.conf
然后创建 vsftpd.conf 目录,在些目录下分别创建与虚拟用户同名的文件,里面写上相应的权限设置就可以啦,更多的功能小伙伴根据需要自由发挥啦。