欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

针对匿名用户ftp服务的一些设定

程序员文章站 2022-05-10 23:25:26
...

vsftpd服务

做实验前的一些准备工作:
检查selinux这个文件,将它的值改为disabled,检查yum源。
针对匿名用户ftp服务的一些设定

针对匿名用户ftp服务的一些设定

1.什么是 ftp

ftp://  ##文件传输协议
FTP 是File Transfer Protocol(文件传输协议)的英文简称,用于Internet上的控制文件的双向传输。FTP 协议允许在使用不同文件系统的主机之间进行数据传送
lftp是一个功能强大的下载工具
 文件上传下载操作:
     单个文件:
     上传: put 文件名
     下载: get 文件名
    多个文件:
     上传多个文件(支持通配符):mput 文件名1 文件名2
     下载多个文件(支持通配符):mget 文件名1 文件名2
    整个目录:
     上传文件夹:mirror -R 文件夹名
     下载文件夹:mirror 下载文件夹存放到本地目录的位置

2 ftp协议提供的软件

在rhel7中:  vsftpd

3 部署 ftp 服务

yum install vsftpd  -y      ##安装ftp服务
systemctl start vsftpd      ##开启ftp服务
systemctl stop firewalld    ##关闭防火墙
systemctl enable vsftpd     ##开机自动启动ftp服务
lftp ip                     ##能登陆并且显示,表示安装成功

针对匿名用户ftp服务的一些设定

4 ftp服务的基本信息

软件安装包:   vsftp
默认发布目录: /var/ftp
协议借口:     21 
怎么看一个服务的接口:
服务配置文件: /etc/vsftpd/vsftpd.conf
报错id的解析:
    530   密码错了
    550   权限不够 服务本身不允许
    553   本地文件系统对你不可写
    500   文件系统权限太大   /var/ftp 权限不能为777 

5 配置文件

vim /etc/vsftpd/vsftpd.conf  ##编辑配置文件
systemctl restart vsftpd     ##重启服务,使更改后的配置文件生效

5.1 匿名用户设定

<匿名用户是否可以登陆>

*anonymous_enable=YES|NO        ##匿名用户是否可以登陆

首先我们先编辑配置文件,大约在12行,我们将这个匿名用户登陆权限改成NO
针对匿名用户ftp服务的一些设定
我们去用匿名用户测试,结果证明匿名用户不能使用ftp服务。
针对匿名用户ftp服务的一些设定

作完实验后我们需要将匿名用户权限改回YES,因为后面需要用匿名用户实验,所以匿名用户是要能访问ftp服务才可以。
针对匿名用户ftp服务的一些设定

<本地用户>

local_enable=YES|NO         ##本地用户是否可以登陆
write_enable=YES|NO         ##ftp是否对登陆用户可写

我们修改配置文件如下: wq保存退出。更改完成记得重启ftp服务
针对匿名用户ftp服务的一些设定
我们用本地用户测试,测试发现本地用户是可以访问ftp服务的。
针对匿名用户ftp服务的一些设定
我们在student用户的家目录里创建一个studentfile文件,然后再用student身份去访问ftp服务,发现我们刚进去的地方有我们刚刚建立的studentfile文件。这就说明,我们使用student身份去访问ftp服务的入口为student的家目录。
针对匿名用户ftp服务的一些设定

针对匿名用户ftp服务的一些设定

<匿名用户上传>

vim /etc/vsftpd/vsftpd.conf
write_enable=YES
anon_upload_enable=YES
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub

默认是不允许匿名用户上传文件的。550报错为服务本身不允许。
针对匿名用户ftp服务的一些设定
修改配置文件如下,然后重启服务
针对匿名用户ftp服务的一些设定
针对匿名用户ftp服务的一些设定
这个时候我们使用上传文件,还是不可以,553表示文件权限不够。
针对匿名用户ftp服务的一些设定
于是我们去修改一下/var/ftp/pub这个目录的权限,这样我们就可以在这个目录下建立文件了。记得一定是/var/ftp/pub这个目录,不能给/var/ftp加777的权限。
针对匿名用户ftp服务的一些设定

针对匿名用户ftp服务的一些设定
记得一定是/var/ftp/pub这个目录,不能给/var/ftp加777的权限。否则会报错500,权限过大。记得将权限改回去。
针对匿名用户ftp服务的一些设定

针对匿名用户ftp服务的一些设定

针对匿名用户ftp服务的一些设定
我们发现建立出来的文件的属主id为14,属组id为50,而我们的ftp用户id刚好是这样,所以我们在用匿名用户建立文件时,身份为ftp用户,那么我们就可以将/var/ftp/pub目录的权限改为775,目录组改为ftp,这样就可以正常建立文件了。
针对匿名用户ftp服务的一些设定

<匿名用户家目录修改>

anon_root=/direcotry

修改配置文件,在配置文件中加入这一行,然后保存退出。我们去创建出来这个目录,然后在目录里面创建了文件。当我们用匿名用户登陆的时候,在其家目录里面发现了上面建立的文件。这就说明他的家目录就是我们指定的地方。
针对匿名用户ftp服务的一些设定

针对匿名用户ftp服务的一些设定

针对匿名用户ftp服务的一些设定
这个参数在我们作完实验后注释掉。不要影响到后面的实验
针对匿名用户ftp服务的一些设定

<匿名用户上传文件默认权限修改>

anon_umask=xxx

这里给的umask=022,那么建立出来的文件的权限应该为777-111-022=644。结果如下图:group是我们新建出来的文件,权限为644。
针对匿名用户ftp服务的一些设定

针对匿名用户ftp服务的一些设定

<匿名用户建立目录>

anon_mkdir_write_enable=YES|NO

针对匿名用户ftp服务的一些设定

针对匿名用户ftp服务的一些设定

<匿名用户下载>

anon_world_readable_only=YES|NO ##设定参数值为no表示匿名用户可以下载

用get下在文件,下在下来的文件将会保存在当前路径下。
针对匿名用户ftp服务的一些设定

针对匿名用户ftp服务的一些设定

<匿名用户删除>

anon_other_write_enable=YES|NO  

默认情况下匿名用户是不能删除文件的
针对匿名用户ftp服务的一些设定
修改配置文件,重启服务使其生效,然后就可以删除了。
针对匿名用户ftp服务的一些设定
针对匿名用户ftp服务的一些设定

<匿名用户使用的用户身份修改>

chown_uploads=YES
chown_username=student

我们在/pub目录下新建了个文件group,查看可知属主id为1004,student的id刚好为1004。
针对匿名用户ftp服务的一些设定

针对匿名用户ftp服务的一些设定

针对匿名用户ftp服务的一些设定

<最大上传速率>

anon_max_rate=2048000

针对匿名用户ftp服务的一些设定

针对匿名用户ftp服务的一些设定

<最大链接数>

max_clients=1

针对匿名用户ftp服务的一些设定

针对匿名用户ftp服务的一些设定
作完实验,请将这些参数注释掉,不要影响以后的使用。
针对匿名用户ftp服务的一些设定

5.2本地用户设定

local_enable=YES|NO ##本地用户登陆限制
write_enable=YES|NO ##本地用户写权限限制

<本地用户家目录修改>

local_root=/directory

修改配置文件,重启服务生效,我们指定本地用户的家目录为/westos这个目录,我们可以看见这个目录下有三个文件。当我们用student用户访问ftp服务的时候,他的家目录下有这三个文件,说明它的家目录为/westos。
针对匿名用户ftp服务的一些设定

针对匿名用户ftp服务的一些设定

针对匿名用户ftp服务的一些设定

<本地用户上传文件权限>

local_umask=000

修改配置文件,将上一例的家目录注释,重启服务。我们用student用户新建passwd文件时,他的权限为777-111-000=666。同样的作完实验,将权限改回022。
针对匿名用户ftp服务的一些设定

针对匿名用户ftp服务的一些设定

<限制本地用户浏览/目录>

所有用户被锁定到自己的家目录中
chroot_local_user=YES
chmod u-w /home/*

这是未限制之前student可以看到的:
针对匿名用户ftp服务的一些设定
修改完配置文件还有文件权限后,student用户不能访问到/下面的东西了:
针对匿名用户ftp服务的一些设定

针对匿名用户ftp服务的一些设定

用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

我们将student用户写入黑名单,student用户就被锁在了自己的家目录中,而黑名单外的xixi,就可以访问到/目录下面的文件。
针对匿名用户ftp服务的一些设定

针对匿名用户ftp服务的一些设定

针对匿名用户ftp服务的一些设定

用户白名单建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

同样的,我们将student用户放在名单中,不过此时,名单已经变成了白名单。那么只有白名单中的用户可以跳出家目录,其他用户都被锁到了自己的家目录中。
针对匿名用户ftp服务的一些设定

针对匿名用户ftp服务的一些设定

<限制本地用户登陆>

vim /etc/vsftpd/ftpusers        ##用户黑名单
vim /etc/vsftpd/user_list       ##用户临时黑名单

针对匿名用户ftp服务的一些设定

针对匿名用户ftp服务的一些设定

用户白名单设定
userlist_deny=NO
/etc/vsftpd/user_list           ##参数设定,此文件变成用户白名单,只在名单中出现的用户可以登陆ftp

针对匿名用户ftp服务的一些设定

针对匿名用户ftp服务的一些设定

相关标签: 文件传输