当前位置: 首页 > news >正文

V10 桌面版、服务器版系统加固

V10 桌面版、服务器版系统加固

一、 文档说明

本文档中涉及的加固方法主要包括:密码策略配置、防火墙规 则配置、禁用高风险服务等。

二、 V10 桌面版系统加固

2.1 密码策略配置

密码策略包括密码老化控制策略和密码复杂度策略。密码老化 控制策略需要配置/etc/login.defs 文件;密码复杂度策略需要配 置/etc/pam.d/common-password 文件,在 V10 系统中还可以通过修 改/etc/security/pwquality.conf 文件对密码复杂度进行限制。

/etc/login.defs 是设置用户帐号限制的文件,文件中的配置 对 root 用户无效,该文件用于设定在用户新创建的时候对应的目 录、日志等创建的位置、权限等。如果/etc/shadow 文件里有相同 的选项,则以/etc/shadow 里的设置为准,/etc/shadow 的配置优先 级高于/etc/login.defs。

/etc/pam.d/common-password 的优先级高于 pwquality.conf

文件,在/etc/pam.d/common-password 中没有限制的参数才会再到

pwquality.conf 文件中进行匹配。

/etc/pam.d/common-password 文件可用于所有已经存在的及未 来创建的帐号的密码复杂度限制,在该文件中用到 pam_pwquality

模块,在 V4-SP4 和 V10 版本中开始使用 pam_pwquality 模块取代

pam_cracklib 模块,V4-SP1、V4-SP2、V4-SP3 系统中支持使用

pam_cracklib 模块,但是需要安装相关软件包。

密码老化控制策略配置:

过滤掉注释和空行后/etc/login.defs 内容如下图:

/etc/login.defs 文件可以对新创建的用户的邮件目录、日志 启停、终端权限、系统掩码、密码老化控制、UID 和 GID 的最值等 模块进行限制,本文中只关注密码老化控制部分,在密码老化控制 部分有 3 个常用参数可以进行配置,分别是:

PASS_MAX_DAYS #密码最长使用天数

PASS_MIN_DAYS #密码最小使用天数

PASS_WARN_AGE #密码过期时提前告警天数

这些参数在 V10 桌面系统版中是默认参数值如下:

加固现场如果需要修改相关参数直接将参数值进行修改即可, 参数值是 0 时表示不限制。例如要求“最长使用天数 30 天,最小使 用天数 15 天,过期前 7 天进行提示”可以将参数修改为:

密码复杂度策略配置:

过滤掉注释和空行后/etc/pam.d/common-password 文件内容默 认如下:

/etc/pam.d/common-password 文件中只设置了 retry=3 这个参 数,意思是输入密码时可以尝试 3 次,超过 3 次将中止此次密码输 入,其他参数将全部从 pwquality.conf 文件中读取。

pwquality.conf 文件中所有内容默认注释,注释的参数值是默 认值;在/etc/pam.d/common-password 文件中未进行相关参数的设 置时,pwquality.conf 文件中以键值对方式存在的参数默认生效。 下面看一下 pwquality.conf 文件中都有哪些参数:

对上图中的参数进行说明:

# difok = 0 #新密码与旧密码至少多少个字符数不同,此参 数生效需要安装 libpam-cracklib 软件包,并且对使用 root 权限修 改密码时无效。

# minlen = 6 #密码最小长度,默认值最少 6 位,参数值小于 6 时使用默认值

# dcredit = 0 #数字字符个数,默认不校验,至少 1 个数字字 符参数用“-1”表示

# ucredit = 0 #大写字母个数,默认不校验,至少一个大写字 符参数用“-1”表示

# lcredit = 0 #小写字母个数,默认不校验,至少一个小写字 符参数用“-1”表示

# ocredit = 0 #特殊字符个数,默认不校验,至少一个特殊字 符参数用“-1”表示

# minclass = 2 #在数字、大写字母、小写字母、特殊字符中至 少 2 种进行组合

# maxrepeat = 0 #最多重复字符个数

# maxclassrepeat = 0 #新密码中同一类允许的最大连续字符数 个数

# gecoscheck = 0 #是否检查用户的 passwd 条目 GECOS 字符串 中的单词

# dictcheck = 0 #密码校验,开启后新密码不能在 cracklib 字 典中出现

# usercheck = 0 #是否校验密码中以某种形式包含用户名

# enforcing = 1 #由 PAM 模块和其他模块强制执行校验

# dictpath = #cracklib 字典存储路径,默认没有指定

# retry = 1 #密码输入时尝试次数 除了上述以键值对方式存在的参数还要一些其他参数: # enforce_for_root #对 root 用户密码强制检查

# local_users_only #跳过校验/etc/passwd 中不存在的用户的 密码

# palindrome #检查新密码是否为回文

# no_similar_check #是否检查新密码与旧密码相同,对使用

root 权限修改密码无效 上面的 4 个参数在安全加固时一般不用,而以键值对方式存在的参 数不仅可以在 pwquality.conf 文件中直接更改参数值还可以将对应 参数写到/etc/pam.d/common-password 文件中 pam_pwquality.so

模块的后面,多个参数使用空格分开即可。pwquality.conf 文件中 参数值是 0 时代表不开启或不限制。 以加固现场要求密码长度最少 8 位、最少 3 种字符自由组合、 不允许密码中包含用户名、最多尝试输入 3 次密码为例子修改

/etc/pam.d/common-password 文件:

修改完参数后修改密码验证参数是否生效:

在修改密码时对不满足复杂度要求的密码成功进行限制。 也可以将“minlen=8 minclass=3 usercheck=1 retry=3”四个 参数在 pwquality.conf 文件中进行修改以满足例子中的需求:

修改完参数后修改密码验证参数是否生效:

在修改密码时对不满足复杂度要求的密码成功进行限制。

提示: 在现场对密码复杂度加固后,在允许的情况下建议修改一次root 密码,以防止后续密码不满足复杂度导致无法正常使用的情 况。

2.2 防火墙规则配置

防火墙配置主要是根据现场要求配置防火墙规则对源 IP、源端 口、目的 IP、目的端口、协议五元组中的信息进行限制,在 V10 桌 面系统中默认开启 ufw 防火墙服务,并且可以使用 ufw 命令进行防 火墙规则配置。具体的 ufw 命令配置防火墙的方法可以参考文档

《Kylin_UFW 防火墙操作文档-M20210823.pdf》。

2.3 禁用高风险服务

禁用高风险服务是指停止系统中存在风险的服务并且关闭相关 服务开机自启达到禁止高风险服务对外提供服务的目的。例如禁用

SSH 服务、禁用 SAMBA 服务、禁用 DNS 服务等,具体要禁用什么服 务可以根据用户要求决定。以禁用 SSH 服务为例:

查看 SSH 服务状态:systemctl status ssh

停止 SSH 服务:systemctl stop ssh

关闭 SSH 服务开机自启:systemctl disable ssh

禁用服务的方法是通用的,只需要确定好禁用服务的名称按照 上边的三个步骤进行禁用即可。

三、 V10 服务器版系统加固

3.1 密码策略配置

V10 服务器版密码策略配置也分为密码老化控制策略和密码复 杂度策略,密码老化控制策略修改/etc/login.defs,密码复杂度策 略修改/etc/pam.d/system-auth 或者 pwquality.conf 文件,文件 所在路径是/etc/security/下。

V10 桌面版与 V10 服务器版修改密码策略的方法区别不大,主 要就是文件名称和文件默认内容存在差异,但是修改方法基本一 致,所以 V10 服务器版中具体修改方法不再赘述,只将 V10 服务器 版系统有差异的地方进行说明。

V10 服务器版的/etc/login.defs 文件中与密码老化相关的参数 默认设置了四个:

默认参数比 V10 桌面系统多了一个 PASS_MIN_LEN, 代表密码最小长 度(V10 桌面系统中也可以加限制密码长度的参数)而在 V10 服务 器版的 pwquality.conf 中也限制了密码的最小长度,在login.defs 和 pwquality.conf 文件同时限制了密码最小长度时是 以 pwquality.conf 文件中的为准,也就是 pwquality.conf 的优先 级高于 login.defs 的优先级。在 V10 桌面和 V10 服务器系统中密码 复杂度的优先级顺序是:/etc/pam.d/目录下的配置文件 >

pwquality.conf 文件 > login.defs 文件。 综上可知 login.defs 文件中的 PASS_MIN_LEN 参数并不会生 效,有些漏扫软件会根据配置文件中某些参数值是否存在来判断是 否符合安全标准,所以如果遇到漏扫软件误报没有 PASS_MIN_LEN 等 参数时可以手动将参数添加到配置文件中。

V10 服务器中 pwquality.conf 文件中的参数与 V10 桌面系统中 的参数含义同,/etc/pam.d/system-auth 文件与 V10 桌面系统/etc/pam.d/common-password 文件配置参数的方法相同,可以参考上文在 V10 桌面系统中的配置方法,此处不再赘述。还是以要求 “密码最少 8 位、可重试 3 次、最少 3 种字符组合、不允许包含用 户名”为例修改配置文件。先看一下 pam_pwquality.so 默认配置的 参数:

按照例子中的要求进行修改:

验证配置是否生效:

可以成功拦截不满足密码复杂度的密码说明配置生效。

提示: 在现场对密码复杂度加固后,在允许的情况下建议修改一次root 密码,以防止后续密码不满足复杂度导致无法正常使用的情 况。

3.2 防火墙规则配置

在 V10 服务器版系统中系统默认启动 firewalld 防火墙服务, 如果没有特殊要求可以直接iptables 命令进行防火墙规则的配 置,iptables 命令的使用方法可以参考文档《Kylin_Iptables 防火 墙配置方法-M20210820.pdf》。

3.3 禁用高风险服务

禁用服务方法参考 V10 桌面版或参考附录 1 中的服务启停命 令。

四、 其他

安全加固时除了上文说的密码策略加固、防火墙加固、禁用高 风险服务加固还有一些普通的配置加固,可以参考下面的命令进行 加固:

SSH 服务不允许 root 用户远程登陆:(桌面、服务器通用)

sed -i.bak 's/^PermitRootLogin yes$/PermitRootLogin no/' /etc/ssh/sshd_config

SSH 服务黑、白名单:(V10 桌面版):

SSH 服务黑、白名单:(V10 服务器版)

在/etc/ssh/sshd_config 文件中加入下图红框中的信息,代表 禁止来自 192.168.253.218 地址 root 用户登陆,修改配置后需要重 启 SSH 服务。用户名和 IP 地址可以用*代表所有,但是格式一定要 符合:用户名@IP 地址,限制多个使用空格分隔。

白名单使用 AllowUsers 参数,黑名单使用 DenyUsers 参数。AllowUsers 优先级高于 DenyUsers。

关键目录权限需要设置到最小可用:(桌面、服务器通用)

上面的命令只是示例,具体权限要求根据现场要求设定。

系统默认掩码值配置:

echo "umask 077" >> /etc/bash.bashrc (仅桌面系统可用)

echo "umask 077" >> /etc/profile (桌面、服务器系统通用)

具体掩码值根据现场要求设定即可。

系统默认掩码值配置:(桌面、服务器通用)

echo "export TMOUT=600" >> /etc/profile

禁用 ipv4 转发功能:

方法 1: sysctl -w net.ipv4.ip_forward="0"

方法 2: echo 0 > /proc/sys/net/ipv4/ip_forward

如果需要开机默认设置该参数可以将命令写到/etc/rc.local文件中。

由于每个加固点位的要求不尽相同,本文档不再一一例举,可 以参考附录 2 中的 V10 加固脚本进行加固验证。

附录 1: 服务启停相关命令

1.服务状态查看:systemctl status 服务名

2.停止服务:systemctl stop 服务名

3.启动服务:systemctl start 服务名

4.重启服务:systemctl restart 服务名

5.查看服务是否开机启动:systemctl is-enabled 服务名

6.关闭服务开机启动:systemctl disable 服务名

7.启用服务开机启动:systemctl enable 服务名

相关文章:

V10 桌面版、服务器版系统加固

V10 桌面版、服务器版系统加固 一、 文档说明 本文档中涉及的加固方法主要包括:密码策略配置、防火墙规 则配置、禁用高风险服务等。 二、 V10 桌面版系统加固 2.1 密码策略配置 密码策略包括密码老化控制策略和密码复杂度策略。密码老化 控制策略需要配置/etc…...

mtgsig1.2简单分析

{"a1": "1.2", # 加密版本"a2": new Date().valueOf() - serverTimeDiff, # 加密过程中用到的时间戳. 这次服主变坏了, 时间戳需要减去一个 serverTimeDiff(见a3) ! "a3": "这是把xxx信息加密后提交给服务器, 服主…...

场景交互与场景漫游-osgGA库(5)

osgGA库 osgGA库是OSG的一个附加的工具库,它为用户提供各种事件处理及操作处理。通过osgGA库读者可以像控制Windows窗口一样来处理各种事件 osgGA的事件处理器主要由两大部分组成,即事件适配器和动作适配器。osgGA:GUIEventHandler类主要提供了窗口系统的…...

Leetcode -1

Leetcode Leetcode -521.最长特殊序列Leetcode - 541.反转字符串Ⅱ Leetcode -521.最长特殊序列 题目:给你两个字符串 a 和 b,请返回 这两个字符串中 最长的特殊序列的长度。如果不存在,则返回 - 1 。 「最长特殊序列」 定义如下&#xff1…...

系列四、JVM的内存结构【本地接口(Native Interface)】

一、组成 本地接口由本地方法栈(Native Method Stack)、本地方法接口(Native Interface)、本地方法库组成。 二、本地接口的作用 本地接口的作用是融合不同的编程语言为Java所用,它的初衷是融合C/C程序,Jav…...

大型语言模型中的幻觉研究综述:原理、分类、挑战和未决问题11.15+11.16+11.17

大型语言模型中的幻觉研究综述:原理、分类、挑战和未决问题11.15 摘要1 引言2 定义2.1 LLM2.3 大语言模型中的幻觉 3 幻觉的原因3.1 数据的幻觉3.1.1 有缺陷的数据源3.1.2 较差的数据利用率3.1.3 摘要 3.2 来自训练的幻觉3.2.1训练前的幻觉3.2.2来自对齐的幻觉3.2.3…...

redis悲观锁和乐观锁

redis悲观锁 Redis加锁命令分有INCR、SETNX、SET 一、INCR锁 key不存在时,key的值会先被初始化为0,其它用户在执行INCR操作进行加一, 如果返回的数大于1,说明这个锁正在被使用当中,通常用在同时只能有一个人可以操作某…...

前端项目练习,首页退出登录功能,清除token --点击事件 quitFn

<el-menu-item index"2" click"quitFn"><i class"el-icon-switch-button">退出</i> </el-menu-item>quitFn() {// 为了让用户体验更好&#xff0c;来个确认提示框this.$confirm("确认退出登录吗&#xff1f;退出登…...

nodejs+vue杰和牧场管理系统的设计与实现-微信小程序-安卓-python-PHP-计算机毕业设计

系统涉及的对象是奶牛。 系统使用员工有管理员和普通员工。 管理员有修改的权限&#xff0c;普通员工没有。系统包含新闻功能&#xff0c;最好是有个后台管理&#xff0c;在后台输入新闻标题和内容&#xff0c;插入图片&#xff0c;在网页上就可以展示。最好再有个轮播图。 新闻…...

基于STM32的蓝牙低功耗(BLE)通信方案设计与实现

蓝牙低功耗&#xff08;Bluetooth Low Energy&#xff0c;简称BLE&#xff09;是一种能够在低功耗环境下实现无线通信的技术。在物联网应用中&#xff0c;BLE被广泛应用于传感器数据采集、健康监测设备、智能家居等领域。本文将基于STM32微控制器&#xff0c;设计并实现一个简单…...

qt 重载信号,使用““方式进行connect()调用解决方案

问题 在Qt中&#xff0c;重载的信号默认是无法使用&这种方式调用的。 因为&只能绑定到一个具体的信号&#xff0c;而重载的信号名称相同&#xff0c;编译器无法确定要绑定哪一个信号。 解决方案 如果非要使用&绑定重载的信号&#xff0c;可以使用函数指针进行转…...

阿里云+宝塔部署项目(Java+React)

阿里云服务器宝塔面板部署项目&#xff08;SpringBoot React&#xff09; 1. 上传所需的文件到服务器 比如jdk包和java项目的jar&#xff1a;这里以上传jar 为例&#xff0c;创建文件夹&#xff0c;上传文件&#xff1b; 在创建的文件夹下上传jar包 上传jdk 2. 配置jdk环境 3.…...

Linux_系统信息_uname查看内核版本、内核建立时间、处理器类型、顺便得到操作系统位数等

1、uname --help 使用uname --help查看uname命令的帮助信息 2、uname -a 通过上面的help就知道-a选项显示全部内容时的含义了。 内核名是Linux主机名是lubancat&#xff0c;如果想看主机名可以使用命令hostname&#xff1b;内核版本是Linux 4.19.232&#xff0c;建立时间为2…...

screen中conda激活环境后登录jupyter notebook导入包提示找不到,但是在命令行中就可以导入包

问题&#xff1a;screen中conda激活环境后登录jupyter notebook导入包提示找不到&#xff0c;但是在命令行中就可以导入包 解决方法&#xff1a; screen可能有bug&#xff0c;当在screen中conda激活环境后登录jupyter notebook出现问题&#xff0c;import torch提示没有安装好…...

基于SSM的中小型企业财务管理设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…...

工厂模式之简单工厂模式(常用)

工厂模式的分类 简单工厂模式工厂方法模式抽象工厂模式 简单工厂模式 简单工厂模式又称为静态工厂模式&#xff0c;实质是由一个工厂类根据传入的参数&#xff0c;动态决定应该创建哪一个产品类&#xff08;这些产品类继承自一个父类或接口&#xff09;的实例。简单工厂模式的…...

Kafka入门教程与详解(一)

Kafka入门教程与详解&#xff08;一&#xff09; 一、Kafka入门教程 1.1 消息队列&#xff08;Message Queue) Message Queue消息传送系统提供传送服务。消息传送依赖于大量支持组件&#xff0c;这些组件负责处理连接服务、消息的路由和传送、持久性、安全性以及日志记录。消…...

GoFrame学习随便记1

用Yii1.1中典型的 blog 项目作为例子来学习Web应用应该不错。数据库 sqlite3&#xff0c;windows下可以下载 sqlite-tools-win-x64-*** &#xff08;https://www.sqlite.org/download.htm&#xff09;&#xff0c;把下载的几个exe放到 %GOPATH%\bin 目录下&#xff0c;而该目…...

最新自动定位版本付费进群系统源码

更新内容&#xff1a; 1.在网站首页增加了付款轮播功能。 2.新增了城市定位功能&#xff0c;方便用户查找所在城市的相关信息。 3.对域名库及支付设置进行了更新和优化。 4.增加了一种图模板设置模式&#xff0c;简化了后台模板设置流程。 5.此外还进行了前后台的其他优化…...

freeswitch的一个性能问题

概述 freeswitch是一款简单好用的VOIP开源软交换平台。 在fs的使用过程中&#xff0c;会遇到各种各样的问题&#xff0c;各种问题中&#xff0c;性能问题是最头疼的。 最近在测试某些场景的时候&#xff0c;压测会造成fs的内存占用持续升高&#xff0c;并在达到某个临界点的…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

C# 表达式和运算符(求值顺序)

求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如&#xff0c;已知表达式3*52&#xff0c;依照子表达式的求值顺序&#xff0c;有两种可能的结果&#xff0c;如图9-3所示。 如果乘法先执行&#xff0c;结果是17。如果5…...

在 Spring Boot 中使用 JSP

jsp&#xff1f; 好多年没用了。重新整一下 还费了点时间&#xff0c;记录一下。 项目结构&#xff1a; pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...