题目:

禁止使用不安全的FTP,请使用“CSK Global Root CA”证书颁发机构,颁发的证书,启用FTPS服务;

用户webuser,登录ftp服务器,根目录为/webdata/;上传的文件映射为webadmin

登录后限制在自己的根目录;

允许WEB管理员上传和下载文件,但是禁止上传后缀名为.doc .docx .xlsx的文件。

 限制用户的下载最大速度为100kb/s;最大同一IP在线人数为2人;

  用于通过工具或者浏览器下载的最大速度不超过 100kb/s

 一个IP地址同时登陆的用户进程/人数不超过2人。

 

实验:

[root@localhost ~]# setenforce 0

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]#yum install vsftpd -y

创建虚拟用户和根目录:

[root@storagesrv ~]# mkdir /webdata

创建一个用户作为虚拟用户的宿主用户,所有的虚拟用户都要映射到一个真实的系统用户:

[root@storagesrv ~]# useradd webadmin

[root@storagesrv ~]# chown -R webadmin /webdata

建立虚拟用户名单密码文件(奇数行为用户,偶数行为密码)

[root@storagesrv ~]# cat /etc/vsftpd/vuser

webuser

123456

[root@storagesrv ~]#

加密虚拟用户名单文件:

[root@storagesrv ~]# db_load -T -t hash -f /etc/vsftpd/vuser /etc/vsftpd/vuser.db

证书部分

使用httpd.crt http.key即可

[root@storagesrv ~]# mkdir /csk-rootca

[root@appsrv ~]#scp /csk-rootca/httpd.key root@192.168.100.200:/csk-rootca

[root@appsrv ~]#scp /csk-rootca/httpd.key root@192.168.100.200:/csk-rootca

编辑ftp的配置文件

[root@storagesrv ~]# vim /etc/vsftpd/vsftpd.conf

guest_enable=YES

guest_username=webadmin

user_config_dir=/etc/vsftpd

(使用证书的配置)

force_local_data_ssl=YES

force_local_logins_ssl=YES

ssl_enable=YES

rsa_cert_file=/csk-rootca/httpd.crt

rsa_private_key_file=/csk-rootca/httpd.key

local_root=/webdata

allow_writeable_chroot=YES

deny_file={*.doc,*.docx,*.xlsx}

local_max_rate=100000

max_per_ip=2

pasv_min_port=40000

pasv_max_port=41000

配置PAM文件

编辑认证文件,除了以下两行,其他全部注释掉

[root@storagesrv /]# vim /etc/pam.d/vsftpd

auth required    pam_userdb.so db=/etc/vsftpd/vuser

account required    pam_userdb.so db=/etc/vsftpd/vuser

编辑用户配置文件

[root@storagesrv /]# vim /etc/vsftpd/webuser

local_root=/webdata

download_enable=YES

write_enable=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

赋予权限重启服务并测试:

[root@storagesrv /]# chmod 777 /webdata

[root@storagesrv /]# systemctl restart vsftpd

inside上验证

注意:appsrv上写 192.168.100.200 > ftp.chinaskills.cn的dns解析记录

[root@insidecli ~]#yum install lftp -y

编辑lftp配置文件加入一行(关闭ssl安全证书验证,可以解决自签证书的信任)

[root@insidecli ~]# vim /etc/lftp.conf

set ssl:verify-certificate no

(1) 测试 ftps(insidecli 使用 lftp -u webuser,密码 ftp.chinaskills.cn登录, 然后使用 ls 截图) 

评分要点:FTP 登陆后能够查看 文件内容, 不报 SSL 错误即可

(2) quote pwd 查看 chroot

评分要点:显示为 “/”

[root@insidecli ~]#lftp -u webuser,123456  ftp.chinaskills.cn

lftp webadmin@localhost:~> quote pwd

257 "/"

(3) 测试 ftp 文件上传权限(分别上传 test.doc,test.docx,test.xlsx,test.txt 文件,然后 ls)

上传 test. doc、 test. docx、 test. xlsx 后缀文件会提示错误 550 代码

上传 test. txt 成功, 并且 ls 能够显示

lftp webadmin@localhost:/> put test.doc

put: Access failed: 550 Permission denied. (test.doc)

lftp webadmin@localhost:/> put test.docx

put: Access failed: 550 Permission denied. (test.docx)

lftp webadmin@localhost:/> put test.xlsx

put: Access failed: 550 Permission denied. (test.xlsx)

lftp webadmin@localhost:/> put test.txt

lftp webadmin@localhost:/> ls

-rw-r--r-- 1 1000 1000 0 Jul 21 11:24 test.txt

(4) 查看 vsftp 配置文件中限速限制的配置(在 storagesrv 上执行指令: cat /etc/vsftpd/vsftpd.conf | grep rate) 

显示出 local_max_rate=100000 即可, 如果显示的是其它关键字则不得分。

(5) 测试 ftp 中同一个 IP 地址登录(insidecli 上通过 lftp -u webuser, 密码 ftp.chinaskills.cn 打开三个终端, 第三个终端执行 ls 命令后截图)

评分要点:

打开第三个终端输入 ls 后显示 delying before reconnect, 显示其它不得分; 

(6) 查看端口 范围(截取配置文件中相关配置) 

评分要点:

和截图中配置信息一致即可得分

(7) 测试匿名用户 (storagesrv 执行 ls -l /webdata/test.txt)

评分要点:

之前上传的 test. txt 的文件所属者为 webadmin 即可得分

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐