Appearance
平台安全性说明
会众云平台采用Docker容器
的部署方式,相比于传统的主机直接部署方式有以下好处:
- 资源隔离:Docker容器提供了隔离环境,程序只运行在这个隔离环境中
- 部署方便:所有程序都已打包完成,只需要一行命令就可以部署系统
- 升级方便:升级新的版本时,只需要替换掉旧的容器即可
- 删除方便:删除程序只需要删除容器即可,不会残留任何文件
- 多端兼容:Docker本身支持多平台部署(Linux、Windows、Mac等)
本章将深度讲解:如何保证服务及数据安全
1. 平台选型
以下为主流服务器操作系统所占份额,其中绝大部分操作系统为Linux
,其次为Windows

注意
推荐通过 Linux 部署服务,Linux具备更好的稳定
及安全
特性
1.1 Linux(推荐)
Linux 是一种免费的开源操作系统,基于 Linux 内核。它通常与 GNU 操作系统软件包一起使用,以形成一个完整的操作系统
Linux 的特点:
- 开源: 任何人都可以查看和修改 Linux 的源代码
- 免费: Linux 是免费的,可以自由使用和分发
- 稳定: Linux 以其稳定性和可靠性而闻名
- 安全: Linux 被认为是比其他操作系统更安全的
Linux 的发行版:
Linux 有许多不同的发行版,一些流行的 Linux 发行版包括:
- CentOS
- Rocky
- Almalinux
- Ubuntu
- Debian
- Fedora
- Red Hat Enterprise Linux
1.2 Windows Server
Windows Server 是由微软公司开发的服务器操作系统,基于 Windows NT 内核。它专为企业和组织设计,提供各种功能和工具来支持关键业务应用程序和服务
Windows Server 的特点:
- 闭源: 由微软公司开发的商业操作系统
- 付费: 需要购买商业许可证
- 稳定: 可以提供 99.99% 的正常运行时间(稳定性比不上 Linux)
- 安全: 包括许多安全功能,例如:BitLocker、Windows Defender(但相对于 Linux 更容易受到安全漏洞的影响)
2. Linux 安全配置
Linux服务器
创建后,默认采用root + 密码
的登录方式,这种方式有以下风险:
root
是超管权限,一旦泄露会导致整个主机资产面临侵入风险密码
的安全性较低,甚至有的密码还是弱密码,比较容易被破解登录端口
是默认22端口,公网上的恶意程序会对22端口
进行暴力破解
下面将从多个维度对Linux进行安全加固
2.1 使用 ssh 密钥
使用ssh 密钥
比使用密码登录更加安全,因为密码更容易被破解
提示
ssh 密钥
是一种用于安全登录远程服务器的加密方法。它使用一对密钥:一个公钥和一个私钥。公钥存储在服务器上,而私钥存储在您的本地计算机上
当您尝试使用 SSH 连接到服务器时,服务器会向您的计算机发送一个随机字符串。您的计算机使用私钥对字符串进行加密,并将加密后的字符串发送回服务器。服务器使用公钥解密字符串,并验证您的身份
创建 ssh 秘钥
在个人电脑(mac 或 windows)打开命令行终端,输入命令:ssh-keygen
提示
下方图片为创建示例,以下为必要步骤:
- 步骤1:输入文件名字(这里使用默认名字,直接回车)
- 步骤2:输入密码(注意:这里一定要输入密码,这样秘钥泄露后没有密码也无法登录)
- 步骤3:确认密码(输入步骤2一样的密码即可)
秘钥创建完成后,秘钥保存的位置查看提示:
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
/root/.ssh/id_rsa 私钥
/root/.ssh/id_rsa.pub 公钥

配置 ssh 秘钥
秘钥创建完成后,需要将ssh 公钥
配置到服务器中,配置以后就可以通过ssh 私钥
进行访问了
- 第一步:登录服务器
直接通过密码登录即可
- 第二步:进入
.ssh
目录
bash
cd .ssh

- 第三步:添加
ssh 公钥
复制创建好的
/root/.ssh/id_rsa.pub
中的内容,并粘贴到服务器文件authorized_keys
bash
vim authorized_keys
# 输入大写的I,然后粘贴 id_rsa.pub 的内容
# 按 esc 键,退出编辑状态
# 同时按下 shift 和 : 进入命令模式
# 输入 wq 命令,保存文件
- 第四步:重启 ssh 服务
bash
systemctl restart sshd
提示
现在就可以使用ssh 私钥
访问服务器了(会自动使用.ssh/id_rsa
进行访问)
bash
ssh [用户名]@[服务器IP地址]
2.2 禁止密码登录
配置了ssh秘钥
登录后,就可以禁用密码登录,这样就只能通过ssh秘钥
登录系统了
下面为禁用步骤
bash
# 编辑ssh配置文件
vim /etc/ssh/sshd_config
# 找到配置项:#PasswordAuthentication yes
# 输入大写的I
# 将其修改为:PasswordAuthentication no
# 按 esc 键,退出编辑状态
# 同时按下 shift 和 : 进入命令模式
# 输入 wq 命令,保存文件
# 重启 ssh 服务
systemctl restart sshd

2.3 修改 ssh 端口
Linux登录使用的服务是ssh
,默认端口为22
,所以很多的恶意程序会攻击22
端口
所以修改默认端口号以后,可以大幅降低被攻击的概率
提示
建议端口号修改为:10000 ~ 65535,例如:10022
下面为修改步骤
bash
# 编辑ssh配置文件
vim /etc/ssh/sshd_config
# 找到配置项:#Port 22
# 输入大写的I
# 将其修改为:Port 10022
# 按 esc 键,退出编辑状态
# 同时按下 shift 和 : 进入命令模式
# 输入 wq 命令,保存文件
# 重启 ssh 服务
systemctl restart sshd

指定端口登录
由于修改了端口号,所以登录的时候必须要指定登录的端口号
bash
ssh -p 10022 [用户名]@[服务器IP地址]
2.4 磁盘备份
磁盘备份可以防止极端情况下数据损坏、丢失时,可以通过备份文件快速还原数据
提示
会众云平台所有文件所在目录为:/var/hzy/
常用备份方式
- 快照备份:如果使用的是云服务,那么可以使用云服务的
快照
服务,定时对云盘进行备份 - 本地备份:如果使用的本地服务器,那么可以使用
数据备份软件
定时对磁盘进行备份
示例:阿里云快照备份
1、创建快照策略

2、关联云盘

3、恢复备份
2.5 数据备份
和 磁盘备份
不同的是,此备份方式仅针对于平台的数据文件,备份内容更小,备份速度更快。
提示
会众云平台所有文件所在目录为:/var/hzy/
Linux 服务器数据备份
注意
以下为手动备份流程(较复杂,不推荐)
以下为手动备份流程(较复杂,不推荐)
以下为手动备份流程(较复杂,不推荐)
Linux环境下,可使用 Shell
命令 rsync
来执行备份
提示
rsync
一般为 Linux
预装软件,若您得系统提示没有命令 rsync
,可执行如下 shell
来安装。
注意: 若您的
Linux
未使用以下两种包管理器,则请自行使用搜索引擎获取安装指令。
shell
# Centos / Redhat / Deepin 等使用 yum 的发行版用如下 shell 安装
yum install rsync -y
shell
# Ubuntu / Debian 等使用 apt 的发行版用如下 shell 安装
apt-get install rsync -y
使用模板如下:
注意
以下的 用户名、远端服务器ip/地址、远程目标目录、本地备份目录
请替换为真实的参数。
shell
# 将远程服务器的目录同步到本地目录
rsync -rv --delete [用户名]@[远端服务器ip/地址]:[远程目标目录] [本地备份目录]
举例说明
将远程服务器192.168.1.1
的会众云数据同步到本地目录/temp/
bash
rsync -rv --delete root@192.168.1.1:/var/hzy/ /temp/
结合 Linux 的 Crontab
服务,可以实现定时备份,下面提供一个定时备份脚本的参考范例:
提示
使用命令 crontab -e
进入 Crontab
的配置界面,然后在文档尾部输入以下 Crontab配置
的内容,保存后退出即可。
shell
#!/bin/bash
# 会众云平台数据文件夹
sourceDir='/var/hzy/'
targetHome='/root/hzy-data-backup'
# 备份文件夹路径
targetDir="${targetHome}/all-data-backup/"
# 备份时的过程日志
logfile="${targetHome}/log-rsync.txt"
echo "rsync started at: $(date)" > ${logfile}
rsync -rv --delete --append ${sourceDir} ${targetDir} >> ${logfile}
shell
# 每天凌晨三点的整点时刻执行一次备份
0 3 * * * bash /root/hzy-data-backup/rsync-data.sh
2.6 其他配置
完成前面的设置步骤后,服务器的安全系数已经非常高了。以下为其他可选的安全配置:
- 禁用root登录:root用户拥有系统最高权限,可以禁止使用root登录
- 开启防火墙:如果系统没有开启防火墙,可以启动防火墙,防火墙可以设置
网络进出
规则 - 增加堡垒机:服务器只能通过
堡垒机
才能登陆,堡垒机
可以配置相关的安全规则
3. 备份机制说明
平台存在以下几种备份方式,后续将对每种方式进行详细说明
- 应用数据备份:对单个应用的数据进行备份(应用级别的备份)
- 数据库全量备份:对整个数据库进行备份,不包含文件数据(平台级别备份)
- 备份插件全量备份:对整个系统所有数据进行备份(服务器级别备份)
3.1 应用数据备份
应用数据备份:在应用正式环境
,点击应用备份
,创建备份

作用说明
应用备份
用于备份单个应用的所有数据,包括:应用配置、应用数据
,可以使用恢复
功能快速创建备份时间点的新应用
举例说明
对CRM
这个应用创建了一个2025/01/01 00:00:00
的应用备份,在2025/01/02
时发现有一个表单的数据被恶意删除了,这个时候可以恢复2025/01/01 00:00:00
的应用备份,从而找到被恶意删除的数据记录
数据说明
应用备份的应用配置
属于业务数据保存于数据库中,应用数据
为实体备份文件保存于/var/hzy/backup
目录下,结构如下:
bash
# [应用ID]_[备份ID].json
zj4ihMWe4Tg05K_zsBfB2Kj2PI0KA.json
注意
此文件仅恢复应用备份时使用,如需删除请使用应用备份
提供的「删除」功能
3.2 数据库全量备份
数据库全量备份:在管理后台系统配置 → 基础配置 → 数据库备份数量
配置,将自动在每天凌晨3点进行数据库的全量备份

作用说明
数据库全量备份
用于备份整个数据库的业务数据(),可以使用数据库全量备份
将数据库恢复到备份时间点,从而获得备份时间点的全量业务数据
示例1
由于不规范操作导致数据库链接泄露,从而导致数据库的文件全部丢失,这个时候可以使用数据库全量备份
将数据恢复到上一个备份点
示例2
某个记录数据被异常删除,但是又没有创建应用备份
,那么可以恢复数据库全量备份
找回被删除的记录
数据说明
数据库全量备份
为实体备份文件保存于/var/hzy/backup
目录下,结构如下:
bash
# [年月日]__backup.archive
20250919_backup.archive
恢复备份数据
请勿在生产环境中操作,推荐在本地环境中进行恢复!
请勿在生产环境中操作,推荐在本地环境中进行恢复!
请勿在生产环境中操作,推荐在本地环境中进行恢复!
恢复备份数据需要使用以下命令,点击查看详细说明
bash
mongorestore <options> <connection-string> <directory or file to restore>
命令使用示例
bash
mongorestore --drop --uri=mongodb://localhost:17017/ --gzip --archive=./20250919_backup.archive
3.3 备份插件全量备份
备份插件全量备份:使用备份插件
对平台所有数据
进行备份,备份文件为tar.gz
格式的压缩包,解压以后即可直接使用
作用说明
备份插件全量备份
用于备份整个系统的数据(),解压备份文件并替换/var/hzy/
目录,即可将所有数据恢复到备份时间点
举例说明
会众云服务所在服务器的磁盘发生损坏,因为备份插件
备份的数据在另外的服务器上,这时可以将备份的数据拷贝到会众云服务所在服务器,解压并替换/var/hzy/
目录后即可恢复全量数据
数据说明
备份插件全量备份
的备份文件为实体文件,保存在备份插件
所在服务器的/etc/hzy/backup/
目录下,结构如下:
bash
# hzy_[年月日].tar.gz
hzy_20250822.tar.gz
特别说明
备份插件全量备份,主要目的是通过不同的服务器进行容灾备份,极端情况下主服务所在服务器出现磁盘损坏
等情况时,可以使用其他服务器的备份文件进行全量数据恢复
所以:备份插件
所在服务器、会众云主服务
所在服务器,必须是两台独立的服务器