关于ftp的介绍

时间:2024-03-29 07:51:02

一、 ftp的定义

ftp:// ##文件传输协议
为internet上如今最常用的最老的网络协议之一,它为系统提供了通过网络与远程服务器进行传输的简单方法。
载RED HAT ENTERPRISE LINUX6中,FTP 服务器包的名称为 VSFTPD ,它代表Very Secure File TransferProtocol Damon 服务器名称也叫做 vsftpd
默认配置文件让 ANONYMOUS 用户只能用于下载位于 CHROOT 目录的内容。/var/ftp/这意味着远程 FTP 客户端能以用户 anonymous 或 ftp 身份连接到服务器(无需密码),并从 ftp 服务器上的 /var/ftp/ 目录下载文件(其本地 ftp 用户可以读取这些文件)

二、 ftp协议提供的软件

*地址:http://172.25.254.93/rhel7.2
注:其为镜像软件,地址也为自行设定
*软件:vsftpd

三、 部署ftp服务

*前期准备操作:
[[email protected] ~]# vim /etc/yum.repos.d/rhel_dvd.repo  ##yum 源指定
关于ftp的介绍
[[email protected] ~]# vim /etc/sysconfig/selinux  ##设置为disable模式
关于ftp的介绍
[[email protected] ~]# reboot  ##重启
查看其配置文件是否更改之法:
[[email protected] vsftpd]# getenforce
Disabled

*ftp部署过程:
>>yum clean all        ##清除日志--当更改好yum源指定后,无法正常安装软件,可用此命令
>>yum install vsftpd -y    ##安装vsftpd服务
>>systemctl start vsftpd     ##开启vsftpd服务
>>systemctl enable vsftpd     ##设置服务为开机启动
>>firewall-cmd --permanent --add-service=ftp 
    firewall-cmd --reload      ##在防火墙中加入ftp策略
>安装lftp

yum install lftp -y


四、 ftp服务的基本信息

>软件安装包:    vsftpd
>默认发布目录:    /var/ftp
>协议接口:    21/tcp
查看方式:
[[email protected] ~]# ss -antple | grep vsftpd
LISTEN     0      32                       :::21                      :::*      users:(("vsftpd",2903,3)) ino:53573 sk:ffff880022fb6000 <->
>服务配置文件:    /etc/vsftpd/vsftpd.conf
>报错id解析:
550表示服务本身不允许该动作--更改配置文件/...
553本地文件系统对你无权力--更改文件权限。
530表示登陆失败即用户认证失败--密码错误
500文件系统权限过大--解决:例chmod 755 /var/ftp/

五、用户权限的设置

更改在配置文件:
vim /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd.service


**匿名用户**
>anonymous_enable=YES|NO  ##匿名用户是否可以登陆ftp服务器 
实操:
更改前,在匿名用户登陆ftp服务显示:
关于ftp的介绍
注:表示可以登陆
更改后
关于ftp的介绍
注:表示不可以登陆

**本地用户**
>local_enable=YES   ##本地用户是否可以登陆
>write_enable=YES   ##ftp是否对登陆可写
附:
1)本地用户登陆方式
lftp 172.25.254.218 -u student
2)本地用户只能上传文件,不可建立文件
关于其以上命令,大家可自行验证。

1. 匿名用户上传

>vim /etc/vsftpd/vsftpd.conf
  write_enable=YES
  anon_upload_enable=YES
(取消注释)
>systemctl restart vsftpd.service 
>chgrp ftp /var/ftp/pub
>chmod 775 /var/ftp/pub

**制定匿名用户家目录修改**
>anon_root=/directory

实操:

1)配置文件更改如下:
关于ftp的介绍
2)错误排查

*状况:

[cpp] view plain copy
  1. [[email protected] Desktop]$ lftp 172.25.254.10  
  2. <span style="font-size:14px;">lftp 172.25.254.10:~> ls  
  3. lftp 172.25.254.10:/> put /etc/passwd  
  4. put: Access failed: <span style="color:#3333FF;">553</span> Could not create file. (passwd) -->553表示文件的权限不</span>  

*解决1:

[cpp] view plain copy
  1. [[email protected] pub]# chmod 777 /westos  
  2. <span style="font-size:12px;">  
  3. <span style="font-size:14px;color:#FF0000;">此种方法对于系统来说安全度不够</span></span>  

*解决2:

[cpp] view plain copy
  1. [[email protected] westos]# chgrp ftp /westos  
  2. <span style="font-size:14px;">[[email protected] westos]# chmod 775 /westos</span>  

3)结果如下:

[cpp] view plain copy
  1. [[email protected] westos]# ls /westos  
  2. <span style="font-size:14px;"> passwd</span>  

**匿名用户上传文件默认权限**
anon_umask=xxx
实操:
1)配置文件更改如下:
关于ftp的介绍
2)结果如下:
关于ftp的介绍

**匿名用户建立目录**
anon_mkdir_write_enable=YES|NO(取消注释)
注:只能建立目录

**匿名用户下载**
anon_world_readable_only=YES|NO    ##设定参数值为no表示匿名用户可以下载
关于ftp的介绍

**匿名用户删除**
anon_other_write_enable=YES|NO
关于ftp的介绍

**匿名用户使用的用户身份修改**
chown_uploads=YES
chown_username=student

(以上两个更改方式:取消注释)

**最大上传速率**
anon_max_rate=102400

**最大链接数**
max_clients=2
关于ftp的介绍

2. 本地用户设定

local_enable=YES|NO
write_enable=YES|NO

1)本地用户家目录修改

local_root=/directory
关于ftp的介绍
注:若要在指定家目录(/westos)中建立文件需要更改指定家目录/westos权限

2)本地用户上传文件权限

local_umask=xxx

3)限制本地用户浏览/目录

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

*用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
(之上更改方式为取消注释)


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

4)限制本地用户登陆

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

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