FTP

来源:互联网 发布:加工中心仿真软件 编辑:程序博客网 时间:2024/06/06 19:42

一、什么是ftp

    FTP(文件传输协议)是INTERNET上仍常用的最老的网络协议之一,他为系统提供了通过网络与远程服务器进行传输的简单方法,在REDHAT ENTREPRISE LINUX7中,FTP服务器包的名称为VSFTPD,他代表Very Secure File Transfer Protocol Damon,服务器名称也叫做vsftpd    vsftp提供三种远程的登录方式:    (1)匿名登录方式:不需要用户名和密码,就可以登录到服务器上    (2)本地用户方式:需要账户名和密码才能登录,而且,这些用户都必须是系统已经存在的用户    (3)虚拟用户:同样需要用户名和密码才能登录,但是,这些用户是系统里面没有的。      默认配置文件让ANONYMOUS用户只能下载位于CHROOT目录中的内容/var/ftp/这意味着远程FTP客户端能以用户ANONUMOUS或ftp身份连接到服务器(无需密码),并从ftp服务器上的/var/ftp/目录中下载文件(其本地ftp用户可以读取这些文件)

二、安装ftp

yum install vsftpd  -y      ##安装服务端(vsftp)和客户端(ftp)的应用软件systemctl start vsftpd           ##开启服务systemctl enable vsftpd          ##设置开机启动
systemctl start firewalldfirewall-config               ##防火墙策略,将ftp作为防火墙可允许访问的进入此界面后修改三个地方:1.勾选ftp;2.Configuration选Permanent;3.Option选择Reload Firewalld.

这里写图片描述

firewall-cmd --list-all     ##显示防火墙信息,service中已包含ftp服务

这里写图片描述

vim /etc/sysconfig/selinuxSELINUX=disabled               ##关闭selinux的功能或者setenforce 0                   ##Selinux内核文件,必须重启才能生效reboot                         ##重启

/etc/sysconfig/selinux/文件的内容:
这里写图片描述

lftp ip   ##能登录并且显示,表示安装成功

这里写图片描述

三、vsftpd文件信息

/var/ftp                 ##默认发布目录

这里写图片描述

/etc/vsftpd               ##配置目录ftpusers:指定哪些用户不能访问FTP服务器user_list:指定哪些用户不能访问FTP服务器,由vsftp.conf文件中的userlist_deny的值决定vsftpd.conf:主配置文件

这里写图片描述

四、vsftpd服务的配置参数

注意:每改完一个参数都要重启服务:systemctl restart vsftpd

1>匿名用户

1)anonymous_enable = YES | NO ##匿名用户登录限制

anonymous_enable = YES             ##登录成功

这里写图片描述

anonymous_enable = NO              ##登录失败

这里写图片描述

2)write_enable = YES | NO

## This controls whether any FTP commands which change the filesystem are allowed or not

3)anon_upload_enable = YES | NO

write_enable=YES                  ##可修改权限打开anon_upload_enable=YES            ##打开匿名用户上传限制chgrp ftp /var/ftp/pub            ##修改目录所属组为ftpchmod 775 /var/ftp/pub            ##给目录组可写的权限

这里写图片描述

write_enable=YES                  ##可修改权限打开anon_upload_enable=NO             ##关闭匿名用户上传限制chgrp ftp /var/ftp/pub            ##修改目录所属组为ftpchmod 775 /var/ftp/pub            ##给目录组可写的权限

这里写图片描述
550报错:说明服务不允许

4)anon_root=/directory ##匿名用户家目录修改

mkdir /westos                        ##新建一个目录作为匿名用户家目录touch /westos/linux{1..3}            ##往家目录里面写入三个文件,增强实验效果vim /etc/vsftpd/vsftpd.conf          ##修改配置文件anon_root=/westos                    ##指定位置

这里写图片描述

5) anon_umask=xxx ##匿名用户上传文件默认权限修改

默认建立的文件的权限为:600

这里写图片描述
这里写图片描述

6)anon_mkdir_write_enable = YES | NO ##匿名用户建立目录权限修改

默认情况下不能创建目录,如下:

这里写图片描述

这里写图片描述

这里写图片描述

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

默认情况下为:YES,不能够下载文件

这里写图片描述

这里写图片描述

这里写图片描述

8)anon_other_write_enable = YES | NO

anonymous users will be perform write operations other than upload and create directory , such as deletion and renaming.(以删除为例进行实验)

a.默认删除是被拒绝的

anon_other_write_enable =  NO

这里写图片描述

b.更改配置文件后

anon_other_write_enable = YES

这里写图片描述

9)chown_uploads=YES

The file mode to force for chown()ed anonymous uploads.

 chown_username=student              ##改变用户上传时的身份,默认为ftp,此处的用户一定是系统真实存在的用户 chown_upload_mode=0644              ##改变上传文件的权限,0表示无特殊权限

这里写图片描述

10)anon_max_rate=xxx ##设置最大上传速

默认情况下,传输速率是很快的
这里写图片描述

修改传输速率
这里写图片描述

速度降低了很多!!!
这里写图片描述

11)max_clients=xxx ##设置最大链接数

链接数值为可同时访问的人数的最大上限

2>本地用户

1)local_enable = YES | NO ##本地用户登录限制

这里写图片描述

下图上半部分可知,student用户本身是可以登录的;中间位置重启服务后,student不能登录
这里写图片描述

2)write_enable=YES|NO ##本地用户写权限

This controls whether any FTP commands which change the filesystem are allowed or not.

3)local_umask=xxx ##本地用户上传权限

这里写图片描述

设置为022后,用户上传的文件是644(即就是:-rw-r–r–)
这里写图片描述

4)限制用户浏览目录

a.所有用户被锁定到自己的家目录中

chroot_local_user=YESchmod u-w /home/*

用户westos登录成功后,既便切换到了/下,然后,还是只能看自己家目录下的内容
这里写图片描述

b.用户黑名单建立

chroot_local_user=NOchroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_list
 vim /etc/vsftpd/chroot_list        ##编写黑名单:westos

这里写图片描述

加入黑名单的westos活动范围受到了限制,不能够进入到/下,即便时切换到/,也只能看自己家目录下的内容

这里写图片描述

而此时的student用户则可以正常切换到/下

这里写图片描述

c.用户白名单建立

在黑名单建立操作的基础上,只需要将chroot_local_user的值由NO改为YES即可:chroot_local_user=YESchroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_list

这里写图片描述

westos为白名单之后,其他所有的用户均不能登录,student理所应当的被加入到了黑名单的行列中

这里写图片描述

d.限制本地用户登录

vim /etc/vsftpd/ftpusers     ##永久黑名单永久黑名单的优先级是最高的,这意味着,即便临时白名单上有永久黑名单的用户,也无法改变此用户被拉黑无法登录的事实vim /etc/vsftpd/user_list    ##临时黑名单当userlist_deny=NO时,临时黑名单变成白名单,只有在白名单上出现的用户可以登录ftp

3>虚拟用户

1)vim /etc/vsftpd/loginusers    ##建立虚拟用户名单##注意:在编辑文件的时候,第一行为用户名,第二行为用户密码;并且,每行结束不能有空格!user1123                          user2123
2)将明文的用户信息表用hash算法进行加密:db_load -T -t hash -f loginusers loginusers.db  ##可用file命令查看文件的类型是否为加密类型

这里写图片描述

3)vim /etc/pam.d/ckvsftpd                    ##认证信息的配置文件其中,pam_userdb.so是一个软件,可以检测用户身份是否合法,检测成功才可以登录!

这里写图片描述

4)vim /etc/vsftpd/vsftpd.conf                 ##修改配置文件的信息pam_service_name=ckvsftpd                   ##监测虚拟服务guest_enable=YES                            ##允许虚拟用户登录guest_username=ftp                          ##虚拟帐号身份指定为ftp

这里写图片描述

在实际操作中,对用户必然有所区分,那就得区别对待,将用户分开管理:mkdir /vuserdir/user{1,2}            ##用户user1和user2的家目录mkdir /etc/vsftpd/vsuerconf          ##存放各用户权限的目录##在各用户下建立标志性文件,以便实验效果明显touch /vuserdir/user1/user1file      touch /vuserdir/user2/user2filevim /etc/vsftpd/vsftpd.conf               ##修改vsftpd的配置文件local_root=/vuserdir/$USER         user_sub_token=$USER                      ##$USER表示登录用户的身份user_config_dir=/etc/vsftpd/vuserconf     ##用户权限存放目录
   为了使实验效果更加明显,在这里继续写各自的权限配置文件(文件名与用户名相同),分门别类进行管理,达到显著的实验效果:使user1不可以上传文件,user2可以上传文件

检查user1和user2未修改时的文件存在情况
这里写图片描述

在/etc/vsftpd/vuserconf/中写入相应的关于上传拒绝与否的代码

vim /etc/vsftpd/vuserconf/user1 write_enable=NO

这里写图片描述

user1上传文件被拒绝;user2成功上传文件
这里写图片描述

原创粉丝点击