LinuxFTP虚拟用户问题汇总.docx
- 文档编号:6356282
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:19
- 大小:789.41KB
LinuxFTP虚拟用户问题汇总.docx
《LinuxFTP虚拟用户问题汇总.docx》由会员分享,可在线阅读,更多相关《LinuxFTP虚拟用户问题汇总.docx(19页珍藏版)》请在冰豆网上搜索。
LinuxFTP虚拟用户问题汇总
有两种方式可以实现虚拟用户:
本地数据文件和数据库服务器。
在此只介绍使用本地数据文件方式创建虚拟用户的方法。
使用本地数据文件创建虚拟用户的步骤如下:
⑴建立虚拟用户口令文件。
⑵生成vsftpd的认证文件。
⑶建立虚拟用户所需的PAM配置文件。
⑷建立虚拟用户访问所需要的目录。
⑸修改vsftpd.conf配置文件。
(1)建立用户口令文件
使用vi命令创建用户口令文件,该文件是一个文本文件,其中的奇数行为用户名,偶数行为用户密码,文件名可以任意。
(2)生成口令认证文件
接下来要使用db_load命令来创建口令库文件。
(db_load命令需要linux安装db4-utils-***包,安装盘server目录下有,用rpm–qa|grepdb4检查是否有安装)
db_load–T–thash–f~/login.txt/etc/vsftpd/vsftpd_login.db
通过以上命令可以在/etc/vsftpd/目录中创建vsftpd_login.db库文件(口令认证文件)。
接着使用以下命令设置该库文件的权限:
chmod600/etc/vsftpd/vsftpd_login.db
(3)建立配置文件
进入/etc/pam.d/中创建vsftpd.v
在此文件中添加如下信息
authrequired/lib/security/pam_userdb.sodb=/etc/vsftpd/vsftpd_login
accountrequired/lib/security/pam_userdb.sodb=/etc/vsftpd/vsftpd_login
(4)建立虚拟用户目录
建立好虚拟用户的PAM口令认证文件后,接下来还要创建虚拟用户的工作环境,在FTP服务器上创建一个用户,用来映射所有的虚拟用户,具体命令如下:
useradd–d/var/ftp–s/sbin/nologinvftp
在/var/ftp/创建目录并改变其属性和它的属主
useradd-d/var/ftp/testvftp
chmod700/var/ftp/test
在目录中添加test_file测试文件
(5)修改vsftpd.conf配置文件
Listen_yes
Anonymous_enable=no
Local_enable=yes
Write_enable=no
Anon_upload_enable=no
Anon_mkdir_write_enable=no
Anon_other_write_enable=no
Chroot_local_user=yes
Guest_enable=yes----------起用虚拟用户
Guest_username=vftp-----将虚拟用户映射为本地用户
Listen_port=5555
Max_client=10
Max_per_ip=1
Ftpd_banner=thisisavirtualserverandusers
Pam_service_name=ftp.v
注:
在主配置文件中给的权限越低,在后面分用户管理的时候对拥护的权限划分的空间就越大,因为主配置文件最高的限制服务先读主配置文件,然后再读用户的配置文件。
(6)创建单个虚拟用户配置文件
对每个虚拟用户,可分别设置不同的权限。
例如,为每个虚拟用户设置一个home目录,则该虚拟用户将不能访问其他用户的目录。
首先在vsftpd.conf配置文件中添加以下一行,用来指定个人配置文件的目录:
user_config_dir=/etc/vsftpd/vsftpd_user_conf
在/etc/vsftpd/目录中创建一个名为vsftpd_user_conf的目录,并在该目录中用每个虚拟用户的名称创建一个配置文件。
例如,使用以下命令创建虚拟用户名ftp1的配置文件:
vi/etc/vsftpd/vsftpd_user_conf/ftp1
在该文件中输入如下所示的配置选项。
local_root=/var/ftp/ftp1
anon_world_readable_only=no
write_enable=yes
anon_upload_enable=yes
anon_other_write_enable=yes
在/var/ftp目录中为每个虚拟用户创建一个个人目录,如为ftp1用户创建名为ftp1的目录。
将以上设置都完成以后,执行以下命令重启vsftpd进程:
servicevsftpdrestart
(7)测试虚拟用户
接下来测试虚拟用户的使用,在使用之前,先复制一些文件到/var/ftp/目录中以测试下载功能。
实验步骤:
为了更方便的测试实验环境,本实验采用ftpall作为所有员工的公共用户,xiaonuo作为每个用户的代表。
一、挂在第一张RHEL4安装光盘,并安装vsftpd软件包。
二、建立虚拟用户口令库文件
建立虚拟用户的口令库文件,文件中奇数行设置虚拟用户的用户名,偶数行设置用户的口令。
为了便于记忆可以将文件命名为.txt文件。
不过Linux下文件是不支持扩展名滴哦,只是为了标示而已。
注意:
用户的口令库文件中,不要存在空格和空行
三、生成vsftpd的认证文件
使用db_load命令生成认证文件,“-f”命令选项设置的值是虚拟用户的口令库文件,即vsftpd_login.txt,命令的参数设置为需要生成的认证文件名vsftpd_login.db,该文件必须放在“/etc/vsftpd/”中。
注意:
db_load是软件包db4_utils带的命令,在RHEL4是默认安装的,在RHEL5上没有安装,需要安装db4_utils这个软件包才支持db_load命令。
由于vsftpd的认证文件vsftpd_login.db里保存了所有虚拟用户的用户名和密码,为了增强其安全性,应当设置只有root才可以查看。
四、建立虚拟用户所需的PAM配置文件
修改/etc/pam.d/vsftpd文件
将默认配置全部用“#”注释在最后添加
authrequired/lib/security/pam_userdb.sodb=/etc/vsftpd/vsftpd_login
accountrequired/lib/security/pam_userdb.sodb=/etc/vsftpd/vsftpd_login
注意:
也可以另外建立一个文件,但是要在/etc/vsftpd/vsftpd.conf中将pam_service_name=vsftpd后面的值改为新建文件的名称。
五、建立虚拟用户及要访问的目录并设置相应的权限。
建立vsftpd虚拟目录所需的系统公共用户账号,账号名为ftpall,指定用户的宿主目录是“/var/ftp/ftpall”
建立vsftpd虚拟目录所需的系统单用户账号,账号名为xiaonuo,指定用户的宿主目录是“/var/ftp/xiaonuo”
参数“-d”是建立用户之后,并将自己的宿主目录指向指定的位置。
注意:
用户名和宿主目录名称最好一样,便于记忆。
这些用户都会存放在系统的/etc/passwd下,并且用户密码都存放在vsftpd认证文件中。
所以是不能用虚拟用户登录系统的,安全性自然而然也加强了。
建立的虚拟用户的宿主目录默认都是700权限,由于ftpall是公共目录,是不允许普通用户修改、添加、删除和重命名的,所以将其改成500(读+执行)即可。
参数“-R”是修改用户宿主目录以及目录里所有子文件的属性。
六、设置vsftpd.cong主配置文件。
在对vsftpd.conf配置文件进行修改前,应先将原有的文件进行备份,以便出现配置错误时可进行恢复。
在vsftpd.conf配置文件中添加虚拟用的配置项,内容如下:
anonymous_enable=NO禁用匿名用户登录
local_enable=YES启用本地用户登录(本质上是为了能够让虚拟用户登录)
chroot_local_user=YES将所有本地用户限制在自己的目录中
pam_service_name=vsftpd配置vsftpd使用的PAM模块为vsftpd
user_config_dir=/etc/vsftpd/users_config设置虚拟账户配置文件的主目录为/users_config(后面创建)
max_clients=100设置FTP服务器最大接入客户端数为100个
max_per_ip=3设置每个IP地址最大连接数为3个
local_max_rate=300000FTP服务器的本地用户最大传输速率设置为300KB/s
anon_max_rate=100000FTP服务器匿名用户最大传输速率设置为100KB/s
七、设置公用用户ftpall的配置文件
首先创建虚拟用户配置文件的主文件夹users_config,并在此文件夹下建立虚拟用户的文件ftpall和xiaonuo。
在/etc/vsftpd/user_config/ftpall配置文件中添加虚拟用的配置项,内容如下:
guest_enable=YES开启虚拟账户登录
guest_username=ftpall设置ftpall对应的系统账户为ftpall
anon_world_readable_only=NO允许用户浏览FTP目录和下载文件
anon_max_rate=100000限制传输速率为100KB/s
八、设置单用户xiaonuo的配置文件
在/etc/vsftpd/user_config/xiaonuo配置文件中添加虚拟用的配置项,内容如下:
guest_enable=YES开启虚拟账户登录
guest_username=xiaonuo设置xiaonuo目录对应的系统账户为xiaonuo
anon_world_readable_only=NO允许用户浏览FTP目录和下载文件
anon_other_write_enable=YES允许用户进行文件改名和删除文件的权限
anon_mkdir_write_enable=YES表示用户具有建立和删除目录的权利
anon_upload_enable=YES表示用户可以上传文件
anon_max_rate=300000限制传输速度为300KB/s
通过对以上配置项的组合设置,vsftpd可以为每个虚拟用户配置不同的FTP权限,用户配置文件中没有的配置项将按照vsftpd.conf配置文件中的内容设置。
九、重新启动vsftpd服务,使所有配置文件的设置生效。
使用/etc/rc.d/init.d/vsftpdrestart或者servicesvsftpdrestart命令重新启动vsftpd服务。
十、测试公共用户ftpall的权限。
在测试之前,首先在/var/ftp/ftpall和/var/ftp/xiaonuo中创建文件和文件夹做测试用。
公共用户ftpall使用常用的IE浏览器进行访问FTP服务器,测试ftpall的权限。
将客户机机上的文件复制到FTP服务器上提示出错,测试成功!
重命名FTP服务器上的文件提示出错,测试成功!
删除FTP服务器上的文件提示出错,测试成功!
重命名FTP服务器上的文件夹提示出错,测试成功!
将FTP服务器上的文件拖拽的本地文件夹中,测试成功。
整个测试过程说明使用ftpall用户登录FTP服务器,只能下载文件,不允许增加、删除、修改、重命名文件或文件夹。
十一、测试xiaonuo用户
使用命令提示符窗口测试虚拟用户xiaonuo的权限。
首先使用匿名用户登录,可以看到登录失败,原因是因为在主配置文件vsftpd.conf的anonymous_enable=NO的缘故,如果开启,则登录成功,而且能够看到所有用户的宿主目录名称,虽然不能访问,但如果恶意用户使用用户名猜测密码则会造成一定的危害。
使用虚拟用户xiaonuo登录FTP服务器。
使用dir或者ls–l命令可以查看到xiaonuo用户宿主目录里的内容,而ftpall里的内容是看不到的,这也就实现了用户目录的隔离。
使用get命令下载文件到本地测试成功。
使用put命令上传文件到FTP服务器上测试成功
使用rename命令重命名FTP服务器上的文件测试成功。
使用rename命令重命名FTP服务器上的文件夹测试成功。
使用delete删除FTP服务器上的文件测试成功。
使用rmdir删除FTP服务器上的空目录测试成功。
下载速度或者上传速度的测试,可将速度调整低一点,便可以看出效果来。
通过上面的实验可以看出,所有员工使用公共虚拟用户ftpall登录FTP服务器只能查看和下载FTP服务器上共享的文件,而每个员工使用分发的虚拟用户名登录FTP服务器可以实现添加、删除、修改、查询宿主目录里的文件或文件夹,这也就实现了Dreanfire公司的业务需求,同时也增强了FTP服务器的安全性。
Vsftpd虚拟用户设置
出自Ubuntu中文
本文作者:
dbzhang800
授权许可:
创作共享协议
适用版本:
文章状态:
完成
目录
[隐藏]
∙1目标
∙2创建虚拟用户数据库
o2.1创建文本文件loguser.txt
o2.2生成数据库
∙3配置PAM文件
∙4为虚拟用户创建本地系统用户
∙5/etc/vsftpd.conf
∙6/etc/vsftpd_user_conf
∙7完成
目标
首先我们假定你已经安装了vsftpd,并在/home/ftp目录下建立了以下两个子目录
∙dbzh1
∙dbzh2
下面,我们要建3个虚拟用户,密码分别是用户名后加"00"
∙db1
∙db2
∙db3
使得
∙用户db1的主目录为dbzh1,在该目录下只有只读权限
∙用户db2的主目录为dbzh2,在该目录下只有只读权限
∙用户db3的主目录为dbzh1,在该目录下拥有所有权限
创建虚拟用户数据库
创建文本文件loguser.txt
格式如下:
user_id
password
于是,我们loguser.txt文件的内容为
db1
db100
db2
db200
db3
db300
生成数据库
如果你以前没装过libdb4.6-util或者你不清楚装没装,需先执行下面的命令
sudoapt-getinstalldb4.6-util
然后,我们执行
sudodb4.6_load-T-thash-floguser.txt/etc/vsftpd_login.db
最后设置一下数据库文件的访问权限
sudochmod600/etc/vsftpd_login.db
配置PAM文件
新建/etc/pam.d/vsftpd.vu内容如下:
authrequired/lib/security/pam_userdb.sodb=/etc/vsftpd_login
accountrequired/lib/security/pam_userdb.sodb=/etc/vsftpd_login
∙我们上一步建立的数据库vsftpd_login在此处被使用
∙我们建立的虚拟用户将采用PAM进行验证,这是通过/etc/vsftpd.conf文件中的语句pam_service_name=vsftpd.vu来启用的,稍后你将发现。
为虚拟用户创建本地系统用户
新建一个系统用户virtual,用户家目录为/home/ftp,用户登录终端设为/bin/false(即使之不能登录系统)
sudouseraddvirtual-d/home/ftp-s/bin/false
sudochownvirtual:
virtual/home/ftp
/etc/vsftpd.conf
根据需要创建/etc/vsftpd.conf,一般要确保含有一下设置:
listen=YES
anonymous_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_local_user=YES
guest_enable=YES
guest_username=virtual
user_config_dir=/etc/vsftpd_user_conf
pam_service_name=vsftpd.vu
local_enable=YES
secure_chroot_dir=/var/run/vsftpd
到现在为止,我们的3个用户都可以工作了,可是它们的根目录现在都是/home/ftp,权限也都一样。
那么怎么才能完成我们预定的目标呢?
/etc/vsftpd_user_conf
在上面的配置中,有这么一行
user_config_dir=/etc/vsftpd_user_conf
现在,我们要把各个用户的配置文件放到目录/etc/vsftpd_user_conf中
sudomkdir/etc/vsftpd_user_conf
cd/etc/vsftpd_user_conf
sudotouchdb1db2db3
db1文件中的内容如下
local_root=/home/ftp/dbzh1
同样,db2文件中的内容
local_root=/home/ftp/dbzh2
那么,db3的内容呢?
其实也很简单
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/ftp/dbzh1
完成
重启vsftpd我们就可以看到效果了^_^
/etc/init.d/vsftpdstart|restart
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LinuxFTP 虚拟 用户 问题 汇总
![提示](https://static.bdocx.com/images/bang_tan.gif)