一、Linux进阶——Vsftpd服务的部署及优化

目录

  • 1. ftp介绍
  • 2. vsftpd安装
    • 2.1 实验环境
    • 2.2 安装vsftpd
    • 2.3 测试安装
  • 3.vsftpd基本信息
    • 3.1 服务名称
    • 3.2 配置目录
    • 3.3 主配置文件
    • 3.4 默认发布目录
    • 3.5 报错信息 
  • 4. 匿名用户访问控制
    • 4.1 登陆控制
    • 4.2 家目录控制
    • 4.3 匿名用户开启上传功能
    • 4.4 下载控制
    • 4.5 目录建立控制
    • 4.6 删除重命名控制
    • 4.7 登录数量控制
    • 4.8 上传速率控制
    • 4.9 上传文件权限设定
    • 4.10 上传文件用户身份设定
  • 5. 本地用户的访问
    • 5.1 登录控制
    • 5.2 家目录控制
    • 5.3 写权限控制
    • 5.4 上传文件权限控制
    • 5.5 用户登陆控制
    • 5.6 用户登陆白名单
    • 5.7 锁定用户到自己的家目录中
    • 5.8 锁定用户到自己的家目录的白名单
    • 5.9 锁定用户到自己的家目录的黑名单
  • 6. 虚拟用户访问
    • 6.1 建立虚拟用户的过程
    • 6.2 虚拟用户家目录的设定
    • 6.3 用户配置独立

1. ftp介绍

ftp(File Transfer Protocol):文本传输协议。它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层, 使用 TCP 传输而不是 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。

ftp许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。并不真正登录到自己想要存取的计算机上面而成为完全用户, 可用FTP程序访问远程资源, 实现用户往返传输文件、目录管理以及访问电子邮件等等, 即使双方计算机可能配有不同的操作系统和文件存储方式。

2. vsftpd安装

2.1 实验环境

1、hostnamectl set-hostname westos_node1.westos.com  修改主机名 
2、vim /etc/sysconfig/network-scripts/ifcfg-ens160 配置ip地址
3、vim /etc/yum.repos.d/westos.repo  配置软件仓库
dnf repolist
4、vim /etc/selinux config ---SELINUX=disabled  关闭selinux 
5、reboot 
6、getenforce

在这里插入图片描述
一、Linux进阶——Vsftpd服务的部署及优化_第1张图片

2.2 安装vsftpd

服务主机上:

1、安装vsftpd:
		dnf install vsftpd -y
		systemctl enable --now vsftpd
2、vs文件配置
	vim /etc/vsftpd/vsftpd.conf
	12 anonymous_enable=YES  ##启动匿名用户访问功能
	sytemctl restart vsftpd
3、防火墙设置:
systemctl enable --now firewalld
firewall-cmd --permanent --add-source=172.25.254.10 --zone=trusted
systemctl restart firewalld

1、安装vsftpd:
一、Linux进阶——Vsftpd服务的部署及优化_第2张图片
2、vs文件配置
在这里插入图片描述
在这里插入图片描述
3、防火墙设置:
在这里插入图片描述

2.3 测试安装

测试主机上:

dnf install lftp -y    ##安装lftp命令
测试安装发布两种方式:
	1、firefox ftp://ip
	2、lftp 172.25.254.20   ##此访问方式必须能列出资源才算访问成功
							##在使用完成后请使用exit退出

在这里插入图片描述

3.vsftpd基本信息

3.1 服务名称

vsftpd.service

3.2 配置目录

/etc/vsftpd

3.3 主配置文件

/etc/vsftpd/vsftpd.conf

通过man方法来查看下载控制的配置文件
man 5 vsftpd.conf ## 查看配置信息

3.4 默认发布目录

/var/ftp

在默认目录建立westos文件后,可以在发布目录查看到
在这里插入图片描述

3.5 报错信息 

550 ## 程序本身拒绝
553 ## 文件系统权限限制
500 ## 权限过大
530 ## 认证失败

4. 匿名用户访问控制

lftp 172.25.254.20           ## 当访问ftp服务时没有加入用户认证为匿名访问
lftp 172.25.254.20   -u westos   ## 本地用户访问

一、Linux进阶——Vsftpd服务的部署及优化_第3张图片

4.1 登陆控制

匿名访问:
vim /etc/vsftpd/vsftpd.conf   ## 编辑vsftpd服务的配置文件
anonymous_enable=YES/NO       ## 配置文件中设定匿名用户可以/不可以访问
systemctl restart vsftpd      ## 重启服务

在主机中设定anonymous_enable=NO,在客户机中无法匿名访问
在这里插入图片描述

4.2 家目录控制

anon_root=/westosdir  ## 将/software设置为家目录
若不设置,默认目录为/var/ftp

主机中更改配置文件家目录指向新建文件夹/westosdir
一、Linux进阶——Vsftpd服务的部署及优化_第4张图片
客户机中访问,家目录已更改
一、Linux进阶——Vsftpd服务的部署及优化_第5张图片

4.3 匿名用户开启上传功能

anon_upload_enable=YES|NO   ## 表示上传功能是否开启

**
mkdir /var/ftp/upload
chown ftp:root /var/ftp/upload
上传步骤

	lftp 172.25.254.20
	cd /upload
	put /etc/passwd

一、Linux进阶——Vsftpd服务的部署及优化_第6张图片
默认情况下,客户端匿名用户不可以上传文件,系统默认将该功能注释;
启动功能后,我们再次去上传文件,会发现报553错误,受到文件系统权限限制
chmod 775 /var/ftp/** ## 将子目录权限修改为最高权限

4.4 下载控制

anon_world_readable_only=NO   ## 匿名用户可以下载不能读的文件

在这里插入图片描述
下载成功!

4.5 目录建立控制

anon_mkdir_write_enable=YES|NO

在这里插入图片描述
新建目录成功!

4.6 删除重命名控制

anon_other_write_enable=YES|NO

在这里插入图片描述
删除重命名成功!

4.7 登录数量控制

max_clients=2

在这里插入图片描述
最多可有2个窗口登录

4.8 上传速率控制

anon_max_rate=102400

dd if=/dev/zero of=file bs=1M count=1000 ##建立文件file用于上传
设置前后的上传速率区别:
在这里插入图片描述
在这里插入图片描述

4.9 上传文件权限设定

anon_umask=022  当设定chown_username之后上传文件权限将不是用此参数设定

4.10 上传文件用户身份设定

chown_uploads=YES
chown_username=lee
chown_upload_mode=0644
设定匿名用户上传文件,文件的用户身份为lee

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

5. 本地用户的访问

5.1 登录控制

local_enable=NO|YES	

服务主机:
useradd westos
useradd lee
echo lee | passwd --stdin westos
echo lee | passwd --stdin lee
lftp 192.168.0.10 -u lee
客户端测试:
lftp 192.168.0.10 -u lee
在这里插入图片描述

5.2 家目录控制

local_root=/westosdir

一、Linux进阶——Vsftpd服务的部署及优化_第7张图片

5.3 写权限控制

write_enable=NO|YES

5.4 上传文件权限控制

local_umask=022

上传文件权限则是644
一、Linux进阶——Vsftpd服务的部署及优化_第8张图片

5.5 用户登陆控制

/etc/vsftpd/ftpusers  ##永久黑名单配置文件
/etc/vsftpd/user_list ##临时黑名单配置文件

在文件中添加westos,则westos用户登录失败
一、Linux进阶——Vsftpd服务的部署及优化_第9张图片

5.6 用户登陆白名单

userlist_enable=YES
userlist_deny=NO ##将上述黑名单变为白名单 
                 ##不在名单中的用户不能登陆ftp

原来的黑名单变成白名单,westos可以登录,le’e不能登录

5.7 锁定用户到自己的家目录中

chmod  u-w /home/* 
allow_writeable_chroot=YES
chroot_local_user=YES
   
   
   
   

一、Linux进阶——Vsftpd服务的部署及优化_第10张图片

5.8 锁定用户到自己的家目录的白名单

chroot_local_user=YES 
chroot_list_enable=YES 
chroot_list_file=/etc/vsftpd/chroot_list  
##/etc/vsftpd/chroot_list文件里面设定用户westos

一、Linux进阶——Vsftpd服务的部署及优化_第11张图片

5.9 锁定用户到自己的家目录的黑名单

chroot_local_user=NO 
chroot_list_enable=YES 
chroot_list_file=/etc/vsftpd/chroot_list

6. 虚拟用户访问

除匿名用户之外,还可设置虚拟用户来访问FTP。所谓虚拟用户,指存放于独立数据库文件中的FTP用户账户,可以将它们映射到某个不能登录的系统用户账号上,以进一步增强FTP服务器的安全性。

6.1 建立虚拟用户的过程

建立虚拟用户数据库文件
1、vim /etc/vsftpd/westos_user   ## 编辑认证文件,自定义名字
内容:
	westos1
	123
	westos2
	123
	westos3
	123
2、加密认证文件
db_load -T -t hash -f westos_user westos_user.db   ## 加密认证文件
注:db_load命令是一种固定用法
	-T        #允许非Berkeley DB的应用程序使用从文本格式转换的DB数据库文件
	-t hash    #指定读取数据文件的基本方法
	-f         #指定数据的源文件
3、编写认证策略文件westos_ftp
cd /etc/pam.d/
vim westos_ftp
	account    required       pam_userdb.so        db=/etc/vsftpd/westos_user
	auth      required        pam_userdb.so        db=/etc/vsftpd/westos_user
##注意在这里系统会默认加上.db后缀,因此我们不需要添加后缀名
4、编写认证策略配置文件
pam_service_name=westos_ftp               ##指定认证策略文件
guest_enable=YES                    ##指定虚拟用户功能开启
guest_username=ftp                  ##指定虚拟用户在ftp服务器上的	用户身份
##指定的虚拟用户即可登录了,注意黑白名单的影响

在这里插入图片描述

6.2 虚拟用户家目录的设定

local_root=/virtuserdir/$USER
user_sub_token=$USER

设置用户家目录为virtuserdir/westos1,并建立pub和user1file文件
在这里插入图片描述

6.3 用户配置独立

user_config_dir=/etc/vsftpd/user_config          ##在此目录中与用户名称相同的文件为用户配置文件
mkdir  /etc/vsftpd/user_config 
vim/etc/vsftpd/user_config/westos1
		anon_upload_enable=YES

设定完成后westos1用户可以上传文件,但westos2和westos3不行
一、Linux进阶——Vsftpd服务的部署及优化_第12张图片
一、Linux进阶——Vsftpd服务的部署及优化_第13张图片

你可能感兴趣的:(一、Linux进阶——Vsftpd服务的部署及优化)