KylinOS

  1. 一、桌面
    1. 1.1 镜像下载
      1. 86架构
      2. Arm架构
      3. 龙芯
      4. 华为
      5. OEM
    2. 1.2 概述
      1. 麒麟桌面操作系统
      2. 麒麟桌面系统的激活
      3. 麒麟桌面系统的使用
      4. 麒麟桌面系统常见问题处理
    3. 1.3 安装系统
      1. 进入Boot Menu
      2. 进入安装界面
      3. 自定义安装
    4. 1.4 激活系统
      1. 激活信息备份
      2. 激活后重新激活
      3. 激活常见FAQ
    5. 1.5 常见问题
      1. 数据
      2. 修改密码
      3. 刻录
      4. 清理缓存
      5. 软件包名
      6. 下载离线包软件包
      7. 虚拟化
      8. FTP工具使用
      9. 打印机设置
      10. 设置共享打印机
      11. 打包字体.deb
      12. 解包&打包软件
      13. 软件商店
      14. 文件搜索
  2. 二、服务器
    1. 1.1 概述
      1. 镜像下载
      2. 挂载本地源
      3. 安装后调整
      4. 显示隐藏文件
    2. 1.2 网络配置
      1. 手动配置IP
      2. 配置路由
      3. Bond模式介绍
      4. nmtui命令创建bond6
    3. 1.3 磁盘配置
      1. 挂载磁盘
      2. 重装保留数据分区
      3. 磁盘扩缩容
    4. 1.4 服务配置
      1. Chrony&NTP服务
      2. VNC服务
      3. vsftpd
    5. 1.5 其他
      1. 下载服务器源
  3. 三、邮件系统
    1. 3.1 中标V7
      1. 规划
      2. 划分磁盘
      3. 安装
      4. 配置
      5. 优化&问题
    2. 3.2 中标v5
      1. 准备
      2. 安装
      3. 金仓数据库V8R3
  4. 四、应用商店
    1. 概述
      1. 准备
      2. 初始化
      3. 部署软件管理平台
      4. 安装配置
      5. 清空公网软件包
    2. 软件更新管理平台
      1. 安装
    3. 软件管理平台
      1. 新建仓库源
      2. 上传软件包
      3. 添加基本信息
      4. 上传相关照片
      5. 添加标签
      6. 发布软件
    4. 客户端使用
      1. 客户端配置
      2. 常用命令
      3. 更新管理平台
  5. 五、HA高可用
    1. 概述
      1. 高可用集群
      2. 特性
      3. FAQ
      4. Fence资源–防止脑裂
      5. Ping资源-防止脑裂
      6. 案例介绍
      7. 双机热备–无电源管理模块
      8. 双机互备–有电源管理模块
      9. 部署要求
      10. 高可用软件重点保护资源
    2. 高可用软件安装配置
      1. 准备
      2. 安装
      3. 配置VIP
      4. 安装
      5. 高可用软件登录界面
      6. 心跳配置
      7. 集群首选项配置
      8. 添加VIP资源
      9. 添加FS资源
      10. 添加应用资源 (systemd)
      11. 添加资源组
      12. 添加Fence资源
      13. 配置资源失败时触发Fence动作
      14. 电源IBMC管理配置说明
      15. SBD说明–软fence
      16. ISCSI创建sbd例子
      17. 添加SBD资源
    3. 测试方案
      1. 手动切换测试
      2. 主节点故障测试
      3. 备节点故障测试
      4. 网络故障测试(业务链路)
      5. 网络故障测试 (双心跳链路)
      6. 应用软件故障测试
      7. 资源回切测试
    4. 故障分析
      1. 高可用软件故障分析思路
      2. 具体问题示例1
  6. 六、镜像定制/PXE/USB自动安装
    1. 概述
    2. 桌面操作系统定制ISO
      1. 第三方软件目录
      2. 系统设置文件
    3. PXE 搭建
      1. 环境准备
      2. TFFP和xinetd
      3. DHCP
      4. HTTP
      5. NFS
      6. grub.cfg菜单美化
      7. 其他
    4. USB自动安装-9000C
      1. 修改grub.cfg文件
      2. 添加ky-install.cfg文件
      3. kylin-post-actions
    5. 制作U盘启动盘
      1. 准备
      2. 使用软碟通打开镜像
      3. 刻录USB启动盘-步骤1
      4. 刻录USB启动盘-步骤2
    6. 其他
      1. ky-installer.cfg文件说明
      2. FAQ1-NBP is too big to fix in free base memory
      3. FAQ 2- No space left on device
  7. 七、KMS激活
    1. 安装
    2. 常见问题
      1. 激活失败问题-KY-ACTIVATE-ERROR: no serial found
  8. 八、AD域控
    1. 安装
  9. 九、等保测评
    1. 服务器
      1. 默认口令
      2. 超时退出、非法登录次数限制
      3. 远程访问地址限制
      4. 三权:管理员、审计员、安全管理员
      5. JC
      6. 其他
  10. 十、桌面安全加固
    1. 安全加固
      1. 加固目标及对象
      2. 加固基线来源
    2. 账号口令加固
      1. 密码复杂度加固
      2. 密码错误次数锁定
      3. 密码历史加固
      4. 限制 su 为 root 的用户
      5. 控制 sudo 组用户
      6. 设置用户会话超时 (建议 900 秒以内)
      7. 限制系统用户登录
      8. 空口令账号限制
      9. grub 配置密码
    3. 网络配置安全加固
      1. 不接受 ICMP 重定向
      2. 禁用数据包重定向发送
      3. 忽略广播 ICMP 请求
      4. 禁用 IP 转发
      5. 禁 ping
      6. 开启 syn 防洪攻击
      7. 开启防火墙
      8. iptables 安全配置 (进行白名单设置)
      9. SSH 安全配置
      10. 优化 xinetd 服务
      11. 优化远程管理服务
      12. 禁用 telnet 服务
    4. 文件权限安全加固
      1. 重要文件及目录权限、用户属性和属组加固
      2. 全局可写文件加固
      3. 冗余 suid、sgid 文件加固
    5. 系统工具管控安全加固
      1. 系统工具管控
      2. 开启安全功能
      3. 开启 kysec 相关管控功能
      4. 应用联网控制
  11. 十一、服务器安全加固

一、桌面

1.1 镜像下载

86架构

## intel&amd
# INTEL-13代 [Kylin-Desktop-V10-SP1-2303-update2-HWE-6.1-Release-20240122-x86_64.iso]
https://iso.kylinos.cn/web_pungi/download/cdn/Xcm7e30IBGZ6VFdjbyDvxTsYPL9hgA2r/
# INTEL-AMD-12代:[Kylin-Desktop-V10-SP1-2503-HWE-PP-Release-20250430-X86_64.iso]
https://iso.kylinos.cn/web_pungi/download/cdn/oLNq59PmxHAe08TrE6I2bhfl3jRJynBt/
# INTEL-AMD-12代以下 [Kylin-Desktop-V10-SP1-2503-HWE-Release-20250430-X86_64.iso]
https://iso.kylinos.cn/web_pungi/download/cdn/79jAZvyiVrMUbQ8KDWRNLp4Bt36swzfP/
# INTEL-AMD-12代以下 [Kylin-Desktop-V10-SP1-HWE-Release-2203-X86_64.iso]
https://iso.kylinos.cn/web_pungi/download/cdn/RZMqj21p9ayArk4sLlKwYtbH5TdFNgQS/

## 兆芯&海光
# [Kylin-Desktop-V11-2503-Release-20250212-X86_64.iso]
https://iso.kylinos.cn/web_pungi/download/cdn/hqunz19sIF8opVBgZD3UPEWaQM2OYTy4/
# [Kylin-Desktop-V10-SP1-2503-Release-20250430-X86_64.iso]
https://iso.kylinos.cn/web_pungi/download/cdn/N1kIGe0WnfAMilFVURgrC75szThH6QKc/
# [Kylin-Desktop-V10-SP1-2403-Release-20240430-x86_64.iso]
https://iso.kylinos.cn/web_pungi/download/cdn/kr2GXJian8qzg4deDwPvtN91QoMZOHSV/
# [Kylin-Desktop-V10-SP1-General-Release-2303-X86_64.iso]
https://distro-images.kylinos.cn:8802/web_pungi/download/share/b4vmX7qEk90dyBrFfS5ANpGngaW2hZUK/

## 申威
# [Kylin-Desktop-V10-SP1-2503-Release-20250430-SW64.iso]
https://iso.kylinos.cn/web_pungi/download/cdn/yqZFO7w5DBY9Ajh2CaSxUnsGHQTg0PVp/
# [Kylin-Desktop-V10-SP1-General-Release-2303-SW64.iso]
https://distro-images.kylinos.cn:8802/web_pungi/download/share/XiGHY0EBQSC8ehIqzfPwaxsRu72vo5VT/

Arm架构

# [Kylin-Desktop-V10-SP1-2503-Release-20250430-ARM64.iso]
https://iso.kylinos.cn/web_pungi/download/cdn/i8JVstPLwnSjzaFpgr6f74mdhBlq1N5Y/
# [Kylin-Desktop-V10-SP1-2403-Release-20240430-arm64.iso]
https://iso.kylinos.cn/web_pungi/download/cdn/E8sPjCYb7GmL15eWtx206AD4igcF9fJz/
# [Kylin-Desktop-V10-SP1-General-Release-2303-ARM64.iso]
https://distro-images.kylinos.cn:8802/web_pungi/download/share/M8UbGlg2WyeHnANzv0srJOEjC9R7ZXDx/

龙芯

## LoongArch
# L860P 3A600 [Kylin-Desktop-V10-SP1-2403-Release-Retail-RTJS-L860-20240807-LoongArch64.iso]
http://distro-images.kylinos.cn:8802/web_pungi/download/share/Rn8tEoUMlFwg26AcdbNa5ViKBWr7PZSX/
# L60P 3A6000 [Kylin-Desktop-V10-SP1-2403-update1-Release-Retail-RTJS-L60P-20250410-LoongArch64.iso]
https://distro-images.kylinos.cn:8802/web_pungi/download/share/wutqsME31iD0fhdbFTyKjk9SQ5cUeB2a/
# 3A5000及以上 [Kylin-Desktop-V10-SP1-2503-Release-20250430-LoongArch64.iso]
https://iso.kylinos.cn/web_pungi/download/cdn/j1m5tfWsvMY7Gdez0bhrFxcaZRpyDUPi/
# 3A5000 [Kylin-Desktop-V10-SP1-2403-Release-20240506-loongarch64.iso]
https://iso.kylinos.cn/web_pungi/download/cdn/5aVgLwmAlH4Y6CD3uIXP01noizhS8xGE/
# 3A5000 [Kylin-Desktop-V10-SP1-2303-update1-Release-General-20230703-LoongArch64.iso]
https://distro-images.kylinos.cn:8802/web_pungi/download/share/s5ELkGOWFN6nfimZetdBgKvzDVuhjP8R/
# 3A5000 [Kylin-Desktop-V10-SP1-General-Release-2303-LoongArch64.iso]
https://distro-images.kylinos.cn:8802/web_pungi/download/share/k1TnrIxSJ5dt47bzAeiOF0upRslgV9hE/


## mips64el [3A4000及以下]
# 3A4000 [Kylin-Desktop-V10-SP1-2403-Release-20240430-mips64el.iso]
https://iso.kylinos.cn/web_pungi/download/cdn/65Qu1DWGeKilEqSgYjL8Vyrvf2RsaxOB/
# 3A3000 [Kylin-Desktop-V10-SP1-General-Release-2303-MIPS64el.iso]
https://distro-images.kylinos.cn:8802/web_pungi/download/share/jWbeB9k6FLvySThKilrgX5QUd0cwYtHo/
# Kylin-Desktop-V10-General-Release-2203-MIPS64el.iso
链接: https://pan.baidu.com/s/1r9QYp66l2d6NWE6MVzABWQ 提取码: evka 
# 3A3000 [Kylin-Desktop-V10-Release-Build1-20200710-mips64el.iso]
链接: https://pan.baidu.com/s/1tPuxl62vksgQkaQD5j_Vaw 提取码: cnfi

华为

## 台式机
# w585x 9000c [Kylin-Desktop-V10-SP1-2403-Wayland-Release-Retail-pangux-b-20251215-ARM64.iso]
https://distro-images.kylinos.cn:8802/web_pungi/download/share/7fCzQWYJRtoTrwOUk3ZyViIuLEl8K4ne/
# w585x 9000c [Kylin-Desktop-V10-SP1-2403-Wayland-Release-Retail-pangux-b-20250808-ARM64.iso]
https://distro-images.kylinos.cn:8802/web_pungi/download/share/dqB7uHZ45Q8Krk0ylxCsOapmYNXGz3bv/
# 9000c Kylin-Desktop-V10-SP1-2403-Wayland-Release-Retail-HW-pangux-20241021-ARM64.iso
https://distro-images.kylinos.cn:8802/web_pungi/download/share/UtG9kfabj4Ty716pzhHsonvNWm3KqCSE/

# 9000x [Kylin-Desktop-V10-SP1-2403-update2-Wayland-Release-Retail-kirin9000x-20260313-ARM64.iso]
https://distro-images.kylinos.cn:8802/web_pungi/download/share/dMAfKJHZIYOavN35STmW1R4EG8iDelLn/
# 9000x [Kylin-Desktop-V10-SP1-2403-update2-Wayland-Release-Retail-kirin9000x-20251114-ARM64.iso]
https://distro-images.kylinos.cn:8802/web_pungi/download/share/hY1RO2m4DbjILicW3B5CxS8HpJfnweEA/


## 笔记本
# L420x&L540x 9000c [Kylin-Desktop-V10-SP1-2403-update2-Wayland-Release-Retail-L540x-kirin9000c-20260226-ARM64.iso]
https://distro-images.kylinos.cn:8802/web_pungi/download/share/vS0zfcJQp6nDPhKWe75ZCayMXk9s3H4u/
# L420x&L540x 9000c [Kylin-Desktop-V10-SP1-2403-update2-Wayland-Release-Retail-L540x-kirin9000c-20251029-ARM64.iso]
https://distro-images.kylinos.cn:8802/web_pungi/download/share/AEip7RrUw3KW5NftcuQkYh4FmH9vSxMq/

# w515y 9006C [Kylin-Desktop-V10-SP1-2503-update1-Wayland-Release-Retail-HW-kirin9006c-20260228-ARM64.iso]
https://distro-images.kylinos.cn:8802/web_pungi/download/share/nqvLbo5wFkjGNW2sBzu9EHOUPcVYelhR/
# w515y 9006C [Kylin-Desktop-V10-SP1-2403-update1-Wayland-Release-Retail-HW-kirin9006c-20250711-ARM64.iso]
https://distro-images.kylinos.cn:8802/web_pungi/download/share/VueaGiRJOlAqKgt2TN379Qrkw1fZ6CxY/
# 9006c Kylin-Desktop-V10-SP1-2403-update1-Wayland-Release-Retail-HW-kirin9006c-20241225-ARM64.iso
https://distro-images.kylinos.cn:8802/web_pungi/download/share/ijQZXxVLUYHvSwtoB41rFPbf63uMDNTA/
# 9006c Kylin-Desktop-V10-SP1-kirin9006c-Release-2203-ARM64
https://distro-images.kylinos.cn:8802/web_pungi/download/share/zHgYotRBcA4w1TeDhxapi7MFsJUZ6V83/


# 990 [Kylin-Desktop-V10-SP1-2403-update1-Wayland-Release-Retail-HW-kirin990-20260212-ARM64.iso]
https://distro-images.kylinos.cn:8802/web_pungi/download/share/34Sfkl8qLBFhGot25HnDzvbPQVaWpKsu/
# 990 [Kylin-Desktop-V10-SP1-2403-update1-Wayland-Release-Retail-HW-kirin990-20250107-ARM64.iso]
https://distro-images.kylinos.cn:8802/web_pungi/download/share/KvPfn0UQARHBtXx4WCmThFDoGgJ9yrpa/
# 990 Kylin-Desktop-V10-SP1-2403-update1-Wayland-EDU-Release-kirin990-20240918-ARM64.iso
https://iso.kylinos.cn/web_pungi/download/cdn/txUIpsJaSXWcHPif80B9Kvznr32LyQmC/
# 990 Kylin-Desktop-V10-SP1-2303-update2-Wayland-Release-kirin990-20231106-arm64.iso
https://distro-images.kylinos.cn:8802/web_pungi/download/share/0b6DrFumSK3qI4xtO2oTpkRNcV8YPlJd/
# 990 Kylin-Desktop-V10-SP1-2303-update1-Wayland-Release-General-kirin990-20230703-ARM64.iso
https://distro-images.kylinos.cn:8802/web_pungi/download/share/zLIk2b9SHcyGKFXRT8AagJMe34Dl5fvp/
# 990 Kylin-Desktop-V10-SP1-kirin990-Release-2203-ARM64.iso
https://distro-images.kylinos.cn:8802/web_pungi/download/share/Qc7enGgvzbLd5TURIOZFAw4VMfPmqary/

# M900 Kylin-Desktop-V10-SP1-2403-update2-Wayland-Release-Retail-HW-M900-W525-20250606-ARM64.iso
https://distro-images.kylinos.cn:8802/web_pungi/download/share/l3nmtkhqMzNX2w8ECeaVpfFDPBysr4YL/
# M900 Kylin-Desktop-V10-SP1-2503-Wayland-Release-M900-20250508-ARM64.iso
https://iso.kylinos.cn/web_pungi/download/cdn/UCw4W2SVNF9R1zgYTHcBd8ApvK6Oye7n/
# M900 Kylin-Desktop-V10-SP1-2203-Wayland-Release-GXSG-panguw-20240229-arm64.iso
https://distro-images.kylinos.cn:8802/web_pungi/download/share/OjYkhdC2uAURstDzgHiLPaVy1qmX85J9/
# M900 Kylin-Desktop-V10-SP1-2303-update3-Wayland-Release-M900-20240130-arm64.iso
https://distro-images.kylinos.cn:8802/web_pungi/download/share/lb6a79Y5r8fMkeq4XzytViK3QuwPcL0d/
# M900 Kylin-Desktop-V10-SP1-M900-Release-20220728-W525-ARM64.iso
https://distro-images.kylinos.cn:8802/web_pungi/download/share/J3HbSR5QKB8n2TCoNzXmeZp7rGqlIdyA/

OEM

# [Kylin-Desktop-V10-SP1-2403-update1-Release-Retail-LX-20241119-ARM64.iso]
https://distro-images.kylinos.cn:8802/web_pungi/download/share/uAMCUhkFO49pIH0qjyYSnJNcgv1QZKEe/

# [Kylin-Desktop-V10-SP1-2403-Release-Retail-UNIS-D3830-G3-20240622-X86_64.iso]
https://distro-images.kylinos.cn:8802/web_pungi/download/share/LweHGc1X8NrhVYSpFOja2KokCBtxUqZQ/

# [Kylin-Desktop-V10-Release-OEM-YZZJ-21080814-arm64.iso]
https://distro-images.kylinos.cn:8802/web_pungi/download/share/KVXlNiqHGTCIJexWzcZA3vw64FPu5yB2/

# [Kylin-Desktop-V10-SP1-2403-Release-systemtools-20240626-X86_64.iso]
https://iso.kylinos.cn/web_pungi/download/cdn/RoJpy4s3BtWhdg7IeYSQ0D5ULM6nEzbV/

# [Kylin-Server-V10-SP3-2403-Release-Qcow2-20240426-arm64.qcow2.xz]
https://iso.kylinos.cn/web_pungi/download/cdn/DESK9uj41lZsbFhRUaTV5kNpmJYcMtn0/

# [Kylin-Kylin-Desktop-V10-SP1-2107-Release-jjw-ARM64.iso]
https://distro-images.kylinos.cn:8802/web_pungi/download/share/Q0j7FDEv4wfO1RB6lpNLt3kmsra8bo2u/

1.2 概述

麒麟桌面操作系统

# 开始菜单:
开始菜单是使用系统的“起点”,查看并关管理系统中已安装的所有应用,在菜单中使用分类导航或搜索功能可以快速定位需要的应用程序。菜单有全屏和小窗口两种模式。点击菜单界面右上角的图标来切换模式。两种模式均支持搜索应用、设置快捷方式等操作。小窗口模式同样支持快速打开用户账号、计算机,设置和进入电源设置界面等功能。
1、单击系统面板上的“开始菜单”按钮右下侧显示:账号、计算机、设置、电源。
2、右上侧显示:所有软件、字母排序、功能分类。
3、用户还可以在左上方搜索框中,通过关键字搜索应用。
4、查找、运行、卸载应用。
# 桌面:
是用户进行图形界面操作的基础,用户可以在桌面上放置常用文件和应用程序的快捷方式图标。在桌面上,可以新建、删除、移动文件,同时可以添加和删除应用程序快捷方式图标。
# 控制面板:

# 任务栏:
系统面板位于屏幕底部。包括开始菜单、文件管理器、Web浏览器图标已经任务栏和状态菜单。将鼠标停留在图标上,将会显示该应用的功能描述信息。
# 文件管理器:

# 桌面右键菜单:
可以新建文件或者文件夹,也可以设置视图类型及图标排序方式等,
# 多任务窗口:
概述:通过显示任务视图可以切换使用多个桌面,以便对桌面窗口进行分组管理,窗口管理器可以在不同的工作区内展示不同的窗口内存。
打开方式:点击任务栏“多任务窗口”图标,可以打开任务视图窗口管理,或者使用快捷键Ctrl+Alt+W或Win+W打开,选择对应桌面即可实现桌面窗口切换。
分屏窗口视图:二分屏或者四分屏视图可以让用户更高效地管理当前任务窗口。用户可以通过拖动任意窗口至屏幕边缘触发分屏视图,以便同时观看多个应用界面,提高工作效率。
#  侧边栏:
包含三个模块,通知中心、剪切板、小插件。
打开方式:点击任务栏右下角“通知”图标或者通过快捷键Win+A打开侧边栏。
通知中心设置:默认显示重要通知,点击右上角图标可以切换不同通知页签,点击设置安全可以设置“来自应用和其他发送者的通知”,可以按照需求自行选定允许通知的软件。
快捷入口:包含快捷开关和插件,点击对应图标可以快速启动或者开关。
剪切板:近期复制的文字或者截图会显示在此处,自行查找、选定或编辑需要的内容,系统重启后会自动清空。
# 系统设置:
系统的控制面板可以通过点击“开始菜单” > “设置”打开。在控制面板中默认提供了系统常用配置项,可以进行系统配置和硬件配置等相关操作。
# 电源管理:
关机、重启、注销、锁屏、睡眠、休眠
# 软件商店:
软件商店是一款图形管理工具,为用户提供软件的搜索、下载、安全、更新、卸载等一站式软件服务。可以通过开始菜单>软件商店打开,并可在开始菜单右键 软件商店 进行多种选项。
# 其他设置
主题设置

## 登录管理
# 双系统引导
系统安全过程会自动识别到已经安全的Window环境,并提供引导启动选项,单默认银河麒麟系统优先。
# 多因子登录
微信扫描认证、增安全密码设备(Ukey)认证、登录选项可一键开关生物识别、支持选择人脸、指纹等录入设备并录入对应的生物密码、丰富的多因子认证机制为账号安全保价护航。
## 账号管理
在“账号”设置中,可进行“账号信息”、“登录选项”、“云账号”的相关设置
账号信息:在账号信息中,可以对密码、头像等属性进行设置,同时可以设置免密登录和自动登录。
登录选项:登录选项中可以修改登录密码、设置扫码登录、开启/关闭生物识别,生物识别,点击可选择禁用该功能和高级设置,点击高级设置可以打开生物特征管理工具进行相关设置。
# 云账号
云账号可以同步账号中已经设置好的系统配置到云端,如系统、设备、个性化、网络等。当使用另外一台计算机时,只要登陆相同的云账号,即可一键同步之前保存的相关计算机配置。
# 管理员与标准用户差异
root(超级管路员):默认无法登陆,仅可以通过使用sudo的操作获取到该用户权限。
管理员:系统安装时默认创建用户所对应角色,拥有部分权限,涉及系统关键性修改的操作会要求验证管理员身份。
标准用户:普通用户,没有特别权限,假如要安装软件包或卸载软件包时候,会要求验证系统中“管理员”身份的角色。

## 文件管理
可以分类查看系统上的文件和文件夹,支持文件和文件夹的常规操作,比如新增、修改、删除、复制和粘贴等操作。可以通过 开始菜单 > 计算机 > 打开,或者通过 桌面 > 计算机 打开。
# 计算机概况
默认情况下,系统安全完成能看到 文件系统 和 数据盘 两个分区设备
# 文件共享
数据盘中存储了个人用户的数据内容,并且提供一个名为 usershare 的共享目录,可实现本机用户的文件共享

## 软件管理
# 图形界面管理
软件商店:是个人用户检索、安全、管理软件的最佳平台。
软件安装:点击具体应用图标,会展示应用的截图、简介信息等内容,可以通过右上角的操作安装进行软件安装。
软件更新:在软件管理界面,可以管理已安装组件的批量更新。
软件卸载:在软件管理界面,可以管理已安装组件的卸载。
# 命令管理
DEB软件包安装:银河麒麟操作系统V10默认使用DEB软件包格式,双击DEB软件包,会弹出我们的软件包安装器界面。由于安装操作系统设计对系统自身的修改,因此需要对操作人身份进行验证。这里通过kylin用户的操作系统密码完成身份校验。身份验证完成后,麒麟安全中心会提示检测到未知来源的操作请求,还需要进行授权才会开始安全操作。安装完成后,点击 确认 按钮会关闭安装器窗口。
# dpkg:dpkg -i / --install 安装, dpkg -r (可能保留配置文件) / -P (删除全部配置文件) 
dpkg是系统上处理debian软件包的基础指令。如果有 .deb 软件包,那么可以用dpkg 来安装或分析其内容。
dpkg命令提供的功能有限: 它知道系统安装了哪些软件包,以及命令行给出了什么,单不知道其他还有哪些可用的软件包。这样,如果没有相关依赖就会失败。如 apt 这样的工具,相反会可产生相依性清单,来尽量自动地安装软件包。
dpkg应视为系统工具之一,而apt则是较倾向用户的工具,可克服前者的限制。这些工具各有其限制,共同解决特定的工具需求。
可以看到由dpkg执行的不同步骤;这样,我们知道在哪一点会发生错误。安装也可以分为两个阶段来生效:首选拆包,然后配置。
相关命令:
dpkg -l 查询系统中已经安装的软件包,通常会配合grep命令实现对指定软件包关键字的检索操作
dpkg -L 软件包名称: 查询指定软件包安装的文件清单
dpkg -s 软件包名称: 查询指定软件包的描述信息
# apt:
1、apt 可以基本解决依赖问题并检索需要的软件包,可与dpkg (dpkg,可以用来安装或移除软件包/应用程序)一起工作。
2、通常使用apt工具从在线仓库中安装软件,毕竟软件商店的内容仅提供了带图形的工具,实际操作系统中还使用了大量没有图形界面的工具来支持系统运转。
相关命令:
apt update 更新在线仓库数据库信息
apt install 软件包: 安装指定软件包
apt remove 软件包: 移除指定软件包
apt-cache search 关键字: 基于特定关键字,在本地缓存中检索中检索在线仓库匹配关键字的内容
# 模式差异
软件商店主要提供带图形界面软件的管理,更多没有图形的组件需要态通过命令行管理

## 系统网络配置
# 有线网络
在 网络 设置中可以对 有线网络、无线网络、VPN、移动热点 的相关配置进行管理。您可以创建、修改、删除网络连接或代理,或将本机网络连接通过热点方式供其他设备连接使用。
1、有线网络:设置本机有限网络连接,当网线插入本机时,有限网络自动开启,如本机有多个网卡,开启使用的网卡后,可进行有线网络连接的配置。
2、无线网络:设置本机无线网络连接。当无线网络开启时,本机通过连接搜索寻到的信号进行网络访问,如本机有多个网卡,开启使用的网卡后,可进行网络的连接配置,方式如下:
(1)开启无线局域网;
(2)选择对应的网卡,根据实际情况点击连接到列表中的无线信号;
(3)如该信号图标有 锁 标识,即表明需要正确输入对应无线信号的密码;
(4)连接成功后,列表中该信号标示为 已连接, 且屏幕右下角托盘图标的网络连接秒变为 已连接, 点击连接列表中的 叹号 可查看该信号的详情信息和安全设置。
3、VPN连接:添加VPN连接时,可以通过网络连接来创建VPN连接或者导入VPN配置。
4、其他连接:热点共享(热点支持5G WiFI,支持多网卡切换,增加多DNS解析)

麒麟桌面系统的激活

1、安装完成进入系统后,屏幕右上角将弹出系系统激活的提示,点击 立即激活, 将弹出系统激活窗口。或在桌面任务栏处右键单机后选择 关于麒麟, 打开 关于麒麟 界面, 点击激活。
2、在弹出的窗口中选择激活方式。若以上激活方式选择框置灰不可选,则需要先修改授权文件 .kyinfo 和 LICENSE,通常包含在交付的信息中。
3、密钥激活:产品密钥通常在配套DVD包装盒中,由20为数字和大写字母组成,连通网络,输入产品密钥后点击激活,系统将会提示激活成功。
4、在线扫码激活:系统联网状态下,以扫描方式激活,微信扫描后获得管理员权限,然后通过移动设备的微信扫描系统激活界面中的二维码进行激活。
5、离线状态下,先获得管理员权限,然后通过微信扫码系统界面二维码,进入移动端授权激活界面。
6、场地授权激活: 添加 选择和直接拖拽对应的 .kyinfo 和 LICENSE 授权文件到添加区域进行激活。
7、UKey激活:将获取的UKey插入待激活的USB接口进行激活。
8、修改替换授权文件:将新的授权文件 添加 和 拖拽 到虚线框中,导入后重新激活。

麒麟桌面系统的使用

## 截图
单击 开始菜单 > 截图, 从图中可以看出,可以自由的选择是截取桌面还是窗口,或者自由截取。
截图快捷键:全屏 Print Screen键, 当前窗口: Ctrl + Print Screen键, 任意区域: shift + Print Screen
## 刻录
是linux下光盘刻录的软件,其主要实现包括镜像创建、数据刻录、数据追加刻录、镜像刻录、镜像提取和光盘复制,可通过 开始菜单刻录打开
数据刻录:将数据文件刻录至光盘。
镜像刻录:将光盘镜像刻录至光盘。
刻录步骤:依次点击开始菜单->光盘刻录器,点击数据刻录或者镜像刻录按钮,添加需要刻录的文件后点击打开按钮,刻录完成会自动弹出光盘。
注意:不关闭盘片以稍后添加另外的文件 可使 光盘在下一次刻录时进行续刻;勾选 使用 Burn-Proof 可降低刻录失败风险。
## 远程桌面
# 开启远程桌面
用于设置是否允许网络中的其他机器访问本地的桌面,设置步骤为:
1、打开允许其他人远程连接您的桌面以及其他人远程连接您的桌面并控制您的屏幕;
2、您必须为本机确认每次访问和要求用户输入密码访问为安全选项,可根据需要自行选择是否打开。
# VNC/RDP 协议访问远程桌面
1、保证远程的两台电脑在同一个网络中且网络没有被拦截;
2、打开 开始菜单 - 远程桌面客户端, 选择 VNC 或者 RDP 输入被远程机器的IP地址按回车。
3、在输入密码点击确定后,被远程的机器会弹出另一位用户正在尝试查看您的桌面是否接收的提示,点击接收。
注意:如果不点或者点击拒绝,客户端这边会提示 已断开连接, 请 检查网络配置 的错误

## 麒麟管家
麒麟管家是一款提供问题反馈、电脑故障排查、故障修复、电脑垃圾清理及系统小工具的应用,可以帮助您更好的使用电脑。
1、问题反馈界面可提交当前遇到的系统问题类型、问题描述等信息。在高级模式里可以进行更细致的问题描述。
2、在线客服可以自动回复您当前遇到的问题。
3、自助服务可以获取更多反馈渠道。
4、在 故障检测 中点击 一键检测 后开启系统的网络自动检测。
5、支持系统垃圾清理,支持清理系统缓存、Cookies、历史痕迹等等。
6、百宝箱:百宝箱中用于存放各种实用小工具。(远程协助工具、win迁移工具,崩溃收集客户端)

## KMRE/KWRE-技术架构(移动端软件)
1、Kmre是麒麟软件自主研发的一套跨平台的高性能移动应用兼容环境,具有原生性、高兼容性、高融合性等特点,支持多种体系架构、GPU,实现桌面端与移动设备的融合。
2、目前kmre已经支持飞腾、海思麒麟、海光、兆芯、Intel、AMD等处理器和NVIDIA、AMD、INTEL、MALI、JJM、GP101、兆芯等多家显卡。
3、KMRE目前拥有一下特性:
一键安装兼容环境和应用;
移动应用窗口和Linux桌面窗口显示融合,支持分享系统桌面,分配率动态适应;
统一输入法、音频设备,支持语音聊天摄像头,同时实现文件、剪切板互通;
支持微信、QQ等新消息通知推送;
支持多个APP同时运行,并且直接调用显卡硬件,不易有性能损失;
KMRE同样支持自定义设置游戏按键,支持游戏手柄;
允许屏幕分享,能够支持录制任意窗口和全屏,支持分享到指定APP;
设定应用锁,设置应用白名单,通过输入密码才可以进入,谨防用户信息渗漏。
4、使用:右键选择apk打开方式,选择kmre APK安装器
## KWRE麒麟Windows应用兼容运行环境(Windows软件)

## 文件保护箱
文件保护箱是由麒麟安全团队开发的一款用户文件保护箱程序,界面简洁,旨在为用户提供便捷、安全的个人文件保护。
文件保护箱通过隔离隐藏和加密保护相结合的方式,实现了用户私有数据的安全保护。

## 工具箱
提供了整机信息,硬件参数,硬件监测,驱动管理的功能。
整机信息界面可查看本机基本信息和本机硬件信息,包括处理器、主板、硬盘、网卡、显卡、声卡等。

## 系统监视器
1、对硬件负载、程序运行和系统服务,进行监测查看和管理操作的系统工具,可对系统运行状态进行统一的管理;
2、可以实时监控处理器状态、内存占用率、网络上传下载速度,管理系统进程和应用进程;
3、支持搜索进程和强制结束进程。

## 全局搜索
打开方式:开始菜单 - 搜索 (Win + s)
提供快捷查找系统用户、设置项、文件和网页
支持.txt和.docx格式的文件内容搜索
支持通过拼音搜索和模糊搜索
支持最近搜索记录和最常访问
支持快速访问和搜索详情查看
支持对搜索结果分类排序
支持添加屏蔽目录列表

## 外设
# 打印机
直连打印机,此处以直连打印机为例,直接插上usb线即可识别,参考步骤如下:
1、打开 开始菜单-控制面板-设备-打印机 页面;
2、打开 添加打印机和扫描仪 页面,点击 添加 按钮添加打印机;
3、打印机会直接被识别到,选择对应型号的设备,打印机的连接方式选择 USB,然后点击 前进 按钮;
4、有时打印机直接被匹配到,驱动会自动安装,并直接弹出打印机 描述界面,您可以根据您的需求更改该界面内容,也可以直接点击“应用”按钮,打印测试页。
5、在打印机未匹配到的情况下,选择打印机品牌后(具体情况请根据实际进行选择), 选择对应的打印机驱动,然后点击 “前进”  按钮;
6、打印测试页正常,表示打印机连接成功。
# 网络打印机打印机
部分网络打印机可直接识别到,部分需输入IP地址才能别识别到
1、点击 网络打印机 按钮,根据后面括号内的IP地址选择打印机
2、在打印机未直接识别的情况下,选择 查找网络打印机 按钮,然后在该页面右侧的输入框输入网络打印机的IP地址,输入完后点击旁边的 查找 按钮。
3、获取到网络打印机后,点击 前进 按钮。
4、在弹出的打印机描述界面中,您可以根据您的需求更改该界面内容,也可以直接点击 应用 按钮,打印测试页
# 投影仪屏幕切换
1、针对用户在不同办公场景下显示器投屏或扩展屏的应用
2、打开方式:用快捷键win+P打开,按住win键不动按P键则会切换投屏显示模式。
3、主显示屏显示;外接显示屏显示/主显示屏不显示;主显示屏与外接显示屏/显示相同画图;将主显示屏进行扩展/可将文件或图标拖拽至扩展中访问
# 摄像头
在 开始菜单 的应用列表中,可以打开摄像头。
# 多屏协同
以PC为核心,整合多终端的协同办公。支持PC、平板、手机等多终端;支持多架构(x86,arm64,mips);支持多系统(windows、linux、安卓);支持接收端通过键鼠操控协同端;完成华为、小米、OPPO、Vivo手机适配(目前仅支持部分型号)

##个性化设置
在 “个性化” 配置中用户可以根据个人的喜好进行 背景、主题、锁屏、字体、屏保、桌面 的相关配置。打开方式:开始菜单>设置>个性化
# 背景
设置桌面背景:可以选择精美、时尚的壁纸来美化桌面,让电脑的显示与众不同。
在桌面上右键选择 设置背景 打开桌面的 背景 设置,或 开发菜单-设置-个性化-背景。
预览系统自带的壁纸效果,选择线上图标可下载线上壁纸,单击选择某一壁纸后生效。还可以设置桌面背景的显示方式:填充、平铺、居中、拉伸。
# 锁屏
# 屏保
# 字体
# 时间和语言
时间和日期:系统提供时区、时间、日期的显示和设置,方便随时查看时间和日期。在桌面右下角任务栏中实时显示日期和时间,如需修改,您可以打开 设置-时间语言-时间和日期 进入设置窗口。或在桌面右下角时间日期显示区域点击右键,选择 时间日期设置 进入设置窗口。
区域语言:在 “区域语言” 配置中,可进行 语音格式 、 系统语言 的设置。

## 备份还原
在 备份还原 设置中,可进行 备份、还原 的相关配置。
1、可以创建系统、数据的备份,还原历史备份。点击 开始备份 或 开发还原 会自动打开备份还原工具,您可以进系统备份、系统还原、数据备份、数据还原等操作。

## 系统更新
# 在线更新
可以检测系统是否有可用更新并进行更新的相关配置。
“系统更新”中显示当前系统更新状态和上次检查更新时间,点击 “检查更新”,会自动打开麒麟更新管理器并进行更新内容的获取。
“更新设置”中您可以设置是否允许通知可更新的应用、是否自动下载和安装更新、下载限速,开启下载限速后会在下次下载时进行限速。
在“查看历史更新”中可以搜索和查看更新详情。还可以自定义更新服务器。

## 安全中心
安全体检:快速扫描系统漏洞和风险
安全防护:安全中心提供账号保护、安全体检、病毒防护、网络保护、应用保护、设备安全等功能。
安全体检:快速扫描系统漏洞和风险

## 用户手册
用户手册:回到桌面空白处-->按键盘 F1 键即可调用用户手册获取帮助,或单击 “开发菜单” > “用户手册” 其中集成了大部分内置软件的详细使用手册,可从中获取帮助信息。

麒麟桌面系统常见问题处理

# 问题:1、忘记密码怎么办?
(1) 进入单用户模式输入 passwd 用户名 修改密码
# 问题:2、开机在锁屏界面输入密码后黑屏或者卡住
(1) 按ctrl + alt + f1 切换字符模式
(2) 用 df -H 查看是否系统盘沾满,删除一些文件
# 问题:3、电脑重启不能进入桌面
(1) 光驱里是否有光盘,或者是否查了U盘,确认系统的启动项是否为硬盘。
(2) 最近是否有新装硬件,如果是外设可以拔掉再重试。
# 问题:4、重置用户密码
(1) 启动后出现左侧提示时候,按Enter键可以获取到命令行输入窗口
(2) 可以看到目前提示符为 # 表示拥有root用户身份和权限
(3) 通过passwd 用户名命令进行指定用户的密码重置操作,密码输入过程不会显示任何内容。另外密码强度规则会按照当前系统设置进行判断
(4) 重置用户密码:两边密码输入相同的情况下,完成密码重置操作,最后通过reboot命令重启操作系统即可。
# 问题:5、常见问题-开机logo
(1) 系统启动后,仅看到银河麒麟logo或者仅有个光标在左上角闪烁。
(2) 按ESC键,确认目前屏幕中的输出内容
(3) 出现这个现象的可能性很多,需要结合具体的输出信息才能准确判断原因。
# 问题:6、网络异常-无法访问网络
(1) 例如有线网的IP等网络配置是否正常。
(2) 机器的网卡硬件设备是否正常
(3) 网络交换机是否存在问题
(4) 是否防火墙隔离
(5) 域名DNS解析是否存在问题
(6) 是否存在丢包等情况
# 问题:7、网络异常-检查网络环境
1、检查IP地址、子网掩码、网关、dns配置(若检查网络配置均正确仍连不上网络,换其他电脑正常,需进一步检查是否为本机硬件或驱动问题);
2、ping 127.0.0.1,如果ping不通,一般可以证实本机TCP/IP协议栈有问题,不过出现这种现象的概率比较低;
3、ping 本机IP,如果能ping通,则说明本地设备和驱动都正确;
4、ping 通网段的其他主机或ping网关,确认二层网络设置(比如交换机)工作是否正常。如果ping不通往往说明二层网络上出现了问题,可能涉及交换机的端口工作模式、Vlan划分等因素。(若遇到返回异常看,需联系网络管理员检查交换机配置)
5、ping 网关IP,如果数据包能正常送达网关,则说明主机和本地网络都工作正常。需进一步检查是否有防火墙隔离(现象:此办公室同一台交换机上网络均不通服务器)。
6、ping 生产环境上的某个域名,如果能ping通则说明DNS部分正确,若ping不通则说明DNS出现问题(需联系网络管理员解决DNS问题)
# 问题:8、硬件驱动问题
1、检查本机网卡驱动,模块使用命令systemctl status NetworkManager,查看网络服务是否正常。
2、lsmod | grep ip 查看相关的网卡模块是否已加载。
3、ifocnfig  -a 使用该命令查找到对应网卡配置信息,有的话则说明网卡驱动程序正常。
4、ethtool -S eth0 有rx_***_errors那么很可能是网卡有问题导致系统丢包,需联系机器供应商进行处理
5、使用命令lshw -c network查询,回显信息在configuration处,若有driver字段,则表示有网卡驱动,反之没有。
例如:任务栏右下角

1.3 安装系统

# 系统安装方式有:光盘、USB、PXE、IBMC(服务器)

进入Boot Menu

每个整机进入Boot Menu的方式都不一样,国产机通常是F12,有的是F11、F7等。
在开机的时候看黑屏时左下角一般写 Press F12 to Boot Menu,
以下图为例:下图为进入服务器变化的第一个界面,这个停留时间比较长,桌面停留时间较短。
根据左下角提示进入Boot Menu,简单说明一下下图左下角什么意思:
1.按del进入BIOS设置
2.按F12进入PXE模式(PXE网络方式大批量灌装)
3.按F2到系统引导选择菜单,下图为Boot Option,有的是Boot Menu,都是一个意思
4.按F6到SP boot,没用过,可能是要加载一些第三方驱动的方式进入。

所以通过这个能看出来,这个服务器是按F2进入系统引导选择菜单

img

进入安装界面

img

自定义安装

# 主分区数量不可以大于4个
/boot 主分区 2G
/boo/efi分区:建议512M以上;
/boot分区:建议1G;
/(根分区):整理硬盘的一半空间;
/swap分区:内存的2倍;
/backup分区:不得少于50G,最好是建议与根分区一样大;
/data分区:剩余空间全部给该分区。

1.4 激活系统

1. 登录麒麟系统终端输入 kylin-system-verify 回车;
2. 输入序列号后回车,回激活 二维码;
3. 打开麒麟软件客服,点击右下角的 “扫描二维码” 扫描系统上显示的二维码;
4. 输入服务序列号后,点击激活,界面上会显示激活码;
5. 在服务器上回车后,将麒麟软件客服上得到的激活码输入到服务器操作系统上即可激活;
6. 检查激活状态,输入 kylin_activation_check 即可查看当前激活状态。
# 无法加载激活码,可以联网
apt install kylin-activation --reinstall
apt install libkylin-activation --reinstall
sudo rm -rf /etc/.kyhwid && sudo kylin_activation_check

img

img

img

激活信息备份

激活后注意备份激活信息,不要激活测试机
1.备份注册码sudo  kylin_gen_register
2.备份激活码sudo   cat   /etc/.kyactivation
3.备份序列号sudo  kylin_serial
这些激活信息建议收集后存成文档备份。

激活后重新激活

激活后同一机器硬件不变原则可重复激活,因为激活同主板、硬盘、mac地址有关。
除非以下几种情况:
1.产线KMS激活后信息未导给麒麟。
2.华为OEM版激活的机器尽量不要重装,通过OEM版激活的重复激活需找华为。
3.华为990及9006C重装前必须获取原注册码激活码,或重装到原状态的版本
    以990为例机器有以下四个版本,其激活码不一致
    990-2203通用
    990-2203+掉激活补丁--保密套件
    990-2303-update1
    990-2303-update2

激活常见FAQ

1.客户扫描桌面二维码后,在微信上不出现之前绑定的二维码
    版本不一致
2.扫码报0009:序列号或激活码填错了
3.扫码报0017:硬件信息未能获取到注册码
4.不出现二维码:硬件信息未能获取到
5.扫码激活按钮为灰色:缺.kyinfo及LICENSE

以上可使用我提供的脚本处理或拨打400-089-1870找400处理

1.5 常见问题

数据

# 用户的回收站
cd ~/.local/share/Trash/files/

修改密码

# 进入单用户模式,修改root密码或者是开机用户的密码
# 1. 重启主机,在选择界面按: e
# 2. 将 linux 行的 ro 修改成 rw
# 3. 在 Linux 行的 audit=0后面或者 security 之前添加 init=/bin/bash console=tty0


## 其他
1.删除缓存文件rm /var/log/tallylog.d/.*
2.解锁用户pam_tally2 --user=jy --reset
3.改密码passwd jy,密码要有一定复杂度,注意大小写及不要用小键盘,建议先改ab123123,然后进系统图形化再修改

刻录

apt --reinstall install kylin-burner
# https://archive.kylinos.cn/kylin/KYLIN-ALL/pool/main/k/kylin-burner/

# 银河麒麟桌面操作系统V10-0710等较老版本:sudo apt install --reinstall brasero
# 银河麒麟桌面操作系统V10-2203等较新版本:sudo apt install --reinstall kylin-burner
# 银河麒麟桌面操作系统V10-SP1:sudo apt install --reinstall kylin-burner

img

img

img

img

光盘刻录器

img

img

img

img

img

追加刻录

img

img

img

清理缓存

# WPS卡顿
rm -rf .config/ .cache/ .local/
sudo systemctl restart lightdm

软件包名

# 归档管理器 engrampa
engrampa_1.24.0-2kylin0k73.7_arm64.deb
engrampa-common_1.24.0-2kylin0k72.26px0.4.c_all.deb
libzip5_1.5.1-0kylin1_arm64.deb

## https://archive.kylinos.cn/kylin/KYLIN-ALL/pool/
# 微信 wechat
# 远程桌面客户端 remmina
# FTP客户端 filezilla
# 奇安信可信浏览器 qaxbrowser-safe-stable
# 传书 kylin-
# 搜狗输入法Llinux版 sogouimebs
# 刻录 kylin-burner
# 音乐 kylin-music
# 打印机 kylin-printer
# 影音 kylin-video
sudo apt install vlc # 替代软件

下载离线包软件包

# 更新源
sudo apt update
# 下载单个软件包及其依赖。下载的文件默认保存在 /var/cache/apt/archives/ 目录下,均为 .deb 格式。
apt-get install -d <package-name>


# 添加支持的架构 arm64 loongarch6 mips64el
sudo dpkg --add-architecture arm64
# 删除支持的架构 
sudo dpkg --remove-architecture arm64
# 查看当前默认的架构
dpkg --print-foreign-architectures
# 查找对应架构的软件包下载地址
apt-cache madison hplip:arm64
# 查看对应版本的软件包下载地址
apt-get download --print-uris hilip=3.25.2.2
apt-get download --print-uris hilip:arm=3.25.2.2

虚拟化

apt install wine
apt install kylin-wine-assistant

打开麒麟Wine助手

img

创建一个windows10架构的容器

img

运行一个 xxx.exe 应用

img

FTP工具使用

img

添加站点

img

填写站点信息

填写站点信息

填写站点信息

设置字符集

设置字符集

设置字符集,连接使用即可。

打印机设置

# 除佳能外,都可以测试一下general里面的pcl5和6
# 驱动去麒麟官网查https://eco.kylinos.cn/zoology/commercial.html?system_class=1
# 佳能的官网https://www.canon.com.cn/supports/download/sims/search/index
麒麟软件-生态兼容清单(可以查找打印机等驱动)
https://www.kylinos.cn/eco/ecoSearch/compatibleList/index.html
打印机驱动查询(没有查询到的打印机官网去查)
https://www.kdocs.cn/wo/sl/v329iVmr?app_id=3dZYNT1xersQT3xulOIsPs&R=L1MvMTI=

搭建打印机

左下角开始菜单---控制面板---打印机

img

img

img

img

img

img

修改打印机连接方式

img

修改打印机驱动

img

设置共享打印机

# 流程
1.两台电脑,一台连着打印机为电脑A,另一台电脑B需要远程连接电脑A进行打印
2.电脑A修改防火墙,添加共享打印机端口
3.电脑A配置共享端打印机
4.电脑B查找电脑A的打印机
# 备注
1.麒麟传输端口为9696

电脑A修改防火墙(安全中心>网络保护->防火墙(设置“定义配置”)),取消cpusd,添加UDP和TCP的631端口

打印机A配置共享打印机

打印机B添加打印机

打包字体.deb

# 目录架构
proj
    |   ├── DEBIAN
    │   ├── control //里面包含文件的基本信息,如项目名,版本号,文件等
    │   ├── postinst.sh //安装后操作,下类似
    │   ├── postrm.sh
    │   ├── preinst.sh
    │   └── prerm.sh
    ├── opt
    │   └── your_exec_proj //你的可执行文件
    └── usr
        ├── icons
        │   ├── logo.ico
        │   └── logo.png // 软件图标
        ├── share
        │   └── applications
            │   └── ***.desktop //快捷方式脚本
            
# control 写法
Package: 软件包名  
Version: 版本号
Architecture: amd64 
 // 源代码包名字
 Source: gentoo
 // 该源码包要进入发行版中的分类
 Section: unknown
 Priority: optional
 // 维护人员
 Maintainer: Josip Rodin <joy-mg@debian.org>
 Build-Depends: debhelper (>=10)
 Standards-Version: 4.0.0
 Homepage: <insert the upstream URL, if relevant>
 Package: gentoo
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: 你的软件描述

# ***.desktop 写法
[Desktop Entry]
  Name=应用名
  Name[zh_CN]=应用中文名
#   Categories=type为Application时有用,表示应用程序在菜单中显示的类别
  Comment=对项目的简单描述
  //应用程序的可执行路径
  Exec=/opt/your_exec_proj
  //应用显示的图标
  Icon=/usr/icons/logo.png
  //是否显示黑框框 
  Terminal=false
  //Desktop Entry文件的类型
  Type=Application
  X-Deepin-Vendor=user-custom
  X-ubuntu-Touch=true

打包字体

## 打包字体包
# QT应用依赖安装
sudo apt install dh-make dpkg-dev

# 字体必须目录
Font_DIR
    |
    ├── DEBIAN
    │   └── control //里面包含文件的基本信息,如项目名,版本号,文件等
    └── usr
        ├── share
        │   └── fonts
            │   └── fzfonts //方正字体目录
                │   └── 方正黑体_GBK.TTF
                │   └── 方正行楷_GBK.ttf
                ...

# control文件信息
Package: my-java-app
Version: 1.0
Architecture: all
Depends: default-jre
Description: Java application packaged as DEB.
                    (此处必须空一行再结束)
 
 # 打包
 sudo dpkg -b Font_DIR # 生成Font_DIR.deb

解包&打包软件

解压:
dpkg-deb  -x  包名.deb  目标目录
dpkg-deb  -e  包名.deb  目标目录/DEBIAN   # 该命令解压出来的contorl文件需要在同级创建一个DEBIAN目录放进去

压缩:(把要弄的字体从windows放进去)
mkdir -p 目标目录/usr/share/
dpkg-deb  -b  目标目录  包名.deb  # contorl文件需要在同级创建一个DEBIAN目录放进去
dpkg-deb  --build  目标目录  包名.deb  # 跟上一条命令效果一样

软件商店

# 软件商店关闭重装软件商店:
sudo  apt  clean  all
sudo  apt  update
sudo  apt  install  -f
sudo  apt  install  --reinstall  kylin-software-center 
恢复系统默认源:sudo kylin-source-update

文件搜索

# recoll 文件搜索 https://archive.kylinos.cn/kylin/KYLIN-ALL/pool/main/r/recoll/


二、服务器

1.1 概述

镜像下载

2403-兆芯-海光:https://iso.kylinos.cn/web_pungi/download/cdn/bzhWCpanIXV2rtOU4jsdo1T59FGqvBPS/
2403-飞腾-鲲鹏:https://iso.kylinos.cn/web_pungi/download/cdn/fmUqRnOrxXzIM5wNAhbVpJyCYK26Gi4D/
2403-龙芯-LOONGARCH:https://iso.kylinos.cn/web_pungi/download/cdn/gXEaoZSIc1dhbn8vPqwLQstjlx23T50D/

2303-兆芯-海光:https://iso.kylinos.cn/web_pungi/download/cdn/VYN1IyXedrh4gEmZ2DowFTqRWn3vH9at/
2303-飞腾-鲲鹏:https://iso.kylinos.cn/web_pungi/download/cdn/vwXJFoe4hr6tSYgONncz17iljWm9xq05/
2303-龙芯-LOONGARCH:https://iso.kylinos.cn/web_pungi/download/cdn/dkfvwSVF59PABblmoTcWr	uzgQtsaYGxU/
2303-2212-arm:https://iso.kylinos.cn/web_pungi/download/cdn/TnKkGe8p9aUX1RHIMsqZDVNhY7PcOQB0/
2303-2212-x86:https://iso.kylinos.cn/web_pungi/download/cdn/5ufKy4PTXWQiA37xZMDBcl9Upqz1oV8s/

SP2-兆芯-海光:https://iso.kylinos.cn/web_pungi/download/cdn/SOiJE1jodBRa0XuKZI7lxAcywbpntmhg/
SP2-飞腾-鲲鹏:https://iso.kylinos.cn/web_pungi/download/cdn/BeXV3aprz9sFgxWMl4mbf1Zd8nE6oGKh/

SP1-兆芯-海光:https://iso.kylinos.cn/web_pungi/download/cdn/pv5l8txDMLmhOaWgcG6iZYySRUXN9j3e/
SP1-飞腾-鲲鹏:https://iso.kylinos.cn/web_pungi/download/cdn/u7B95hLMvXytTKdZ6wF82eHmQjbNqpfC/
SP1-龙芯-MIPS:https://iso.kylinos.cn/web_pungi/download/cdn/QXY34TutUVac9M0POfDCwhRIHm5vEkBn/

## 2403 4K内核 https://iso.kylinos.cn/web_pungi/download/cdn/WcmSg5FqQbVo7IkAPzD8yC032Xp14dnh/
Kylin-Server-V10-SP3-2403-Release-kernel-4k-4.19.90-89.19.v2401-20250224-ARM64.tar.gz

挂载本地源

mkdir -p /mnt/cdrom
mount /dev/sr0 /mnt/cdrom # 光驱
mount /dev/
# vim /etc/yum.repo.d/kylin.repo
[ks10]
name = kylin
baseurl = file:///mnt /cdrom
gpgcheck = 0
enabled = 1
# 更新yum缓存
清空yum缓存:
yum clean all
建立新的yum缓存:
yum makecache
# 验证yum源配置
查看可用软件包:
yum list
如果输出中没有红色的软件包名,则表示yum源配置成功。
# 安装软件包
使用yum安装软件包,例如:
yum install -y 包名
# 需要永久挂载可以添加一下配置 vim /etc/fstab
/path/Kylin-Server-xxx.iso /mnt/cdrom iso9660 defaults 0 0

安装后调整

# 卸载gui界面,会同时卸载lvm2的组件,导致vg失效
yum grouplist
yum groupinstall "最小化安装"
yum groupremove "GUI界面"
# 安装安全套件SDK
yum grouplist
yum groupinstall  安全套件SDK
dracut --force # 需要执行该命令重新生成initrd

显示隐藏文件

1.2 网络配置

手动配置IP

# 编辑网卡
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
# 配置
DEVICE=eth0
TYPE=Ethernet
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4

# 重启网络配置
systemctl restart NetworkManager

# 启停网卡
ifconfig ens33 up
ifconfig ens33 down

配置路由

# 查看路由表
route -n
# 
route add default gw 192.168.1.1 dev eth0 metric 204
route del default gw 192.168.1.1 eth0

Bond模式介绍

Mode 名称 别名 核心特性 适用场景
0 balance-rr 轮询模式 轮询发送数据包,接收从当前活动的网卡返回。 需均衡流量且交换机不支持聚合的场景(如非智能交换机)。
1 active-backup 主备模式 仅主网卡活动,主网卡故障时切换到备网卡。 高可用性优先,无需交换机配置。
2 balance-xor XOR哈希模式 基于MAC或IP的哈希算法选择发送网卡,接收从发送网卡返回。 需固定流量的负载均衡,交换机需支持静态聚合(802.3ad)。
3 broadcast 广播模式 所有数据包通过所有网卡发送,接收从任意网卡返回。 极端冗余需求(如金融交易),但带宽浪费严重。
4 802.3ad LACP模式 动态链路聚合,基于LACP协议协商聚合组,需交换机支持。 高带宽和冗余需求,交换机需配置LACP(如Cisco EtherChannel)。
5 balance-tlb 自适应传输负载均衡 主网卡接收数据,发送时根据当前网卡负载选择出口。 仅需优化出站流量,入站流量依赖主网卡。
6 balance-alb 自适应负载均衡 包括balance-tlb功能,并添加ARP协商实现入站流量负载均衡。 需均衡入站和出站流量,无需交换机支持(通过修改ARP实现)。
7 balance-slb(部分驱动) 网卡驱动扩展 类似balance-alb,但由网卡硬件实现负载均衡(如Intel驱动)。 依赖特定网卡驱动,较少使用。

nmtui命令创建bond6

# 步骤1: 终端输入以下命令,进入文本配置界面
nmtui
# 步骤2: 编辑或添加连接, 选择 Edit a connection → 回车
# 步骤3: 创建Bond连接, 配置Bond参数:
Profile Name:输入Bond名称(如bond0)。
Device:自动填充为bond0(或手动输入)。
Bond Mode:选择 balance-alb(即mode=6)。
Primary Connection:留空(bond6无需主备设置)。
IPv4 Configuration:选择 Manual,输入静态IP、子网掩码、网关和DNS。
IPv6 Configuration:根据需求配置(可选)
# 步骤4: 绑定物理网卡, 返回主菜单,选择 Add 添加从属网卡。连接类型:选择 Ethernet → 回车。配置网卡参数:
Profile Name:输入网卡名称(如eth0-slave)。
Device:选择物理网卡(如eth0)。
Slave:勾选 This connection is a slave。
Master:选择刚创建的Bond名称(如bond0)。
重复上述步骤,绑定另一块网卡(如eth1)。
# 步骤5: 保存并退出
确认所有配置无误后,选择 Activate a connection,激活bond0。退出nmtui。
# 步骤6: 重启网络服务
systemctl restart NetworkManager
# 步骤7: 检查bond
ip addr show bond0 # 查看Bond接口信息
cat /proc/net/bonding/bond0 # 检查Bond模式及从属网卡

## nmcli命令
# 查看设备状
nmcli device status
# 查看所有连接详情
nmcli connection show
# 查看特定网卡的详细参数
nmcli connection show ens33

## 静态IP配置
# 1.设置为手动配置模式 (static)
nmcli connection modify eth0 ipv4.method manual
# 2.配置 IP 和掩码 (使用 CIDR 格式)
nmcli connection modify eth0 ipv4.addresses 192.168.1.16/24
# 3. 配置网关
nmcli connection modify eth0 ipv4.gateway 192.168.1.1
# 4. 配置 DNS (多个可用空格隔开)
nmcli connection modify eth0 ipv4.dns "8.8.8.8 114.114.114.114"
# 【重要】激活配置
nmcli connection up eth0

## 其他常用命令
# 重启网卡(相当于先断开再连接,常用于让配置生效)
nmcli connection down eth0 && nmcli connection up eth0
# 设置网卡随系统自动启动
nmcli connection modify eth0 connection.autoconnect yes


### bond配置
# 查看现有连接
nmcli connection show
# 删除旧连接(假设名为 eth1 和 eth2)
nmcli connection delete eth1
nmcli connection delete eth2

# 创建 bond0 接口,并指定模式为 active-backup,miimon=100 表示每 100 毫秒检查一次链路状态
# Mode0: balance-rr (轮询);  Mode1: active-backup (主备); Mode2: balance-xor
# Mode3: broadcast; Mode4: 802.3ad; Mode5: balance-tlb; Mode6: balance-alb(最智能的模式。利用 ARP 协商实现双向负载均衡)
nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup,miimon=100"

# 添加第一块物理网卡
nmcli connection add type ethernet con-name bond0-port1 ifname eth1 master bond0
# 添加第二块物理网卡
nmcli connection add type ethernet con-name bond0-port2 ifname eth2 master bond0

# 设置静态 IP、网关和 DNS
nmcli connection modify bond0 ipv4.addresses 192.168.1.16/24
nmcli connection modify bond0 ipv4.gateway 192.168.1.1
nmcli connection modify bond0 ipv4.dns "8.8.8.8"
nmcli connection modify bond0 ipv4.method manual

# 启动 Bond 接口
nmcli connection up bond0

# 查看 Bond 状态,通过内核文件查看当前哪块网卡正在工作
cat /proc/net/bonding/bond0

1.3 磁盘配置

挂载磁盘

## 场景1: 2块480G的SSD组成Raid1作为系统盘,默认boot分区1G大小,交换机分区大小默认是内存的大小;3~4块4T的HDD组成raid5/6挂载在/data目录下。
lsblk # 查看块设备信息
【2选用1】fdisk /dev/sdb # 创建磁盘分区, n创建, p查看, d删除, w保存退出
【2选用1建议这个】parted /dev/sdb # 高级分区管理, 
	# mklabel gpt // 将磁盘标签改为GPT(适合大容量磁盘)。
	# mkpart xfs 0% 100% //创建从1MiB到磁盘末尾的主分区。
	# quit //退出并应用更改。
pvcreate /dev/sdb1 # 初始化物理卷, 将分区(如/dev/sdb1)标记为LVM物理卷(Physical Volume),准备加入卷组。pvdisplay
vgcreate dvg /dev/sdb1 # 创建vg
lvcreate -l 100%FREE -n dlv dvg # 创建lv
mkfs.xfs /dev/dvg/dlv # 格式化lv
mkdir /data # 创建挂载点
lsblk
blkid # 查看UUID
vi /etc/fstab # 添加自动挂载
# UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /data xfs defaults 0 0 
mount -a # 挂载测试
df -TH # 检查挂载信息

## 检查命令
lsblk -f # 输出实例: ├─sda2 xfs          7890abcd-1234-5678-90ab-cdef12345678 /data
blkid # 输出示例: /dev/sda2: UUID="7890abcd-1234-5678-90ab-cdef12345678" TYPE="xfs"
df -T # 输出实例: /dev/sda2      xfs   20511312 3456789   17054523  17% /data

## 回滚命令
lvremove /dev/dvg/dlv  # 删除 lv
vgremove /dev/dvg # 删除 vg
pvremove /dev/sdb1 # 删除 pv 物理卷

重装保留数据分区

# 步骤1.使用安装介质正常启动服务器,直至进入系统安装界面。
# 步骤2.在安装界面中,选择“硬盘”选项,接着点击“自定义分区”。
# 步骤3.先对 boot、efi、swap、/ 等系统分区,重新输入对应的挂载点,并勾选“格式化”选项,完成设置后点击“Update Settings”。
# 步骤4.再对其他非系统分区的数据分区,重新输入挂载点,然后点击“Update Settings”。
# 步骤5.仔细检查所有分区设置无误后,点击“完成”,按照安装程序的其他要求完成系统安装配置即可。

磁盘扩缩容

### 扩容分区
# 扩容根分区
pvcreate /dev/sdb1
vgdisplay
vgextend klas /dev/sdb1
lvextend -l +100%FREE /dev/klas/root

## 环境自查
# 查看挂载点、容量及文件系统类型 (重点看 Type 列)
df -Th
# 查看卷组剩余空间 (看 VFree 列)
vgs
# 查看逻辑卷路径
lvs

### 扩容操作 (支持 XFS 和 Ext4)
## 第一阶段:确保卷组(VG)有空间
# 1. 初始化新磁盘 (以 /dev/sdb 为例)
pvcreate /dev/sdb
# 2. 将新磁盘加入现有卷组 (假设卷组名为 kylin)
vgextend kylin /dev/sdb
## 第二阶段:扩展逻辑卷(LV)
# 方式 A:增加固定大小 (例如增加 10G)
lvextend -L +10G /dev/mapper/kylin-root
# 方式 B:将所有剩余空间分配给该分区
lvextend -l +100%FREE /dev/mapper/kylin-root
## 第三阶段:扩展文件系统 (在线生效) 根据 df -Th 查询到的类型执行对应命令
# XFS 类型:
xfs_growfs /
# Ext4 类型
resize2fs /dev/mapper/kylin-root

### 缩容操作 (仅限 Ext4,XFS不支持)
# 1. 卸载分区
umount /dev/mapper/kylin-data
# 2. 强制检查文件系统
e2fsck -f /dev/mapper/kylin-data
# 3. 缩减文件系统到指定大小 (例如 20G)
resize2fs /dev/mapper/kylin-data 20G
# 4. 缩减逻辑卷到指定大小 (必须与上面一致)
lvreduce -L 20G /dev/mapper/kylin-data
# 5. 重新挂载
mount /dev/mapper/kylin-data /data

1.4 服务配置

Chrony&NTP服务

## 服务端
# 开启chronyd服务器
systemctl status chronyd
# vim /etc/chrony.conf
server 192.168.1.16 # 指定本地的服务器ip
allow 192.168.1.0/24 # 表示允许192.168.1网段机器访问
local stratum 10 # 如果不需要同步网络时间的话,使用本地时间
# 启动 chronyd 服务
systemctl start chronyd
# 查看时间源是否是服务器本身,最下面应该会显示服务器主机名
chronyc sources -v
# 追踪时间状态是否是服务器本身
chronyc tarcking

## 客户端
# vim /etc/chrony.conf
server 192.168.1.16 # 指定服务器的NTP IP地址
# 重启 chronyd 服务
systemctl restart chronyd
# 查看时间源是否指向服务器
chronyc sources -v
# 最终时间状态是否指向NTP服务器
chronyc tracking
# 查看当前时间
date
# 检查时间是否同步
ntpdate 192.168.1.16 # 其中 192.168.1.16 是NTP服务器IP


### 级联A-B-Client
## A服务器
# /etc/chrony.conf
# 如果有上游时钟则写上游,如果没有则注释掉所有 server 选项
# server ntp.aliyun.com iburst

# 允许服务器B(假设IP为192.168.1.17)访问
allow 192.168.1.17

# 核心配置:即使没有网络,也强制宣告自己是同步源
# stratum 10 表示层级较低,你可以设置为 10 确保它不会干扰更高精度的时钟
local stratum 10

## B服务器
# /etc/chrony.conf
# 1. 指向服务器 A
server 192.168.1.16 iburst

# 2. 允许其他客户端网段访问
allow 192.168.1.0/24

# 3. 关键:不要在服务器B上写 local stratum,除非你想在A宕机时让B接管。
# 如果写了 local stratum,B 可能会在尚未同步 A 的情况下就给客户端提供错误时间。

## Client
# /etc/chrony.conf
server 192.168.1.17 iburst


## 最后
# 在 A 和 B 上都需要开启
firewall-cmd --add-service=ntp --permanent
firewall-cmd --reload

VNC服务

mkdir /mnt/cdrom
mount -o loop  Kylin-Server-V10-SP3-2403-Release-20240426-ARM64.iso /mnt/cdrom
cd /etc//yum.repos.d/
mkdir bak
cp kylin_arm64.repo bak/
# vim kylin-arm64.repo 编辑源配置文件
[base] 
name=Kylin-os 
baseurl=file:///mnt/cdrom/ 
enabled=1 
gpgcheck=0
# 使用本地源
yum clean all
yum makecache 
# 检查系统是否 “带 UKUI GUI 的服务器”
yum grouplist 
# 安装 VNC
yum install tigervnc-server -y 
# 拷贝vnc配置文件
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:55.service # 5955端口

## 配置VNC配置 vi /etc/systemd/system/vncserver@:55.service
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
# WorkingDirectory=/home/<USER>
WorkingDirectory=/root
# User=<USER>
User=root
# Group=<USER>
Group=root

# PIDFile=/home/<USER>/.vnc/%H%i.pid
PIDFile=/root/.vnc/%H%i.pid

ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver -autokill %i
ExecStop=/usr/bin/vncserver -kill %i

# Restart=on-success
Restart=always
RestartSec=15

[Install]
WantedBy=multi-user.target
## end

## 设置VNC密码,不建议设置only-view的密码
sudo -u root vncpasswd # 以root用户为例,密码限制8位,参考

## 启动服务
systemctl daemon-reload
systemctl start vncserver@:55.service
systemctl enable vncserver@:55.service
systemctl status vncserver@:55.service

## 防火墙放通
firewall-cmd --zone=public --add-port=5901-5999/tcp --permanent
firewall-cmd --reload

## vnc远程测试
ip:5901

vsftpd

# 1. 安装vsftp和ftp包
yum -y install vsftpd ftp

# 2. 创建ftpd FTP用户并设置密码
useradd ftpd
echo "Kylin@password1234" | passwd --stdin ftpd

# 3. 创建FTP文件夹和文件
mkdir -p /home/ftpd/test
chmod -R 777 /home/ftpd/test/

# 4. 编辑vsftpd的配置文件, 在文件后添加以下配置
vim /etc/vsftpd/vsftpd.conf

userlist_enable=YES
local_root=/home/ftpd/test
local_enable=YES

# 5. 重启vsftpd服务并检查状态
systemctl restart vsftpd
systemctl status vsftpd

# 6. 测试FTP连通性
ftp 127.0.0.1
ftpd
Kylin@password1234
exit

# 7. 其他:检查防火墙状态
systemctl status firewalld

1.5 其他

下载服务器源

## 其他后台运行方式
1. 开启新会话
tmux new -s sync
2. 运行脚本后分离: 按下 Ctrl + B,然后按 D。
3. 重新接入会话:
tmux attach -t sync


## 运行方式
sync_kylin_pro.sh all
sync_kylin_pro.sh update
sync_kylin_pro.sh base


## vim sync_kylin_pro.sh all
#!/bin/bash

# ================= 配置区 =================
TARGET_DIR="./Kylin_V10SP3_Offline_Repo"
THREADS=10  # 根据你的带宽/磁盘性能调整并发数

# 定义源映射
declare -A REPO_MAP
REPO_MAP["base"]="https://update.cs2c.com.cn/NS/V10/V10SP3-2403/os/adv/lic/base/aarch64/Packages/"
REPO_MAP["update"]="https://update.cs2c.com.cn/NS/V10/V10SP3-2403/os/adv/lic/updates/aarch64/Packages/"

# ================= 逻辑区 =================
mkdir -p "$TARGET_DIR"

# 同步函数
sync_repo() {
    local NAME=$1
    local URL=$2
    local REPO_PATH="$TARGET_DIR/$NAME"
    mkdir -p "$REPO_PATH"

    echo -e "\n\033[32m[开始处理]\033[0m 仓库: $NAME"
    echo "远程地址: $URL"
    
    # 1. 获取列表
    echo "正在解析远程软件包列表..."
    mapfile -t ALL_FILES < <(curl -s "$URL" | grep -oE 'href="([^"#]+.rpm)"' | cut -d'"' -f2)
    
    TOTAL_COUNT=${#ALL_FILES[@]}
    if [ "$TOTAL_COUNT" -eq 0 ]; then
        echo -e "\033[31m[错误]\033[0m 无法连接到源或该目录下无 RPM 包。"
        return
    fi

    # 2. 并发下载 (支持断点续传 -c, 增量更新 -N)
    echo "发现总包数: $TOTAL_COUNT,准备执行增量同步..."
    
    (
        for file in "${ALL_FILES[@]}"; do
            echo "$URL$file"
        done | xargs -P "$THREADS" -n 1 wget -c -N -q -t 3 --timeout=15 -P "$REPO_PATH"
    ) &
    
    # 进度监控
    local PID=$!
    while kill -0 $PID 2>/dev/null; do
        CURRENT_COUNT=$(ls -1 "$REPO_PATH"/*.rpm 2>/dev/null | wc -l)
        REMAINING=$((TOTAL_COUNT - CURRENT_COUNT))
        if [ "$REMAINING" -lt 0 ]; then REMAINING=0; fi
        
        # 计算百分比
        PERCENT=$((CURRENT_COUNT * 100 / TOTAL_COUNT))
        
        printf "\r\033[36m进度:\033[0m [%-20s] %d%% (%d/%d) 剩余: %d  " \
            "$(printf '#%.0s' $(seq 1 $((PERCENT / 5))))" \
            "$PERCENT" "$CURRENT_COUNT" "$TOTAL_COUNT" "$REMAINING"
        sleep 1
    done
    wait $PID

    # 3. 索引处理
    echo -e "\n\033[32m[下载完成]\033[0m 正在生成/更新仓库索引..."
    if command -v createrepo >/dev/null 2>&1; then
        createrepo --update "$REPO_PATH"
        echo "[√] $NAME 索引更新完毕。"
    else
        echo "[!] 警告: 未找到 createrepo,离线环境可能无法直接识别该源。"
    fi
}

# --- 参数解析逻辑 ---
case "$1" in
    "base")
        sync_repo "base" "${REPO_MAP["base"]}"
        ;;
    "update")
        sync_repo "updates" "${REPO_MAP["update"]}"
        ;;
    "all" | "")
        echo "未指定参数或指定 all,将全量同步所有源..."
        sync_repo "base" "${REPO_MAP["base"]}"
        sync_repo "updates" "${REPO_MAP["update"]}"
        ;;
    *)
        echo "用法: $0 {base|update|all}"
        echo "示例: $0 update  (仅更新补丁源)"
        exit 1
        ;;
esac

# --- 自动生成 U 盘部署脚本 ---
# (此部分逻辑保持不变,确保 U 盘拷贝后能用)
if [ ! -f "$TARGET_DIR/setup_offline.sh" ]; then
    cat <<'EOF' > "$TARGET_DIR/setup_offline.sh"
#!/bin/bash
REPO_BASE_PATH=$(cd "$(dirname "$0")"; pwd)
echo "正在配置离线 YUM 源..."
mkdir -p /etc/yum.repos.d/backup
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/ 2>/dev/null
cat <<EOT > /etc/yum.repos.d/kylin_offline.repo
[offline-base]
name=Kylin_Offline_Base
baseurl=file://$REPO_BASE_PATH/base
enabled=1
gpgcheck=0

[offline-updates]
name=Kylin_Offline_Updates
baseurl=file://$REPO_BASE_PATH/updates
enabled=1
gpgcheck=0
EOT
yum clean all && yum makecache
echo "配置成功!"
EOF
    chmod +x "$TARGET_DIR/setup_offline.sh"
fi

echo -e "\n\033[32m[任务结束]\033[0m 请将 $TARGET_DIR 整个目录拷贝至 U 盘。"

三、邮件系统

3.1 中标V7

规划

# 需要依赖,最好有图形化服务
yum  groupinstall "Server with UKUI GUI"
#如果需要图形化启动可以执行命令 systemctl sef-default graphical.target 之后再 reboot 就

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

划分磁盘

# 创建物理卷. pvdisplay | pvscan
pvcreate /dev/sdb
pvcreate /dev/sdc

# 创建卷组 vgcreate vg_name pv_name. vgdisplay | vgscan
# node1
vgcreate datanode1 /dev/sdb
vgcreate datanode2 /dev/sdc
# node2
vgcreate datanode3 /dev/sdb
vgcreate datanode4 /dev/sdc

# 创建逻辑卷. lvdisplay
# node1
lvcreate -n node1 -l 100%FREE datanode1
lvcreate -n node2 -l 100%FREE datanode2
# node2
lvcreate -n node3 -l 100%FREE datanode3
lvcreate -n node4 -l 100%FREE datanode4

# drbd设备初始化操作
# node1
dd if=/dev/zero of=/dev/datanode1/node1 bs=1M count=100
dd if=/dev/zero of=/dev/datanode2/node2 bs=1M count=100
# node2
dd if=/dev/zero of=/dev/datanode3/node3 bs=1M count=100
dd if=/dev/zero of=/dev/datanode4/node4 bs=1M count=100

安装

# 安装软件
rpm -ivh --force nsmail-8.3.0.xxx.rpm
# 集群服务启停
/opt/AQYJ/nsmail/init.d/nsmailservice cs2cmail  restart

配置


## 访问集群url
http://192.168.110.101:8022

## 创建主机群;主机管理-创建
node1-manager       192.168.110.101
node1-storage       192.168.120.101
node1-hearbeat      192.168.130.101
node1-vip           192.168.110.103

node2-manager       192.168.110.102
node2-storage        192.168.120.102
node2-hearbeat      192.168.130.102
node2-vip           192.168.110.104

## 创建第一组DRBD磁盘关系
资源名称        drbd0
节点IP          设置node1存储的IP
物理IP          设置node1的管理IP
端口号默认      20000
块设备          设置node1服务器的第一块盘
对端节点IP      设置node2的存储IP
对端物理节点IP  设置node2的管理IP
对端节点块设备  设置node2服务器的第一块盘
端口号默认      20000

## 创建第二组DRBD磁盘关系
资源名称        drbd1   
节点IP          设置node2存储的IP
物理IP          设置node2的管理IP
端口号          设置20001
块设备          设置node2服务器的第二块盘
对端节点IP      设置node1的存储IP
对端物理节点IP  设置node1的管理IP
对端节点块设备  设置node1服务器的第二块盘
端口号默认      20001

## drbd磁盘格式化
# Drbd管理 - 点击“查看”按钮
查看磁盘同步是否完成100%,手动执行磁盘格式化
步骤: 在 node1 服务器手动格式化 drbd0 磁盘
sudo mkfs.ext4 /dev/drbd0
步骤: 在 node2 服务器手动格式化 drbd1 磁盘
sudo mkfs.ext4 /dev/drbd1

## 创建节点组
# 集群管理 > 添加节点组



## 创建集群组-添加节点组


## 创建集群组-添加虚拟IP


## 创建集群组-添加心跳

## 创建集群组-创建存储

## 创建集群组-确认配置

## 集群发布

## 集群启用

## 集群序列号激活 XXJW

## 管理员访问方式

## 用户访问方式

## 快速上手
# 登录系统管理员-mail_admin

# 创建企业及域名

# 登录并重置企业管理员密码

## 

优化&问题

## sp3的版本适配问题 (创建第一组DRBR磁盘关系的时候发现 “快设备” 没有识别)解决方法
# 环境信息:release V10 SP3 2403/(Halberd)-x86_64-Build20/20240426
# 两个节点都需要执行以下操作
cd /opt/AQYJ/nsmail/bin
mv fdisk  fdisk_bak
mv sqlite3 sqlite3_bak
ln -s  /usr/sbin/fdisk  /opt/AQYJ/nsmail/bin/fdisk
ln -s /usr/bin/sqlite3 /opt/AQYJ/nsmail/bin/

3.2 中标v5

准备

安装包:
激活码:
服务器系统:

金仓数据库安装包:
激活码:

安装

rpm -ivh xxx.rpm --force

## 修改配置文件
# 修改前台连接数据库地址
vim /opt/AQYJ/nsmail/conf/db.conf
vim /opt/AQYJ/nsmail/Cs2cInst/html/nsmail_admin/config.php 
vim /opt/AQYJ/nsmail/Cs2cInst/html/nsmail/config/db.inc.php 
vim /opt/AQYJ/nsmail/Cs2cInst/html/nsmail/plugins/password/config.inc.php
vim /opt/AQYJ/nsmail/Cs2cInst/php/etc/php.ini

# 修改密码超时时间
vim /opt/AQYJ/nsmail/Cs2cInst/html/system_env.php

# 中标邮件系统V5
/opt/AQYJ/nsmail/init.d/nsmailservice cs2cmail stop
/opt/AQYJ/nsmail/init.d/nsmailservice cs2cmail start
/opt/AQYJ/nsmail/init.d/nsmailservice cs2cmail restart
/opt/AQYJ/nsmail/init.d/nsmailservice cs2cmail status

金仓数据库V8R3

# 创建数据库用
useradd kingbase
# 创建安装目录
mkdir /opt/kingbase
chmod 777 /opt/kingbase
# 创建安装文件包路径
mkdir /opt/package
chmod 777 /opt/package
# 挂载镜像
mount 镜像 /mnt
cp -a /mnt/* /opt/package/
chmod 777 -R /opt/package/

# 安装数据。字符集选择UTF-8,大小写不敏感选择case-insensitive
su - kingbase
bash /opt/package/setup.sh

# 启动金仓数据库
/opt/kingbase/Server/bin/sys_ctl -D /opt/kingbase/data/ start

# 进入数据库
/opt/kingbase/Server/bin/ksql test system
# 创建用户及数据库并授予相关权限
test# create user xxx_username with password 'xxx_password';
test# create database xxx_database owner xxx_username;
test# grant system to xxx_username;

# 使用某个用户进入某个数据库中
/opt/kingbase/Server/bin/ksql -U xxx_username
# 在对应数据库中导入数据备份
\i 备份文件绝对路径.sql

# 其他常用命令
\l+ # 查库
\d+ # 查表
\du # 查用户
select * from xxx_table;

# 查询用户的cguid
select name,cguid from mail_user where cguid<>'';
select * from alias where address='xxx@xxx.net';
select name,cguid from mail_user where name = 'xxxx@xxx.net';
delete from alias where id=xxxx;

# 查看日志
tail -f /opt/AQYJ/nsmail/log/httpd/ssl_error_log

四、应用商店

概述


软件管理平台:http://192.168.16.118:18080/login , 默认账号: admin/admin
软件更新平台:http://192.168.16.118:8880/login,默认账号:root/Kylin2023*

img

准备

# 麒麟服务器系统,最小化安装(选择安装开发工具),4C8G,150G空间
默认服务器账号和密码
# 部署软件商店需要ifconfig命令,故需要安装net-tools工具
yum update
yum install -y net-tools
# 挂载镜像,将镜像安装资源拷贝除了
mount /opt/Kylin-softwarestore-V2-2.7-Release-20250220-X86_64.iso /mnt
mkdir /opt/software
cp -r /mnt/* /opt/software/

环境准备

初始化

cd /opt/software/00init
tar zxvf init-x86_64.tar.gz
cd base-env-x86_64/
bash init.sh

初始化环境

部署软件管理平台

cd /opt/software/01soft_manager
cat ksm-inline-v2.7-amd64.tar.gz.sha* > ksm-inline-v2.7-amd64.tar.gz
tar xvzf ksm-inline-v2.7-amd64.tar.gz
#复制激活⽂件`.kyinfo`和`LICENSE`到`ksm-inline`同级安装⽬录/opt/software/01soft_manager/ksm-inline
cd ksm-inline/shell/
bash deploy.sh

1

安装配置

image-20251011105027630

清空公网软件包

# show tables;
docker exec -it mysql bash
mysql -uroot -pmysql@kylin
use kylin_soft_shop;
update t_kylinos_application_status set delete_status = 1,update_time=now() where 1=1;
update t_kylinos_application_basic set update_time=now() where 1=1;
update t_kylinos_store_android_info set delete_status =1 where 1=1;
flush privileges;
exit

软件更新管理平台


软件更新平台:http://192.168.16.118:8880/login,默认账号:root/Kylin2023*

安装

cd /opt/software/02update_manager/
cat kss-2.2.1-amd64.tar.gz.sha0 > kss-2.2.1-amd64.tar.gz
tar xvzf kss-2.2.1-amd64.tar.gz
cd kss_deploy/
# 使用脚本安装更新管理平台
bash ./shell/main.sh

软件管理平台

新建仓库源

仓库

新建仓库

image-20251011155801116

同步仓库配置

image-20251011160231897

img

上传软件包

# 下载向日葵软件 https://sunlogin.oray.com/download/linux?type=personal
SunloginClient_11.0.1.44968_kylin_amd64.deb
# 错误类型deb文件名不能存在大写,软件名_版本_架构.deb
sunloginclient_11.0.1.44968_amd64.deb

上传软件

添加基本信息

img

上传相关照片

img

添加标签

img

发布软件

img

客户端使用

软件管理平台:http://192.168.16.118:8880/login , 默认账号: admin/admin
软件更新平台:http://192.168.16.118:18080,默认账号:root/Kylin2023*

客户端配置

# 注释其他源地址,添加源 vim /etc/apt/sources.list
deb http://192.168.16.118:8002/DEB/KYLIN_DEB bank_test main
# 禁止修改
sudo chattr +i /etc/apt/sources.list
# 取消锁定
sudo chattr -i /etc/apt/sources.list
lsattr /etc/apt/sources.list

软件商店添加源地址

软件商店修改服务器地址

默认配置

常用命令

sudo apt update # 更新源
apt policy sunloginclient # 查看软件包

apt policy

更新管理平台

# 麒麟软件更新管理平台V2.2(全ARM架构)【麒麟源更新管理平台推送】操作指南
https://kb.kylinos.cn/qywx/zsk_view_kb/view/helpdoc/2811

## 麒麟软件更新管理平台V2.1(全X86/ARM架构)【标准事务创建模板】操作方法
【使用场景】
推送软件更新获取的时候,需要根据情况选择标准事务或者兼容事务创建,以下是标准事务模板创建过程。
备注:桌面客户端获取标准事务推送条件是kylin-software-properties组件高于以下这个版本:
kylin-software-properties_0.0.1.1-0k5.10_arm64.deb

【操作步骤】
以推送tcpdump软件包为例,登录更新管理平台配置,具体步骤如下:
步骤1.新建软件源
源配置-->源地址-->添加源地址(私有化地址获取方式软件商店管理平台上-->仓库管理-->选中自己要使用的软件源仓库点击“详情”-->点击版本信-->点击“复制地址”)。
步骤2.新建配置项
源配置-->配置项-->新建配置项-->根据实际情况自定义信息,例如在重要更新包中输入tcpdump-->确认-->点击刚刚创建配置项"详情"-->关联源地址(输入实际刚刚添加的源地址)。
步骤3.新建条件
事务管理-->条件-->新建条件(条件配置,一般新建选择"系统/补丁版本"为build idcat  /etc/kylin-build)或者使用自带的版本条件:例如2403,当测试匹配不上可以添加两个)。
步骤4.新建节点
事务管理-->节点-->新建节点-->输入自定义名字和新建的配置项名称。
步骤5.新建事务
事务管理-->事务-->新建事务-->自定义名称;类型选择标准;预计推送时间默认不动;推送范围,按实际情况来即可-->点击“下一步”-->节点添加,点击节点名称输入框会提示已创建节点,选择自己所需的即可-->点击“下一步”-->关联机器页面需要按需选择,一般不带域控的私有化,只需要新建机器即可,带麒麟域控的更新平台可以选择组织或者分组,此处按实际来即可,本次标准案例,使用机器,填入实际的桌面客户端服务序列号(cat  /etc/.kyinfo)即可-->点击“创建”。
步骤6.启动事务
事务管理-->事务-->选择自己需要的事务点击右边的“启用'即可。


## 麒麟软件更新管理平台V2.2(全ARM架构)【系统更新完成后,信息集合以表格形式汇总展示】操作方法
【使用场景】
系统更新完成之后,需要将其信息集合导出为一个表格进行查看。

【操作步骤】
进入更新管理平台所在的服务器,运行命令:docker exec -it kylin-system-upgrade-mariadb bash;
进入容器之后,运行命令:mysqldump -u root -p  --databases system_upgrade  > ./su-xxx.sql;
输入密码:Bigdata*20230413*mariadb,要来回两次,第一次可能会报错,再运行一次即可;
接着运行命令:exit,退出容器,再运行命令:docker cp kylin-system-upgrade-mariadb:/su-xxx.sql ./,将sql文件复制到本机,然后通过第三方工具将 sql 转成 excel。
如下是可能会用的相关表的释义:
machine 机器
node 节点
transaction 事务
txn_mtm_machine_log 推送日志
这里可以使用Navicat Premium工具或者其他第三方工具将其转成所需excel。


## 麒麟软件更新管理平台V2.2(全X86/ARM架构)【客户端主动安装服务端推送的强制更新】操作方法
【使用场景】
在麒麟软件更新管理平台中,创建事务并推送强制更新后,需桌面客户端主动检测强制更新的获取是否正常,而不是等待任务自动获取更新。
【操作步骤】
在银河麒麟桌面操作系统上,打开终端,输入kylin-background-upgrade命令。


## 麒麟软件更新管理平台V2.2(全架构)【客户端查看服务端推送的强制更新包列表方法】
服务端推送的强制更新包列表存储于客户端本地文件:
/var/lib/kylin-software-properties/template/crucial.list
可以通过终端查看列表:
cat /var/lib/kylin-software-properties/template/crucial.list

五、HA高可用

概述

# 至少需要 2 个节点,节点可以是物理服务器和虚拟机,每个节点至少需要 2 块网卡做心跳与业务网卡;
# [可选]建议使用一台 SAN/NAS/ISCSI/NFS 存储作为数据共享存储空间;
# [可选]提供电源管理设备。
备注:心跳链路可以配置多条,有VIP(2台设备虚拟出一个虚拟IP)场景,也可以服务(脚本,systemctl)的切换等。共享存储的切换等。
系统端口: 22、8088、2224、5405、5406
前端管理地址:https://ip:8088   账号:hacluster

# 启动
systemctl enable pcsd --now
systemctl enable ha-api --now
pcs host auth ha1 # 输入 hacluster 和 对应密码
pcs host auth ha2 # 输出 hacluster 和 对应密码

# 单心跳网络创建集群
pcs cluster setup hacluster ha1 addr=192.168.16.51 ha2 addr=192.168.16.52

## 集群相关命令
# 启动集群
pcs cluster start --all
# 查看集群状态
pcs status
# 停止集群
pcs cluster stop --all
# 删除集群
pcs cluster destroy
# 查看集群配置项
pcs property --all
# 开机自启动
pcs cluster enable --all

img

高可用集群

# 高可用集群是指以减少服务中断时间为目的的服务器集群技术,由两台或多台主机构成,它通过保护用户的业务横向对外不间断提供的服务,把因软件/硬件/人为的故障业务的影响降低到最小程度。
# 支持CPU架构:飞腾、兆芯、龙芯、申威、海光、鲲鹏等。

集群的三种模式

特性

# 图形管理界面
友好、直观、操作简易的B/S图形管理界面,能够简单便捷的完成通用资源保护配置并提供集群报警等功能。
# 秒级切换
秒级容错技术能够有效的使被保护服务资源在极短的时间内完成自动切换任务,满足应用的持续性服务要求。
# 多保护场景
能够对物理机/虚拟机系统故障、物理机/虚拟机掉电/虚拟机掉电、断网、网络时断时续等系统故障进行检测并自动完成切换保护。
# 多集群备援模式
支持双击热备模式、双机互备模式、N+M模式。
# 监测告警
在资源出现故障切换告警邮件方式提醒管理员,使管理员能够快速定位并修复故障主机。

FAQ

# 高可用是否支持双机互备模式和N+M模式?最多支持多少节点?
高可用三个版本都支持双机热备、双击互备和N+M模式,建议最多支持16个节点。
# 安装银河麒麟高可用集群软件V10后节点无法启动怎么办?
银河麒麟高可用集群软件V10优化了安装过程,在安装时无需通过命令行配置心跳,和启动集群,改为安装后要先在WEB界面配置心跳,配置心跳后集群会自动启动。配置如下图所示。

Fence资源–防止脑裂

# 什么是脑裂?
Split-brain (脑裂) 是指集群内节点间的心跳出现故障,无法保持集群内信息一致性,并且各节点还处于active状态的情形。在split-brain环境下,多个节点会同时接管服务,存在数据不一致的风险。
# 什么是Fence?
Fence的触发因素有心跳故障、节点故障和资源故障。当触发fence时,会借助远程电源开关、IPMI管理接口会远程管理控制卡等硬件来关闭节点电源。但是当发生心跳故障时,节点都认为对方为故障节点,都会发出让对方被fence的命令。为了避免互杀,在fence资源设置的时候需要在某个资源上设置延时。

Ping资源-防止脑裂

# 什么是高可用中的Ping资源?
设置参考IP (如网关IP),当心跳线完全断开时,2个节点都各自ping一下参考IP,不通则表明断点就出在本端,Ping不通参考IP的一方不能进行资源。

案例介绍

# 项目背景
根据XX项目需求,处于对应用软件、中间件、数据库业务连续性和稳定性的需求,在高可用集群软件的保护下可避免单点失败,即单台主机上发生宕机、网络故障、应用软件故障等不会影响整个业务的运行,以保证业务系统稳定性和可靠性。
# 银河麒麟双机高可用集群解决方案
1、银河麒麟双击高可用解决方案旨在提高业务系统运行的连续性和稳定性,通过在两台服务器设备上部署相同的业务系统,并共享相关的业务数据,实现对生产环境的高可用保护。
2、在这一方案中,服务器设备之间通过心跳的冗余机制,实时监视彼此的运行状态,数据被存放于共享存储设备上,保证了数据的安全性。当工作主机发生故障,备机能够及时侦测到故障信息并接管主机上运行的业务。
# 适用场景
业务系统的运行可靠性要求高,需要尽量避免业务中断。
# 方案优势
1、能够保护用户的服务器集群对外提供不间断的运行环境;
2、基于WEB的集群管理界面,有着友好、直观、易操作的集群管理界面;
3、秒级切换能力、检测时间小于10秒,故障切换及恢复时间可以在1秒内完成,有效减低业务中断的影响;
4、系统监控及切换过程的资源占用率低,不干扰影响业务的正常运行;
5、通过Fence机制、杜绝“脑裂”现象引发的服务停滞和数据丢失;
6、应用支持范围广,无需额外的补丁、插件即可支持大多数用户的自定义应用。

双机热备–无电源管理模块

## HA资源配置
# GROUP
VIP: 浮动IP资源
FS: 文件系统资源
APUSIC: 中间件资源
DM: 数据库资源
SBD: Stonith资源

# SBD磁盘: 脑裂磁盘。心跳断了或者其他资源触发了,就会讲资源关闭。

双机热备,无电源管理模块

双机互备–有电源管理模块

## HA资源组配置
# Group1
VIP1: 浮动IP资源
FS1: 文件系统资源
APUSIC1: 中间件资源
DM1: 数据库资源
# Group2
VIP2: 浮动IP资源
FS2: 文件系统资源
APUSIC2: 中间件资源
DMS2: 数据库资源
FENCE1: Stonith资源
FENCE2: Stonith资源

部署要求

## 硬件要求
1、服务器至少需要2台,每台服务器至少需要2块网卡做心跳,至少1块网卡做业务网卡;(建议心跳网段和业务网段分离)
2、建议使用一台 SAN/NAS/ISCSI/NFS 存储作为数据共享存储空间;
3、提供电源管理设备。
## 网络要求
# 心跳网络
主、备节点使用两个网口,采用网线直连的方式配置心跳链路。
心跳链路配置两个私网地址,规划心跳通信的端口号
例:
master: 10.10.10.1/24	100.100.100.1/24
slave:  10.10.10.2/24	100.100.100.2/24
port: 	19000			19002 # v7才需要写端口
# 业务网络
主、备节点各自至少使用一个网卡,需要两个物理IP地址,同时还需要一个浮动的IP地址的,即对外提供业务连接的IP地址。
例:
master: 192.168.0.1/24
slave: 192.168.0.2/24
浮动IP: 192.168.0.3
如果有需则要进行网卡绑定的配置,如不需要网卡绑定直接配置即可。
注意:确保主、备机业务网卡名字相同。 # 非常重要
## 存储要求
1、一般建议采用FC存储来做高可用集群的共享存储;
2、在配置高可用集群软件之前,主、备两台机器需要都识别到FC上分配的存储空间,并且需要配置好多链路软件,将存储映射到服务器的链路进行聚合。
3、将存储分配的存储空间进行分区、格式化、以及挂载操作,使共享库存储在主、备机都能够正常操作。
## 应用软件要求
1、在主、备机上分别部署需要保护的应用程序;
2、应用软件部署过程中可以选择将数据部分放在共享存储中,把应用软件分别在主、备机可进行安装配置。同时也可以选择将软件和数据都放在共享存储中;
注意:软件所使用的用户uid和gid两台机器必须相同。
3、应用部署成功后,需要进行手动的切换测试,测试成功后才能使用高可用集群软件来保护;
4、应用的手动测试需要的测试过程:将共享存储挂载到主机,在主机启动应用,应用可以正常访问。将主机的共享存储卸载,挂载到备机,然后在备机用相同的方式启动应用,应用可以正常访问则可以继续部署高可用集群软件。
## 操作系统配置要求
1、安装操作系统时【软件选择】时需要选择【带UKUI GUI的服务器】;
2、正确配置服务器系统的网络环境,包括IP、NetMask、GateWay、DNS等;
3、两台服务器之间的所有网络地址可以互相通信;
4、正确配置服务器系统的安全防护策略;
5、在/etc/hosts文件中正确设置IP和主机名的解析;
6、正确配置节点间的时钟,确保基本保持一致;
7、添加防火墙策略或者停止防火墙,需要HA需要端口8088、2224、5405、5406等。

高可用软件重点保护资源

高可用软件安装配置

准备

## 准备安装工具
## 修改hosts文件
## 在 ha1 和 ha2 都添加心跳IP的DNS解析
# vim /etc/hosts
192.168.16.51	ha1
192.168.16.52	ha2

# [可选]挂载光盘
mount /dev/cdrom /mnt
# 挂载镜像
mount -o loop Kylin-HA-V10-SP3-2403-Release-20240513-ARM64.iso /mnt
mount -o loop Kylin-HA-V10-SP3-2403-Release-20240513-X86_64.iso /mnt

## 修改配置文件
# 创建/etc/corosync目录
mkdir /etc/corosync
# 将 /mnt/LICENSE、/mnt/.kyinfo 和 /mnt/.productinfo 文件拷贝到 /etc/corosync 目录下
cp /mnt/LICENSE /etc/corosync
cp /mnt/.kyinfo /etc/corosync
cp /mnt/.productinfo /etc/corosync
cp /mnt/scripts/ha.repo /etc/yum.repos.d
# 将 /mnt/scripts/ha.repo 的文件拷贝到 /etc/yum.repos.d 目录下,并修改 vim /etc/yum.repos.d/ha.repo
baseurl = file:///mnt/Packages
# 更新源缓存
yum clean all
yum makecache

安装

## 执行该命令开始安装,根据提示操作即可
bash /mnt/KylinHA_install.bin

# 修改web管理用户密码,默认密码:
passwd hacluster

# 启动
systemctl enable pcsd --now
systemctl enable ha-api --now
pcs host auth ha1 # 输入 hacluster 和 对应密码
pcs host auth ha2 # 输出 hacluster 和 对应密码

## 创建集群, 加速 51和52是机器的心跳链路 IP
# 单心跳网络创建集群
pcs cluster setup hacluster ha1 addr=192.168.16.51 ha2 addr=192.168.16.52
# 冗余心跳网络创建集群
pcs cluster setup hacluster ha1 addr=192.168.16.51 addr=192.168.16.41 ha2 addr=192.168.16.52 addr=192.168.16.42

## 集群相关命令
# 启动集群
pcs cluster start --all
# 查看集群状态
pcs status
# 停止集群
pcs cluster stop --all
# 删除集群
pcs cluster destroy
# 查看集群配置项
pcs property --all
# 开机自启动
pcs cluster enable --all

配置VIP

登录HA的web管理界面 [https://ip:8088] 账号:hacluster

img

关闭该选项

# 创建普通资源
1、资源名称:自定义,例如vip
2、资料类型:VIP配置一定要选择 IPaddr_6
3、IP:VIP的规划地址
4、nic: 业务网卡的网卡名字,2台服务器的业务网卡名字应该一样
5、cidr_netmask: VIP的掩码

img

安装

# 1、执行 install.console 安装配置HA
选择1,进行本地安装install
# 2、版权说明
按y
# 3、安装完成后、会选择是否远程安装另外节点
选择n
# 4、设置HA用户的密码
HA的用户名为hacluster
# 5、安装完成,退出安装进程
press any key to exit ...
# 6、启动HA服务
systemctl start ha-api
systemctl start pcsd
# 7、通过pcsd服务认证ha节点,用户名hacluster
pcs host auth 主机名称1 主机名称2 ...
注意:如果认证失败,无法认证节点的情况。需要排查节点的iptables、firewalld服务是否关闭或断开策略是否开放。以及查看主、备节点的pcsd服务是否启动。

高可用软件登录界面

# 任意登录主、备机的IP+8088端口即可,账号是hacluster,密码是安装时设置的。

心跳配置

# 心跳建议配置两路直连的心跳,不建议将业务网络作为心跳添加。
# 注意v7:只能添加标准子网掩码的心跳地址,不能添加变长子网掩码的心跳地址。如果需要添加变长子网掩码的心跳地址需要手动修改corosync配置文件。
## 配置完成后
1、正常状态:刷新页面后看到两个节点状态都为绿色;
2、异常状态:刷新页面后只发现了一个节点,或者另外一个节点为红色。

集群首选项配置

## no-quorum-policy选项:有fence设备选择ignore值。(服务器IBMC)
ignore: 忽略资源状态,不做处理;
freeze: 为保持当前资源状态;
stop: 停止资源;
说明:当心跳连接通信出现故障以后,将按照集群策略处理资源。
## stonith-enabled选项: 有fence设备选择开启,如果没有fence设备选择关闭
说明: 如果没有fence设备选择开启,会影响资源启动。

添加VIP资源

# 添加资源(浮动IP)
# 资源名称:自定义
# 资源类型: ocf/heartbeat/IPaddr_6
# IP: 172.30.220.* (根据实际业务需求添加)
# nic: 浮动IP所在的网卡
# cidr_netmask: 255.255.255.0 (子网掩码,根据实际业务地址掩码添加)

添加FS资源

# 添加资源: 挂载文件系统
# 资源名称: 自定义
# 资源类型: ocf/heartbeat/Filesystem
# device: /dev/sdb1 (需要挂载的设备)
# directory: /hadata (挂载地址)
# fstype: xfs (根据设备实际文件系统填写)

添加应用资源 (systemd)

# 添加systemd资源,填写资源名,选择对应的systemd服务

添加资源组

# 添加组资源: 将资源添加至组,组成一个整体,故障统一迁移
# 组资源名称:自定义
# 组内资源:可以选择已添加的资添加至组
注意:资源组内的资源启动是从上至下启动,停止是从下至上停止。运行在同一个节点中

添加Fence资源

# 在有硬件fence的情况下,添加fence资源
# 资源名称:Fence (自定义)
# 资源类型: stonith/fence_ipmilan
# action: reboot
# pcmk_host_list: node01
# HA一般为主备模式,资源运行在主机,Fence资源运行在备机,当主机出现故障,备机Fence资源将主机reboot重启或关机,资源迁移至备机运行。进行人工修复主机问题,主机恢复正常手动将资源迁移至主机。

配置资源失败时触发Fence动作

# 编辑资源添加monitor选项 on-fail 添加fence

电源IBMC管理配置说明

# 通过ipmitool命令进行配置
使用静态地址: ipmitool lan set <channel_no> ipsrc static
设置IP: ipmitool lan set <channel_no> ipaddr <x.x.x.x>
设置掩码: ipmitool lan set <channel_no> netmask <x.x.x.x>
设置网关: ipmitool lan set <channel_no> defgw ipaddr <x.x.x.x>
# 通过BIOS进行配置
# 配置后验证
操作远程机器: ipmitool -l lan -H 192.168.100.201 -U ADMIN -P ADMIN lan print 1
查看远程机器电影状态: ipmitool -l lan -H 192.168.100.200 -U ADMIN -P ADMIN chassis power status

SBD说明–软fence

# SBD原理
SBD是一种基于共享存储设备fencing机制、软件级的fence。可以使用iscsi,fc等共享块设备当做sdb资源。集群中每台主机上都有一个sdb的deamon进程用于监控共享存储,当sdb监控不到共享设备或者共享存储上发现有对应的fence请求时,sdb会立即fence主机。
# sdb: split brain detection (脑裂检测)
# stonith: shoot the other node in the head.

ISCSI创建sbd例子

## 创建共享存储 (可以是HA节点,也可以是其他节点)
# 创建逻辑卷 (自行创建一个LV)
# 安装软件: yum install -yh targetcli
# 启动target: systemctl start target.service
# 配置target:
1、创建后端存储卷: /> /backstores/block create storage /dev/vg0/lv01
2、创建iqn: /> /iscsi create iqn.2021-03.com.example:server
3、把target与后端存储卷做关联:
/> /iscsi/iqn.2021-03.com.example:server/tpg1/luns create /backstores/block/storage
4、删除默认acl: /> /iscsi/iqn.2021-03.com.example.server/tpg1/portals delte 0.0.0.0 3260
5、创建acl: /iscsi/iqn.2021-03.com.example:server/tpg1/acls create iqn.2021-03.com.example:desktop
6、创建访问: /iscsi/iqn.2021-03.com.example:server /tpg1/portals create 10.10.10.21 3260

## 集群节点发现和登录存储
# 节点安装软件: yum install -y open-iscsi
# 编辑授权文件: vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2021-03.com.example:desktop
# 启动iscsi: systemctl restart iscsi
systemctl start iscsid.service
# 发现存储: iscsiadm --mode discovery --type sendtargets --portal 10.10.10.21 --discover
# 登录存储: iscsiadm --mode node --targetname iqn.2021-03.com.example:server --portal 10.10.10.21:3260 --login
# 分区: fdisk /dev/sd* (分区磁盘以实际识别的盘符为准)

## SDB机制配置
# SDB 设备的名称为/dev/sdc1 (以实际iscsi共享存储名称为准),以下示例中使用该名称的设备,应用时替换为实际设备名称即可。
# 在集群某一个使用该共享设备的节点上,执行如下命令
sdb -d /dev/sdc1 create
yum install -y watchdog # 安装watchdog
# 配置watchdog硬件驱动,如果没有执行 /sbin/modprobe softdog, 并配置开机自启动
/sbin/modprobe softdog
echo softdog > /etc/modules-load.d/softdog.conf
# 命令会在设备上写一个header, 并为多达255个共享该设备的节点创建slot.
# 可以使用如下命令查看写入的内容
sdb -d /dev/sdc1 dump

## watchdog配置文件说明 vim /etc/sysconfig/sdb 
更改SDB_WATCHDOG_DEV=dev/wathdog* 
*=(ls /dev  wathdog 后面数字)
# 加入下面三行
SBD_DEVICE="/dev/sbc1"
HOSTNAME="hostname" (本机主机名字)
SBD_OPTS="-W"
# 启动SDB服务
systemctl enable sdb
# sdb会伴随着资源启动

添加SBD资源

# 资源类型:
stonith/fence_dbd
action: reboot
pcmk_host_list: node10
devices:/dev/sdc1

添加SBD资源

测试方案

手动切换测试

主节点故障测试

备节点故障测试

网络故障测试(业务链路)

网络故障测试 (双心跳链路)

应用软件故障测试

# 应用软件包括中间件、数据库以及第三方应用。注:数据库HA切换时需要注意应用是否能重连接。

资源回切测试

故障分析

# 高可用软件配置问题
首选项配置问题
Fence资源配置问题
# 资源配置问题
资源启动超时问题 (timeout)
资源启动失败问题 (unknown error)
# 网络故障
心跳网络故障的情况 (单心跳故障/双心跳故障)
业务网络故障的情况
# 存储故障
存储挂载点丢失
存储读写有问题
# 应用故障
应用程序进程消失
应用程序访问异常
# 数据库故障
数据库进程消失
数据库读写异常
# 操作系统故障
操作系统死机
# 服务器故障
服务器宕机
服务器断电
服务器异常重启

高可用软件故障分析思路

1、查看Web页面或者通过pcs/crm命令查看集群状态;
2、确认报错的资源,报错的类型;
3、查看日志,通过日志能够查看到触发故障的原因。
/var/log/pcsd/
/var/log/cluster/
/var/log/pacemaker/
/var/log/messages/
4、根据故障报错的资源,分析应用、数据库日志。如果是网络、主机问题分析系统日志;
5、停止HA,手动进行资源启停测试;
6、故障排除后,通过HA启动资源组,进行切换测试,恢复高可用集群软件环境。

具体问题示例1

# 集群启动失败,corosync和pacemaker启动失败。
# 处理过程: corosync启动失败,发现节点之间网络不通,ssh也不通,检查/etc/hosts文件,重新执行节点认证
pcs host auth node1 node2 ...
# 处理过程: pacemaker启动失败,报错Dependency failed for Pacemaker,执行crm_ver

六、镜像定制/PXE/USB自动安装

概述

## 常见方案
# 方案一:镜像定制 + USB 自动安装
# 方案二:镜像定制 + PXE 自动安装
# 方案三:镜像定制 + PXE 自动安装 + KMS自动激活

## 镜像定制厂家需求
# 需求一:定制安装系统后的软件列表
# 需求二:定制安装系统后的字体包
# 需求三:定制安装系统后的补丁
# 需求四:定制安装系统后的系统设置(安全设置等)

桌面操作系统定制ISO

第三方软件目录

## /third-party/common

软件.deb
字体包.deb
补丁.deb

系统设置文件

## /.kylin-post-actions
#!/bin/bash

#rm -rf /etc/apt/apt.conf.d/00recommends
#rm -rf /etc/apt/apt.conf.d/00secure


cat > /etc/apt/sources.list <<EOF
deb http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1 main restricted universe multiverse
deb http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1-2303-updates main restricted universe multiverse
deb http://archive.kylinos.cn/kylin/KYLIN-ALL 10.1-2303-hwe-pp-updates main
deb http://archive2.kylinos.cn/deb/kylin/production/PART-V10-SP1/custom/partner/V10-SP1 default all
EOF

rm -rf /etc/apt/sources.list.d/*
rm -rf /etc/apt/preferences.d/*

#解决网络安装后不能设置IP bug.
sed -i "/enp[0-9]/d" /etc/network/interfaces
sed -i "/eth[0-9]/d" /etc/network/interfaces

mkdir -p /etc/apt/preferences.d/
mkdir -p /etc/apt/sources.list.d/

#安装奇安信杀毒
#dpkg -i /opt/QAXS/*.deb
#rm /opt/QAXS -rf

# sshd 服务异常, 缺少key文件,dpkg-reconfigure openssh-server 能解决问题。
dpkg-reconfigure openssh-server

# 第三方包因安装后过大,后置安装
#dpkg -i /opt/third/*.deb
#rm /opt/third -rf

#########配置kms激活服务器地址#############

sed -i 's/ServerIp=/ServerIp=10.20.110.104/g'   /usr/share/kylin-activation/activation_conf.ini
#########关闭安全-应用程序执行控制,应用防护控制,安全-设备安全##############

sed -i 's/kysec_status = 2/kysec_status = 0/g'  /usr/share/ksc-set/scripts/ksc-set
sed -i 's/kysec_netctl = 2/kysec_netctl = 0/g'  /usr/share/ksc-set/scripts/ksc-set
sed -i 's/kysec_exectl = 2/kysec_exectl = 0/g'  /usr/share/ksc-set/scripts/ksc-set
sed -i 's/kysec_fpro = 1/kysec_fpro = 0/g'  /usr/share/ksc-set/scripts/ksc-set
sed -i 's/kysec_kmodpro = 1/kysec_kmodpro = 0/g'  /usr/share/ksc-set/scripts/ksc-set
sed -i 's/kysec_ppro = 1/kysec_ppro = 0/g'  /usr/share/ksc-set/scripts/ksc-set
sed -i 's/kysec_devctl = 1/kysec_devctl = 0/g'  /usr/share/ksc-set/scripts/ksc-set
sed -i 's/Mode=all/Mode=off/g'  /etc/kylin-firewall/kylin-firewall.conf
sed -i 's/security=kysec/security=0/g'  /etc/default/grub
#n卡处理
has_nvidia=$(lspci | grep NVIDIA)
if [ -n "${has_nvidia}" ];then
    dpkg  -i  /opt/nvidia/nvidia-*.deb
    rm /opt/third -rf
fi

#zhaoxin 6000显卡判断,不存在则卸载驱动
#has_zx_6000="$(lspci -vnn | grep -i ':3a04]' | head -n1)"
#if [ -z "${has_zx_6000}" ];then
#dpkg -P  zhaoxin-linux-graphics-driver-dri
#fi

#zhaoxin 6000G显卡判断,不存在则卸载驱动
#has_zx_6000g="$(lspci -vnn | grep -i ':3d01]' | head -n1)"
#if [ -z "${has_zx_6000g}" ];then
#dpkg -P  zhaoxin-cx4-linux-graphics-driver-dri
#fi

#bash /usr/share/ksc-set/scripts/ksc-set

PXE 搭建

## DHCP启动文件: \boot\grub\arm64-efi\monolithic\grubnetaa64.efi
## KS文件系统文件: \casper\initrd.lz
## KS内核文件: \casper\vmlinuz
## /var/lib/tftpd

## 备注
1、如果是VMware虚拟机,需要使用UEFI启动,关闭网络中的DHCP服务

环境准备

# 步骤1: 最小化安装 2403 服务器系统(开发工具+MAN)
# 步骤2: 关闭防火墙 
systemctl disable --now firewalld
# 步骤3: 关闭selinux,默认是关闭的。
sed -i.bak '/^SELINUX=/c SELINUX=disabled/' /etc/selinux/config
setenforce 0
# 步骤4: 安装常用软件
yum install -y tree wget lrzsz vim gdisk lsof net-tools bash-completion autofs rsync unzip

TFFP和xinetd

yum install -y tftp-server.x86_64 xinetd
rpm -ql tftp-server
systemctl enable --now tftp
systemctl enable --now xinetd
netstat -tnlpu | grep 69

# 修改相关配置文件
mkdir /var/lib/tftpboot/grub
mkdir /var/lib/tftpboot/kernel
chmod -R 757  /var/lib/tftpboot/
sed -i.bak '/args/s/$/ -c/' /etc/xinetd.d/tftp
sed -i '14s#yes#no#' /etc/xinetd.d/tftp
systemctl restart xinetd

# 上传相关文件

img

DHCP

# 安装DHCP
yum install -y dhcp

# 拷贝dhcpd.conf模版文件
cat /etc/dhcp/dhcpd.conf
cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf

# 编辑dhcpd配置文件:vi /etc/dhcp/dhcpd.conf。其他配置可以删除
option domain-name "baidu.com";
option domain-name-servers 180.76.76.76、opt,119.29.29.29,223.5.5.5;

log-facility local7; # 这行配置下
next-server 192.168.14.5;
filename "/grub/bootx64.efi";

subnet 192.168.14.0 netmask 255.255.255.0 {
  range 192.168.14.100 192.168.14.200;
  option routers 192.168.14.1;
  filename "/grub/grubx64.efi";
}

host tftp {
  hardware ethernet 00:0c:29:9d:f7:50;
  fixed-address 192.168.35.5;
}
#end
systemctl enable --now dhcpd
# 查看日志
tail -f /var/log/messages
# DHCP数据库文件
cat /var/lib/dhcpd/dhcpd.leases

img

HTTP

yum install -y httpd
systemctl enable --now httpd
sed -i.bak '/#ServerName/aServerName localhost:80' /etc/httpd/conf/httpd.conf
systemctl restart httpd
systemctl status httpd -l

# 创建相关目录
mkdir -p /var/www/html/iso/src

mkdir -p /var/www/html/ks/disk
mkdir -p /var/www/html/ks/Other
mkdir -p /var/www/html/ks/project
mkdir -p /var/www/html/ks/r
mkdir -p /var/www/html/ks/u

mkdir -p /var/www/html/src

NFS

# 安装
yum -y install nfs-utils
rpm -qa|grep nfs

# 修改配置文件vim /etc/exports
/opt/nfs *(rw,sync,no_root_squash,no_subtree_check)

# 创建镜像路径
mkdir -p /opt/nfs/9000c

# 挂载镜像
mount XXX.iso /mnt

# 将 /mnt 目录下的镜像数据拷贝到9000c下
rsync -a /mnt/ /opt/nfs/9000c

# 重启 nfs 服务
systemctl restart nfs-server.service
# 查看 nfs 服务状态
systemctl status nfs
systemctl enable nfs-server.service

grub.cfg菜单美化

set timeout=5

####################  常量  ############################
set IP=192.168.14.5
# 默认启动项
set default="1"
#------------------------------------------------------

####################  字体  ############################
loadfont /grub/dejavu-sans-mono.pf2
terminal_output gfxterm
#------------------------------------------------------

###################  界面  ############################
set gfxmode=auto
set gfxmode=1024x768
set gfxmode=1024x900x32
#------------------------------------------------------

####################  颜色  ###########################
# 未选中菜单项的颜色,菜单框背景颜色
set menu_color_normal=white/cyan
# 突出显示的菜单项的颜色及其在菜单框中的背景
set menu_color_highlight=yellow/blue
# 指定菜单框外文字的前景色和背景色
set color_normal=yellow/black
#------------------------------------------------------

####################  菜单  ##########################
## Server R系列
menuentry --id=1 --hotkey=1 "1  Kylin-Server-V10-SP3-2403-Release-20240426-x86_64 GPT GUI" {
        set gfxpayload=keep
        echo "Loading Kylin Server V10 SP3 2403 Kernel..."
        linux kernel/ks-v10-sp3-20240626-x86_64/vmlinuz inst.repo="http://${IP}/iso/ks-v10-sp3-20240626-x86_64" inst.ks="http://${IP}/ks/r/ks-v10-sp3-20240626-x86_64-lv-gui-nq2.cfg"
        echo "Loading Kylin Server V10 SP3 2403 RamDisk..."
        initrd kernel/ks-v10-sp3-20240626-x86_64/initrd.img
}
menuentry --id=2 --hotkey=2 "2  Kylin-Server-V10-SP3-2403-Release-20240426-x86_64 LVM GUI" {
        set gfxpayload=keep
        echo "Loading Kylin Server V10 SP3 2403 Kernel..."
        linux kernel/ks-v10-sp3-20240626-x86_64/vmlinuz inst.repo="http://${IP}/iso/ks-v10-sp3-20240626-x86_64" inst.ks="http://${IP}/ks/r/ks-v10-sp3-20240626-x86_64-lvm-gui-nq.cfg"
        echo "Loading Kylin Server V10 SP3 2403 RamDisk..."
        initrd kernel/ks-v10-sp3-20240626-x86_64/initrd.img
}
menuentry --id=3 --hotkey=3 "3  Kylin-Server-V10-SP3-2403-Release-20240426-x86_64 GPT Minimal" {
        set gfxpayload=keep
        echo "Loading Kylin Server V10 SP3 2403 Kernel..."
        linux kernel/ks-v10-sp3-20240626-x86_64/vmlinuz inst.repo="http://${IP}/iso/ks-v10-sp3-20240626-x86_64" inst.ks="http://${IP}/ks/r/ks-v10-sp3-20240626-x86_64-gpt-minimal.cfg"
        echo "Loading Kylin Server V10 SP3 2403 RamDisk..."
        initrd kernel/ks-v10-sp3-20240626-x86_64/initrd.img
}

## Desktop U系列
# HTTP下载镜像
menuentry --id=6 --hotkey=6 "6  Kylin-Desktop-V10-SP1-2403-Release-20240430-x86_64 GPT GUI" {
        set gfxpayload=keep
        echo "Loading Kylin Desktop V10 SP1 2403 x86_64 Kernel..."
        linux kernel/kd-v10-sp1-20240430-x86_64/vmlinuz ip=dhcp url="http://${IP}/iso/src/Kylin-Desktop-V10-SP1-2403-Release-20240430-x86_64.iso" cloud-config-url=/dev/null autoinstall ds="nocloud-net" locale=zh_CN security=automatic-ubiquity  inst.ks="http://${IP}/ks/u/kd-v10-sp1-20240430-x86_64.cfg"
        echo "Loading Kylin Desktop V10 SP1 2403 x86_64 RamDisk..."
        initrd kernel/kd-v10-sp1-20240430-x86_64/initrd.lz
}
# NFS下载镜像
menuentry --id=7 --hotkey=7 "7  Kylin-Desktop-V10-SP1-2403-Release-20240430-arm64 GPT GUI" {
        set gfxpayload=keep
        echo "Loading Kylin Desktop V10 SP1 2403 Kernel..."
        linux kernel/kd-v10-sp1-20240430-arm64/vmlinuz ip=dhcp netboot=nfs nfsroot=172.16.16.3:/opt/nfs/9000C cloud-config-url=/dev/null autoinstall ds="nocloud-net;seedfrom=http://${IP}/ks/ky-desktop/" locale=zh_CN security=automatic-ubiquity inst.ks="http://${IP}/ks/u/kd-v10-sp1-20240430-arm64.cfg"
        echo "Loading Kylin Desktop V10 SP1 2403 RamDisk..."
        initrd kernel/kd-v10-sp1-20240430-arm64/initrd.lz
}

#----------------------------------------------------

###################  其他  ###########################
# 进入磁盘系统
grub_platform
if [ "$grub_platform" = "efi" ]; then
menuentry --hotkey=n 'n  Boot from next volume' {
        exit 1
}
# 进入BIOS
menuentry --hotkey=u 'u  UEFI Firmware Settings' {
        fwsetup
}
# 关机和重启
menuentry --hotkey=h 'h  halt' { halt }
menuentry --hotkey=r 'r  reboot' { reboot }
else
menuentry --hotkey=t 't  Test memory' {
        linux16 /boot/memtest86+.bin
}
fi
#----------------------------------------------------

其他

# NAT配置
手动添加到启动脚本(通用)
echo "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE" | sudo tee -a /etc/rc.local
sudo chmod +x /etc/rc.local

USB自动安装-9000C

修改grub.cfg文件

# vim EFI\kylin\grub.cfg, 删除oem-config/enable=true,在后面添加 automatic
menuentry "Auto Install Kylin-Desktop V10 SP1" {
linux		/casper/vmlinuz boot=casper rootwait ro ignore_uuid quiet splash audit=0 fsck.mode=skip   security=none factory-backup automatic
initrd		/casper/initrd.lz
}

img

添加ky-install.cfg文件

# 1、在镜像的根目录下,将kyple-installer.cfg拷贝并修改为ky-installer.cfg,如下图所示
# 2、可以对ky-installer.cfg 按需修改
# 3、将镜像保存后,制作U盘启动盘,RAW的写入方式。

img

kylin-post-actions

dpkg -P finalrd
dpkg -P qaxsafe
dpkg -P wps-office
mkdir /home/huawei/other
chown -R 777 /home/huawei/other
cp -r /cdrom/other/ /home/huawei/other
rm -rf /etc/.ky-hwid
dpkg -i /home/huawei/other/*.deb
rm -rf /home/huawei/??

制作U盘启动盘

准备

# 一个大于8G的可格式化的USB
# 一台win10电脑
# 下载百度网盘资源

img

使用软碟通打开镜像

img

刻录USB启动盘-步骤1

img

刻录USB启动盘-步骤2

img

其他

ky-installer.cfg文件说明

[Encrypty]
# true开启加密,false 为关闭
encrypty=false
# 加密密钥,如 qwer1234
encryptyPWD=@ByteArray(qwer1234)
# true开启lvm逻辑卷安装(不常用),false 为非逻辑卷安装(常用)
lvm=false

[config]
# 自动登录,0 为不自动登录
autologin=0
# 自动安装,不用改动
automatic-installation=1

# 全盘安装指定设备,默认为/dev/sda,若需指定安装设备,将/dev/sda替换成指定设备名即可;
# (推荐)若不填磁盘设备名(将下面设备名/dev/sda去掉),系统会默认选择合适磁盘安装。默认磁盘优先级:先最大nvme盘,再最大固态sdX盘,最后最大机械sdX盘
devpath=
# 使用 swapfile 替代swap分区,false 为不使用 swapfile,990/9A0 使用swapfile
enable-swapfile=false
# 出厂备份,0 为不出厂备份
factory-backup=0
# 主机名,仅包含字母、数字、下划线和连接符,长度不超过 64
hostname=kylin-pc
# 语言,默认为中文
language=zh_CN
# 密码,默认为 qwer1234,至少 8 位,至少包含两类字符
password=@ByteArray(qwer1234)
#配置安装完成是否重启。1表示重启,0表示关机
reboot=1
# 时区,默认上海
timezone=Asia/Shanghai
# 用户名、全名,小写字母开头,且仅包含字母、数字、下划线和短横线,长度不超过 32
username=kylin

#配置单独数据盘,若不填表示不配置;若填写具体磁盘设备名,如/dev/sda,表示将磁盘/dev/sda设置为系统的数据盘;
#若填auto,表示自动选择系统数据盘,会默认选择一块磁盘作为系统的数据盘;若系统只有一块盘,默认无单独的数据盘
#默认磁盘优先级:先最大nvme盘,再最大固态sdX盘,最后最大机械sdX盘(在选取系统盘后,剩下的磁盘中选择)
data-device=auto

#是否走oobe流程,false为不走oobe流程,true为oobe流程,其中审核模式必须走oobe流程
oem-config=false

# 保留用户数据安装(保留的是系统data分区下的数据),true为保留数据安装,false为不保留数据安装
data-unformat=false

# 预安装软件配置清单,软件包名用逗号分隔,前后不要使用引号
#PreinstallApps=wps-office,sc-reader

#以下主要用于自动安装的自定义分区和双系统需求,若无此需求,下面的配置无需改动
[custompartition]

# true为开启全盘安装的自定义分区,false为关闭。
# 自定义分区安装,不支持加密安装、逻辑卷分区安装和保留用户数据安装,需要确认上面选项"encrypty=false""lvm=false""data-unformat=false"
# 其中自动安装需要在grub.cfg中增加automatic参数
disk-custom=false

# true为格式化整块磁盘,false为不格式化整块磁盘,不格式化磁盘主要用于安装第二个系统。
format-disk=true

# 系统偏移安装,可以根据需要,对系统在磁盘的起始位置进行设置。单位为MB,默认为1MB,且最小不能小于1MB
# 安装第二个系统时,需根据第一个系统占用磁盘大小,合理设置偏移安装的起始位置
kos-start=1
# 预留磁盘末尾空间安装,0表示不预留(默认),可以根据需要,对磁盘末尾的空间进行预留。单位为MB,最小不能小于1MB
kos-end=0

#  自定义分区清单。请将所需的分区名称填入下面的双引号内,分区之间请用“;”隔开(双引号和“;”均为英文输入格式)。
#  下面分区的前后顺序,表示新装系统分区的顺序,可以根据需要进行调整。如下所示,efi、boot、root分别为系统的第一、二、三分区。
custom-partitions="efi;boot;root;backup;data;swap;"

# 自定义分区设置格式。custom-XXX中XXX为上面自定义的分区名称。fs=分区格式;mount=挂载点;size=分区大小,单位为MB;
# 请将分区格式、挂载点和大小填入下面的双引号内,之间用“;”隔开(双引号和“;”均为英文输入格式)。
custom-XXX="fs=***;mount=***;size=***;"

# efi分区。默认格式为fat32; 挂载点为/boot/efi; 大小建议在0.5~2g之间,设置单位为MB; default表示默认大小(512MB)
custom-efi="fs=fat32;mount=/boot/efi;size=default;"
# boot分区。默认格式为ext4; 挂载点为/boot; 大小建议在0.5~2g之间,设置单位为MB;default表示默认大小(2048MB)
custom-boot="fs=ext4;mount=/boot;size=default;"
# 系统根分区。默认格式为ext4; 挂载点为/; 大小,建议不小于25g,设置单位为MB;default表示默认大小(根据磁盘空间会自动分配大小)
custom-root="fs=ext4;mount=/;size=default;"
# backup分区。默认格式为ext4; 挂载点为/backup; 大小设置单位为MB;default表示默认大小(根据磁盘空间会自动分配大小)
custom-backup="fs=ext4;mount=/backup;size=default;"
# data分区。默认格式为ext4; 挂载点为/data; 大小设置单位为MB;default表示默认大小(根据磁盘空间会自动分配大小)
custom-data="fs=ext4;mount=/data;size=default;"
# swap分区。默认格式为linux-swap; 挂载点为[swap]; 大小,建议不小于机器内存大小的1.2倍。default表示默认大小(根据磁盘空间会自动分配大小)
custom-swap="fs=linux-swap;mount=[swap];size=default;"

# 自动安装,下面的配置不用改动
bootloader=/dev/sda ATA ST1000DM003-1SB1
partitions="/boot/efi:/dev/sda1;/:/dev/sda7;linux-swap:/dev/sda5;"

[setting]
EnableSwap=false
FileSystem="ext4;ext3;fat32;xfs;btrfs;kylin-data;efi;linux-swap;unused"
FileSystemBoot="ext4;vfat"
PartitionMountedPoints=";/;/boot;/backup;/tmp"

[specialmodel]
computer="mips64el/loongson-3;loongsonarch64/generic"
修改后文件如下:
[Encrypty]
# true开启加密,false 为关闭
encrypty=false
# 加密密钥,如 qwer1234
encryptyPWD=@ByteArray(qwer1234)
# true开启lvm逻辑卷安装(不常用),false 为非逻辑卷安装(常用)
lvm=false

[config]
# 自动登录,0 为不自动登录
autologin=1
# 自动安装,不用改动
automatic-installation=1

# 全盘安装指定设备,默认为/dev/sda,若需指定安装设备,将/dev/sda替换成指定设备名即可;
# (推荐)若不填磁盘设备名(将下面设备名/dev/sda去掉),系统会默认选择合适磁盘安装。默认磁盘优先级:先最大nvme盘,再最大固态sdX盘,最后最大机械sdX盘
devpath=
# 使用 swapfile 替代swap分区,false 为不使用 swapfile,990/9A0 使用swapfile
enable-swapfile=true
# 出厂备份,0 为不出厂备份
factory-backup=0
# 主机名,仅包含字母、数字、下划线和连接符,长度不超过 64
hostname=YX-pc
# 语言,默认为中文
language=zh_CN
# 密码,默认为 qwer1234,至少 8 位,至少包含两类字符
password=Aa123456
#配置安装完成是否重启。1表示重启,0表示关机
reboot=1
# 时区,默认上海
timezone=Asia/Shanghai
# 用户名、全名,小写字母开头,且仅包含字母、数字、下划线和短横线,长度不超过 32
username=yx

#配置单独数据盘,若不填表示不配置;若填写具体磁盘设备名,如/dev/sda,表示将磁盘/dev/sda设置为系统的数据盘;
#若填auto,表示自动选择系统数据盘,会默认选择一块磁盘作为系统的数据盘;若系统只有一块盘,默认无单独的数据盘
#默认磁盘优先级:先最大nvme盘,再最大固态sdX盘,最后最大机械sdX盘(在选取系统盘后,剩下的磁盘中选择)
data-device=/dev/sde

#是否走oobe流程,false为不走oobe流程,true为oobe流程,其中审核模式必须走oobe流程
oem-config=false

# 保留用户数据安装(保留的是系统data分区下的数据),true为保留数据安装,false为不保留数据安装
data-unformat=false

# 预安装软件配置清单,软件包名用逗号分隔,前后不要使用引号
#PreinstallApps=wps-office,sc-reader

#以下主要用于自动安装的自定义分区和双系统需求,若无此需求,下面的配置无需改动
[custompartition]

# true为开启全盘安装的自定义分区,false为关闭。
# 自定义分区安装,不支持加密安装、逻辑卷分区安装和保留用户数据安装,需要确认上面选项"encrypty=false""lvm=false""data-unformat=false"
# 其中自动安装需要在grub.cfg中增加automatic参数
disk-custom=true

# true为格式化整块磁盘,false为不格式化整块磁盘,不格式化磁盘主要用于安装第二个系统。
format-disk=true

# 系统偏移安装,可以根据需要,对系统在磁盘的起始位置进行设置。单位为MB,默认为1MB,且最小不能小于1MB
# 安装第二个系统时,需根据第一个系统占用磁盘大小,合理设置偏移安装的起始位置
kos-start=1
# 预留磁盘末尾空间安装,0表示不预留(默认),可以根据需要,对磁盘末尾的空间进行预留。单位为MB,最小不能小于1MB
kos-end=0

#  自定义分区清单。请将所需的分区名称填入下面的双引号内,分区之间请用“;”隔开(双引号和“;”均为英文输入格式)。
#  下面分区的前后顺序,表示新装系统分区的顺序,可以根据需要进行调整。如下所示,efi、boot、root分别为系统的第一、二、三分区。
custom-partitions="efi;boot;backup;swap;data;root;"

# 自定义分区设置格式。custom-XXX中XXX为上面自定义的分区名称。fs=分区格式;mount=挂载点;size=分区大小,单位为MB;
# 请将分区格式、挂载点和大小填入下面的双引号内,之间用“;”隔开(双引号和“;”均为英文输入格式)。
custom-XXX="fs=***;mount=***;size=***;"

# efi分区。默认格式为fat32; 挂载点为/boot/efi; 大小建议在0.5~2g之间,设置单位为MB; default表示默认大小(512MB)
custom-efi="fs=fat32;mount=/boot/efi;size=default;"
# boot分区。默认格式为ext4; 挂载点为/boot; 大小建议在0.5~2g之间,设置单位为MB;default表示默认大小(2048MB)
custom-boot="fs=ext4;mount=/boot;size=default;"
# 系统根分区。默认格式为ext4; 挂载点为/; 大小,建议不小于25g,设置单位为MB;default表示默认大小(根据磁盘空间会自动分配大小)
#custom-root="fs=ext4;mount=/;size=default;"
# backup分区。默认格式为ext4; 挂载点为/backup; 大小设置单位为MB;default表示默认大小(根据磁盘空间会自动分配大小)
custom-backup="fs=ext4;mount=/backup;size=71680;"
# data分区。默认格式为ext4; 挂载点为/data; 大小设置单位为MB;default表示默认大小(根据磁盘空间会自动分配大小)
#custom-data="fs=ext4;mount=/data;size=default;"
# swap分区。默认格式为linux-swap; 挂载点为[swap]; 大小,建议不小于机器内存大小的1.2倍。default表示默认大小(根据磁盘空间会自动分配大小)
custom-swap="fs=linux-swap;mount=[swap];size=8192;"
# data分区。默认格式为ext4; 挂载点为/data; 大小设置单位为MB;default表示默认大小(根据磁盘空间会自动分配大小)
custom-data="fs=ext4;mount=/data;size=default;"
# 系统根分区。默认格式为ext4; 挂载点为/; 大小,建议不小于25g,设置单位为MB;default表示默认大小(根据磁盘空间会自动分配大小)
custom-root="fs=ext4;mount=/;size=free-size;"

# 自动安装,下面的配置不用改动
bootloader=/dev/sda ATA ST1000DM003-1SB1
partitions="/boot/efi:/dev/sda1;/:/dev/sda7;linux-swap:/dev/sda5;"

[setting]
EnableSwap=false
FileSystem="ext4;ext3;fat32;xfs;btrfs;kylin-data;efi;linux-swap;unused"
FileSystemBoot="ext4;vfat"
PartitionMountedPoints=";/;/boot;/backup;/tmp"

[specialmodel]
computer="mips64el/loongson-3;loongsonarch64/generic"

FAQ1-NBP is too big to fix in free base memory

## 该问题是因为虚拟机没有使用UEFI启动导致的。

img

FAQ 2- No space left on device

## 该问题是内存不足导致的
# 解决方法1: 将客户端的内存提升;
# 解决方法2: 将镜像获取方式从http修改为nfs方式。

img


七、KMS激活

安装



常见问题

激活失败问题-KY-ACTIVATE-ERROR: no serial found

# 解决方法
sudo rm /etc/.kyhwid # 删除硬件信息
kylin-activation -auto # 或者重启待激活电脑系统

八、AD域控

安装


九、等保测评

服务器

默认口令

## 默认口令修改,复杂度配置:要求最少8位,3种字符以上,复杂度开启。
# 先做好配置文件备份,注意:将已有用户密码改为符合该策略的密码后修改配置。
cp /etc/security/pwquality.conf /opt/pwquality.conf_bak
# 编辑配置文件 vim /etc/security/pwquality.conf 修改如下参数到指定值后保存
minlen = 8
dcredit = -1
ucredit = -1
lcredit = -1
minclass = 3


超时退出、非法登录次数限制

## 超时退出、非法登录次数限制:30分钟超时退出,非法登录3次以上锁定5分钟。
# 先做好配置文件备份
cp /etc/profile /opt/profile_bak
# 编辑配置文件 vim /etc/profile 最后添加如下参数
export TMOUT=6000
# 执行如下命令,立即生效
source /etc/profile


远程访问地址限制

## 远程访问地址限制,放开对应地址段,以192.168.217.0/24为例。
# 先做好配置文件备份
cp /etc/pam.d/sshd /opt/sshd_bak
# 编辑配置文件 vim /etc/pam.d/sshd 最上面一行对齐填入后保存
account required pam_access.so

# 先做好配置文件备份
cp /etc/security/access.conf /opt/access.conf_bak
# 编辑配置文件 vim /etc/security/access.conf 填入下面两条参数后保存
+:ALL:192.168.217.0/24
-:ALL:ALL

# 输入如下命令重启ssh生效
systemctl restart sshd.service


三权:管理员、审计员、安全管理员

## 创建三员
# 创建系统管理员,并修改密码
useradd xitongadmin
passwd xitongadmin
# 创建安全管理员,并修改密码
useradd aqadmin
passwd aqadmin
# 创建审计管理员,并修改密码
useradd sjadmin
passwd sjadmin

JC

vi  /etc/profile # 最后添加
TMOUT=600

vi  /etc/login.defs # 修改参数值
PASS_MAX_DAYS   179
PASS_MIN_DAYS   2
PASS_WARN_AGE   7
PASS_MIN_LEN   8

其他

#!/bin/bash

echo "=================================================="
echo "   银河麒麟服务器等保三级 (主机安全) 终极加固脚本"
echo "=================================================="

# 备份原始文件
[ ! -f /etc/login.defs.bak ] && cp /etc/login.defs /etc/login.defs.bak
[ ! -f /etc/pam.d/system-auth.bak ] && cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak
[ ! -f /etc/ssh/sshd_config.bak ] && cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

# 1. 账号与密码策略 ---
echo "[1/5] 正在配置密码生存周期与长度..."
sed -i 's/^PASS_MAX_DAYS.*/PASS_MAX_DAYS   90/' /etc/login.defs
sed -i 's/^PASS_MIN_DAYS.*/PASS_MIN_DAYS   2/' /etc/login.defs
sed -i 's/^PASS_WARN_AGE.*/PASS_WARN_AGE   7/' /etc/login.defs
sed -i 's/^PASS_MIN_LEN.*/PASS_MIN_LEN    10/' /etc/login.defs
# 同步更新现有root账户
chage -M 90 -m 2 -W 7 root

# 2. 密码复杂度与登录失败锁定 ---
echo "[2/5] 正在配置PAM复杂度规则与账户锁定..."
PAM_FILE="/etc/pam.d/system-auth"
# 强制复杂度:10位以上, 包含四类字符, root也强制
if grep -q "pam_pwquality.so" $PAM_FILE; then
    sed -i 's/.*pam_pwquality.so.*/password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=10 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 enforce_for_root/' $PAM_FILE
else
    echo "password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=10 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 enforce_for_root" >> $PAM_FILE
fi

# 登录失败锁定:5次失败锁定15分钟 (900秒)
# 在auth首行添加faillock模块
if ! grep -q "pam_faillock.so" $PAM_FILE; then
    sed -i '1i auth required pam_faillock.so preauth silent audit deny=5 unlock_time=900' $PAM_FILE
    sed -i '/auth.*pam_unix.so/a auth [default=die] pam_faillock.so authfail audit deny=5 unlock_time=900' $PAM_FILE
    sed -i '/account.*required.*pam_unix.so/i account required pam_faillock.so' $PAM_FILE
fi

# 3. 会话超时与SSH安全 ---
echo "[3/5] 正在配置SSH超时断开 (600秒)..."
sed -i 's/.*ClientAliveInterval.*/ClientAliveInterval 600/' /etc/ssh/sshd_config
sed -i 's/.*ClientAliveCountMax.*/ClientAliveCountMax 0/' /etc/ssh/sshd_config
sed -i 's/.*PermitEmptyPasswords.*/PermitEmptyPasswords no/' /etc/ssh/sshd_config
systemctl restart sshd

# 4. 审计增强与日志留存 ---
echo "[4/5] 正在配置日志留存周期 (180天)..."
# 修改logrotate,确保存储26周(约半年)
sed -i 's/^rotate.*/rotate 26/' /etc/logrotate.conf
# 开启命令历史时间戳
if ! grep -q "HISTTIMEFORMAT" /etc/profile; then
    echo 'export HISTSIZE=1000' >> /etc/profile
    echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/profile
fi

# 5. 系统服务清理 ---
echo "[5/5] 正在开启安全审计服务并关闭危险协议..."
systemctl enable auditd && systemctl start auditd
# 停止不必要的服务(根据需要可自行取消注释)
# systemctl stop telnet.socket &> /dev/null
# systemctl disable telnet.socket &> /dev/null

echo "--------------------------------------------------"
echo -e "\033[32m所有加固配置已完成!请重启系统或重新登录以生效。\033[0m"
echo "注意:如果连续输错5次密码,账户将被锁定15分钟。"
echo "--------------------------------------------------"

十、桌面安全加固

安全加固

加固目标及对象

# 加固目标
加固的目标是修补系统存在的漏洞和缺陷,预防各种安全威胁、抵御安全攻击、降低安全风险,提升操作系统的安全性。
# 加固对象
加固对象包括账号口令、系统网络配置、应用安全配置、服务管控、文件权限等。
注意:加固前建议先在测试环境进行测试验证,提前对被修改的文件进行备份。
# 加固方法
本次培训的加固方法是基于麒麟桌面OS的加固方法,其中有手动加固(未使用图形)和图形加固。图形加固是基于V10 SP1 2107版编写的,其他版本可能存在差异。

加固基线来源

# 1、攻击手动分析
针对已有攻击手段进行分析,如身份获取攻击、权限获取攻击、漏洞利用攻击、数据窃取攻击等攻击手段,然后发现系统可能存在的主要脆弱性,总结易受攻击面,然后基于攻击手段和工具面的划分,制定针对性的加固项。
# 2、参考标准
加固标准主要参考《GB/T 22239-2019 信息安全技术 网络安全等级保护基本要求》、open欧拉操作系统安全标准、PCI DSS、Ubuntu操作系统安全加固标准等。
# 3、用户需求
用户需求也是加固项的主要来源之一、比如:中石化、中海油、重庆银河、南宁轨道交通等各企业的安全加固需求。

账号口令加固

密码复杂度加固

## 密码复杂度加固
密码复杂度越高密码被破解的风险就越低,进行密码复杂度加固可以有效的提升系统安全性,新设置的密码如果没有达到相关复杂度是无法设置成功的。
# 1、编辑 /etc/security/pwquality.conf 文件,设置如下:
minlen=8
dcredit=-1
ucredit=-1
ocredit=-1
lcredit=-1
minclass=3 # 包括3中字符以上
dictcheck=1
usercheck=1 # 不可以包含用户名
参数说明:

# 2、编辑 /etc/login.defs,设置如下
PASS_MIN_LEN 8 # 密码最少长度
PASS_MAX_DAYS 90 # 密码有效期
PASS_WARN_AGE 7 # 密码过期提醒
参数说明:

密码错误次数锁定

# 锁定次数 5-6 次
进行密码锁定策略加固之后,攻击者连续登录尝试次数达到设置的值后锁定用户ID可以减轻对系统的暴力密码攻击。
# 手动加固
配置打开 /etc/pam.d/common-auto,找到 "pam_unix.so"行,查看是否设置了 "deny""unlock_time",如为添加相关参数,则在行尾添加 "deny=5 even_deny_root unlock_time=900",如设置了相关参数,加固时设置为建议的值。
auto [success=1 default=ignore] pam_unix.so nullok_secure try_first_pass deny=5 even_deny_root unlock_time=900
参数说明: "deny=3" 表示密码连续输入错误3次将进行锁定;
"unlock_time=900" 表示用户锁定时间为900秒 即 15分钟
注意: 服务器与桌面有区别,桌面使用的 "pam_unix.so", 服务器版本使用的是 "pam_faillock.so"

密码历史加固

强迫用户不要重复使用他们过去的N个密码,使得攻击者猜测密码的可能性降低。
# 加固方法
vim /etc/pam.d/common-auth,添加密码历史策略,找到 pam_unix.so行,查看是否添加了 "remember" 相关参数,如无相关参数则在行尾添加 "remember=5", 如设置的值小于 5,则把密码历史设置为 5 以上,然后保存退出。
auth sufficient pam_unix.so nullok try_first_pass remember=5
参数说明: "remember=5" 新设置的密码不能与前5次相同

限制 su 为 root 的用户

su命令运行用户以另一个用户的身份运行命令或shell,通常,su命令可以由任何用户执行,控制su命令可以提升系统安全性。
# 加固方法
1、编辑 /etc/pam.d/su 添加如下行
auth required pam_wheel.so group=whell
2、把需要 su 到 root 的用户添加到 wheel 组
# usermod -aG wheel <用户>

控制 sudo 组用户

sudo 组用户可以使用 sudo 命令以 root 的身份执行程序,减少 sudo 组用户,可以减少用户误操作导致的风险,必要的用户加入 sudo 组。
# 加固方法
试用如下命令去除不必要的 sudo 用户:
# gpasswd -d <用户名> sudo 

设置用户会话超时 (建议 900 秒以内)

如果没有与 shell 相关联的超时值,则可能允许未经授权的用户访问另一个用户的 shell 会话 (例如,用户离开其计算机而不锁定屏幕),设置超时值至少可以降低发生这情况的风险。
# 加固方法
vim /etc/profile 设置会话超时时间
TMOUT=900
参数说明: "TMOUT=900" 空闲时间超时15分钟就会退出当前会话

限制系统用户登录

除了用户账号外,其他账号称为系统账号。系统账号仅系统内部使用,禁止用于登录系统或其他操作。
# 加固方法
检查 /etc/passwd,查看 uid 小于 1000,且非 root, secadm, auditadm 用户是否设置为 /usr/sbin/halt 或者 /usr/sbin/nologin, 对于不符合的用户设置如下:
# usermod -s /usr/sbin/nologin <用户名>

空口令账号限制

空口令账号如不进行限制,导致用户不需要输入密码可以登录系统。
# 加固方法
检查 /etc/shadow 密码位 (第一个 ":" 和第二个 ":" 之间的内容) 为空的用户、如存在为空的用户,则设置如下
# usermod -L <用户名称>
# usermod -s /usr/sbin/nologin <用户名称>

grub 配置密码

系统启动时,可以通过 grub 界面修改系统的启动参数;为了确保系统的启动系统参数不被任意修改,需要对 grub 界面设置密码,在输入正确的 grub 口令的情况下才能修改启动参数。
# 加固方法
1、使用 grub-mkpasswd-pdkdf2 设置密码
# grub-mkpasswd-pbkdf2
根据提示输入密码

2、/boot/grub2/grub.cfg 行尾添加如下行 (不同系统的 grub.cfg 路径可能存在差异)
set superusers="root"
password_pbkdf2 root <前面 grub-mkpasswd-pbkdf2 命令设置输出密码>
注意: set superusers=后面的用户可以自定义 (这里设置的是 "root")。
但必须与 password_pbkdf2 后面的用户一致

网络配置安全加固

不接受 ICMP 重定向

ICMP 重定向消息是传递路由信息并告诉主机(充当路由器)通过备用路径发送数据包的数据包。这是一种允许外部路由设备更新系统路由表的方法,主机不充当路由器,因此不需要 icmp 重定向。
# 加固方法
vim /etc/sysctl.conf 文件或 /ect/sysctl.d/* 文件,添加如下参数
net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.default.accept_redirects=0

禁用数据包重定向发送

数据重定向发送用于向其他主机发送路由信息。由于主机本身不充当路由器(在仅限主机的配置中),因此不需要发送重定向。
# 加固方法
vim /etc/sysctl.conf 文件或 /etc/sysctl.d/* 文件, 添加如下参数
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.send_redirects=0

忽略广播 ICMP 请求

使用网络的广播或多播目的地接受 ICMP 回显和时间戳请求可用于诱骗主机启动(或参与)Smurf攻击,Smurf 攻击依赖于攻击者发送大量带有伪造源地址的 ICMP 广播消息。所有接到此消息并响应的主机都会将回显回复消息发送回欺骗地址,改地址可能无法路由。如果许多主机响应这些数据包,网络上的通信量可能会显著增加。
# 加固方法
vim /etc/sysctl.conf 文件或 /etc/sysctl.d/* 文件,添加如下参数
net.ipv4.icmp_echo_ignore_broadcasts=1

禁用 IP 转发

由于主机本身不充当路由器(在仅限主机的配置中),因此不需要 IP 转发。
# 加固方法
vim /etc/sysctl.conf 文件或 /etc/sysctl.d/* 文件,添加如下参数
net.ipv4.ip_forward=0

禁 ping

禁止 ping 可以有效的防止主机探测以及 icmp 洪水攻击,但禁 ping 之后,会影响网络检测。
# 加固方法
vim /etc/sysctl.conf 文件或 /etc/sysctl.d/* 文件,添加如下参数
net.ipv4.icmp_echo_ignore_all=1

开启 syn 防洪攻击

攻击者使用 SYN flood 攻击在系统上执行拒绝服务攻击,方法是在不完成三方握手的情况下发送许多 SYN 数据包。这将很快耗尽内核半开连接队列中的插槽,并阻止合法连接成功。
# 加固方法
vim /etc/sysctl.conf 文件或 /etc/sysctl.d/* 文件,添加如下参数
net.ipv4.tcp_syncookies=1

开启防火墙

开启防火墙可以有效防止网络攻击和非法连接。
# 加固方法

iptables 安全配置 (进行白名单设置)

使用 iptables 可以根据具体业务情况指定符合系统业务的安全策略,可以个性化进行设置。此加固可能会影响系统的应用联网,谨慎使用。
# 加固方法
1、清除系统所有规则
iptables -F
iptables -X
iptables -Z
2、设置默认规则,设置默认都不可访问
iptables -P INPUT DROP
iptables -P OUTPUT DROP
3、设置白名单:
iptables -A INPUT <IP> -j ACCEPT
iptables -A OUTPUT <IP> -j ACCEPT
更多设置方法可查阅 iptables man 手册

SSH 安全配置

ssh 是常用的远程管理和文件传输工具, ssh 服务的安全因此也非常重要,对 ssh 配置进行加固可以有效增强系统安全。
# 加固方法
vim /etc/ssh/sshd_config # 如下设置参数
PermitRootLogin no # 禁用 root 登录
PermitEmptyPasswords no # 禁用空密码用户登录
MaxAuthTries 3 # 设置最大尝试次数
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc # 具体的加密算法根据实际情况进行添加。
DenyUser *@192.168.* # 如存在多个 IP 段可以依次在行尾添加,注意需要使用空格隔开。

优化 xinetd 服务

相关 xinetd 服务属于网络服务,大多用于调试和测试目的,禁用相关服务可以减少攻击面。
# xinetd 服务包括
printer, sendmail, nfs, kshell, lpd, tftp, ident, time, ntalk, bootps, klogin, ypbind, daytime, nfslock, echo, discard, chargen等
# 加固方法
1、检查是否安装了 xinetd 软件,如未安装则不存在相关服务。
2、vim /etc/xinetd.d/目录中的服务,如存在 "disable=no",把此状态改成 "disable=yes",如:
{
	disable		= yes
	type		= INTERNAL
	id			= chargen-stream
	socket_type	 = stream
	protocol	 = tcp
	user		= root
	wait		= no
}

优化远程管理服务

远程管理服务可以远程管理系统,但同时增加了安全风险,不仅需要保障被管理的主机的安全,也需要保障管理段的安全,如通过互联网进行管理安全可能不可控。
远程管理服务如:向日葵、teamviewer、ssh服务等。
# 加固方法
使用 systemctl list-unit-files 查看系统服务和状态
如存在不需要的启动服务使用,使用如下命令进行禁用和停用服务
# systemctl disable <服务名称>
# systemctl stop <服务名称>

禁用 telnet 服务

telnet 服务是明文的管理服务,可能导致信息泄露。 # 不建议安装 telnet 服务,风险较大。
# 加固方法
1、检查是否安装了 telnetd 软件。
dpkg -l | grep telnetd
如安装则进行第二步
2、在 /etc/inetd.conf,注释 telnet 行。

文件权限安全加固

重要文件及目录权限、用户属性和属组加固

系统重要文件及目录应设置合理权限,用户、组属性应为 root,防止被其他用户任意读写。文件如:# 用户属主和属组都为 root
/etc/rc.d/init.d/ 750
/etc/xinetd.conf 600
/etc/rcx(0-6).d/ 750
/etc/security 600
/etc/shadow 600
/etc/passwd 644
/etc/grub.conf 600
/boot/grub/grub.conf 600
/etc/lilo.conf 600
/etc/grub2.cfg 600
/boot/grub2/grub.cfg 600
/etc/group 644
/etc/services 644
# 加固方法
1、使用如下命令对相关文件或目录进行权限加固
# chmod <权限> <文件或目录>
2、使用如下命令对相关文件或目录进行属主和属组进行加固
# chown root:root <文件或目录>

全局可写文件加固

全局可写文件是任意用户都可以的文件,这样可能导致文件被篡改、命令注入、提权等风险。
# 加固方法
1、使用如下命令查找系统中存在的全局可写文件
# find / -type f -perm -0002
2、针对上诉发现的文件使用如下命令进行加固
# chmod o-w <文件名称>

冗余 suid、sgid 文件加固

suid,sgid 是用户可以 root 用户权限或 root组权限执行相关命令,冗余的 suid、sgid 文件可能导致系统被提权。
# 加固方法
1、使用如下命令查找系统中是否存在多余的 suid 或 sgid 文件
# find / -type f -perm /6000
2、针对上诉发现的文件使用如下命令进行加固
# chmod g-s <文件名称>
# chmod u-s <文件名称>

系统工具管控安全加固

系统工具管控

开发、编译、调试等工具会容易被攻击者利用来攻击系统,应保证工具最小化,不存在不必要的工具,如:
开发/编译/调试/网络嗅探工具必须清除干净,包括但不限于: readelf, objdump, mirror, ld, rpcgen, netcat, make, strace, gdb, gcc, cpp, tcpdump, nc, perl, lua等。删除相关工具可能导致系统无法编译、调试、建议只对不必要的进行删除。
# 加固方法
删除二进制工具
使用命令 "# whereis <工具名称>" 查看相关工具
使用命令 "# rm <工具名称>" 删除

开启安全功能

kysec 是麒麟特有的安全防护工具,可以有效的包含系统遭受攻击。可以进行应用联网管控、执行控制、文件包含、进程保护、内核防卸载等。
开启 kysec 之后,命令执行、软件安装、进程杀死都可能会收到影响。
# 加固方法
1、系统重启之后使用如下命令查看 kysec 状态:
# getstatus
2、启用 kysec, 使用如下命令,然后根据提示重启系统生效
# setstatus enable
3、如 keysec 的状态为 softmode,需使用如下命令设置成 "normal" 模式
# setstatus normal

开启 kysec 相关管控功能

kysec 开启应用联网管控、执行控制、文件包含、进程包含、内核防卸载等功能之后系统命令执行、软件安装、进程杀死都可能会收到影响。
# 手动加固方法,开启进程保护、文件保护、网络控制、内核防卸载保护、程序执行控制
setstatus -f fpro on -p  # 文件保护
setstatus -f ppro on -p # 进程保护
setstatus -f netctl enforcing -p # 网络保护
setstatus -f kmod -p # 内核防卸载 
setstatus -f exectl enforcing -p # 执行控制

应用联网控制

阻止未授权的应用联网,可减少系统从网络发起的攻击。
# 加固方法

十一、服务器安全加固



转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以邮件至 hjxstart@126.com