RHEL6.3配置FTP服务器(3) 虚拟用户下载和上传

简介:

除了匿名用户和本地用户之外,我们还可以设置虚拟用户来访问FTP。所谓虚拟用户是指存放于独立数据库文件中的FTP用户账号,可以将他们映射到某个不能登录的系统用户账号上,以进一步增强FTP服务器的安全性。


(1)创建虚拟用户数据库文件
vsftpd服务的虚拟用户数据库是使用Berkeley DB格式的数据库文件,建立数据库文件需要用到db_load命令工具,db_load工具是由db4-utils软件包提供的,所以首先我们需要确认系统中已经安装好了db4-utils组件。

然后我们先建立一个文本格式的用户名/密码列表文件,用于存放虚拟用户账号。文件名可以随意,文件一般是保存在/etc/vsftpd目录中。
# vim /etc/vsftpd/logins.txt

文件中的奇数行表示用户名,偶数行为上一行用户所对用的密码。如上图就表示创建了2个虚拟用户:harry和natasha,密码都是123.
有了文本格式的用户名/密码列表文件以后,还要以此文件为数据源通过db_load工具创建出Berkeley DB格式的数据库文件。

上图中所执行的db_load命令是一种固定用法,其中的“-T”选项表示允许非Berkeley DB的应用程序使用从文本格式转换的DB数据库文件,“-t hash”选项指定读取数据文件的基本方法,“-f”选项用于指定数据的源文件。
最后为了提高虚拟用户账号的安全性,最好将这两个存放虚拟用户账号的文件的权限都设为600,即只有root用户具有读取和写入权限。


(2)创建虚拟用户的映射账号
vsftpd服务对虚拟用户其实是采用了映射的控制方式,把所有的虚拟用户账号都对应到了同一个系统用户账号上,并将这个系统用户的主目录作为所有虚拟用户登录后共用的FTP根目录。
所以我们还必须要创建一个系统用户账号,当然这个用户是无需设置密码并且不允许登录系统。

在useradd命令中,利用-d选项指定了用户的主目录,利用-s选项禁止用户登录。然后再修改目录权限,使得其他用户可以访问。


 

(3)创建PAM认证文件
对虚拟用户的身份认证是通过PAM机制来实现的,PAM是Linux系统中的一个独立API(应用程序接口),它提供了各种验证模块以供其它程序调用。当这些程序需要进行用户身份验证的操作时,就可以直接调用PAM的相应模块,而无需由自己来提供验证功能。所以PAM在Linux系统中提供了统一的身份验证机制。
PAM的认证文件都统一存放在/etc/pam.d/目录中,下面我们在这个目录中创建一个FTP虚拟用户的认证文件:
# vim /etc/pam.d/vsftpd.vu

在文件中,通过“db=/etc/vaftpd/logins”参数指定了要使用的虚拟用户数据库文件的位置,注意这里不需要写“.db”的扩展名。


 

(4)修改vsftpd配置,添加虚拟用户支持
在vsftpd.conf配置文件中需要添加相应配置项,以支持虚拟用户。

上图中上半部分的设置项是原有的设置,下半部分(红框部分)的设置项是我们这里所要添加的。

  •  guest_enable=YES ,表示启用虚拟用户映射功能;

  •  guest_username=virtual ,表示指定所映射的系统用户名称;

  •  pam_service_name=vsftpd.vu ,表示指定PAM认证文件。

  •  user_config_dir=/etc/vsftpd/vuser ,表示虚拟用户配置文件的存放目录。关于虚拟用户配置文件将在下面介绍。

另外,其它原有的一些设置项目也必须要正确设置:

  •  local_enable=YES ,由于需要映射本地用户,所以此项必须启用;

  •  anon_umask=022 ,在vsftpd服务中,虚拟用户被默认作为匿名用户进行处理以降低权限,因此对应的配置项通常以anon_开头。

  •  write_enable=YES ,表示允许写入。


     

(5)创建虚拟用户配置文件
经过前面的设置之后,将vsftpd服务重启,便可以使用虚拟用户访问FTP了,但此时所有的虚拟用户都只具有下载的权限而无法上传。当然,如果在vsftpd.conf配置文件中添加配置项“aono_upload_enable=YES”和“anon_mkdir_write_enable=YES”,便可以使虚拟用户具备上传权限,但这样一来,所有的虚拟用户又都可以上传了。所以,为了对虚拟用户进行精确控制,实现不同用户拥有不同的权限,我们还需要为每个虚拟用户建立独立的配置文件,在vsftpd.conf配置文件中我们已经指定了虚拟用户配置文件的存放位置/etc/vsftpd/vuser。
下面我们首先创建虚拟用户配置文件存放目录,然后为harry用户创建配置文件,文件名即是用户名:

然后设置允许harry用户上传,设置方法同匿名用户:

然后我们再为natasha也创建一个配置文件,如果natasha只允许下载,那么只需要有一个配置文件即可,文件内容保持空白。
root@localhost ~ ] # touch natasha
重启服务:
# service vsftpd restart
这样虚拟用户便全部设置好了,harry用户具有下载和上传的权限,而natasha只能下载不能上传。 

 最后需要注意的是,如果在vsftpd.conf配置文件中设置了“userlist_enable=YES   userlist_deny=NO”,即只允许userlist列表中的用户访问FTP,那么还需要将virtual用户加入到/etc/vsftpd/user_list列表中去。

 

 

 本文转自 yttitan 51CTO博客,原文链接:http://blog.51cto.com/yttitan/1219381

 



相关文章
|
6月前
|
C# 图形学 开发者
Unity开发中使用UnityWebRequest从HTTP服务器下载资源。
总之,UnityWebRequest就是游戏开发者手中的万能钓鱼竿,既可以获取文本数据,也能钓上图片资源,甚至是那声音的涟漪。使用UnityWebRequest的时候,你需要精心准备,比如确定URL、配置请求类型和头信息;发起请求;巧妙处理钓获的数据;还需要机智面对网络波澜,处理各种可能出现的错误。按照这样的过程,数据的钓取将会是一次既轻松愉快也效率高效的编程钓鱼之旅。
314 18
|
8月前
|
Ubuntu 安全 网络安全
在Ubuntu系统下使用vsftpd配置FTP服务器的步骤
以上就是在Ubuntu系统下使用vsftpd配置FTP服务器的步骤。这些步骤都是基础的,但足够让你建立一个简单的FTP服务器。如果你需要更高级的功能,例如SSL加密、虚拟用户等,你可能需要进一步研究vsftpd的配置选项。
472 13
|
12月前
|
安全 编译器 Linux
深入解析与防范:基于缓冲区溢出的FTP服务器攻击及调用计算器示例
本文深入解析了利用缓冲区溢出漏洞对FTP服务器进行远程攻击的技术,通过分析FreeFlow FTP 1.75版本的漏洞,展示了如何通过构造过长的用户名触发缓冲区溢出并调用计算器(`calc.exe`)。文章详细介绍了攻击原理、关键代码组件及其实现步骤,并提出了有效的防范措施,如输入验证、编译器保护和安全编程语言的选择,以保障系统的安全性。环境搭建基于Windows XP SP3和Kali Linux,使用Metasploit Framework进行攻击演示。请注意,此内容仅用于教育和研究目的。
394 4
阿里云国际版购买了服务器后如何下载发票?
阿里云国际版购买了服务器后如何下载发票?
|
网络协议 文件存储 Windows
Windows Server 2019 FTP服务器搭建
Windows Server 2019 FTP服务器搭建
404 0
|
安全 网络协议 网络安全
Windows Server 2003 FTP服务器搭建
Windows Server 2003 FTP服务器搭建
245 0
|
弹性计算 关系型数据库 网络安全
阿里云国际版无法连接和访问Windows服务器中的FTP服务
阿里云国际版无法连接和访问Windows服务器中的FTP服务
|
弹性计算 Shell Windows
阿里云学生专享ecs服务器体验及个人配置
阿里云学生优惠专享的云服务器个人使用体验
阿里云学生专享ecs服务器体验及个人配置
|
2月前
|
弹性计算 运维 安全
阿里云轻量应用服务器与云服务器ECS啥区别?新手帮助教程
阿里云轻量应用服务器适合个人开发者搭建博客、测试环境等低流量场景,操作简单、成本低;ECS适用于企业级高负载业务,功能强大、灵活可扩展。二者在性能、网络、镜像及运维管理上差异显著,用户应根据实际需求选择。
272 10
|
2月前
|
运维 安全 Ubuntu
阿里云渠道商:服务器操作系统怎么选?
阿里云提供丰富操作系统镜像,涵盖Windows与主流Linux发行版。选型需综合技术兼容性、运维成本、安全稳定等因素。推荐Alibaba Cloud Linux、Ubuntu等用于Web与容器场景,Windows Server支撑.NET应用。建议优先选用LTS版本并进行测试验证,通过标准化镜像管理提升部署效率与一致性。