麒麟 ZYJ 服务器软件适配 参考示例

news2024/12/26 0:27:14

一、zyj 环境简介

1. ZYJ 概述

国产化 SMZYJ 是由国家 BM 主管部门鉴定并批准生产使用的国内自主开发的 整机 JM 国标设备,设备采用了自主设备基础硬件(飞腾、国科微等)、安全硬 件+自主固件(昆仑等)+自主 SM 专用操作系统(麒麟)的三层加密一体方式进 行整机生产。

麒麟 ZYJ 操作系统使用了国标架构,通过了 BM 等级认证,采用了三员分立+

软硬一体化认证的主机管控措施,内置操作系统内核、壳结构、服务及软件均通 过基线安全策略加固,可通过操作系统内核安全策略控制专用机进程,识别进程 动作,实现基线策略触发告警功能。

⚫ 管理用户采用三权分立系统,以分割管理权限。

⚫ 三合一软硬一体化设备实现了管控软件安装,硬件接口放行,文件输入 输出,端口放行等相关功能.

⚫ 加入审计追溯机制,强制保留用户使用踪迹。

⚫ 固件绑定安全卡进行加密硬件及相关部件监控,一旦硬件信息被更改及 损坏即有告警禁入等相关安全措施。

这些软硬一体化认证的整机安全机制保证了涉密设备的使用的安全性,从基 础架构、系统原理与交互机制上排除了泄密隐患和信息安全风险。

2. 背景

由于 ZYJ 的特殊安全机制,用户 SAAS 级产品迁移适配需要遵循 ZYJ 适配 迁移的规则,本文以常见 web 服务器软件 nginx 源码作为适配举例,将详细 介绍适配流程及重点注意事项。

3. 相关机制简介

KYSEC 机制和白名单(其中一种安全机制)

KYSEC 是基于 kysec 安全标记对执行程序、脚本文件、共享库、内核模块 进行保护的一种安全机制。除了系统默认集成的执行程序、脚本文件、共享 库、内核模块,任何外来的该 4 种文件,如拷贝、移动、下载、重新编译生 成等,都必须添加到麒麟安全管理工具的相应白名单列表中,才能执行调用。 并且 KYSEC 会对白名单列表中的文件进行保护,保护文件不被或限定修改、 移动、删除。

那么在 ZYJ 中,KYSEC 不能强制关闭。使用配置管理工具,进行签名并导 入安装包的过程,就是给软件打白名单标签的过程。配置管理工具本身限定 了软件的导入和安装方式,就是必须使用安全软介质通过图形配置管理软件 导入格式化安装包(deb、rpm)的形式进行安装。不能直接使用二进制安装 或编译安装,也不能使用命令行进行安装。 ZYJ 内不允许安装编译环境,那就要求开发者提前在其他通用操作系统环 境或开发板中做适配工作。

4. 开发板

开发板是麒麟软件为 ZYJ 各操作平台提供的开发适配专用版本,开发板 提供了与 ZYJ 内环境(内核、shell、服务、软件)等完全相同的原生环境, 并且去掉了相关的安全限制。用户可以使用开发板环境对应用进行开发、配 置仓库、补充依赖、打包、软件测试等适配工作。开发板可以安装在同架构 通用机型上也可以安装在 ZY 机型上。(注意:通用机型可以连接互联网、 公网;ZY 机型不允许连接互联网、公网!)

各平台开发板镜像地址:各整机厂商在整机出厂时会附带对应版本开发 盘。如未提供,请直接联系整机厂商或麒麟软件销售。

5. zyj 适配流程示意图

6. 准备工具介绍

二、适配过程

1. 安装开发盘镜像

准备好相关版本镜像使用刻录软件进行刻录至相关介质,作为镜像安装介质。这 里推荐 DVD-RW 光盘进行刻录安装。

ZYJ 安装方法:

第一步:开机---secadm 登录---F1 进入 bios---依次选择:安全管理→安全维护 →启动项管理开启/关闭,重启。如图

第二步,重启后,使用 root 登录---F1 进入 bios---更改启动项为光驱启动---F1 0 保存退出---重启后,以 root 用户身份登录,进入光盘引导。如图

第三步,开始加载光盘,加载完成后,(如需度量校验,请按照提示进行度 量校验)展示出安装欢迎界面,正常安装系统即可,如图

通用机型安装方法:

第一步:开机—按照各整机对应的 bios 菜单进入按钮,进入 bios---选择光盘 启动或 usb 存储介质启动,重启。 第二步:启动后,选择安装,根据提示进行安装即可。

2. 在开发板上进行软件编译以及安装、测试等

因 zyj 必须使用格式化安装包形式,并且不允许在 zyj 上直接执行编译动作, 需要先将软件在开发板系统中编译完成后再进行打包上传安装。

请主要关注编译安装过程中的重点步骤

准备相关安装包

一般 GCC、make 工具开发板系统自动预装。如缺失,请补充相关工具。

获取 nginx 主程序编译安装包及相关依赖。

⚫ 在 nginx 官网下载 nginx 主程序

⚫ 在软件源仓库获取已有依赖相关库或下载编译包。

重点步骤:重点文件安装目录规划

⚫ 自适配软件的安装目录 zyj 尽量统一为/opt/下,方便统一管理。

⚫ 后续打包时应与规划目录一一对应不能修改

⚫ 如需指定用户,以 root 为优先。(zyj 中 root 非全权限用户)

⚫ zyj 日志目录/var/log 为单独分区,分区满后会限制用户登录(可以删除)。 日志分区大小固定,不能扩容。在日志文件放置位置上请做好指定。

⚫ 规划示例:

本次 nginx 安装统一目录下的优点是打包时填写配置较为方便。

编译参数

nginx 源文件自带已生成的 configure 文件,相关支持参数可以支持指定位置安装。 且可以指定用户。

本地环境安装测试

第一步 配置软件源或离线安装依赖库(桌面和服务器不相同,如不了解 可咨询整机或联系麒麟销售)

第二步 解压源码包

tar xf nginx-1.12.2.tar.gz

cd nginx-1.12.2

第三步 重点步骤:注意指定目录,生成 makefile 文件

./configure --prefix=/opt/nginx-1.12.2 --user=root --group=root --with-http_ssl_module --with-http_stub_status_module

第四步 make #软件编译

第五步 make install #软件编译安装

重点步骤:验证测试程序,先让软件在开发板上可用

第六步

启动 nginx 服务,进入指定的安装目录找到启动文件

执行:/opt/nginx/sbin/nginx

第七步

利用浏览器访问测试或使用 curl 命令获取 80 端口

可以看到 nginx 的 web 欢迎页信息。如图:

第八步

测试配置环境变量,将启动命令简单化,不再使用绝对路径 export PATH=$PATH:/opt/nginx/sbin

测试关闭 nginx 

到这一步已可以验证在开发板上软件可用,接下来就是需要进行将软件打包,打 包完成后再迁移至 zyj 进行测试使用。

3. 软件打包注意事项

其实生成格式化安装包的方法是多种多样的,并且方法各异,只要掌握了其 中的的重点规则,了解相关文件的具体配置和用法,按照需求配置即可。

我们先来看下 zyj 不同平台的传统打包应用工具,以及注意事项:

4. 服务器打包方法(重点)

那么本次介绍的服务器传统打包方法是基于麒麟操作系统本身自带的 rpmbuild

ZYJ 软件适配参考示例 第 14

工具来进行实现的,主要是配置好 spec 文件。其他方式的打包方法如 fpm 或 c heckinstall 等等,可自行进行研究,本次不做详细介绍,后续整理好后会进行补 充。

三、ZYJ 已适配软件安装迁移

1. 安装工具介绍

zyj 安装软件必须使用使用配置管理工具,然后进行签名,导入安装包。

配置管理工具本身,限定了一个软件的导入和安装方式,就是必须使用安全介质 传输到系统内,通过图形配置管理软件导入这种格式化安装包,不能直接使用二 进制安装方式或者是编译的安装方式,也不能使用命令行进行安装。

2. zyj 软件安装过程

导入安装包至系统

将 U 盘插入专用机,以安全用户放行 U 盘,启动左下角程序中的【三合一管 理】工具,页面认证如图所示,然后注销使用 root 用户将需要安装的 nginx 软件包导出到桌面

四、一些注意事项

1. 多个文件不同安装路径 spec 编写方法

假如我们需要将多个编译安装包或文件打成一个 rpm 包进行同时安装,比如, 我们想使用 systemd 管理 nginx 的启动及开机自启等相关功能,需要将编写好的 的 service 文件导入到系统的 systemd 管理目录中,跟本次 nginx 主目录不是同一 个目录的情况。可通过增加 Source 定义来指定多个文件,通过增加 build 目录来 指定多个目录。

示例如下

2. jar 包打包时的注意事项

由于 jar 包本身就是压缩包,针对此类包,再 build 过程中如果执行了解压动作, 可能会对 jar 包本身造成破坏,导致不可用。所以如果需要导入 jar 包时,需要 去掉解压缩定义%prep 下的%setup -q 参数。并且加入 jar 包安装支持参数,避免jar 文件重新打包,需要添加%define __jar_repack 0 定义。

3. 两种情况都包括

如过两种情况都包括,既有 jar 包,又需要其他文件放入其他目录,且都是单文 件情况下,可以不使用 tar 工具将文件压缩,直接指定文件。

4. 保留软连接

如果软件包内存在软连接,请添加此定义,避免在打包过程中去除。 %define debug_package %{nil}

5. 目录及压缩包命名问题

如果命名不规范,报如下错误:

可添加此定义 %setup -n 软件目录名

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

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

相关文章

Linux嵌入式I2C协议笔记

硬件: 1.I2C结构 在一个SOC中有一个或者多个I2C控制器,一个I2C控制器可以连接一个或多个I2C设备。 I2C总线需要两条线,时钟线SCL和数据线SDA 2.I2C传输数据格式 开始信号(S):SCL为高电平时,SDA山高电平向低电平跳变,开始传送数据。结束信号(P):SCL为高电平时,SDA…

【算法萌新闯力扣】:找到所有数组中消失对数字

力扣热题:找到所有数组中消失对数字 开篇 这两天刚交了蓝桥杯的报名费,刷题的积极性高涨。算上打卡题,今天刷了10道算法题了,题目都比较简单,挑选了一道还不错的题目与大家分享。 题目链接:448.找到所有数组中消失对…

【C++】类和对象(7)--友元, static成员

目录 一 友元 1 友元概念 2 友元函数 3 友元类 二 static成员 1 概念 2 用法 3 static成员特性 4 例题 一 友元 1 友元概念 友元提供了一种突破封装的方式,有时提供了便利。但是友元会增加耦合度,破坏了封装,所以 友元不宜多用。 …

【C/C++笔试练习】继承和派生的概念、虚函数的概念、派生类的析构函数、纯虚函数的概念、动态编译、多态的实现、参数解析、跳石板

文章目录 C/C笔试练习选择部分(1)继承和派生的概念(2)程序分析(3)虚函数的概念(4)派生类的析构函数(5)纯虚函数的概念(6)动态编译&…

安装银河麒麟linux系统docker(docker-compose)环境,注意事项(一定能解决,有环境资源)

1:安装docker环境必须使用麒麟的版本如下 2:使用docker-compse up -d启动容器遇到的文件 故障1:如果运行docker-compose up 报“Cannot create redo log files because data files are corrupt or the database was not shut down cleanly after creating the data files”…

webAPP基础学习

###视觉基础 part-I ####1.面试中常见的像素问题 >什么是像素? *1.什么是px? px-虚拟像素,css像素的单位 px是一个相对单位,相对于设备像素而言 >相对性 a.相对于同一个设备,css像素的可变的 css像素物理像素>会受到缩放的影响 css像素缩放倍数*单个物理像…

我认为除了HelloWorld之外,Python的三大数据转换实例可以作为开始学习Python的入门语言。

Python的三大数据转换实例 一、反转三位数 class Solution:def funtcion(self,number):hint(number/100)tint(number%100/10)zint(number%10)return 100*z10*th if __name____main__:solution Solution()num123new_num solution.funtcion(num)print("输入:{}".fo…

量化交易:传统小市值策略 VS AI市值策略

在BigQuant平台上可以快速开发股票传统策略和股票AI策略,今天拿市值因子来练手,看看两个策略在2015-01-01到2016-12-31这两年时间各自的收益风险情形。 市值因子是国内股票市场能够带来超额收益的alpha因子,已经被验证为长期有效的因子&…

国内优质企业网盘推荐:满足您的文件存储与共享需求

企业网盘是主要用于企业工作过程中给的文件存储、共享以及协作。很多用户在挑选文件协作工具时更偏爱国内的工具,原因是使用上可能更贴合国人的使用习惯! 那么现在国内做的比较好的企业网盘有什么? Zoho Workdrive企业网盘,ZOHO…

11 月 11 日 ROS 学习笔记——ROS 架构及概念

文章目录 前言一、 ROS 文件系统级1). 工作空间 Ws2). 功能包3). 消息 msg4). 服务 srv 二、计算图级1). 动态加载节点 nodelet2). 主题 topic3). 服务 srv4). 消息 msg5). 试用练习5). 创建工作空间6). 创建 ROS 功能包和元功能包7). 编译ROS功能包8). 使用 ROS 节点9). 使用主…

实战提升(六)

前言:Practice makes perfect!今天实战Leetcode链表分割还有回文结构。今天的题全都来自于牛客网。 实战一: 思路:我们一这个链表为例,小于5的链表尾插到第一个链表,大于5的链表尾插到第二个链表&#xf…

性能测试常见问题总结

01 硬件上的性能瓶颈 指的是CPU、内存、I/O读写速率,磁盘空间方面的问题。 02 网络上的性能瓶颈 指的网络带宽,网络波动,延时,丢包等。 03 应用程序上的性能瓶颈 指的是开发人员新开发出来的应用程序。 04 数据库的性能瓶颈…

如何实现一个下班倒计时程序

shigen日更文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 Hello伙伴们,好几天不见啦。最近也是晚上打球太累,加上一直在研究mybatis的多租户问题&…

风光能互补发电庭院路灯系统技术原理

风光互补发电系统是由风力发电机组配合太阳能电池组件组成,通过专用的控制逆变器,将风力发电机输出的低压交流电整流成直流电,并与光伏电池组件输出的直流电汇集在一起,充入蓄电池组,实现稳压、蓄能和逆变全过程&#…

Web前端—移动Web第二天(空间转换、动画、综合案例:全名出游)

版本说明 当前版本号[20231118]。 版本修改说明20231118初版 目录 文章目录 版本说明目录移动 Web 第二天01-空间转换空间转换简介平移视距旋转左手法则rotate3d-了解立体呈现案例-3d导航缩放 02-动画动画实现步骤animation复合属性animation拆分写法案例-走马灯精灵动画多组…

K-Means算法进行分类

已知数据集D中有9个数据点,分别是(1,2),(2,3), (2,1), (3,1),(2,4),(3,5),(4,3),(1,5),(4,2)。采用K-Means算法进行聚类,k2,设初始中心点为(1.1,2.2),(2.3,3.…

k8s上Pod生命周期、重启策略、容器探测简介

目录 一.Pod的创建过程 二.Pod的终止过程 三.Pod的重启策略(restartPolicy) 1.Always 2.OnFailture 3.Never 4.示例 四.Pod生命周期内的5种状态(相位) 1.Pending 2.Running 3.Succeeded 4.Failed 5.Unknown 五.初始…

号卡分销管理系统搭建

随着移动互联网的发展,各种手机应用层出不穷,其中包括了很多用于企业管理的软件。号卡系统分销管理软件就是其中的一种。它是一种基于移动互联网的企业管理软件,能够帮助企业进行号卡的分销管理,从而提高企业的效率和竞争力。 …

OpenAI发布会中不起眼的重大更新

上周,OpenAI的历史首届开发者大会上,OpenAI的首席执行官山姆奥特曼展示了一系列产品更新,包含了众多重磅功能,就算单独拿出来都能让科技圈震一震,一下能发布这么多也真是家底厚。 果不其然,接下来的一周&am…

C#实现观察者模式

观察者模式是一种软件设计模式,当一个对象的状态发生变化时,其所有依赖者都会自动得到通知。 观察者模式也被称为“发布-订阅”模式,它定义了对象之间的一对多的依赖性,当一个对象状态改变时,所有依赖于它的对象都会得…