虚拟FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。
1.首先要下载vsftpd软件
出现下图表示下载完成:
本机ip检查后为:192.168.122.1
检查getenforce的状态是disabled,不是的话要更改。
在vsftpd的一个配置文件里面找,然后更改
连接192.168.122.1的lftp服务,发现成功连接,并且目录在、pub下面
给IP为192.168.122.1的一端增加了一个用户,名为hello,下面我们用hello来做实验
我们用hello的用户登录了,并且可以给/pub中传入文件
那么这些读写的权利是谁决定的呢,主要是在主机的这个配置文件中:
这个配置文件中我们可以对某些特定的权限进行修改
但是在以下试验中会遇到各种问题和报错,我们可以根据报错IP进行更改:
实验的主要报错信息和id为:
500 表示文件系统权限过大
530 表示用户认证失败
550 表示服务本身功能没有开放
553 本地文件系统权限过小
下面我们就可以开始实验了:
比如说:
打开文件: vim /vsftpd/vsftpd.conf
修改配置文件:
R0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzMyMzY2OQ==,size_16,color_FFFFFF,t_70)
更改为:
将匿名用户改为不可登录:
lftp的时候进去了,但是一直ls连接不上
如果将配置文件中的可写,改为不可写
当hello用户上传文件会被拒
给30行加个以下命令,表示匿名用户对登录用户可写
但是我们还需要对/pub权限进行修改。
下面匿名用户就可以在登录机下面上传文件了
关于文件的保留权限
默认为022
我们可以自己进行更改
于是新建的文件中的haha的保留权限就是077了
更改登录用户的默认进入路径
首先在被登录端建立目录和文件
在配置文件 vim /vsftpd/vsftpd.conf 写入:local_root=/nihao
重启文件系统配置后:发现就在/nihao的目录下面了
更改黑白名单:
黑名单有两种,一种是暂时黑名单,一种为永久黑名单,他的配置文件在下图中:在/etc/vsftpd/ftpusers 中
打开文件显示的都是不能利用的登录用户连接主机的黑名单:
我们在黑名单中加入 hello用户,她就不能再登录了
总结:在ftp服务中,所有的权限都可以使用命令 vim /vsftpd/vsftpd.conf 在这个文件中进行修改和限制:
常用的如下:
1.关于匿名用户的设置:匿名用户其实本质上是ftp用户,上面我们将所属组改为ftp就是这个原因的
anonymous_enable=YES/NO(YES)
控制是否允许匿名用户登入,YES为允许匿名登入,NO为不允许。默认值为YES。
write_enable=YES/NO(YES)
是否允许登陆用户有写权限。默认值为YES。
no_anon_password=YES/NO(NO)
启动这项功能,则使用匿名登入时,不会询问密码。默认值为NO。一般情况下还是要添加密码的
ftpftp_username=ftp
定义匿名登入的使用者名称。默认值为ftp。
anon_root=/pub
使用匿名登入时,所登入的目录。默认值为/pub。需要注意得是ftp目录不能是777的权限属性,即匿名用户的家目录不能有777的权限。
anon_upload_enable=YES/NO(NO)
如果设为YES,则允许匿名登入者有上传文件(非目录)的权限,只有在write_enable=YES时,此项才有效。当然,匿名用户必须要有对上层目录的写入权。默认值为NO。
anon_world_readable_only=YES/NO(YES)
如果设为YES,则允许匿名登入者可以下载到本机,不能直接在FTP服务器中打开阅读)。默认值为YES。
anon_mkdir_write_enable=YES/NO(NO)
如果设为YES,则允许匿名登入者有新增目录的权限,只有在write_enable=YES时,此项才有效。当然,匿名用户必须要有对上层目录的写入权。默认值为NO。
anon_other_write_enable=YES/NO(NO)
如果设为YES,则允许匿名登入者更多于上传或者建立目录之外的权限,譬如删除或者重命名。(如果anon_upload_enable=NO,则匿名用户不能上传文件,但可以删除或者重命名已经存在的文件;如果anon_mkdir_write_enable=NO,则匿名用户不能上传或者新建文件夹,但是可以删除或者重命名已经存在的文件夹。)默认值为NO。
anon_umask=077
设置匿名登入者新增或上传档案时的umask值。默认值为077,则新建档案的对应权限为700。
2.关于本地用户的设置,就是其他电脑在登录主机时通过本地用户登录:
local_enable=YES/NO(YES)
控制是否允许本地用户登入,YES为允许本地用户登入,NO为不允许。默认值为YES。
local_root=/home/username(username指的是登录时候所使用的用户)
当本地用户登入时,将被更换到定义的目录下。默认值为各用户的家目录。
write_enable=YES/NO(YES)
是否允许登陆用户有写权限,默认值为YES。
local_umask=022
本地用户文件时的umask值。默认值为077。
除了上述,还有一些特殊的设置,如下:
1. 访问速率设置(限制传输速度)
anon_max_rate=102400
设置匿名登入者使用的最大传输速度,单位为B/s,我们上面更改为了102400,0表示不限制速度。默认值为0。
local_max_rate=0
本地用户使用的最大传输速度,单位为B/s,0,表示不限制速度。预设值为0。
2.连接数量限制
max_clients=2
设置vsftpd允许的最大连接数,设置为2,则同时允许有2个连接,超出的连接将被拒绝。
3.用户黑白名单的设定:
永久黑名单在 vim /etc/vsftpd/ftpusers 文件中设定,在这个文件中的用户什么时候都不可以使用lftp用户登录
临时黑名单:vim /etc/vsftpd/user_list 是用户临时黑名单,在所有用户都在黑名单的时候,这个文件中的用户就可以登录了,变成白名单了。
补充:
在对于匿名用户登陆的时候,匿名用户在lftp到主机之后,往往在同一个目录下,那么我们需要如何把他分开各自建立一个目录呢?
首先:在/etc/vsftpd
目录中建立一个文件:
文件名称如下,在里面可以写入要添加的用户名称和密码
我们设置了3个用户,后面实验都用这三个用户即可
将写好的文件中的用户和密码进行hash加密
在新建一个文件,写入加密过程
再更改配置文件:
更改配置文件后从新启动:systemctl restart vsftpd
现在用westos1用户登陆发现在pub目录下面
用westos2用户登陆也在pub下面:
在配置文件中加入126 和127 行,表示下面用那个用户登陆,进入之后就在那个用户的家目录中
再次登陆发现成功了