FTP/Vsftpd服务的部署及优化——上(vsftpd安装及启用、匿名用户访问控制(登录,默认发布目录,上传,速率,登录用户数量等))

 

目录

一、vsftpd基本信息

二、vsftpd安装及启用,并允许匿名用户访问

1、 servic配置,在主机50上配置

2、 client(westosa100)测试命令

三、匿名用户访问控制

1、匿名用户登陆控制: anonymous_enable=YES|NO 上面二中演示过了

2、更改默认发布目录: anon_root=/westosdir

3、允许匿名用户上传文件: anon_upload_enable=YES|NO

4、允许匿名用户建立、删除目录:anon_mkdir_write_enable=YES|NO 

5、允许匿名用户下载文件:anon_world_readable_only=NO( 匿名用户可以下载不能读的文件)

6、允许匿名用户删除,重命名:anon_other_write_enable=YES|NO

7、匿名用户上传文件权限设定:anon_umask=xxx

8、匿名用户上传文件的用户身份设定:chown_upload=YES chown_username=westos

9、登陆用户数量控制:max_clients=x

10、上传文件速率控制:anon_max_rate=xxxx


 实验环境

  • 关闭selinux

                [root@westosa100 ~]# vim /etc/sysconfig/selinux

                SELINUX=disabled

                [root@westosa100 ~]# reboot

  • 关闭火墙   [root@westosa100 ~]# systemctl disable --now firewalld
  • ip设置
  • 软件仓库搭建

一、vsftpd基本信息

服务名称 :         vsftpd.service
配置目录 :         / etc / vsftpd
主配置文件 :      / etc / vsftpd / vsftpd.conf
默认发布目录 :    / var / ftp
报错信息
                550         ##程序本身拒绝
                553         ##文件系统权限限制
                500         ##权限过大
                530         ##认证失败

二、vsftpd安装及启用,并允许匿名用户访问

1、 servic配置,在主机50上配置

[root@westos_student50 Desktop]# vim /etc/sysconfig/selinux
[root@westos_student50 Desktop]# reboot
[root@westos_student50 Desktop]# dnf install vsftpd   ####service
[root@westos_student50 Desktop]# dnf install lftp -y    ####client上也需要安装
[root@westos_student50 Desktop]# systemctl enable --now vsftpd
[root@westos_student50 Desktop]# firewall-cmd --permanent  --add-service=ftp
[root@westos_student50 Desktop]# firewall-cmd --reload 
[root@westos_student50 Desktop]# lftp 172.25.254.50 -u westos
[root@westos_student50 Desktop]# vim /etc/vsftpd/vsftpd.conf   ###配置允许匿名用户访问
anonymous_enable=YES
[root@westos_student50 Desktop]# systemctl restart vsftpd  ###重启服务
[root@westos_student50 Desktop]# cd /var/ftp/
[root@westos_student50 Desktop]# ls
[root@westos_student50 Desktop]# touch westos{1..5}
[root@westos_student50 Desktop]# ls

2、 client(westosa100)测试命令

lftp 172.25.254.50 ##当访问ftp服务时没有加入用户认证为匿名访问
lftp 172.25.254.50 -u westos ##本地用户访问
  •  selinux关闭配置

FTP/Vsftpd服务的部署及优化——上(vsftpd安装及启用、匿名用户访问控制(登录,默认发布目录,上传,速率,登录用户数量等))_第1张图片

  • 测试安装发布 :         firefox ftp :// ip        ## 此访问方式必须能列出资源才算访问成功

FTP/Vsftpd服务的部署及优化——上(vsftpd安装及启用、匿名用户访问控制(登录,默认发布目录,上传,速率,登录用户数量等))_第2张图片

  • 测试安装发布:        lftp ip  ##在使用完成后请输入exit推出lftp
  • 在westosa100这台主机访问service50,使用用户westos时可以访问,但是匿名访问时不可以

FTP/Vsftpd服务的部署及优化——上(vsftpd安装及启用、匿名用户访问控制(登录,默认发布目录,上传,速率,登录用户数量等))_第3张图片

  •  修改service50的配置文件,启用匿名访问

FTP/Vsftpd服务的部署及优化——上(vsftpd安装及启用、匿名用户访问控制(登录,默认发布目录,上传,速率,登录用户数量等))_第4张图片

  •  再次测试,匿名可以了

FTP/Vsftpd服务的部署及优化——上(vsftpd安装及启用、匿名用户访问控制(登录,默认发布目录,上传,速率,登录用户数量等))_第5张图片

三、匿名用户访问控制

lftp 192.168.0.10 ##当访问ftp服务时没有加入用户认证为匿名访问
lftp 192.168.0.10 -u westos ##本地用户访问

1、匿名用户登陆控制: anonymous_enable=YES|NO 上面二中演示过了

2、更改默认发布目录: anon_root=/westosdir

[root@westos_student50 Desktop]# mkdir /westosdir
[root@westos_student50 Desktop]# vim /etc/vsftpd/vsftpd.conf
12 anon_root=/westosdir    ####12是行号
[root@westos_student50 Desktop]# systemctl restart vsftpd.service 
[root@westos_student50 Desktop]# touch /westosdir/westosfile{1..5}
[root@westos_student50 Desktop]# lftp 172.25.254.50
lftp 172.25.254.50:~> ls                          
-rw-r--r--    1 0        0               0 Nov 23 13:54 westosfile1
-rw-r--r--    1 0        0               0 Nov 23 13:54 westosfile2
-rw-r--r--    1 0        0               0 Nov 23 13:54 westosfile3
-rw-r--r--    1 0        0               0 Nov 23 13:54 westosfile4
-rw-r--r--    1 0        0               0 Nov 23 13:54 westosfile5
  •  可以看到默认发布目录改为/westosdir了

FTP/Vsftpd服务的部署及优化——上(vsftpd安装及启用、匿名用户访问控制(登录,默认发布目录,上传,速率,登录用户数量等))_第6张图片

3、 允许匿名用户上传文件: anon_upload_enable=YES|NO

  • 在pub/中put上传文件(不能在默认共享目录/var/ftp本身中进行操作,只能对共享目录中的子目录进行操作),550报错即服务本身拒绝

FTP/Vsftpd服务的部署及优化——上(vsftpd安装及启用、匿名用户访问控制(登录,默认发布目录,上传,速率,登录用户数量等))_第7张图片

  •  修改vsftp服务的配置文件,重启服务,再次在pub/中put上传文件,553报错即文件系统权限限制,我们需要修改目录权限
[root@westos_student50 Desktop]# vim /etc/vsftpd/vsftpd.conf 
30 anon_upload_enable=YES
[root@westos_student50 Desktop]# systemctl restart vsftpd.service
[root@westos_student50 Desktop]# chmod 755 /var/ftp/
[root@westos_student50 Desktop]# chmod 777 /var/ftp/pub
[root@westos_student50 Desktop]# lftp 172.25.254.50
lftp 172.25.254.50:/> cd /pub
cd ok, cwd=/pub
lftp 172.25.254.50:/pub> put /etc/passwd
2792 bytes transferred            

 FTP/Vsftpd服务的部署及优化——上(vsftpd安装及启用、匿名用户访问控制(登录,默认发布目录,上传,速率,登录用户数量等))_第8张图片

  •  这里不能更改默认共享目录/var/ftp的权限为777,否则重启服务后无法成功访问 (lftp 172.25.254.133)(ls查看成功才算访问成功),会出现安全警告

  •  更改默认共享目录/var/ftp的权限为755、pub/的权限为777,访问ftp在pub/中可以成功put上传文件

FTP/Vsftpd服务的部署及优化——上(vsftpd安装及启用、匿名用户访问控制(登录,默认发布目录,上传,速率,登录用户数量等))_第9张图片

4、允许匿名用户建立、删除目录:anon_mkdir_write_enable=YES|NO 

  • 访问ftp在pub/中建立目录,目录建立失败,550报错即服务本身拒绝 

  • 配置vsftp服务的配置文件,重启服务
[root@westos_student50 Desktop]# vim /etc/vsftpd/vsftpd.conf
34 anon_mkdir_write_enable=YES
[root@westos_student50 Desktop]# systemctl restart vsftpd.service

FTP/Vsftpd服务的部署及优化——上(vsftpd安装及启用、匿名用户访问控制(登录,默认发布目录,上传,速率,登录用户数量等))_第10张图片

  •  再次测试,成功,可以建立目录了

FTP/Vsftpd服务的部署及优化——上(vsftpd安装及启用、匿名用户访问控制(登录,默认发布目录,上传,速率,登录用户数量等))_第11张图片

 5、允许匿名用户下载文件:anon_world_readable_only=NO( 匿名用户可以下载不能读的文件)

  •  测试一下,下载passwd文件,550报错

FTP/Vsftpd服务的部署及优化——上(vsftpd安装及启用、匿名用户访问控制(登录,默认发布目录,上传,速率,登录用户数量等))_第12张图片

  •  配置vsftp服务的配置文件,重启服务
[root@westos_student50 Desktop]# vim /etc/vsftpd/vsftpd.conf 
35 anon_world_readable_only=NO
[root@westos_student50 Desktop]# systemctl restart vsftpd.service 
[root@westos_student50 Desktop]# lftp 172.25.254.50
lftp 172.25.254.50:~> cd /pub
cd ok, cwd=/pub                  
lftp 172.25.254.50:/pub> get passwd
2792 bytes transferred

  •  测试,ftp可以成功下载pub/中的文件(文件会下载至访问ftp前所在的系统位置处)

FTP/Vsftpd服务的部署及优化——上(vsftpd安装及启用、匿名用户访问控制(登录,默认发布目录,上传,速率,登录用户数量等))_第13张图片

 6、允许匿名用户删除,重命名:anon_other_write_enable=YES|NO

  •  测试,删除失败,重命名550报错

FTP/Vsftpd服务的部署及优化——上(vsftpd安装及启用、匿名用户访问控制(登录,默认发布目录,上传,速率,登录用户数量等))_第14张图片

  •   配置vsftp服务的配置文件,重启服务
[root@westos_student50 Desktop]# vim /etc/vsftpd/vsftpd.conf 
31 anon_other_write_enable=YES
[root@westos_student50 Desktop]# systemctl restart vsftpd.service
[root@westos_student50 Desktop]# lftp 172.25.254.50
lftp 172.25.254.50:~> cd /pub
cd ok, cwd=/pub
lftp 172.25.254.50:/pub> ls
-rw-------    1 14       50           2792 Nov 23 14:14 passwd
drwx------    2 14       50              6 Nov 23 14:22 test
lftp 172.25.254.50:/pub> mv passwd haha
rename successful
lftp 172.25.254.50:/pub> ls
-rw-------    1 14       50           2792 Nov 23 14:14 haha
drwx------    2 14       50              6 Nov 23 14:22 test
lftp 172.25.254.50:/pub> rm -fr haha
rm ok, `haha' removed
lftp 172.25.254.50:/pub> ls
drwx------    2 14       50              6 Nov 23 14:22 test

  •  测试,删除与重命名成功

FTP/Vsftpd服务的部署及优化——上(vsftpd安装及启用、匿名用户访问控制(登录,默认发布目录,上传,速率,登录用户数量等))_第15张图片

 7、匿名用户上传文件权限设定:anon_umask=xxx

  • 服务默认上传文件的权限为600,编写vsftp服务的配置文件,设定anon_umask=022,重启服务,访问ftp在pub/中上传文件/etc/passwd,可以看到文件权限为644(777-022-111),权限设定生效
[root@westos_student50 Desktop]# vim /etc/vsftpd/vsftpd.conf
36 anon_umask=022
[root@westos_student50 Desktop]# systemctl restart vsftpd.service 
[root@westos_student50 Desktop]# lftp 172.25.254.50
lftp 172.25.254.50:~> cd pub/
cd ok, cwd=/pub                  
lftp 172.25.254.50:/pub> ls
drwx------    2 14       50              6 Nov 23 14:22 test
lftp 172.25.254.50:/pub> put /etc/passwd
2792 bytes transferred
lftp 172.25.254.50:/pub> ls
-rw-r--r--    1 14       50           2792 Nov 23 14:51 passwd
drwx------    2 14       50              6 Nov 23 14:22 test

FTP/Vsftpd服务的部署及优化——上(vsftpd安装及启用、匿名用户访问控制(登录,默认发布目录,上传,速率,登录用户数量等))_第16张图片

 FTP/Vsftpd服务的部署及优化——上(vsftpd安装及启用、匿名用户访问控制(登录,默认发布目录,上传,速率,登录用户数量等))_第17张图片

8、匿名用户上传文件的用户身份设定:chown_upload=YES chown_username=westos

  • 访问ftp在pub/中上传文件,所上传文件passwd、group的拥有者默认为14(ftp服务用户),更改pub/的拥有组为ftp,更改pub/的权限为775,修改vsftp服务的配置文件,重启服务,访问ftp,在pub/中put上传另一个文件,文件inittab的拥有者为设定的westos
[root@westos_student50 Desktop]# cd /var/ftp
[root@westos_student50 ftp]# ls
pub  westos1  westos2  westos3  westos4  westos5
[root@westos_student50 ftp]# ls -ld pub/
drwxrwxrwx 3 root ftp 32 Nov 23 22:51 pub/
[root@westos_student50 ftp]# chmod 775 pub/
[root@westos_student50 ftp]# chgrp ftp pub/
[root@westos_student50 ftp]# ls -ld pub/
drwxrwxr-x 3 root ftp 32 Nov 23 22:51 pub/
[root@westos_student50 ftp]# vim /etc/vsftpd/vsftpd.conf 
 48 chown_uploads=YES
 49 chown_username=westos
[root@westos_student50 ftp]# systemctl restart vsftpd.service 
[root@westos_student50 ftp]# lftp 172.25.254.50
lftp 172.25.254.50:~> cd pub/                     
cd ok, cwd=/pub
lftp 172.25.254.50:/pub> ls
-rw-r--r--    1 14       50           2792 Nov 23 14:51 passwd
drwx------    2 14       50              6 Nov 23 14:22 test
lftp 172.25.254.50:/pub> put /etc/inittab 
490 bytes transferred                                            
lftp 172.25.254.50:/pub> ls
-rw-------    1 1000     50            490 Nov 24 03:21 inittab
-rw-r--r--    1 14       50           2792 Nov 23 14:51 passwd
drwx------    2 14       50              6 Nov 23 14:22 test
lftp 172.25.254.50:/pub> quit
[root@westos_student50 ftp]# id westos
uid=1000(westos) gid=1000(westos) groups=1000(westos)

FTP/Vsftpd服务的部署及优化——上(vsftpd安装及启用、匿名用户访问控制(登录,默认发布目录,上传,速率,登录用户数量等))_第18张图片

FTP/Vsftpd服务的部署及优化——上(vsftpd安装及启用、匿名用户访问控制(登录,默认发布目录,上传,速率,登录用户数量等))_第19张图片

  •   文件inittab的拥有者为设定的westos,但其权限为默认权限600,不是我们所设定的644,这是因为当我们设定chown_username之后上传文件权限将不是用anon_umask=xxx参数设定,而是用chown_upload_mode=xxxx来重新设定,修改vsftp服务的配置文件,重启服务,访问ftp,在pub/中put上传另一个文件,文件adjtime的拥有者为设定的westos且权限为644
[root@westos_student50 ftp]# vim /etc/vsftpd/vsftpd.conf
chown_uploads=YES
chown_username=westos
chown_upload_mode=0644
[root@westos_student50 ftp]# systemctl restart vsftpd.service 
[root@westos_student50 ftp]# lftp 172.25.254.50
lftp 172.25.254.50:~> cd pub/
cd ok, cwd=/pub
lftp 172.25.254.50:/pub> put /etc/adjtime 
18 bytes transferred
lftp 172.25.254.50:/pub> ls
-rw-r--r--    1 1000     50             18 Nov 24 03:27 adjtime
-rw-------    1 1000     50            490 Nov 24 03:21 inittab
-rw-r--r--    1 14       50           2792 Nov 23 14:51 passwd
drwx------    2 14       50              6 Nov 23 14:22 test

FTP/Vsftpd服务的部署及优化——上(vsftpd安装及启用、匿名用户访问控制(登录,默认发布目录,上传,速率,登录用户数量等))_第20张图片 

FTP/Vsftpd服务的部署及优化——上(vsftpd安装及启用、匿名用户访问控制(登录,默认发布目录,上传,速率,登录用户数量等))_第21张图片

 9、登陆用户数量控制:max_clients=x

  • 在三个终端分别访问ftp(即同时有三个匿名用户访问ftp),都可以成功访问,在企业的实际应用中,这显然是不合理的,应该设置一个访问人数上限

FTP/Vsftpd服务的部署及优化——上(vsftpd安装及启用、匿名用户访问控制(登录,默认发布目录,上传,速率,登录用户数量等))_第22张图片

  •  编辑vsftp服务的配置文件,设置访问人数上限为2,重启服务
[root@westos_student50 ftp]# vim /etc/vsftpd/vsftpd.conf
 53 max_clients=2
[root@westos_student50 ftp]# systemctl restart vsftpd.service

FTP/Vsftpd服务的部署及优化——上(vsftpd安装及启用、匿名用户访问控制(登录,默认发布目录,上传,速率,登录用户数量等))_第23张图片 

  • 测试,前两个顺利登入,第三个被拒绝 

FTP/Vsftpd服务的部署及优化——上(vsftpd安装及启用、匿名用户访问控制(登录,默认发布目录,上传,速率,登录用户数量等))_第24张图片

 10、上传文件速率控制:anon_max_rate=xxxx

  • 所有命令
[root@westos_student50 ftp]# dd if=/dev/zero of=/tmp/bigfile bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 2.93426 s, 357 MB/s
[root@westos_student50 ftp]# lftp 172.25.254.50
lftp 172.25.254.50:~> cd pub/
cd ok, cwd=/pub                  
lftp 172.25.254.50:/pub> put /tmp/bigfile
1048576000 bytes transferred in 4 seconds (241.24 MiB/s)            
lftp 172.25.254.50:/pub> quit
[root@westos_student50 ftp]# vim /etc/vsftpd/vsftpd.conf 
anon_max_rate=102400
[root@westos_student50 ftp]# systemctl restart vsftpd.service 
[root@westos_student50 ftp]# lftp 172.25.254.50
lftp 172.25.254.50:~> cd pub/
cd ok, cwd=/pub
lftp 172.25.254.50:/pub> rm -fr bigfile    ###先删除之前下载的文件
rm ok, `bigfile' removed                
lftp 172.25.254.50:/pub> put /tmp/bigfile   #####再次下载
`/tmp/bigfile' at 45666038 (4%) 106.6K/s eta:2h40m [Sending data] 
  • 首先生成一个1000M大小的文件,访问ftp在pub/中上传该文件,可以看到文件上传速率很大,而在实际应用中,企业作为服务提供方,需要对用户上传速率进行限制

FTP/Vsftpd服务的部署及优化——上(vsftpd安装及启用、匿名用户访问控制(登录,默认发布目录,上传,速率,登录用户数量等))_第25张图片

  •  编辑vsftp服务的配置文件,设置最大上传速率为102400(默认单位为KB),重启服务,再次在pub/中上传该文件,可以看到文件上传速率逐渐降低至限定速度之下

 FTP/Vsftpd服务的部署及优化——上(vsftpd安装及启用、匿名用户访问控制(登录,默认发布目录,上传,速率,登录用户数量等))_第26张图片

  •  测试、速率变慢了

你可能感兴趣的:(Linux系统工程师,服务器,centos,linux)