Linux--基础知识点--21--vsftpd

FTP服务的简介和配置详解

注意:配置FTP服务时,最好关闭防火墙和selinux

1 FTP服务简介

FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文件传输协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:“下载”(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件,由于FTP的文件传输是明文方式,具有一定危险性,所以就诞生了一种更加安全的传输方式vsftp,下面主要介绍vsftp的特性及相关配置。

2 VSFTP特点

VSFTP是一个比FTP更安全的软件具有以下特点:

  • (1)vsftp一般以普通用户运行,降低了进程的权限,提高了安全性
  • (2)任何需要执行较高权限的指令都需要上层程序的许可
  • (3)ftp的命令都被整合到了vsftp中,不需要系统额外提供命令
  • (4)用于chroot功能,可以改变用户的根目录,限制用户只能在自己的家目录
  • (5)vsftpd 是一个基于GPL发布的FTP服务器软件。其中的vs是“ Very Secure”的缩写,由此名称缩写可以看出,本服务器的初衷就是服务的安全性。
  • (6)vsftpd是RedHat Linux默认使用的ftp服务端软件。
  • (7)vsftpd不再依赖于xinetd服务
  • (8)vsftpd可同时允许匿名( anonymous )与本地用户(local)访问,还可以支持虚拟用户。

3 VSFTP连接类型

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

数据连接:TCP 20,用于上传、下载数据

4 Vsftp工作模式

FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式

主动模式:服务端从20端口主动向客户端发起连接

被动模式:服务端在指定范围内某个端口被动等待客户端连接

主动模式端口分配:控制端口 21 传输数据端口 20

被动模式端口分配:控制端口 21 传输数据端口 随机
在这里插入图片描述

5 VSFTP传输模式

  • (1)文本模式:ASCII模式,以文本序列传输数据

  • (2)二进制模式:Binary模式,以二进制序列传输数据

6 FTP用户的类型

  • (1)匿名用户:anonymous或ftp

  • (2)本地用户:帐号名称、密码等信息保存在passwd/shadow文件中

  • (3)虚拟用户:使用独立的帐号/密码数据文件

7 VSFTP配置文件介绍

在这里插入图片描述

8 vsftpd.conf文件常用的配置参数说明

(1)常用的全局配置

listen_address=192.168.4.1 设置监听的IP地址

listen=YES 是否以独立运行的方式监听服务

listen_port=21 设置监听FTP服务的端口号

write_enable=YES 是否启用写入权限

download_enable=YES 是否允许下载文件

max_clients=0 限制并发客户端连接数

max_per_ip=0 限制同一IP地址的并发连接数

pasv_enable=yes 设置最小的被动端口号

pasv_min_port=9981 设置最小的被动端口号

pasv_max_port=9981 设置最大的被动端口号

dirmessage_enable=yes 是否显示目录说明文件

xferlog_enable=yes 是否记录ftp传输过程

xferlog_file=/var/log/vsftpd.log 日志的路径和名字

xferlog_std_format=yes 是否使用标准的ftp xferlog

chown_username=username 是否改变上传文件的属主,如果是则需要输入一个系统用户名

idle_session_timeout=600 设置默认不活跃session时间

date_connection_timeout=120 设置数据传输超时时间

ftpd_banner=welcome to ftp server 定制欢迎信息

(2)本地用户访问限制

userlist_enable=YES 是否启用user_list列表文件

userlist_deny=YES 是否禁用user_list中的用户

(3)本地用户权限控制

local_enable=YES 是否启用本地系统用户

local_umask=022 本地用户所上传文件的权限掩码

local_root=/var/ftp 设置本地用户的FTP根目录

chroot_local_user=YES 是否将用户禁锢在主目录

local_max_rate=0 限制最大传输速率(字节/秒)

chroot_list_enable=YES 配合下面的文件使用

chroot_list_file=/etc/vsftpd/chroot_list 配合使用,列表中的用户将被禁锢在目录中

说明:本地用户的权限除了使用以上的参数控制以外,还可以使用系统的权限进行控制。ftp的权限和系统的权限都允许时才会放行,只要有一方权限不足使用FTP就会出现权限不足。

(4)匿名权限控制

anonymous_enable=YES 启用匿名访问

anon_umask=022 匿名用户所上传文件的权限掩码

anon_root=/var/ftp 匿名用户的FTP根目录

anon_word_readable_only=YES 允许匿名下载

anon_upload_enable=YES 允许上传文件anon_mkdir_write_enable=YES:允许创建目录

anon_other_write_enable=YES 开放其他写入权

anon_max_rate=0 限制最大传输速率(字节/秒)

说明:匿名用户账号名称默认为ftp或anonymous,不需要登录密码,默认只能下载无法上传。

9 配置拥有所有权限的匿名用户

说明:这里为了展示匿名用户的所有功能才这样配置,实际中不能这样配置。

(1)安装vsftp软件,并按照下面配置修改配置文件

[root@localhost ~]# yum -y install vsftpd

[root@localhost ~]# chown ftp /var/ftp/pub/

[root@localhost ~]# cp -a /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.back

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

anonymous_enable=YES 启用匿名访问

anon_upload_enable=YES 允许匿名用户可上传文件

anon_mkdir_write_enable=YES 允许匿名用户可创建目录

anon_other_write_enable=YES 开放其他写入权比如改名,需要手动添加

[root@localhost ~]# systemctl restart vsftpd

(2)在windows上或者Linux上测试即可

a、在Windows上文件里面的地址栏输入ftp://192.168.115.120/,如下所示:

blob.png
输入地址以后,进入pub目录测试能否上传文件、删除文件、创建目录、给文件改名等功能。

b、在Linux中匿名登陆FTP服务器需要先yum install ftp软件,然后输入ftp 192.168.115.120,之后输入用户ftp或者anonymous,密码为空回车即可登陆。

10、配置ftp本地用户的访问控制

(1)把之前的虚拟机还原,重新安装vsftpd软件并创建本地用户

[root@localhost ~]# yum -y install vsftpd

[root@localhost ~]# chown ftp /var/ftp/pub/

[root@localhost ~]# cp -a /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.back

[root@localhost ~]# useradd user1

[root@localhost ~]# useradd user2

[root@localhost ~]# useradd user3

[root@localhost ~]# echo ‘123456’ | passwd --stdin user1

[root@localhost ~]# echo ‘123456’ | passwd --stdin user2

[root@localhost ~]# echo ‘123456’ | passwd --stdin user3

(2)修改配置文件设置本地用户的访问控制

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

local_enable=YES 启用本地系统用户

local_umask=000 修改权限掩码为000,用系统的setfacl权限限制即可

chroot_local_user=YES 是否将用户禁锢在local_root设置的目录

local_root=/var/ftp 设置本地用户的FTP根目录

chroot_list_enable=YES 是否启用列表控制,启用后和chroot_list_file配合使用

chroot_list_file=/etc/vsftpd/chroot_list 该文件要自己创建,列表中的用户将被禁锢在目录中

userlist_enable=YES 是否开启用户列表访问控制

userlist_deny=YES 拒绝访问FTP用户列表是否启用

[root@localhost ~]# systemctl restart vsftpd

说明:userlist_enable=YES对应/etc/vsftpd/user_list文件灵活控制用户访问

(a) userlist_enable=YES
   userlist_deny=YES
   满足这两个条件时,出现在user_list文件里的用户会被拒绝访问FTP服务器

(b) userlist_enable=YES
   userlist_deny=NO
   满足这两个条件时,只允许出现在user_list文件里的用户登录FTP服务器

(c)只要出现在/etc/vsftpd/ftpusers文件里的用户都禁止登陆FTP服务器,优先级要高于上面的user_list文件

(3)在Windows或Linux中测试上面的配置是否生效

(a)在Windows测试输入:ftp://192.168.115.106之后输入对应的本地用户名和密码登录测试。

(b)在Linux测试之前先yum安装ftp软件,然后输入ftp 192.168.115.106回车然后输入对应的本地用户名回车然后输入密码回车即可进行登录测试 。

(c)如果需要不同用户给予不同的访问权限,可以使用系统的setfacl进行设置。

11 修改vsftpd服务的监听地址、端口

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

listen=YES 是否开启监听地址和端口

listen_address=192.168.115.120 监听的IP地址,写FTP服务器的地址

listen_port=2100 监听的端口,默认为21,建议不修改

注意:上面最后两行的参数需要手动写入。

12、开启使用FTP服务器的被动模式

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

pasv_enable=YES 是否开启被动模式

pasv_min_port=24500 传输数据时随机端口最小值

pasv_max_port=24600 传输数据时随机端口最大值

注意:上面三行的参数需要手动写入。

FTP服务的简介和配置详解



实战

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
P1 03_ftp之任务背景说明

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值