RHEL 5服务篇—部署FTP文件传输服务(二)部署基于虚拟用户的FTP服务

本文涉及的产品
运维安全中心(堡垒机),免费版 6个月
运维安全中心(堡垒机),企业双擎版 50资产 7天
简介:

部署基于虚拟用户的FTP服务


      在vsftpd服务器中,使用虚拟用户的主要好处在于,可以将登录的账号与系统登录的账号区分开来,用户名,密码都不相同,从而进一步增强了FTP服务器的安全性。


1、建立虚拟用户的账号数据库
vsftpd服务使用Berkeley DB格式的数据库文件来存放虚拟用户账号。建立这种数据库文件需要使用db_load工具,db_load工具由db4-utils软甲包提供,而db4-utils软件包需要先从系统光盘中的Server中安装。如下安装db4-utils软件包。
[root@localhost /]#rpm -ivh /media/Server/db4-utils-4.3.29-10.el5.i386.rpm


2、创建文本格式的用户名、密码列表
首先需要建立文本格式的用户名/密码列表文件,奇数行为用户名,偶数行为上一行用户所对用的密码。
[root@localhost /]#vim /etc/vsftpd/vusers.list
zhangsan
123
lisi
123


3、创建Berkeley DB格式的数据库文件
有了文本格式的用户名/密码列表文件以后,以此文件为数据源通过db_load工具创建出Berkeley DB格式的数据库文件。
[root@localhost /]#cd /etc/vsftpd
[root@localhost vsftpd]#db_load -T -t hash -f vusers.list vusers.db
在db_load命令中,“-T”选项允许非Berkeley DB的应用程序使用从文本格式转换的DB数据库文件,“-t hash”选项指定读取数据文件的基本方法,“-f”选项用于指定数据的源文件。关于db_load命令的详细说明,可参阅/usr/share/doc/db4-utils-4.3.29/ustils/db_load.html文件。
为了提高虚拟用户账户的安全性,应将文件权限设置为600,以免数据外泄。
[root@localhost /]#chmod 600 /etc/vsftpd/vusers.*


4、添加虚拟用户的映射账号、创建FTP根目录
vsftpd服务器对虚拟用户是控制采用了映射的控制方式,将所有的虚拟用户对应到同一个系统用户,该系统用户的宿主目录作为所有虚拟用户登录后共用的FTP根目录,因此还需要添加一个对应的系统用户账号(此账号无需设置密码以及登录shell)
[root@localhost /]#useradd -d /var/ftproot -s /sbin/nologin vuser
[root@localhost /]#chmod 755 /var/ftproot    --调整权限以允许浏览目录


5、为虚拟用户建立PAM认证文件
在vsftpd服务器中,用户认证是通过PAM机制来实现的,该机制包含灵活的选择认证的方式。vsftpd服务默认的PAM认证文件位于/etc/pam.d/vsftpd,该文件适用于以Linux主机的系统用户账号进行认证。若要读取虚拟用户的账户数据文件,就需要创建新的PAM认证配置。
[root@localhost /]#vim /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vusers
auth required pam_userdb.so db=/etc/vsftpd/vusers
上述PAM配置内容中,通过“db=/etc/vaftpd/vusers”参数指定了要使用的虚拟用户数据库文件位置(省略了.db的扩展名),即对应/etc/vsfpd/vusers.db文件。


6、修改vsftpd配置,添加虚拟用户支持
在vsftpd.conf配置文件中添加guest_enable,guest_username配置项,将访问FTP服务的所有虚拟用户对应到同一系统用户账户vuser,并修改pam_service_name配置项指向上一步建立的/etc/pam.d/vsftpd.vu认证文件。
[root@localhost /]#vim /etc/vsftpd/vsftpd.conf
......//省略部分内容
local_enable=YES                 //需要映射本地用户,所以启用此项
write_enable=YES                 //启用上传写入支持
anon_umask=022                  //指定上传权限掩码
guest_enable=YES               //启用用户映射功能
guest_username=vuser           //指定映射的系统用户名称
pam_service_name=vsftpd.vu     //指定新的PAM认证文件
在vsftpd服务中,虚拟用户被默认作为匿名用户进行处理以降低权限,因此对应的配置项通常以anon_开头。
现在只需重新加载vsftpd.conf配置文件就可以再客户端使用虚拟用户访问FTP了。
[root@localhost /]#service vsftpd reload


7、为不同的虚拟用户建立不同的配置文件,实现不同用户拥有不同的权限
若要为不同的虚拟用户账户设置不同的访问权限,可以通过为每个虚拟用户建立独立的配置文件来实现。为FTP用户启用独立配置文件,需要修改vsftpd.conf配置文件,添加“user_config_dir=/etc/vsftpd/vusers_dir”配置项。
[root@localhost /]#vim /etc/vsftpd/vsftpd.conf
......//省略部分内容
user_config_dir=/etc/vsftpd/vusrs_dir
有了上述配置以后,就可以在/etc/vsftpd/vusers_dir/目录下为每个虚拟用户创建独立的配置文件了。
[root@localhost /]#mkdir /etc/vsftpd/vusers_dir   //创建用户配置文件夹
[root@localhost /]#cd /etc/vsftpd/vusers_dir/
[root@localhost /]#vim zhangsan                   //为zhangsan用户创建独立的配置文件
aono_upload_enable=YES                  //具有上传文件的权限
anon_mkdir_write_enable=YES             //具有上传目录的权限
在vsftpd.conf文件中启用了user_config_dir配置项以后,应该为每个虚拟用户都建立一个单独的配置文件(可以使空的),否则该用户可能会无法登录FTP。
[root@localhost /]#touch lisi    //为lisi建立空的配置文件
这时重新加载vsftpd.conf配置文件就可以再客户端访问了。
[root@localhost /]#service vsftpd reload


为了验证不同的权限效果,可以为不同的用户设置不同的权限,如下:
zhangsan用户可以登录,并能够正常浏览、下载文件、但不能上传文件。
lisi用户可以登录,并能够正常浏览、下载文件、也可以上传文件。
wangwu用户可以登录,并能够正常浏览、下载、上传、删除文件、目录。



本文转自yun5277 51CTO博客,原文链接:http://blog.51cto.com/dengqi/1202983,如需转载请自行联系原作者

相关文章
|
11月前
|
监控 Ubuntu 安全
Ubuntu开启FTP服务教程
在Ubuntu服务器上配置FTP服务是一个常见的需求,无论是用于文件分享、网站管理还是数据备份。FTP(文件传输协议)是一种用于在网络上传输文件的协议,它可以让用户通过身份验证下载或上传文件。本文将指导您如何在Ubuntu系统上安装和配置FTP服务器,以及如何管理用户权限来保证服务器的安全性。
967 0
|
6月前
|
网络安全 数据安全/隐私保护
FTP服务搭建
FTP服务搭建
75 0
|
6月前
|
弹性计算 关系型数据库 网络安全
阿里云国际版无法连接和访问Windows服务器中的FTP服务
阿里云国际版无法连接和访问Windows服务器中的FTP服务
|
8月前
|
JavaScript Linux 应用服务中间件
【Azure 应用服务】FTP 部署 Vue 生成的静态文件至 Linux App Service 后,访问App Service URL依旧显示Azure默认页面问题
【Azure 应用服务】FTP 部署 Vue 生成的静态文件至 Linux App Service 后,访问App Service URL依旧显示Azure默认页面问题
|
8月前
【Azure 应用服务】如何关掉App Service/Function App的FTP部署, 使之变成FTPS
【Azure 应用服务】如何关掉App Service/Function App的FTP部署, 使之变成FTPS
|
8月前
|
存储
【Azure 应用服务】Azure App Service 自带 FTP服务
【Azure 应用服务】Azure App Service 自带 FTP服务
|
11月前
|
Web App开发 安全 Unix
Linux 配置FTP服务器 + vsftpd服务安装配置 (Good篇)
Linux 配置FTP服务器 + vsftpd服务安装配置 (Good篇)
277 1
|
11月前
|
Linux 网络安全 数据安全/隐私保护
FTP 文件传输服务
FTP 文件传输服务
|
11月前
|
Ubuntu 网络安全 数据安全/隐私保护
ubuntu篇-配置FTP服务,本机和docker安装
通过以上步骤,你可以在Ubuntu上配置FTP服务,无论是本机安装还是Docker内安装,都可以提供FTP文件传输服务。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
274 1
|
11月前
|
弹性计算 Ubuntu
Ubuntu 20.04安装FTP服务
以阿里云ECS为服务器,搭建FTP服务并在本机使用FileZilla连接服务。
857 2
下一篇
oss创建bucket