vsftpd 服务 mark 创建目录 行处理 font ftp 文件 更改 避免 用户账号
需求描述:
采用 FTP 虚拟用户的方式,添加三个用户:zhangsan,lisi,wangwu.
用户访问及文件权限控制
u 开放匿名访问,任何用户均可下载服务器 / var/ftp/soft / 目录中的软件资料.
u 用户 zhangsan 可以对服务器的 / var/ftp/soft / 目录进行上传,删除等操作.
u 用户 lisi 可以下载服务器 / var/market / 目录中的市场活动,销售方案的资料.
u 用户 wangwu 可以对服务器 / var/market / 目录进行上传,删除等操作.
u 所有通过 FTP 上传的文件,均去除非属主位的写权限(即将权限掩码设为 022).
u 对服务器中没有明确授权的其他目录,禁止任何用户访问.
传输速率和并发连接控制
u 最多允许 150 个并发用户连接,每个 IP 并发连接数不超过 5 个.
u 匿名用户及 lisi 用户的下载带宽限制为 100KB/s.
u wangwu 用户的下载,上传带宽限制为 200KB/s.
具体步骤:
1. 插入光盘并挂载,然后安装 vsftpd 包.如图所示:
2. vsftpd 服务使用 Berkeley DB 格式的数据库文件来存放虚拟用户账号.建立这种数据库文件需要用到 db_load 工具,db_load 工具由 db4_utils 软件包提供,而 db4_utils 软件包需要先从 RHEL5 光盘目录中进行安装,其安装可以执行以下操作:
3. 创建文本格式的用户名,密码列表
首先需要建立文本格式的用户名 / 密码列表文件,奇数行为用户名,偶数行为上一行中用户所对应的密码.如图所示:
4. 创建 Berkeley DB 格式的数据库文件
有了文本格式的用户名 / 密码列表文件以后,以此文件为数据流通过 db_load 工具创建出 Berkeley DB 格式的数据库文件.
在 db_load 命令中,"-f" 选项用于指定数据源文件,"-T" 选项允许非 Berkeley DB 的应用程序使用从文本格式转换的 DB 数据文件,"-t hash" 选项指定读取数据文件的基本方法.
为了提高虚拟用户账号问价的安全性,应将问价权限设置为 600,以避免数据外泄.其具体操作如下:
1.
添加虚拟用户的映射账号,创建 FTP 根目录
vsftp 服务器对虚拟用户的控制采用了映射的控制方式,将所有的虚拟用户对应到同一个系统用户,该系统用户宿主目录作为所有虚拟用户登录后共用的 FTP 根目录.因此还需要添加一个对应的系统用户账户(此账号无需设置密码及 shell).
1.
为虚拟用户建立 PAM 认证文件
vsftpd 服务默认的 PAM 认证文件位于 / etc/pam.d/vsftpd,该文件适用于以 Linux 主机的系统用户账号进行认证.若要读取虚拟用户的账号文件,就需要创建新的 PAM 认证配置.
上述 PAM 配置内容中,通过 "db=/etc/vsftpd/vusers" 参数指定了要使用的虚拟用户数据库文件位置(省略了. db 扩展名),即对应为 / etc/vsftpd/vusers.db 文件.
7.
修改 vsftpd 配置,添加虚拟用户支持
在 vsftpd.conf 配置文件中添加 guest_enable,guest_username 配置项,将访问 FTP 服务的所有虚拟用户对应到同一系统用户账号 virtual,并修改 pam_serivce_name 配置项,指向上一步建立的 / etc/pam.d/vsftpd.vu 认证文件.
在 vsftpd 服务中,虚拟用户被默认作为匿名用户进行处理以降低权限,因此对应的配置项通常以 anon_开头.
创建目录 /var/ftp/soft/,将属主设为 virtual,权限为 755.
如图所示:
1. 为不同的虚拟用户建立独立的配置文件
通过前面的几个步骤,实际上已经可以重新加载 vsftpd 并提供服务了,使用任一个虚拟用户账号都可以登录 FTP 服务器并下载文件.但因为所有的虚拟用都映射到同一个系统用户账号,因此 FTP 访问权限也是相同的,要么都只能下载,要么都能够上传.
若要为不同的虚拟用户账号设置不同的访问权限,可以通过为每个虚拟用户建立单独的配置文件来实现,为 FTP 用户启用独立配置文件,需要通过 vsftpd.conf 配置文件,添加 "user_config_dir" 配置项.
有了上述配置以后,就可以在 / etc/vsftpd/vusers_dir / 目录中为每个虚拟用户分别建立配置文件了.
在 vsftpd.conf 文件中启用了 "user_config_dir" 配置项以后,应该为每一个虚拟用户都建立一个单独的配置用户(可以是空文件),否则该用户可能会无法登录.在每个用户的独立配置文件中,可以添加新的配置项来限制访问权限,下载速率等.
有了虚拟用户数据库文件,并为 vsftpd 正确添加了虚拟用户支持以后,就可以重新加载 vsftpd 服务程序了.用户可以使用 FTP 客户程序访问该 FTP 服务器,以虚拟用户账号进行测试.
FTP 服务器搭建完成!
n
使用 user_list 用户列表文件
当 vsftpd 服务器开放了 "local_enable" 配置项以后,默认情况下所有的系统用户都可以登录到此 FTP 服务器.若只希望对一小部分系统用户开放 FTP 服务,则需要开放用户列表控制的相关配置项,其中主要包括 userlist_enbale,userlist_deny.如图所示:
n
修改 vsftpd 服务的监听地址,端口
更改端口号后,Linux 访问: ftp://IP 地址 端口号
n
允许使用 FTP 服务器的被动模式
主动模式:服务器主动发起数据连接.首先由客户端向服务端的 21 端口建立 FTP 控制连接,当需要传输数据时,客户端以 PORT 命令告知服务器 "我打开了某端口,你过来连接我",于是服务器从 20 端口向客户端的该端口发送请求并建立数据连接.
被动模式:服务器被动等待数据连接 .如果客户机所在网络的防火墙禁止主动模式连接,通常会使用被动模式.首先由客户端向服务器端的 21 端口建立 FTP 控制连接.当需要传输数据时,服务器已 PASV 命令告知客户端 "我打开了某端口,你过来连接我",于是客户端向服务器的该端口(非 20)发送请求并建立数据连接.
FTP 文件传输服务
来源: http://www.bubuko.com/infodetail-2465587.html