网安等保 | 主机安全之CentOS8服务器配置优化与安全加固基线文档脚本分享

news2024/11/15 15:55:52

欢迎关注「全栈工程师修炼指南」公众号

点击 👇 下方卡片 即可关注我哟!

设为星标⭐每天带你 基础入门 到 进阶实践 再到 放弃学习

专注 企业运维实践、网络安全、系统运维、应用开发、物联网实战、全栈文章 等知识分享

  花开堪折直须折,莫待无花空折枝 


作者主页:[ https://www.weiyigeek.top ]  

博客:[ https://blog.weiyigeek.top ]

作者<安全开发运维>答疑交流群,回复【学习交流群】即可加入


本章目录:

5bdd53b40c019ee4e3dcc159817defe8.png

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

免责申明:本文分享旨在给网络安全从业人员、网站开发人员以及运维管理人员在日常工作中进行安全攻防测试以及防范恶意攻击, 请勿恶意使用下面介绍技术进行非法网络攻击,作者不为此承担任何责任,所有渗透都需获取授权,谨防从入门到入狱!

【中华人民共和国网络安全法】: http://www.npc.gov.cn/npc/c30834/201611/270b43e8b35e4f7ea98502b6f0e26f8a.shtml


0x00 前言简述

描述: 千呼万唤始出来,网安等保系列之Linux系统主机安全加固文章又更新了,由于作者的【安全开发运维】运维学习答疑群(PS: 公众号回复【微信交流群】即可进入哟)的小伙伴们企业中需要针对CentOS8服务器系统进行安全加固,以通过等保3级的主机安全合规检查,作为群主大大的我必须响应群员们的号召,在工作之余,边带娃,边编写该系统加固脚本, 遂在昨日完成该脚本的编写以及验证,可谓是真不容易呀。

c92749c808556928321483d9f70e32cc.jpeg

原文地址:网安等保 | 主机安全之CentOS8服务器配置优化与安全加固基线文档脚本分享当前企业中还有大量的服务器上使用了CentOS8服务器操作系统,为满足于企业中需要针对CentOS8系统进行安全加固的道友,文章脚本中实现了CentOS8 系统基础运维配)、安全加固配置、系统优化配置等方法,若不全之处也希望大佬们多多指正。https://mp.weixin.qq.com/s?__biz=MzIwNDA3ODg3OQ==&mid=2648002806&idx=1&sn=a449482c593bfa8f3915f1cd654095ca&chksm=8ee45a86b993d390cd9bd01ecc51ea4a82fd1395308fd295d15f1b7b08da75b024e740a09613#rd

当前由于 CentOS Linux/Stream 8 即将停止更新维护(EOL)了,作者已经在2021年底基本将企业中CentOS服务器上的业务进行迁移,我是迁移到了Ubuntu和KylinOS 银河麒麟国产Linux系统之上, 当然网上也有其他迁移方案,此处不再累述。

虽然 CentOS 8 生命周期即将结束了,但是企业中还是有大量的服务器机器上使用了CentOS8服务器操作系统,所以本文也满足于企业中需要针对CentOS8系统进行安全加固的道友,也帮助Liunx初学者快速配置一个安全的CentOS8服务器(加固脚本也是值得学习借鉴的哟),文章脚本中实现了CentOS8 系统基础运维配、安全加固配置、系统优化配置等方法,若不全之处也希望大佬们多多指正。

请在【全栈工程师修炼指南】公众号中回复【CentOS8安全加固】或【10006】关键字,获取演示视频、CentOS8安全加固文档和脚本(本文末尾获取下载链接)。

温馨提示: 此处为了防止伸手党,以及尊重作者编写脚本及实践成果,象征性的设置为收费合集(#网络安全攻防等保 点击查看 ),付费后可直接联系作者发加固脚本或者文章末尾获取下载链接,希望大家理解支持!

此处作者我,已经将其写成一个Shell项目,各位看官可以直接运行加固,大大的节省了我们运维人的时间,最后我会将CentOS8安全加固shell脚本,下载链接放在文章末尾, 以供各位看友使用实践参考,若有错误欢迎在【全栈工程师修炼指南】公众号留言。

## 名称: Start::Help 
## 用途:程序执行帮助命令
## 参数: 无
Start::Help ()
{
  echo -e "\nUsage: $0 [--start ] [--network] [--function] [--clear] [--version] [--help]"
  echo -e "Option: "
  echo -e "  --start            Start System initialization and security reinforcement."
  echo -e "  --network          Configure the system network and DNS resolution server."
  echo -e "  --function         PCall the specified shell function."
  echo -e "  --clear            Clear all system logs, cache and backup files."
  echo -e "  --info             Print System information and exit."
  echo -e "  --version          Print version and exit."
  echo -e "  --help             Print help and exit."
  echo -e "\nMail bug reports or suggestions to <master@weiyigeek.top> or pull request (pr)."
  echo -e "current version : ${VAR_VERSION}"
  log::warning "温馨提示:使用前先请配置机器上网环境及其在config文件夹中的CentOS8.conf配置进行对应配置."
  exit 0
}

a1781fd05c75cfb68354b68d8d172358.png

此加固脚本的使用方法,请参照演示视频:

# 常用命令示例:
# 进行自动安全加固
./CentOS8-InitializeReinforce --start

# 使用function参数指定优化加固
./CentOS8-InitializeReinforce  --function

# 使用info参数打印系统相关信息
./CentOS8-InitializeReinforce  --info

在实践前,也请大家多多支持我的【#网络安全攻防等保(点击查看)】付费合集,后续将推出更多网安入门学习、企业安全实践与漏洞挖掘实践文章, 也将持续更新CentOS7安全加固实践文章以及安全加固脚本。

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

  • 网安等保-主机安全测评之Linux服务器Ubuntu-22.04-LTS操作系统安全加固制作基线系统脚本分享与实践

  • 网安等保-国产Linux操作系统银河麒麟KylinOS-V10SP3常规配置、系统优化与安全加固基线实践文档

好了废话不多说,此处我将本文其分为三个章节,没小节包含了配置Shell脚本片段:
第一个章节主要针对 CentOS8 系统初始化运维配置实践,
第二个章节主要针对 CentOS8 系统内核参数及服务优化实践,
第三个章节主要针对 CentOS8 系统安全加固实践,


0x01 主机系统配置

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

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

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

1.主机IP和网关地址设置

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

示例片段:

# Modify the IP/MASK and Gateway
VAR_NETINTERFACE=ens192
VAR_IP=192.168.4.201/24
VAR_GATEWAY=192.168.4.1

cp -a /etc/sysconfig/network-scripts/* /tmp

if [ ! -f /opt/init/ ];then 
  mkdir -vp /opt/init/
sudo tee /opt/init/network.sh <<'EOF'
#!/bin/bash
# @Author: WeiyiGeek
# @Description: Configure CentOS Linux/Stream 8 Server Network
# @E-mail: master@weiyigeek.top
# @Blog: https://www.weiyigeek.top
if [[ $# -lt 4 ]];then
  echo "Usage: $0 NetInterface IP/NETMASK GATEWAY DNS"
  echo "Example: $0 ens192 192.168.12.12/24 192.168.12.1 223.6.6.6"
  echo "@Author: WeiyiGeek"
  echo "@Blog: https://blog.weiyigeek.top"
  exit
fi
echo "Setting Network interface card: ${1}, IP: ${2} , GATEWAY: ${3}"
CURRENT_IP=$(hostname -I | cut -f 1 -d " ")
CURRENT_GATEWAY=$(hostname -I | cut -f 1,2,3,4 -d ".")
CURRENT_FILE=/etc/sysconfig/network-scripts/ifcfg-${1}
CONFIG_IP=${2%%/*}
CONFIG_PREFIX=${2##*/}

echo "Original Network info: IP: ${CURRENT_IP} , GATEWAY: ${CURRENT_GATEWAY}"
echo "Setting Network interface card: ${1}, IP/NETMASK: ${2} , GATEWAY: ${3}, DNS: ${4}"

if [[ -f ${CURRENT_FILE} ]];then
  # 已存在网卡配置文件的情况下
  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=${CONFIG_IP}/" ${CURRENT_FILE}|| echo "IPADDR=${CONFIG_IP}" >> ${CURRENT_FILE}
  egrep -q "^\s*PREFIX=.*$" ${CURRENT_FILE} && sed -ri "s/^\s*PREFIX=.*$/PREFIX=${CONFIG_PREFIX}/" ${CURRENT_FILE}|| echo "PREFIX=${CONFIG_PREFIX}" >> ${CURRENT_FILE}
  egrep -q "^\s*GATEWAY=.*$" ${CURRENT_FILE} && sed -ri "s/^\s*GATEWAY=.*$/GATEWAY=${3}/" ${CURRENT_FILE}|| echo "GATEWAY=${3}" >> ${CURRENT_FILE}
  egrep -q "^\s*DNS1=.*$" ${CURRENT_FILE} && sed -ri "s/^\s*DNS1=.*$/DNS1=${4}/" ${CURRENT_FILE}|| echo "DNS1=${4}" >> ${CURRENT_FILE}
else
  nmcli dev show ${1}
  nmcli conn add connection.id ${1}-staic connection.interface-name ${1} connection.autoconnect yes type Ethernet ifname ${1} ipv4.method manual ipv4.address ${2} ipv4.gateway ${3} ipv4.dns ${4} ipv4.ignore-auto-dns true
fi
sudo nmcli c reload

read -t 5 -p "Heavy load network card, It is recommended to enter N during initialization (Y/N): " VERTIFY
if [[ ${VERIFY:="N"} == "Y" || ${VERIFY:="N"} == "y" ]]; then
  sudo nmcli c up ${1}
  sudo nmcli d reapply ${1}
else
  echo "Please reload the network card manually, run sudo nmcli d reapply ${1}."
fi
EOF

# 权限赋予
sudo chmod +x /opt/init/network.sh
/opt/init/network.sh ${VAR_NETINTERFACE} ${VAR_IP} ${VAR_GATEWAY} ${VAR_DNS_SERVER}

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

描述: 在完成系统主机的IP地址的配置后,便需要为主机配置私有DNS服务器或者公共的DNS服务器,以便解析内部或外部域名。

示例片段:

# Show  Script Execute result (Y/N)
VAR_VERIFY_RESULT=Y
# 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")

cp /etc/systemd/resolved.conf /tmp

local flag
# 此处配置的是阿里云IPV4 DNS与阿里云IPV6 DNS
sed -i -e "s/^#FallbackDNS=.*/FallbackDNS=223.6.6.6 2400:3200::1 2400:3200:baba::1/" -e "s/^#DNSSEC=.*/DNSSEC=allow-downgrade/" -e "s/^#DNSOverTLS=.*/DNSOverTLS=opportunistic/" /etc/systemd/resolved.conf

# 此处配置DNSPod 以及 阿里云 DNS
for dns in ${VAR_DNS_SERVER[@]};do 
  grep -q "${dns}" /etc/systemd/resolved.conf 
  if [ $? != 0 ];then  
    echo -e "\033[32mnameserver ${dns} \033[0m]"
    sed -i "/#DNS=/i DNS=${dns}" /etc/systemd/resolved.conf;
  fi
done

# 重启相关服务
systemctl restart systemd-resolved && systemctl enable systemd-resolved

# 创建解析文件映射
find /etc/resolv.conf -delete
ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

if [[ ${VERIFY:="N"} == "Y" || ${VERIFY:="N"} == "y" ]]; then
  echo "/etc/resolv.conf"
  grep -Ev '^#|^$' /etc/resolv.conf | uniq
  echo "/etc/systemd/resolved.conf"
  grep -Ev '^#|^$' /etc/systemd/resolved.conf | uniq
fi

3.主机系统软件镜像源配置

描述: 使用国外的操作系统,例如CentOS、Ubuntu、Debian、Alpine等操作系统,通常为了加快Linux系统中下载安装软件的速度,我们是需要配置软件镜像源,但此处为了防止小伙伴们更改过该镜像源,我也将各发行版镜像源配置罗列出来。

示例片段:

# 1.获取操作系统发行版
local release
# release=$(grep -e "^VERSION=" /etc/os-release | cut -f 2 -d "=" | tr -d '[:punct:][:space:]')
release=$(cat /etc/redhat-release)
echo -e "\033[32m[${COUNT}] ${release} \033[0m"

# 2.验证CentOS8镜像仓库文件,由于其发行版本有差异此处将Stream版本以及原始版本都进行验证。
# 注意:在2022年1月31日,CentOS 团队从官方镜像中移除CentOS8的所有包,针对过期源设置如下。
# 直接使用yum下载会出现ERROR: Cannot prepare internal mirrorlist: No URLs in mirrorlist
# 故需要设置yum源,否则无法提供下载。
# CentOS 过期源(centos-vault):https://developer.aliyun.com/mirror/centos-vault
# CentOS arm源(centos-altarch):https://developer.aliyun.com/mirror/centos-altarch/
# CentOS Stream源(centos-stream):https://developer.aliyun.com/mirror/centos-stream
# CentOS debuginfo源(centos-debuginfo):https://developer.aliyun.com/mirror/centos-debuginfo/
local repo_name
if [ -f /etc/yum.repos.d/CentOS-Stream-BaseOS.repo ];then
  repo_name="CentOS-Stream-BaseOS.repo"
  echo -e "\033[32m[${COUNT}] 备份 /etc/yum.repos.d/${repo_name} 文件中...... \033[0m"
  # rename '.repo' '.repo.bak' /etc/yum.repos.d/*.repo
  cp /etc/yum.repos.d/${repo_name} ${BACKUPDIR}
  sed -i -e 's|mirrorlist=|#mirrorlist=|g' -e 's|#baseurl=http://mirror.centos.org|baseurl=https://mirrors.aliyun.com|g' /etc/yum.repos.d/CentOS-*
fi

if [ -f /etc/yum.repos.d/CentOS-Base.repo ];then
  repo_name="CentOS-Base.repo"
  echo -e "\033[32m[${COUNT}] 备份 /etc/yum.repos.d/${repo_name} 文件中...... \033[0m"
  rename '.repo' '.repo.bak' /etc/yum.repos.d/*.repo
  cp /etc/yum.repos.d/${repo_name}.bak ${BACKUPDIR}
  # centos8(centos8官方源已下线,建议切换centos-vault源)
  curl -o /etc/yum.repos.d/${repo_name} https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
  # 删除"mirrors.cloud.aliyuncs.com" 及 "mirrors.aliyuncs.com" 字符串所在的行.
  sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/${repo_name}
  # sed -i 's/releasever\//releasever-stream\//g' /etc/yum.repos.d/${repo_name}
fi

# 清理缓存并创建仓库元数据
sudo dnf clean all && sudo yum makecache

# Centos 8 - Epel 阿里云镜像快速配置
yum install -y epel-release 
sed -i -e 's|metalink=https://mirrors.fedoraproject.org|#metalink=https://mirrors.fedoraproject.org|g' -e 's|#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|g'  /etc/yum.repos.d/epel.repo
dnf repolist epel -v

read -t ${VAR_VERIFY_TIMEOUT} -p "Please input, Perform system software update and upgrade. (Y/N) : " VERIFY
if [[ ${VERIFY:="N"} == "Y" || ${VERIFY:="N"} == "y" ]]; then
  sudo dnf update -y && sudo dnf upgrade -y
fi

PS: 在2022年1月31日,CentOS 团队从官方镜像中移除CentOS8的所有包, 所以网上设置CentOS8的镜像源地址有变化,建议通过镜像站获取,例如 阿里云的镜像地址:https://developer.aliyun.com/mirror/centos

完整原文地址:网安等保 | 主机安全之CentOS8服务器配置优化与安全加固基线文档脚本分享

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

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

相关文章

C语言解决“三天打鱼两天晒网”的问题?

中国有句俗语叫“三天打鱼两天晒网”。某人从1990年1月1日起开始“三天打 鱼两天晒网”&#xff0c;问这个人在以后的某一天是“打鱼”还是“晒网”&#xff1f; 根据题意可以将解题过程分为三步&#xff1a; &#xff08;1&#xff09;计算从1990年1月1日开始至指定日…

Vite 是怎么兼容老旧浏览器的?你以为仅仅依靠 Babel?

目录 一、前言 二、那个午后 三、跟webpack构建产物到底哪里不一样&#xff1f; 1. 准备工作 2. 构建工具版本说明 3. 构建工具配置项说明 4. 构建产物 5. Vite 的原生模块化能力 6. “魔鬼藏在细节中” 四、总结 一、前言 对前端开发者来说&#xff0c;Vite 应该不算…

Gurobi解决优化问题

Gurobi1介绍 Gurobi是一种优化软件&#xff0c;用于解决各种数学规划和整数规划问题。它提供了高性能的数学规划求解器&#xff0c;可用于最大化或最小化目标函数的线性规划、混合整数规划、二次规划、约束规划等问题。 Gurobi具有强大的求解能力和高效的算法&#xff0c;可以…

SpringBoot+Durid+dynamic-datasource实现多数据源分布式事务

SpringBootDuriddynamic实现多数据源分布式事务 引言&#xff1a; 在现代的应用程序中&#xff0c;使用多个数据源来处理不同的业务需求已成为常态。然而&#xff0c;处理多数据源之间的分布式事务是一个复杂的问题。本文将介绍如何使用Spring Boot、Druid和dynamic-datasourc…

java娱乐新闻系统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目wap

一、源码特点 java 娱乐新闻系统是一套完善的java web wap信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&…

python---------bs4爬取数据的一种神器

作者前言 欢迎小可爱们前来借鉴我的gtieehttps://gitee.com/qin-laoda 目录 Beautiful Soup的简介 解析⼯具对⽐ BeautifulSoup的基本使⽤ 解析器 搜索⽂档树 CSS常⽤选择器介绍 select和css选择器提取元素 _______________________________________________ 前面我已经…

MongoDB快速实战与基本原理-01

一、MongoDB介绍 1、什么是MongoDB MongoDB是 一个文档数据库&#xff08;以 JSON 为数据模型&#xff09; &#xff0c;由C语言编写&#xff0c;旨在 为 WEB应用提供可扩展的高性能数据存储解决方案。 文档来自于“ JSON Document”&#xff0c;并非我们一般理解的 PDF&am…

Nik Color Efex 滤镜详解(2/5)

交叉冲印 Cross Processing 提供多种选项来处理 C41 - E6&#xff08;用幻灯片显影液处理彩色底片&#xff09;和 E6 - C41&#xff08;用彩色底片显影液处理幻灯片&#xff09;。 方法 Method 选择预设。 强度 Strength 控制滤镜效果程度。 黑暗对比度 Dark Contrasts 使用新…

这本书解开了我心中多年的疑惑,也推荐给你

我对地理一直比较感兴趣&#xff0c;中学时知识掌握的比较扎实&#xff0c;分得清洋流走向、季风信风、世界渔场等等&#xff0c;长期闲置不用已经遗忘的差不多。当时看地理真的是地理&#xff0c;现在看地理&#xff0c;不单单只是地理&#xff0c;还有政治、军事、经济、文化…

港科夜闻|香港科大工学院陈浩教授获选2023年亚洲青年科学家

关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、香港科大工学院陈浩教授获选2023年亚洲青年科学家。亚洲青年科学家基金项目于2022年推出&#xff0c;是一项私人资助的研究奖学金计划&#xff0c;旨在鼓励和支持亚洲区内的青年科学家进行推动变革的创新研究&#xff0c…

springCloudAlibaba组件-Nacos-服务注册与心跳机制(二)

文章目录 nacos服务注册流程图专业术语服务注册执行流程 nacos服务注册流程图 专业术语 1.服务注册&#xff1a;为了将所有的微服务都方便管理&#xff0c;需要将自身的信息&#xff08;ip地址、端口号、服务名称&#xff09;以http请求方式调用nacos注册中心接口都放到nacos服…

有趣的数学 求和符号Σ (sigma)简述

一、简单相加 符号∑&#xff08;sigma&#xff09;通常用于表示多个项的总和。这个符号通常伴随着一个索引&#xff0c;该索引变化以包含总和中必须考虑的所有术语。 例如&#xff0c;݊第一个整数的和可以用以下方式表示&#xff1a; 或者&#xff0c;这两种表示意思都是一样…

【JS】中 ?.、??、??= 的用法和含义

今天分享几个处理空值简单的方法&#xff0c;避免使用三目运算、与或、if else时增加冗余的代&#xff0c;希望对大家有帮助。 可选链(?.) let a; let b a.?age; 含义&#xff1a; 可选链&#xff0c;只有当a存在,同时 a 具有 age 属性的时候,才会把值赋给b,否则就会将 u…

【FPGA入门】第二篇、ISE软件的使用

目录 第一部分、新建工程 第二部分、添加顶层文件 第三部分、添加管脚约束文件 第四部分、生成bit文件 第五部分、连接开发板&#xff0c;下载bit文件 第六部分、总结 第一部分、新建工程 第一步、如果提前建立了工程文件夹&#xff0c;那么这里就需要去掉生成子文件夹的…

字符串--const类型限定符、字符处理函数(修改首字母的大小写)、数值字符串向数值得转换

目录 一、const类型限定符 二、字符处理函数 三、数值字符串向函数值转换 一、const类型限定符 通过采用指针或数组作函数参数&#xff0c;可使调用者获得修改后的数据&#xff0c;但有时我们只希望将数据传到被调函数的内部&#xff0c;而并不希望它们在函数内被修改&…

Spring6 JdbcTemplate和事务

文章目录 1、JdbcTemplate1.1、简介1.2、准备工作1.3、实现CURD①装配 JdbcTemplate②测试增删改功能③查询数据返回对象④查询数据返回list集合⑤查询返回单个的值 2、声明式事务概念2.1、事务基本概念①什么是事务②事务的特性 2.2、编程式事务2.3、声明式事务 3、基于注解的…

AI无处不在,科技改变生活:开放原子全球开源峰会参会感悟

目录 前言 英特尔的开源之路 拥抱人工智能 AIGC的浪潮之巅 全链路AI解决方案 极致性能优化 结束语 前言 2023年开放原子全球开源峰会 目前中国源代码贡献量已达到世界第二&#xff0c;开源软件开发者数量也已突破800万&#xff0c;居全球第二。在众多开发者的关注下&…

2.部署Keystone服务

在OpenStack的框架体系中Keystone的作用类似于一个服务总线&#xff0c;为OpenStack提供身份管理服务&#xff0c;包括用户认证&#xff0c;服务认证和口令认证&#xff0c;其他服务通过Keystone来注册服务的Endpoint&#xff08;端点&#xff09;&#xff0c;针对服务的任何调…

50 最佳实践-安全最佳实践-Libvirt鉴权

文章目录 50 最佳实践-安全最佳实践-Libvirt鉴权50.1 简介50.2 开启libvirt鉴权50.3 管理SASL 50 最佳实践-安全最佳实践-Libvirt鉴权 50.1 简介 用户使用libvirt远程调用功能时&#xff0c;如果不进行任何鉴权校验&#xff0c;所有连接到主机所在网络的第三方程序都可以通过…

一道北大强基题背后的故事(四)——数学之美,美在哪里?

早点关注我&#xff0c;精彩不错过&#xff01; 在前面文章中&#xff0c;我们重点聊了[((1 sqrt(5)) / 2) ^ 12]这道题可能的弯路&#xff0c;出题思路和这道题设计巧妙的结论&#xff0c;相关内容请戳&#xff1a; 一道北大强基题背后的故事&#xff08;三&#xff09;——什…