Skip to content

平台安全性说明

会众云平台采用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

使用模板如下:

shell
# 本机数据备份
rsync -av --delete --append /var/hzy/ [备份位置的绝对路径]

# 异机/远程数据备份
rsync -av --delete --append /var/hzy/ [用户名]@[远端服务器ip/地址]:[备份位置的绝对路径]
# 如果远端服务器部署了 rsync 守护进程的话,可使用下述模板
rsync -av --delete --append /var/hzy/ rsync://[远端服务器ip/地址]/[备份位置的绝对路径]

注意

上述的 用户名、远端服务器ip/地址、备份位置的绝对路径 请替换为真实的参数。

举例

本机备份:
rsync -av --delete --append /var/hzy/ /home/data-backup/
便是将平台数据备份到 同服务器/home/data-backup/ 文件夹下。

远程备份:
rsync -av --delete --append /var/hzy/ root@192.168.31.168:/home/data-backup/
便是将数据被分到目标服务器的 /home/data-backup 文件夹下。

结合 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 -av --delete --append ${sourceDir} ${targetDir} >> ${logfile}
shell
# 每天凌晨三点的整点时刻执行一次备份
0 3 * * * bash /root/hzy-data-backup/rsync-data.sh

2.6 其他配置

完成前面的设置步骤后,服务器的安全系数已经非常高了。以下为其他可选的安全配置:

  • 禁用root登录:root用户拥有系统最高权限,可以禁止使用root登录
  • 开启防火墙:如果系统没有开启防火墙,可以启动防火墙,防火墙可以设置网络进出规则
  • 增加堡垒机:服务器只能通过堡垒机才能登陆,堡垒机可以配置相关的安全规则