Linux网络——FTP服务

一、FTP服务基础

FTP(File Transfer Protocol)是典型的C/S结构的应用层协议, 就是在Intel用来传送文件的协议,需要有服务端软件和客户端软件两个部分共同实现文件传输功能。关于FTP服务,可以从接下来几个方面为大家介绍一下:

端口:
FTP服务器默认使用TCP协议的20、21端口与客户端进行通信:

  • 20端口: 用于建立数据连接,传输文件数据;
  • 21端口: 建立控制连接,传输FTP控制指令;
    配置文件:
    服务配置文件: /etc/vsftpd/vsftpd.conf

== 数据连接:==

  • 主动模式: 服务器主动发起连接。 首先由客户端向服务端的21端口建立FTP控制连接,当需要传输数据时,客户端以PORT命令告知服务器“我打开了某端口,你过来接我”,于是服务器从20端口向客户端的该端口发送请求并建立数据连接;

  • 被动模式: 服务器被动等待数据连接。 如果客户机所在网络的防火墙禁止主动模式连接,通常会使用被动模式。首先由客户端向服务端的21端口建立FTP控制连接,当需要传输数据时,服务器以PASV命令告知客户端“我打开了某端口,你过来连接我”,于是客户端向服务器的该端口(非20)发送请求并建立数据连接。

二、在服务器中部署FTP服务

2.1 关闭内核级的加强形火墙

vim /etc/sysconfig/selinux  ##关闭selinux
SELINUX=disabled    ##第7行
reboot  ##重启虚拟机nux状态
getenforce  ##查询selinux状态

在这里插入图片描述
在这里插入图片描述

2.2 安装服务

yum install -y lftp
yum install -y vsftpd

在这里插入图片描述

2.3 设置防火墙永久允许ftp服务

==方法一:==命令设定防火墙

systemctl  start vsftpd                             ##打开vsftp服务
systemctl  enable vsftpd                            ##允许开机自动启动
systemctl start firewalld	                        ##打开防火墙
firewall-cmd --permanent --add-service=ftp          ##允许ftp通过防火墙
systemctl restart firewalld                         ##重新开启防火墙(刷新)

在这里插入图片描述
在这里插入图片描述

==方法二:==图新设定防火墙
进入虚拟机图新页面 >> 桌面

  • Linux桌面左上角 应用程序 >> 防火墙设置 >> 文件 >> 配置:永久 >> public >> 勾选ftp

在这里插入图片描述

  • 选项 >> 重载防火墙

在这里插入图片描述

2.4 在客户端测试

在这里插入图片描述

三、 ftp的配置文件中相关功能的实现

配置文件:/etc/vsftpd/vsftpd.conf

日常报错问题:

550 ##文件权限过大
530 ##用户认证失败
550 ##服务本身功能未开放
553 ##本地文件系统权限太小

1)匿名用户设定
anonymous_enable=YES|NO  ##匿名用户登陆限制

#<匿名用户上传>
vim /etc/vsftpd/vsftpd.conf
write_enable=YES
anon_upload_enable=YES
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub

#<匿名用户家目录修改>
anon_root=/direcotry

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

#<匿名用户建立目录>
anon_mkdir_write_enable=YES|NO

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

#<匿名用户删除>
anon_other_write_enable=YES|NO 

#<匿名用户使用的用户身份修改>
chown_uploads=YES
chown_username=student
chown_uploads_mode=0644
#<最大上传速率>
anon_max_rate=102400

#<最大链接数>
max_clients=2

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

#<本地用户家目录修改>
local_root=/directory

#<本地用户上传文件权限>
local_umask=xxx

#<限制本地用户浏览/目录>
所有用户被锁定到自己的家目录中
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

#<限制本地用户登陆>
vim /etc/vsftpd/ftpusers  ##用户黑名单
vim /etc/vsftpd/user_list  ##用户临时黑名单

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

3.1 匿名用户的设定

3.1.1 匿名用户登录

[root@Kiro /]# vim /etc/vsftpd/vsftpd.conf
12 anonymous_enable=YES        ##第12行 允许匿名用户访问
19 write_enable=YES            ##第19行 开启服务器的写权限
23 anon_umask=022              ##第23行 设置匿名用户上传数据文件的权限掩码
24 anon_upload_enable=YES      ##第24行 允许匿名上传文件
25 anon_mkdir_write_enable=YES  ##允许匿名用户创建目录

在这里插入图片描述

测试:
在这里插入图片描述

3.1.2 匿名用户上传

[root@Kiro ftp]# vim /etc/vsftpd/vsftpd.conf    ##服务机修改vsftp配置文件
19 write_enable=YES        ##ftp对用户可写
24 anon_upload_enable=YES    ##匿名用户上传

[root@Kiro ftp]# systemctl restart vsftpd  ##重启vsftp服务
[root@Kiro ftp]# chown :ftp pub            ##将pub的属组改为ftp
[root@Kiro ftp]# chmod 775 pub             ##允许pub文件被属组读和写
**  put命令————上传文件

在这里插入图片描述

测试:
在这里插入图片描述

3.1.3 匿名用户家目录修改

[root@Kiro]# vim /etc/vsftpd/vsftpd.conf   ##进入vsftp配置文件
13 anon_root=/opt     ##匿名用户家目录修改

在这里插入图片描述
在这里插入图片描述

验证:

在这里插入图片描述

3.1.4 匿名用户上传文件的权限修改

anon_umask=755     ##匿名用户新增文件时系统保留的权限为022(属组和其他用户可读)

##这一步需要把之前配置文件里的添加的匿名用户家目录给注释掉

在这里插入图片描述
在这里插入图片描述
验证:
在这里插入图片描述

3.1.5 匿名用户建立目录

anon_mkdir_write_enable=YES   ##匿名用户建立目录

在这里插入图片描述
测试:

在这里插入图片描述

3.1.6 匿名用户删除

anon_other_write_enable=YES    ##打开匿名用户删除功能
systemctl restart vsftpd     ##重启vsftpd服务

在这里插入图片描述
测试:
在这里插入图片描述

3.1.7 匿名用户下载

anon_world_readable_only=YES|NO  ##匿名用户下载,设定参数为NO表示
systemctl restart vsftpd   
                   

在这里插入图片描述

3.2本地用户的设定

3.2.1本地用户的登录

local_enable=YES

3.2.2 本地用户家目录修改

local_root=/directory
write_enable=YES  

3.2.3 本地用户上传文件权限

local_umask=022

3.2.4 限制本地用户浏览/目录

chroot_local_user=YES      ##所有用户被锁定到自己的家目录中 
chmod u-w  /home/*      ##用户不能有写的权限否则会报错500

3.2.5 本地用户黑名单的建立

userlist_enable=YES                     ##表示开启黑白名单功能    
userlist_deny=YES                       ##YES表示下面的路径为黑名单


[root@Kiro pub]# vim /etc/vsftpd/user_list
[root@Kiro pub]# cat /etc/vsftpd/chroot_list
zhangsan 

3.2.6 本地用户白名单的建立

userlist_enable=YES
userlist_deny=NO

vim /etc/vsftpd/user_list

在这里插入图片描述
在这里插入图片描述

3.2.7 限制本地用户登陆

/etc/vsftpd/ftpusers          ##永久黑名单
/etc/vsftpd/user_list         ##临时黑名单

vim /etc/vsftpd/vsftpd.conf
userlist_deny=NO          ##临时黑名单变为白名单

【扩展】

  • Linux : 运行环境:Very Secure FTP(vsftp)
  • TFTP: 69 简单FTP
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值