vsftp虚拟用户和ssl加密配置 —— 筑梦之路

为什么要用虚拟用户? 

1.增强安全性:使用虚拟用户,可以避免直接使用系统账户进行 FTP 访问,通过使用虚拟用户,可以限制 FTP 用户的访问范围和权限,减少潜在的安全风险。


2.隔离用户和文件:虚拟用户可以被隔离到特定的目录或目录树中,这样可以确保 FTP 用户只能访问其分配的特定文件夹,而不能访问整个文件系统。


3.简化管理:虚拟用户可以独立于操作系统的用户管理进行配置和管理,可以更方便地添加、修改或删除 FTP 用户,而无需涉及操作系统的账户管理。

虚拟用户配置步骤

 1. 创建一个ftp用户

#创建一个用户ftpuser,不创建家目录,设置ftpuser家目录为/mnt/ftp/,不允许其登录shelluseradd -M ftpuser -d /mn/ftp/ -s /sbin/nologin

2. 创建ftp目录以及虚拟用户访问的根目录

mkdir -p /mnt/ftp/ceshi{01..03}chown -R ftpuser. /mnt/ftp/chmod -R 755 /mnt/ftp/

3. 在vsftpd中添加配置文件信息,允许使用虚拟用户登录FTP

vim /etc/vsftpd/vsftpd.confanonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd   #使用pam验证用户身份
userlist_enable=YES
tcp_wrappers=YES
dual_log_enable=yes
xferlog_enable=YES
xferlog_file=/var/log/xferlog
guest_enable=YES  #启用虚拟用户
guest_username=ftpuser #指定虚拟用户绑定的系统用户名
virtual_use_local_privs=YES  #指定虚拟用户使用本地用户权限
user_config_dir=/etc/vsftpd/vconf #虚拟用户的配置文件目录
allow_writeable_chroot=YES
anon_other_write_enable=YES
chroot_local_user=YES    

4. 创建ftp虚拟用户,需严格按照一行用户名一行密码的格式来编写

mkdir /etc/vsftpd/virtuserscat >> /etc/vsftpd/virtusers <<EOF
ceshi01
123456
ceshi02
123456
ceshi03
123456
EOF

5. 生成虚拟用户数据库文件,在pam认证中关联vt-users.db文件

#如果新增用户则需要重新生成db文件db_load -T -t hash -f /etc/vsftpd/virtusers  /etc/vsftpd/vt-users.dbvi /etc/pam.d/vsftpd#%PAM-1.0
auth     sufficient /lib64/security/pam_userdb.so  db=/etc/vsftpd/vt-users
account  sufficient /lib64/security/pam_userdb.so  db=/etc/vsftpd/vt-users

 6. 创建虚拟用户配置文件,为每个用户设置独立的权限以及存储目录

mkdir /etc/vsftpd/vconf
touch /etc/vsftpd/vconf/ceshi{01..03}cat >>/etc/vsftpd/vconf/ceshi01 <<EOF
local_root=/mnt/ftp/ceshi01   #用户的根目录设置为/mnt/ftp/ceshi01
anonymous_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
write_enable=YES
local_umask=022
idle_session_timeout=600  #空闲会话超时时间为 600 秒。如果客户端在该时间内没有发送任何数据或命令,服务器将会关闭与客户端的连接
data_connection_timeout=120  #数据连接超时时间为 120 秒。在建立数据连接后,如果在该时间内未进行任何数据传输,服务器将会关闭数据连接。
local_max_rate=204800   #最大传输速率为204800bits
EOFcat >>/etc/vsftpd/vconf/ceshi02 <<EOF
local_root=/mnt/ftp/ceshi02
anonymous_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
write_enable=YES
local_umask=022
idle_session_timeout=600
data_connection_timeout=120
local_max_rate=409600
EOFcat >>/etc/vsftpd/vconf/ceshi03 <<EOF
local_root=/mnt/ftp/ceshi02
anonymous_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
write_enable=YES
local_umask=022
idle_session_timeout=600
data_connection_timeout=120
EOF

7. 测试用户登录上传下载文件

# 生成一个大文件,分别用不同的账户登陆测试dd if=/dev/zero of=test bs=1M count=1000

SSL加密传输配置

为什么要配置ssl加密?

那自然是不安全呗。

FTP传输时皆为明文传输,通过抓包软件能够轻易获取账号和密码,为了增强 FTP 服务的安全性,可以配置 SSL 证书,以确保在数据传输过程中的加密保护

 1. 创建CA证书目录

#创建文件夹,默认这些文件夹都是不存在的
mkdir -p /etc/pki/CA/{certs,newcerts,crl,private}#进入到CA目录中创建索引文件
cd /etc/pki/CA/touch index.txt#指定一个证书编号echo "01">serial

2. 创建私钥文件

openssl genrsa -out private/cakey.pem 2048

3. 创建证书文件

openssl req -new -x509 -nodes -key private/cakey.pem -days 7300 -out cacert.pem

4. 为ftp应用证书,配置私钥文件与证书文件的位置在ftp配置文件末尾添加以下行

#虽然 SSLv2 和 SSLv3 协议在过去被广泛使用,但由于安全性问题,现在已不推荐使用。建议禁用 SSLv2 和 SSLv3,仅使用 TLSv1.2 或更新版本rsa_cert_file=/etc/pki/CA/cacert.pem
rsa_private_key_file=/etc/pki/CA/private/cakey.pem
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_enable=YES
ssl_sslv1=YES
ssl_sslv2=YES
ssl_sslv3=YES#重启服务
systemctl restart vsftpd

5.检查验证

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/832167.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

当Linux系统运行时间长了之后,会出现磁盘空间不足提示,需要及时进行清理

Linux系统&#xff08;CentOS 7&#xff09;的磁盘空间不足时&#xff0c;可以采取以下步骤进行清理&#xff1a; 查找并删除大文件&#xff1a; 使用du和find命令可以找到并删除大文件。例如&#xff0c;要查找/目录下大于100MB的文件&#xff0c;可以运行&#xff1a; find /…

docker如何关闭证书认证

目录 前言关闭Docker认证的步骤修改pom 前言 当docker认证证书过期了&#xff0c;项目又要马上上线怎么办&#xff1f;重新生成证书&#xff0c;时间来不及&#xff0c;这时最快的方法就是关闭证书认证。 关闭Docker认证的步骤 停止Docker服务 systemctl stop docker编辑Do…

Ts创建的详细过程及配置步骤(傻瓜式配置创建),最后效果展示

一:首先创建一个 空文件夹 二:使用编辑器打开,再创建一个src文件夹,然后按照以下步骤

VMware worksation 17 简易安装Centos8.2、Redhat8.2、Ubuntu16.04

系列文章目录 文章目录 系列文章目录前言一、VMware worksation 17 安装二、安装Centos8.2三、安装RHEL8.2四、安装Ubuntu16.04总结 前言 傻瓜式按照Linux系统&#xff0c;如果觉得简单&#xff0c;可以自定义设置&#xff0c;特别是配置一下磁盘空间大小&#xff0c;对以后排…

2023年上半年系统规划与管理师上午真题及答案解析

1.香农用概率来定量描述信息的公式如下&#xff0c;其中H(x)表示X的( )&#xff0c;Pi是( )出现第i种状态的( )。 A.信息熵 事件 概率 B.总熵 单位 概率 C.信息熵 单位 概率 D.总熵 单位 度量 2.信息传输模型中&#xff0c;( )负责信息的向外传播&#xff0c;( )负责…

数据结构--链表进阶面试题

在链表题目开始之前我们来复习一道数组元素的逆序问题&#xff1a; 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 提示&#xff1a; 1 < nums.length < 10^5-2^31 < nums[i] < 2^31 - 10 < k < 10^5 思…

数论12-欧拉定理与费马小定理

点个关注吧谢谢&#xff01; 欧拉定理 设 m m m是正整数&#xff0c; r ∈ Z m r\in \mathbb{Z}_m r∈Zm​且 g c d ( r , m ) 1 gcd(r,m)1 gcd(r,m)1。那么&#xff1a; r ϕ ( m ) 1 ( m o d m ) r^{\phi(m)}1(mod~m) rϕ(m)1(mod m) 证&#xff1a;设 r 1 , r 2 , . . .…

java.io.EOFException异常的正确解决方法

本文将探讨java.io.EOFException异常及其正确的解决方法。EOFException是Java I/O操作中常见的异常之一&#xff0c;通常表示程序试图读取文件或数据流的末尾之外的内容。我们将从报错问题、报错原因和解决方案三个方面详细解析这一异常&#xff0c;并提供有效的处理方法。 文章…

wordpress子比主题给文章内容加上密码查看

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤1.引入库2.读入数据第三步:文章内添加代码前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,…

Linux的权限

什么是权限 权限是计算机系统中一个重要的安全机制&#xff0c;旨在控制和限制对资源的访问。设置权限的主要目的包括&#xff1a; 保护系统资源 权限控制可以保护关键系统文件、目录和配置不被未授权用户或程序修改或删除。这样可以防止系统被破坏或者出现故障。 保护用户…

Docker容器:Docker-Consul的容器服务更新与发现

目录 前言 一、什么是服务注册与发现 二、 Docker-Consul 概述 1、Consul 概念 2、Consul 提供的一些关键特性 3、Consul 的优缺点 4、传统模式与自动发现注册模式的区别 4.1 传统模式 4.2 自动发现注册模式 5、Consul 核心组件 5.1 Consul-Template组件 5.2 Consu…

为什么深度学习中减小泛化误差称为“正则化(Regularization)”

深度学习的一个重要方面是正则化&#xff08;Regularization&#xff09;&#xff0c;Ian Goodfellow在《Deep Learning 》称正则化&#xff08;Regularization&#xff09;就是减小泛化误差。那么&#xff0c;为什么减小泛化误差称为正则化呢&#xff1f; 首先看正则化——Re…

一款 NodeJS 版本管理工具 NVM (Windows)

一、简介 Node Version Manager&#xff08;NVM&#xff09;是一种用于管理多个 NodeJS 版本的工具。在日常工作中&#xff0c;我们可能同时在进行多个不同的项目开发&#xff0c;每个项目的需求不同&#xff0c;依赖与不同版本的NodeJS 运行环境。这种情况下&#xff0c;维护…

SAP PP学习笔记11 - PP中的MRP相关概念,参数,配置

上文讲了作业区的概念及配置。 SAP PP学习笔记08 - 作业区&#xff08;工作中心Work Center&#xff09;&#xff0c;作业区Customize-CSDN博客 SAP PP学习笔记09 - 作业区&#xff08;工作中心Work Center&#xff09;Customize2&#xff08;管理码&#xff0c;班次顺序&…

利用github pages建立Serverless个人博客

利用github pages建立Serverless个人博客 概述 使用github pages&#xff0c;可以在github上部署静态网站。利用这个功能&#xff0c;可以很方便地实现个人博客的发布托管。 比如我的个人博客&#xff1a;Buttering’s Blog 对应代码仓库&#xff1a;buttering/EasyBlog: 自…

[Unity实战]热更新如何预防过度裁剪

情景再现 假设你现在有一个游戏客户端&#xff0c;客户端只打包了入口场景&#xff0c;游戏场景都存放在了AB包。 你打的热更包里使用了协程中的waituntil修复游戏场景中空投补给资源加载时机问题&#xff0c;但是打出来的热更在真机跑报如下错误&#xff1a; TypeLoadExcep…

陈文自媒体:掌握核心点,内容流量收益翻10倍!

咱们是从事自媒体职业的&#xff0c;生产内容是我们的天职&#xff0c;内容要卖给平台&#xff0c;卖给更多的平台&#xff0c;才能获得更多流量回报&#xff0c;所以我们天天都在研究&#xff0c;内容如何才能卖出个更高的价格&#xff0c;这个是所有内容创作人&#xff0c;必…

【WPF学习笔记(一)】WPF应用程序的组成及Window类介绍

WPF应用程序的组成及Window类介绍 WPF应用程序的组成及Window类介绍前言正文1、WPF介绍1.1 什么是WPF1.2 WPF的特点1.3 WPF的控件分类 2、XAML介绍2.1 XAML的定义2.2 XAML的特点2.3 XAML的命名空间 3、WPF应用程序组成3.1 App.config3.2 App.xaml3.3 App.xaml.cs3.4 MainWindow…

微服务---feign调用服务

目录 Feign简介 Feign的作用 Feign的使用步骤 引入依赖 具体业务逻辑 配置日志 在其它服务中使用接口 接着上一篇博客&#xff0c;我们讲过了nacos的基础使用&#xff0c;知道它是注册服务用的&#xff0c;接下来我们我们思考如果一个服务需要调用另一个服务的接口信息&…

商城系统秒杀功能设计思想

业务特点 1、瞬时并发量大&#xff0c;秒杀时会有大量用户在同一时间进行抢购&#xff0c;瞬时并发访问量突增几倍、甚至几十倍以上 2、库存量少&#xff0c;一般秒杀活动商品量很少&#xff0c;这就导致了只有极少量用户能成功购买到。 3、业务和流程较为常见&#xff0c;一般…