FTP原理与配置


FTP的简介

FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。
同时,它也是一个应用程序(Application)。
基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。

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

20端口用于建立数据连接,并传输文件数据
21端口用于建立控制连接,并传输FTP控制命令

FTP的数据连接模式

主动模式:服务器主动发起数据连接

在这里插入图片描述
在第1步中,客户端的命令端口与FTP服务器的命令端口建立连接,并发送命令“PORT 1027”。然后在第2步中,FTP服务器给客户端的命令端口返回一个"ACK"。在第3步中,FTP服务器发起一个从它自己的数据端口(20)到客户端先前指定的数据端口(1027)的连接,最后客户端在第4步中给服务器端返回一个"ACK"。

被动模式:服务器被动等待数据连接

在这里插入图片描述
在第1步中,客户端的命令端口与服务器的命令端口建立连接,并发送命令“PASV”。然后在第2步中,服务器返回命令"PORT 2024",告诉客户端(服务器)用哪个端口侦听数据连接。在第3步中,客户端初始化一个从自己的数据端口到服务器端指定的数据端口的数据连接。最后服务器在第4 步中给客户端的数据端口返回一个"ACK"响应。

svftpd的安装和配置

svftpd的安装和配置

在这里插入图片描述

cd /etc/vsftpd
ls //切换到安装好vsftpd目录下查看文件
cp vsftpd.conf vsftpd.conf.bak //将vsftpd的配置文件进行备份

在这里插入图片描述

vsftpd初始化全局配置

vim /etc/vsftpd/vsftpd.conf

在这里插入图片描述

重启vsftpd服务,关闭安全防护

[root@localhost vsftpd]#systemctl restart vsftpd
[root@localhost vsftpd]#systemctl stop firewalld
[root@localhost vsftpd]#setenforce 0

在这里插入图片描述

chmod 777 /var/ftp/pub/ 这是匿名用户的默认根目录
echo ‘hello world!’ > test.txt

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

匿名访问测试

在Windows系统打开开始菜单,输入cmd 命令打开命令提示符
#建立ftp连接
#匿名访问,用户名为ftp,密码为空,直接回车即可完成登录

ftp> cd pub #切换到pub目录ftp
ftp> ls
ftp> get test.txt #获取目录中的文件下载到电脑
ftp> put test2.txt

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

在这里插入图片描述

存在的缺点:匿名用户权限过高,存在安全隐患

设置本地用户可以访问ftp,禁止匿名用户登录

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

对本地用户访问切换目录进行限制

添加切换目录的限制配置 :

vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES #将访问禁锢在用户的宿主目录中 取消注释即可
allow_writeable_chroot=YES #允许被限制的用户主目录具有写权限

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

更改用户登录的默认根目录

anon_root=/var/www/html #anon_root 针对匿名用户
local_root=/var/www/html #local_root 针对本地用户

vim vsftpd.conf
在这里插入图片描述
在这里插入图片描述

chmod 777 /var/www/html #赋予目录可读可写可执行权限

在这里插入图片描述
然后重启vsftpd服务器
在这里插入图片描述
在这里插入图片描述

黑名单和白名单的使用

在安装vsftpd服务后,官方贴心的为我们在服务目录中提供了user_list (其中就是为了我们更好利用黑名单和白名单的手册)。
黑名单:在黑名单上标记的用户,是我们禁止访问的对象。
白名单:在白名单上标记的用户是我们允许访问的对象,从某种意义上来讲,白名单比黑名单的制定更为严格和安全。

在这里插入图片描述
在这里插入图片描述
user_list 本身就是黑名单,加入了之后就不能登录

userlist_enable=YES #启用user_list用户列表文件
userlist_deny=NO #设置白名单,仅允许user_list用户列表文件的用户访问。默认为YES,为黑名单,禁用
systemctl restart vsftpd

在这里插入图片描述

在这里插入图片描述
root登录不了是因为约定俗成

在这里插入图片描述

vim ftpusers #注释root保存退出重启vsftpd

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FTP(File Transfer Protocol)是一种用于在网络上传输文件的协议。FTP 客户端可以通过 FTP 服务器上传和下载文件。在 Linux 操作系统中,FTP 服务器可以使用 vsftpd (Very Secure FTP Daemon) 来实现。 安装 vsftpd 要安装 vsftpd,可以使用 apt 命令: ``` sudo apt update sudo apt install vsftpd ``` 配置 vsftpd 安装完成后,需要配置 vsftpd。首先,备份默认配置文件: ``` sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak ``` 然后,使用编辑器(如 nano 或 vim)打开 /etc/vsftpd.conf 文件: ``` sudo nano /etc/vsftpd.conf ``` 在这个文件中,可以对 FTP 服务器进行各种配置。以下是一些常用的配置选项和它们的含义: - anonymous_enable:是否允许匿名用户访问 FTP 服务器。 - write_enable:允许写入权限。 - local_enable:允许本地用户登录 FTP 服务器。 - chroot_local_user:将本地用户限制在他们的主目录中。 - user_sub_token:指定用户主目录中的子目录名称。 - listen_ipv6:是否启用 IPv6 监听。 根据需要更改这些选项的值。例如,如果要允许本地用户登录并具有写入权限,可以将以下行添加到 /etc/vsftpd.conf 文件中: ``` local_enable=YES write_enable=YES ``` 创建 FTP 用户 现在,需要创建一个 FTP 用户以便登录 FTP 服务器。可以使用以下命令创建一个名为 myuser 的用户: ``` sudo useradd -m myuser sudo passwd myuser ``` 这将创建一个名为 myuser 的用户并设置密码。 启动 FTP 服务器 完成配置后,可以使用以下命令启动 vsftpd 服务: ``` sudo systemctl start vsftpd ``` FTP 服务器现在应该已经在监听连接请求了。可以使用 FTP 客户端来测试连接。 ``` ftp <FTP服务器地址> ``` 使用上面创建的 FTP 用户进行登录并上传和下载文件。 这就是 FTP 安装和配置的基本原理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值