【网安等保】OpenEuler 24.03系统主机安全加固及配置优化实践指南

[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ]

📢 大家好,我是 WeiyiGeek,一个正在向全栈工程师(SecDevOps)前进的计算机技术爱好者,欢迎各位道友一起学习交流、一起进步 🚀,若此文有帮助请点个关注,后续追番不迷路 ❤️。

文章目录:

image.png


0x00 前言简述

描述: 随着国产化进程加速,国产化操作系统正逐步应用于政府及企业关键领域(大趋势),预计将于2028年全面替换为国产操作系统。在众多商业国产操作系统中银河麒麟(KylinOS)、中科方德、统信UOS,此三家持续版本迭代超15年的其生态市场及占有率最高, 另外还有红旗Linux、共创Linux、凝思磐石、新支点、深度Linux、Start OS、思普操作系统、云针OS、鸿蒙OS、YunOS、OpenCloudOS等国产操作系统,除此之外也有使用人数较多开源的国产操作系统,例如:欧拉OpenEuler(华为)、龙蜥操作系统(Anolis OS)(阿里)等。

看过前面我的文章的童鞋应该知道,作者企业中部分服务是运行在银河麒麟(KylinOS)V10 SP3 版本的国产系统上,但是对于个人或者中小型企业来说是有一定使用成本的,所以很多中小型企业会选择使用开源免费的国产操作系统。在此需要点之上,作者选择了华为的欧拉 OpenEuler 24.03 LTS 版本国产操作系统进行实践,并实践验证该系统是否可以承载现有业务,并且为满足网络安全等保2.0主机安全配置(三级)要求,遂针对该系统进行安全加固及常规初始优化操作,设置安全基线镜像,以保证基础业务运行环境安全。

这里作者就不在针对 欧拉 OpenEuler 国产操作系统进行详细介绍与下载安装讲解,有兴趣的朋友可以查看【运维 | 国产操作系统遥遥领先? 新手必备 OpenEuler(欧拉) 开源操作系统快速安装配置指南】此文。

此处作者我,已经将其写成一个Shell项目,各位看官可以直接运行加固,大大的节省了我们运维人的时间,最后我会将 OpenEuler 24.03 LTS 安全加固shell脚本下载链接放在文章末尾, 以供各位看友使用实践参考,若需观看视频实践演示,视频将介绍如何对 OpenEuler 进行安装与安全加固。请关注【全栈工程师修炼指南】公众号并回复【OpenEuler安全加固】或【2025050512】关键字获得加固脚本下载链接,若有错误欢迎在【全栈工程师修炼指南】公众号留言,也可通过加入作者『 全栈工程师修炼指南』知识星球获取最新加固脚本。

脚本涵盖:

  • 系统初始化配置:关闭非必要服务,优化内核参数。

  • 账户与权限管理:强化口令策略,限制高危权限。

  • 网络安全加固:配置防火墙规则,禁用高风险协议。

  • 日志与审计:启用审计服务,记录关键操作。

  • 安全基线镜像制作:一键生成合规镜像,快速部署安全环境。

温馨提示:本文为作者原创文章,为尊重作者劳动成果,象征性的设置为收费合集(#网络安全攻防等保 点击查看 ),希望大家理解支持!

温馨提示: 针对于 Ubuntu 22.04、OpenEuler、CentOS8、KylinOS V10 服务器操作系统,作者都编写对应安全加固实践文章,有想了解的童鞋可以访问如下文章链接:

  • CentOS 7 系统安全加固:https://mp.weixin.qq.com/s/tH_dXclrbpzL7QPcj-TbFA

  • CentOS Steam 8 系统安全加固:https://mp.weixin.qq.com/s/WrwzkNaTGQ_xss727_ag9g

  • Ubuntu 22.04 LTS系统安全加固:https://mp.weixin.qq.com/s/dO1bV0tfXKn4ZmqlMcUrrQ

  • KylinOS V10(SP3)系统安全加固: https://mp.weixin.qq.com/s/yqd1Qtog9wy8L5sgvgcEOQ

好了废话不多说,此处我将本文其分为三个章节,没小节包含了配置Shell脚本函数片段:

  • 第一节,主要针对 OpenEuler 24.03 系统初始化运维配置实践。

  • 第二节,主要针对 OpenEuler 24.03 系统内核参数及服务优化实践。

  • 第三节,主要针对 OpenEuler 24.03 系统安全加固实践。

本文为作者原创文章,为尊重作者劳动成果禁止非授权转载,若需转载请在【全栈工程师修炼指南】公众号留言,或者发送邮件到 [master@weiyigeek.top] 中我将及时回复。

0x01 主机系统配置

重要提示: 在线上生产环境中,进行系统安全加固操作时,请注意备份操作文件,以便于异常时及时回退。

重要提示: 在线上生产环境中,进行系统安全加固操作时,请注意备份操作文件,以便于异常时及时回退。

重要提示: 在线上生产环境中,进行系统安全加固操作时,请注意备份操作文件,以便于异常时及时回退。

实践环境:

# 系统版本
cat /etc/openEuler-release# openEuler release 24.03 (LTS-SP1)# 内核版本
6.6.0-72.0.0.76.oe2403sp1.x86_64

1.主机系统网络配置

描述: 一台新安装的主机必须配置IP地址才能方便我们通过远程连接,所以第一步肯定是把网络打通,主要根据配置的IP地址与网络地址环境变量进行对应设置,例如,部分脚本函数片段。

示例片段

# 0.os-network.sh
# Backup the original network config file
cp -a /etc/sysconfig/network-scripts/ifcfg-${VAR_NETINTERFACE} /tmp# Modify the IP/MASK and Gateway
VAR_MODE="static"
VAR_NETINTERFACE=ens18
VAR_IP=10.20.172.58/24
VAR_GATEWAY=10.20.172.1
# Modify the DNS server
VAR_DNS_SERVER=( "192.168.10.254""223.5.5.5""119.29.29.29" )sudo tee /opt/network.sh <<'EOF'
#!/bin/bash
# @Description: Configure OpenEuler 2403 LTS Network
# @Author: WeiyiGeek
# @E-mail: master@weiyigeek.top
# @Blog: https://www.weiyigeek.top
if [[ $# -lt 2 ]];then
echo"Usage: $0 interface mode ip_address/netmask gateway dns-server"
echo"Example: $0 ens18 [dhcp|static] 192.168.12.12/24 192.168.12.1 223.6.6.6"
echo"@Author: WeiyiGeek"
echo"@Blog: https://blog.weiyigeek.top"
exit
fi# 检查接口是否存在
interface=${1}
mode=${2}
ip link show ${interface} > /dev/null 2>&1 
if [[ $? -ne 0 ]];then
echo"错误: ${1} 网卡未找到."
exit 1
fi# 网卡配置信息
IP=${3%%/*}
NETMASK=${3##*/}
GATEWAY=${4}
DNS=${5}
CURRENT_IP=$(ip -4 addr show scope global | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | head -n 1)
CURRENT_GATEWAY=$(ip route show default | awk '/default/ {print $3}')
CURRENT_FILE=/etc/sysconfig/network-scripts/ifcfg-${interface}
echo"当网络信息: IP: ${CURRENT_IP} , GATEWAY: ${CURRENT_GATEWAY}"
echo"预设置网络信息: ${interface}, IP/NETMASK: ${IP}/${NETMASK} , GATEWAY: ${GATEWAY}, DNS: ${DNS}"# 检查 NetworkManager 服务,验证是否使用 nmcli 命令进行配置
if systemctl is-active --quiet NetworkManager; thenUSE_NMCLI=true
elseUSE_NMCLI=false
fi# 配置网络模式
case$modeindhcp)if$USE_NMCLI; thennmcli connection modify $interface ipv4.method autonmcli connection up $interfaceelseegsed -i -e "/BOOTPROTO=/c\BOOTPROTO=dhcp" -e "/ONBOOT=/c\ONBOOT=yes"${CURRENT_FILE}systemctl restart networkfiecho"网络已配置为DHCP模式";;static)if [[ -z "$IP" || -z "$NETMASK" || -z "$GATEWAY" ]]; thenecho"错误:静态IP模式需要提供IP地址、子网掩码和网关"return 1fiif$USE_NMCLI; thennmcli connection modify $interface \ipv4.method manual \ipv4.addresses "$IP/$NETMASK" \ipv4.gateway "$GATEWAY" \ipv4.dns "$DNS"nmcli connection up $interfaceelse# 已存在网卡配置文件的情况下egrep -q "^\s*ONBOOT=.*$"${CURRENT_FILE} && sed -ri "s/^\s*ONBOOT=.*$/ONBOOT=yes/"${CURRENT_FILE}|| echo"ONBOOT=yes" >> ${CURRENT_FILE}egrep -q "^\s*BOOTPROTO=.*$"${CURRENT_FILE} && sed -ri "s/^\s*BOOTPROTO=.*$/BOOTPROTO=static/"${CURRENT_FILE}|| echo"BOOTPROTO=static" >> ${CURRENT_FILE}egrep -q "^\s*IPADDR=.*$"${CURRENT_FILE} && sed -ri "s/^\s*IPADDR=.*$/IPADDR=${IP}/"${CURRENT_FILE}|| echo"IPADDR=${IP}" >> ${CURRENT_FILE}egrep -q "^\s*PREFIX=.*$"${CURRENT_FILE} && sed -ri "s/^\s*PREFIX=.*$/PREFIX=${NETMASK}/"${CURRENT_FILE}|| echo"PREFIX=${NETMASK}" >> ${CURRENT_FILE}egrep -q "^\s*GATEWAY=.*$"${CURRENT_FILE} && sed -ri "s/^\s*GATEWAY=.*$/GATEWAY=${GATEWAY}/"${CURRENT_FILE}|| echo"GATEWAY=${GATEWAY}" >> ${CURRENT_FILE}egrep -q "^\s*DNS1=.*$"${CURRENT_FILE} && sed -ri "s/^\s*DNS1=.*$/DNS1=${DNS}/"${CURRENT_FILE}|| echo"DNS1=${DNS}" >> ${CURRENT_FILE}systemctl restart networkfiecho"网络已配置为静态IP模式";;*)echo"错误:无效的模式,请使用 dhcp 或 static"return 1;;
esac# 添加 IP 地址和掩码示例
# sudo ip addr add ${IP} dev $interface
# 修改默认网关示例
# sudo ip route add default via ${CURRENT_GATEWAY} dev $interface
# 若存在 nmcli 命令则可以使用如下命令
# nmcli conn add connection.id $interface connection.interface-name ${interface} connection.autoconnect yes type Ethernet ifname ${interface} ipv4.method manual ipv4.address ${IP} ipv4.gateway ${GATEWAY} ipv4.dns ${DNS} ipv4.ignore-auto-dns true
EOF
sudo chmod +x /opt/network.sh# 执行网卡配置脚本文件
/opt/network.sh ${VAR_NETINTERFACE}${VAR_MODE}${VAR_IP}${VAR_GATEWAY}${VAR_DNS_SERVER}

知识补充:当然在你使用手动方式配置完网络后,你可能需要重新加载或重启网络服务来使更改生效。你可以执行以下命令来实现:

# 重新加载网络配置
# 检查 NetworkManager 服务,验证是否使用 nmcli 命令进行配置
if systemctl is-active --quiet NetworkManager; thenUSE_NMCLI=true
elseUSE_NMCLI=false
fiif$USE_NMCLI; then
# 重启 NetworkManager 服务(会重载所有配置)然后显式启用连接sudo systemctl restart NetworkManagersudo nmcli connection up ${VAR_NETINTERFACE}
else
# 重启 network 服务sudo systemctl restart network
fi
# 查看配置是否生效ip addr show ${VAR_NETINTERFACE}

2.主机DNS服务器地址配置

描述: 在完成系统主机的IP地址的配置后,若需要单独为主机配置私有DNS服务器或者公共的DNS服务器,以便解析内部或外部域名,可以使用以下脚本示例进行配置。

示例片段:

# Modify the DNS server
# DNSPod: 119.29.29.29      Alidns: 223.5.5.5 223.6.6.6
# Google: 8.8.8.8 8.8.4.4   Cloudflare: 1.1.1.1 1.0.0.1
# Baidu: 114.114.114.114
# Internal : Your intranet domain name resolution server
VAR_DNS_SERVER=( "223.5.5.5""114.114.114.114""192.168.4.254")# 备份DNS配置文件
cp -a /etc/resolv.conf /tmp# 清空原始的DNS配置文件
truncate -s 0 /etc/resolv.conf# 配置DNS服务器地址
# 添加多个 DNS(最多支持 3 个,空格分隔)
DNS="${VAR_DNS_SERVER[@]}"
# IPV4
sudo nmcli connection modify "${VAR_NETINTERFACE}" ipv4.dns "${DNS}"
# IPV6
# sudo nmcli connection modify "ens18" ipv6.dns "2001:4860:4860::8888 2400:3200::1"
# 使配置立即生效
sudo nmcli connection down "${VAR_NETINTERFACE}" && sudo nmcli connection up "${VAR_NETINTERFACE}"
# 配置验证
nmcli device show "${VAR_NETINTERFACE}" | grep DNS

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

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

相关文章

大模型赋能:2D 写实数字人开启实时交互新时代

在数字化浪潮席卷全球的当下&#xff0c;人工智能技术不断突破创新&#xff0c;其中大模型驱动的 2D 写实数字人正成为实时交互领域的一颗新星&#xff0c;引领着行业变革&#xff0c;为人们带来前所未有的交互体验。 一、2D 写实数字人概述 2D 写实数字人是通过计算机图形学…

Dockers部署oscarfonts/geoserver镜像的Geoserver

Dockers部署oscarfonts/geoserver镜像的Geoserver 说实话&#xff0c;最后发现要选择合适的Geoserver镜像才是关键&#xff0c;所以所以所以…&#x1f437; 推荐oscarfonts/geoserver的镜像&#xff01; 一开始用kartoza/geoserver镜像一直提示内存不足&#xff0c;不过还好…

关于解决MySQL的常见问题

一&#xff1a;MySQL输入密码时闪退 这有可能是因为MySQL服务没有开启。 打开系统配置&#xff08;直接搜索即可&#xff09;&#xff0c;查看MySQL服务是否开启。 此时显示的是已停止。确定是这个问题。 现在打开计算机管理&#xff08;直接搜索即可&#xff09;。 找到MyS…

LeetCode 热题 100 101. 对称二叉树

LeetCode 热题 100 | 101. 对称二叉树 大家好&#xff0c;今天我们来解决一道经典的二叉树问题——对称二叉树。这道题在 LeetCode 上被标记为简单难度&#xff0c;要求检查给定的二叉树是否轴对称。 问题描述 给你一个二叉树的根节点 root&#xff0c;检查它是否轴对称。 示…

图形化编程革命:iVX携手AI 原生开发范式

一、技术核心&#xff1a;图形化编程的底层架构解析 1. 图形化开发的效率优势&#xff1a;代码量减少 72% 的秘密 传统文本编程存在显著的信息密度瓶颈。以 "按钮点击→条件判断→调用接口→弹窗反馈" 流程为例&#xff0c;Python 实现需定义函数、处理缩进并编写 …

uniapp跨平台开发HarmonyOS NEXT应用初体验

之前写过使用uniapp开发鸿蒙应用的教程&#xff0c;简单介绍了如何配置开发环境和运行项目。那时候的HbuilderX还是4.22版本&#xff0c;小一年过去了HbuilderX的正式版本已经来到4.64&#xff0c;历经了多个版本的更新后&#xff0c;跨平台开发鸿蒙应用的体验大幅提升。今天再…

windows怎么修改DNS

好的&#xff0c;在 Windows 操作系统中修改 DNS 设置有几种方法&#xff0c;最常用的是通过“网络和 Internet 设置”。以下是详细步骤&#xff1a; 方法一&#xff1a;通过设置应用修改 DNS (适用于 Windows 10/11) 打开设置&#xff1a; 点击屏幕左下角的 Windows 开始按钮…

Java基本数据类型缓存池解析-源码剖析

抛出问题&#xff1a;new Integer(18) 与 Integer.valueOf(18) 的区别是什么&#xff1f; new Integer(18) 每次都会新建一个对象;Integer.valueOf(18) 会使⽤用缓存池中的对象&#xff0c;多次调用只会取同⼀一个对象的引用 Integer x new Integer(18); Integer y new Int…

WORD压缩两个免费方法

日常办公和学习中&#xff0c;Word文档常常因为包含大量图片、图表或复杂格式而导致文件体积过大&#xff0c;带来诸多不便&#xff0c;比如 邮件发送受限&#xff1a;许多邮箱附件限制在10-25MB&#xff0c;大文件无法直接发送 存储空间占用&#xff1a;大量文档占用硬盘或云…

罗技无线鼠标的配对方法

罗技鼠标的配对方法&#xff1a; 重新连接鼠标 请按照以下步骤将鼠标与 USB 接收器重新配对。 1.将USB接收器插入计算机。 2.将鼠标关闭电源。 3.按住并持续按住向右按钮&#xff0c;直到操作结束。 4.切换鼠标电源。 5. 单击一次左侧按钮。 6. 单击一次中间按钮。 7.全部松开&…

四、Hadoop 2.X vs 3.X:特性、架构与性能全解析

Hadoop 2.X 与 Hadoop 3.X 深度对比&#xff1a;版本特性、架构与性能剖析 在大数据处理的浪潮中&#xff0c;Hadoop 凭借其分布式存储与计算的强大能力&#xff0c;成为了业界的核心框架之一。随着技术的不断演进&#xff0c;Hadoop 也经历了多个重要版本的迭代。其中&#x…

【React中useReducer钩子详解】

useReducer 是 React 中用于管理复杂状态逻辑的 Hook&#xff0c;它通过 集中式状态更新逻辑 替代 useState&#xff0c;尤其适合处理多值关联状态或依赖前序状态更新的场景。以下是其核心要点&#xff1a; 1. 核心概念 Reducer 模式&#xff1a;灵感来自 JavaScript 的 Array…

【C++】C++函数指针详解与实用技巧

C函数指针详解与实用技巧 在C中&#xff0c;**函数指针&#xff08;Function Pointer&#xff09;**是一种强大而灵活的工具&#xff0c;常用于回调机制、策略模式、事件处理等场景。本文将从概念、语法、常见用法到实战示例&#xff0c;带你全面掌握C函数指针。 &#x1f9e0…

【计算机视觉】基于深度学习的实时情绪检测系统:emotion-detection项目深度解析

基于深度学习的实时情绪检测系统&#xff1a;emotion-detection项目深度解析 1. 项目概述2. 技术原理与模型架构2.1 核心算法1) 数据预处理流程2) 改进型MobileNetV2 2.2 系统架构 3. 实战部署指南3.1 环境配置3.2 数据集准备3.3 模型训练3.4 实时推理 4. 常见问题与解决方案4.…

IC ATE集成电路测试学习——电流测试的原理和方法

电流测试 我们可以通过电流来判断芯片的工作状态时&#xff0c;首先先了解下芯片的电流是如何产生的。 静态电流 理论上&#xff0c;CMOS结构的芯片静态时几乎不耗电 CMOS基本结构&#xff1a;Pmos Nmos 串联当逻辑电平稳定时&#xff1a; ➜ 要么Pmos导通&#xff0c;Nmo…

stm32week15

stm32学习 十一.中断 2.NVIC Nested vectored interrupt controller&#xff0c;嵌套向量中断控制器&#xff0c;属于内核(M3/4/7) 中断向量表&#xff1a;定义一块固定的内存&#xff0c;以4字节对齐&#xff0c;存放各个中断服务函数程序的首地址&#xff0c;中断向量表定…

list类的详细讲解

【本节目标】 1. list的介绍及使用 2. list的深度剖析及模拟实现 3. list与vector的对比 1. list的介绍及使用 1.1 list的介绍 1. list 是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。 2. list 的底层是双向链表结构&a…

第十节:图像处理基础-图像算术运算 (加法、减法、混合)

引言 在计算机视觉领域,图像算术运算是最基础却至关重要的核心技术。无论是实现简单的图片合成、开发智能监控系统,还是构建复杂的医学影像分析工具,加减运算和混合操作都扮演着关键角色。OpenCV作为最流行的计算机视觉库,提供了完善的图像处理函数集。本文将深入解析三种…

【React 的useState钩子详解】

React 的 useState 钩子详解 useState 是 React 中最基础且最常用的 Hook 之一&#xff0c;它允许你在函数组件中添加和管理状态。 基本语法 const [state, setState] useState(initialState);initialState: 状态的初始值&#xff0c;可以是任何 JavaScript 数据类型state:…

vue 中的数据代理

在 Vue 中&#xff0c;数据代理&#xff08;Data Proxy&#xff09; 是 Vue 实现 MVVM 模式 的关键技术之一。Vue 使用数据代理让你可以通过 this.message 访问 data.message&#xff0c;而不需要写 this.data.message —— 这大大简化了模板和逻辑代码。 我们来深入理解它的本…