[ 知識是人生的燈塔,只有不斷學習,才能照亮前行的道路 ]
📢?大家好,我是 WeiyiGeek,一個正在向全棧工程師(SecDevOps)前進的計算機技術愛好者,歡迎各位道友一起學習交流、一起進步 🚀,若此文有幫助請點個關注,后續追番不迷路 ??。
文章目錄:
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