实验要求:
一、构建可匿名访问的ftp服务器
1.匿名用户能下载和上传文件到pub目录中。
2.本地用户登录ftp后禁锢在自己的宿主目录中,并禁止本人名账户访问ftp。
3.所有上传的文件都去除非宿主位读写权限,使用ftp命令验证效果。
二、构建虚拟用户服务器
1.添加benet、班级名、本人名三个虚拟账户。
2.Benet用户只允许下载文件,班级名账户可以下载上传文件,本人账户可以下载上传文件和目录并可以删除、修改文件和目录的名称。
3.服务器最多允许1000个并发连接,每个ip最多可以同时连接两个,benet用户限速100kb/s
1.构建匿名访问的FTP服务
安装vsftpd软件包
在RHEL6.5系统中,FTP匿名用户对应的系统用户为ftp,其宿主目录/var/ftp就是匿名访问vsftpd服务时所在的FTP根目录。
注意:FTP根目录的权限不允许匿名用户或其他用户有写入权限
这里,将子文件夹pub的宿主改为ftp,便于匿名用户ftp拥有上传数据的权限。
在修改配置文件之前,一定要将其备份。
修改vsftpd.conf配置文件,以下列出涉及的配置项:
启用vsftpd服务的写入权限(全局性的选项,针对所有用户,若要允许其上传,都必须启用此配置项)。
允许匿名用户访问
允许匿名用户在可写入的目录中上传文件
此配置项用于设置匿名用户所上传的文件或目录的权限掩码,拥有的权限=777-权限掩码。
这里,仅属主用户拥有权限。
禁用本地用户登录
将所有的宿主目录禁锢在其宿主目录中,使用户不能够任意切换到服务器的其他文件夹中。
配置完成后,启动vsftpd服务,并使用netstat命令查看监听状态。
在linux字符界面访问FTP服务器,需要安装ftp安装包,从而可以执行ftp命令。
用户名为ftp,不用输入密码直接回车,成功登录FTP服务器。
具体的指令可以通过执行?或help来查看在线帮助信息。(lcd指令可以在ftp目录和本地目录之间进行切换)
补充:用户验证的FTP服务
启用user_list用户列表文件
仅允许列表中的用户登录
修改user_list配置文件,添加用户。
清空其他内容,输入允许访问的用户。
重新加载服务
2.构建虚拟用户访问的FTP服务
创建文本格式的用户名、密码列表
奇数行为用户名,偶数行用户对应的密码。
使用db_load工具创建出Berkeley DB格式的数据库文件
选项:”-T”允许非Berkeley DB的应用程序使用从文本格式转换的DB数据文件
“-t hash”指定读取数据文件的基本方法
“-f”指定数据源文件
查看转换后的文件类型
创建FTP根目录,添加虚拟用户的映射账号。
注意:vsftpd服务器对虚拟用户的控制采用了映射的控制方式,将所有的虚拟用户对应到同一个系统用户,该系统用户的宿主目录作为所有虚拟用户登录后共用的FTP根目录。
调整权限以允许浏览目录
为虚拟用户创建PAM认证文件
db=/etc/vsftpd/vusers指定了要使用的虚拟用户数据库文件位置
注意:vsftpd服务默认的PAM认证文件位于/etc/pam.d/vsftpd,该文件适用于以linux主机的系统用户账号进行认证。
需要映射本地用户,所以开启此项
启用用户映射功能
指定映射的系统用户名称
指定新的PAM认证文件
为不同的虚拟用户建立独立的配置文件(指定了配置文件位置)
限制并发客户连接最多为1000
限制每个IP地址的连接数最多为两个
修改完vsftpd.conf配置文件后保存
创建用户配置文件夹,并且切换到该文件夹中。
为不同的用户创建配置文件,默认具有访问FTP服务器的权限,根据需求添加其他权限即可。
该配置项表示用户最大传输速率为100kb/s
注意:需要为虚拟用户指定根目录,可以添加配置项:local_root=/指定的目录
附录:
常用的全局配置项
listen=YES:是否以独立运行的方式监听服务
listen_address=192.168.4.1:设置监听的 IP 地址
listen_port=21:设置监听 FTP 服务的端口号
write_enable=YES:是否启用写入权限
download_enable=YES:是否允许下载文件
userlist_enable=YES:是否启用 user_list 列表文件
userlist_deny=YES:是否禁用 user_list 中的用户
max_clients=0:限制并发客户端连接数
max_per_ip=0:限制同一 IP 地址的并发连接数
常用的匿名 FTP 配置项
anonymous_enable=YES:启用匿名访问
anon_umask=022:匿名用户所上传文件的权限掩码
anon_root=/var/ftp:匿名用户的 FTP 根目录
anon_upload_enable=YES:允许上传文件
anon_mkdir_write_enable=YES:允许创建目录
anon_other_write_enable=YES:开放其他写入权
anon_max_rate=0:限制最大传输速率(字节/秒)
常用的本地用户 FTP 配置项
local_enable=YES:是否启用本地系统用户
local_umask=022:本地用户所上传文件的权限掩码
local_root=/var/ftp:设置本地用户的 FTP 根目录
chroot_local_user=YES:是否将用户禁锢在主目录
local_max_rate=0:限制最大传输速率(字节/秒)