Linux网络服务:网络设置与基础服务2

FTP是一种基于C/S架构的文件传输协议,使用TCP的20和21端口。它有两种连接模式:主动和被动,适应不同网络环境。FTP配置涉及匿名用户和本地用户的访问权限,以及数据传输的文本和二进制模式。配置文件如vsftpd.conf管理这些设置。实验部分展示了如何配置匿名和普通用户访问FTP服务器,以及使用黑白名单控制用户访问。
摘要由CSDN通过智能技术生成

目录

一、理论

1.FTP服务

2.配置文件路径

3.FTP配置文件解析

4.配置本地用户访问ftp

二、实验

1.匿名用户访问FTP服务器

2.普通用户访问FTP服务器

3.FTP服务器黑白名单

 4.问题


一、理论

1.FTP服务

(1)FTP协议

FTP(File Transfer Protocol)文件传输协议,是典型的C/S结构的应用层协议,需要由服务端软件、客户端软件两个部分共同实现文件传输功能。

使用TCP的20、21端口:

① 控制连接:TCP 21 ,用于建立控制连接,发送FTP命令信息。

② 数据连接:TCP 20 ,用于建立数据连接,传输文件数据包括上传和下载数据。

(2)FTP连接及传输模式

FTP数据来连接分为主动模式和被动模式:

     ① 主动模式(port):服务器主动发起数据连接。

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

      ② 被动模式(PASV):服务器被动等待连接。

      如果客户端所在的网络的防火墙禁止主动模式连接,通常会使用被动模式。

      首先由客户端向服务器的21端口建立FTP控制连接。当需要传输数据时,服务器以PASV命令告知客户端“我打开了某端口,请你来连接我”,于是客户端向服务器的该端口(非20)发送请求并建立数据连接。

在传输文件时,根据是否进行字符转换,分为文本模式和二进制模式:

      ① 文本模式:又称为ASCII模式,一般只用于纯文本文件的传输。

ASCII(American Standard Code for information interchange)美国信息交换标准码模式,这种模式在传输文件时使用ASCII标准字符序列,一般只用于纯文本文件传输。

      ②  二进制模式:又称为Binary模式:适合传输程序、图片等非纯文本字符的文件。

这种模式不会转换文件中的字符序列,更合适传输程序,图片等非纯文本字符的文件。使用二进制模式比文本模式更有效率,大多数FTP客户端工具可以根据文件类型自动选择文件传输模式。

(3)FTP用户的类型

     ① 匿名用户:用户名为ftp或anonymous,提供任意密码(包括空密码),都可以通过服务器的验证

     ② 本地用户:除了匿名用户以外的其他系统用户。

(4)FTP服务器软件的种类

WIndows系统:FileZilla Sener、Serv-U

Linux系统:vsftpd (Very Secure FTP Daemon),该软件针对安全特性方面做了大量的设计,支持15000ge 用户并发连接。

 

(5)FTP客户端工具的种类

Windows系统和Linux系统默认都自带有ftp命令程序。

2.配置文件路径

      ① 服务配置文件:/etc/vsftpd/vsftpd.conf

      ②  黑名单配置文件:/etc/vsftpd/user_list

      ③ 匿名用户FTP服务的默认根目录:/var/ftp

      ④ 本地用户FTP服务的默认根目录:/home/账户同名文件

      ⑤ 错误日志路径:/var/log/messages

3.FTP配置文件解析

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

表1 FTP配置文件解析

命令功能
anonymous_enable=YES

允许匿名用户访问(账户名为ftp,不需要密码),默认允许建议关闭

local_enable=YES

允许本地用户访问(本地可登录账户)

write_enable=YES

开放服务器的写权限,上传文件到服务器必须开启,默认开启

local_umask=022

本地用户文件权限反掩码,文件权限777-umask,文件权限666-umask

dirmessage_enable=YES

开启日志消息,默认开启

connect_from_port_20=YES

确保端口数据传输来自20端口,默认开启

xferlog_std_format=YES

日志文件设置为标准ftpd xferlog格式,默认开启,日志位置/var/log/xferlog

chroot_local_user=YES

将用户访问权限限制在用户自己的根目录下,默认关闭。

allow_writeable_chroot=YES

允许被限制用户对自己根目录进行写操作

anon_root=/var

设置本地用户的默认根目录为/var,注意需要此目录给其他用户读写权限才可上传下载

userlist_enable=YES

开启user_list用户列表,文件位置/etc/vsftpd/user_list,默认关闭

userlist_deny=YES

若user_list是开启状态userlist_deny=YES是黑名单文件中的用户不能登录,默认关闭

若user_list是开启状态,userlist_deny=NO则只允许user_list中的用户登录

      4.配置本地用户访问FTP

表2 配置本地用户访问FTP

命令功能
anonymous_enable=YES

允许匿名用户访问

local_enable=YES

允许本地用户访问

write_enable=YES

开放服务器的写权限

local_umask=022

设置本地用户umask为022

chroot_local_user=YES

限制本地用户只能访问默认根目录

allow_writeable_chroot=YES

允许被限制用户对自己根目录进行写操作

anon_root=/mnt设置本地用户默认根目录为/mnt

userlist_enable=YES

开启user_list用户列表

userlist_deny=YES开启黑名单,禁用user_list文件中的用户登录
userlist_deny=YES开启白名单,允许user_list文件中的用户登录

二、实验

1.匿名用户访问FTP服务器

ftp传输使用匿名用户上传下载文件:

(1)搭建环境 

centos 7系统虚拟机一台,配置关闭防火墙和selinux

(2)检测环境并安装ftp服务

(3)备份配置文件

(4)配置文件

进入vsftpd文件

取消注释 ,允许匿名用户上传下载

重启vsftpd服务

 (5)目录配置读写权限

创建测试文件test.txt

写入内容:”hello 123”

(6)匿名用户登录ftp

Windows cmd命令:ftp 服务器IP地址

匿名账户:ftp  密码:无

 (7)匿名用户进行下载、上传文件

 get 命令下载文件

 下载到本地的文件路径在C:\Users\下

 

删除文件

客户端上传新文件到服务器

 显示成功

 用户put命令上传备份文件到服务器

 显示成功

2.普通用户访问FTP服务器

ftp传输使用普通用户在家目录上传下载文件:

(1)禁用匿名用户访问

进入配置文件

设置匿名用户禁止访问

(2)验证ftp匿名登录

匿名登录显示失败

(3)限制访问根目录,拥有写权限

进入配置文件

限制本地用户只能访问默认根目录

允许本地用户对默认根目录有写权限

(4)普通用户进行下载、上传文件

普通用户jia登录

 切换目录,显示不能切换

根目录创建文件

服务器下载到用户2个文件:test3和test5

 

删除根目录文件

用户将备份文件上传到服务器

 显示已恢复

3.FTP服务器黑白名单

ftp传输开启黑白名单

(1)新增用户mao

(2)启用黑名单

 

 (3)用户列表新增mao

 (5)用户登录被拒绝

(6)启用白名单

 

重启服务

(7)被禁用户解除限制可以登录

 ​​​

 4.问题

(1)ftp相关命令命令失败

      ①  查看本机防火墙以及ftp防火墙和selinux是否关闭

 关闭防火墙和安全机制

         

      ②  检查配置文件内容是有错误:

            重启报错

            拼写错误:正确为“enable”

      ③  查看服务状态是否正常,不正常查看/var/log/messages日志排错

      ④  匿名用户的默认根目录不能有读权限否则连接不上ftp服务器

       ⑤  可以get但是不能put查看根目录的权限和属主情况

             取消注释 ,允许匿名用户上传下载

              目录权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值