等保2.0服务器测评-身份鉴别测评方法以及配置整改-01

2024-03-07 09:48

本文主要是介绍等保2.0服务器测评-身份鉴别测评方法以及配置整改-01,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

等保2.0服务器测评-身份鉴别

声明:

测评要求参考《信息安全技术 网络安全等级保护测评要求GB/T 28448一2019》
测评方法以及配置整改为个人工总结,仅供参考不适用全部操作系统,有不合理的地方大家多多指出,欢迎交流。

测评项

 a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换;b)应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施; c)当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听; d)应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现。

测评项a)

a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换;

测评方法和预期:
1)用户登录需输入用户名和密码;
2)用户具备唯一性;(即用户名或用户ID不能重复,这个不用多说,windows自动实现,默认符合。)
3)尝试使用空口令登录,未成功;
4)结果如下:
a)复杂性要求已启用;
b)密码长度最小值:长度最小值至少为8位;
c)密码长度最长使用期限:不为0;
d)密码最短使用期限:不为0;
e)强制密码历史:至少记住5个密码以上。

我这里以windows2016服务器为测试案例,windows服务器基本上是大同小异。
测评方法:

1、windows服务器

上机检查:
1、用户登录需输入用户名和密码
运行netplwiz
在这里插入图片描述
2、用户ID不能重复,这个不用多说,windows自动实现,默认符合。
3、检查密码复杂度要求是否启用。
输入gpedit.msc或secpol.msc,进入
计算机配置—Windows设置—安全设置—帐户策略—密码策略
在这里插入图片描述
具体密码复杂度规则说明可以双击“密码必须符合复杂性”要求,查看说明
在这里插入图片描述
综上 windows服务器启用口令复杂度要求并配置口令长度、更换周期、强制密码历史就可以了。

2、linux服务器

上机检查:
以CentOS为例

1)、用户登录需输入用户名和密码

查看是否存在空口令用户
在/etc/passwd中用户的密码是被保护的状态,即使用了*号来隐藏。而实际的密码内容是加密后保存在/etc/shadow文件中了,我们确认是否存在空口令的用户就确认该文件中密码对应字段的长度是否为0,
如果为0则证明该用户密码为空。
具体看下表

uangianlap:$6$oX3cr.x9IJD6Qx1J$17EXp1cHc5cJWECPz36DiUUFY9yzcZdN48AUFAgu6TGT7gpcvuTD/cfatPZCdeGCHUd7BWsMDlBRB2J89N8su1:17017:5:180:7:30:23590:可以看到被“:”分隔出总共有9个字段,下面简要说说这些字段的含义。(1)uangianlap: 系统用户名(必须在系统中存在)(2)$6$oX3c...: 加密后的用户密码
PS:如果为空,则对应用户没有口令,登录时不需要口令;
星号代表帐号被锁定;
双叹号表示这个密码已经过期了;
$6$开头的,表明是用SHA-512加密;
$1$表明是用MD5加密;
$5$ 是用 SHA-256加密;
$2a$ 和 $2y$表示Blowfish算法(3)17017      :最近一次修改密码的时间。即密码的生日。这个数字代表天数(即距1970年1月1日的天数)(4)5              :密码的最短“寿命”(单位为天),这里定了5天,即说明这个用户密码至少得“存活“5天吧?换句话说也就是这5天内不再允许你修改自己的密码了。(5)180       :密码的最长“寿命” (单位为天),即180天内密码都是有效的,但180天之后用户必须更新其密码。(6)7           :密码“寿命”到时提前几天警告用户。这里的7天表示180天的寿命前7天即第173天开始给用户警告。(7)30         :我这里把这个理解为密码失效后的一个缓冲时间。即180天过后的30天之内,密码还是有效的(前提是用户没有拿出),但是若用户要重新登录的话,则要求用户设置新密码了。数字0表示立即失效,如果是-1则代表密码永远不会失效。(8)23590   :帐号失效日期(单位为天,距1970年1月1日的天数)。这个日期后用户帐号将失效,而不会理会密码的问题。(9)             :第9个字段,默认留空,暂时没有意义。是系统保留的一个字段,以备后用。

2)、检查密码复杂度要求以及配置,centOS为例。

2.1) 配置理解

系统对密码的控制是有两部分(我知道的)组成:
  1 cracklib
  2 login.defs
  声明:login.defs主要是控制密码的有效期。对密码进行时间管理。此处不细谈。
  login.defs --shadow password suite configuration
  pam_cracklib.so或pam_pwquality.so才是控制密码复杂度的关键文件。

首先明白login.defs、system-auth和shadow文件的关联。
一、login.defs
login.defs是设置新用户帐号限制的文件,在这里我们可配置密码的最大过期天数,密码的最大长度约束等内容(该文件里的配置对root用户无效)。
如果/etc/shadow文件中配置参数为账户既有的配置,如有相同功能的字段配置,则以/etc/shadow里既有的设置为准。
而system-auth中配置的是对Linux登录PAM验证机制,分阶段逐行匹配配置信息,执行认证成功或失败的操作。
检查/etc/login.defs文件,重点关注PASS_MAX_DAYS口令使用最长天数应合理。

2.2) login.defs参考配置策略:

(1)修改/etc/login.defs文件
PASS_MAX_DAYS   90  #密码最长过期天数
PASS_MIN_DAYS   80  #密码最小过期天数
PASS_MIN_LEN    10  #密码最小长度
PASS_WARN_AGE   7   #密码过期警告天数

二、/etc/pam.d/system-auth


[root@hecs-357431 pam.d]# cat  system-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        required      pam_faildelay.so delay=2000000
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        required      pam_deny.soaccount     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account     required      pam_permit.sopassword    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    required      pam_deny.sosession     optional      pam_keyinit.so revoke
session     required      pam_limits.so
-session     optional      pam_systemd.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so

在配置前了解system-auth文件的结构:

auth 组件:认证接口,要求并验证密码。

account组件:检测是否允许访问,检测账户是否过期或在末端时间内能否登陆。

password组件:设置并验证密码。

session组件:配置和管理用户 session。

当前组件对配置的限制程度:

required:该模块必须success才能进行继续。即使失败,用户也不会立刻获知,直到所有相关模块完成。

requisite:该模块必须success才能使认证继续进行。

suffifient:如果失败则忽略。

optinal:忽略结果,不管是否失败。

密码复杂度要求策略需在password组件策略下修改pam_pwquality.so或pam_cracklib.so所在行。

2.3) /etc/pam.d/system-auth参考配置策略

password requisite pam_cracklib.so retry=5 difok=3 minlen=8 dcredit=-1 
(此处有个回车请删除)
ucredit=-1 lcredit=-1 ocredit=-1 dictpath=/usr/share/cracklib/pw_dict

释义:修改密码可尝试5次,difok为与旧口令不同的字符个数3个,minlen为新口令最短长度8,dcredit为数字最少1位,ucredit为大写字母最少1位,lcredit为小写字母最少1位,ocredit为特殊字符最少1位(credit配置中负数为最少有X位,正数为最多有X位),启用弱口令检查字典pw_dict。

注意:以上设置对root用户无效。修改后你可能会立即测试,会发现以上设置无效。你可以新建账户,并进入该账户(即对新建用户生效)效果如下:。
在这里插入图片描述

#删除test用户
userdel -rf test
cat /etc/pam.d/system-auth

2.4) 参考不重复历史密码

Debian / Ubuntu:修改文件 # vi /etc/pam.d/common-password
CentOS / RHEL / RedHat / Fedora 修改文件 # vi /etc/pam.d/system-auth在 password sufficient pam_unix.so use_authtok md5 shadow remember=10
在相应行的后面添加 remember=10,而不是添加一行!SUSE比较恶心,找了半天才找到。man pw_check
在/etc/security/pam_pwcheck文件中添加remember=5
passwd:    nullok use_cracklib remember=5

2.5) 综合密码复杂度配置检查:


#密码复杂度
cat  /etc/pam.d/system-auth#更换周期
cat /etc/login.defs
无空口令用户
唯一id一般默认符合,

[root@hecs-357431 pam.d]# cat  system-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        required      pam_faildelay.so delay=2000000
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        required      pam_deny.soaccount     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account     required      pam_permit.sopassword    requisite     pam_pwquality.so password requisite pam_cracklib.so retry=5 difok=3 minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1
password    sufficient    pam_unix.so sha512 shadow remember=10  nullok try_first_pass use_authtok
password    required      pam_deny.sosession     optional      pam_keyinit.so revoke
session     required      pam_limits.so
-session     optional      pam_systemd.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so

今天就先到这里,欢迎关注公众号
在这里插入图片描述

这篇关于等保2.0服务器测评-身份鉴别测评方法以及配置整改-01的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/783107

相关文章

Debian系和Redhat系防火墙配置方式

《Debian系和Redhat系防火墙配置方式》文章对比了Debian系UFW和Redhat系Firewalld防火墙的安装、启用禁用、端口管理、规则查看及注意事项,强调SSH端口需开放、规则持久化,... 目录Debian系UFW防火墙1. 安装2. 启用与禁用3. 基本命令4. 注意事项5. 示例配置R

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

PyCharm中配置PyQt的实现步骤

《PyCharm中配置PyQt的实现步骤》PyCharm是JetBrains推出的一款强大的PythonIDE,结合PyQt可以进行pythion高效开发桌面GUI应用程序,本文就来介绍一下PyCha... 目录1. 安装China编程PyQt1.PyQt 核心组件2. 基础 PyQt 应用程序结构3. 使用 Q

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

Java Thread中join方法使用举例详解

《JavaThread中join方法使用举例详解》JavaThread中join()方法主要是让调用改方法的thread完成run方法里面的东西后,在执行join()方法后面的代码,这篇文章主要介绍... 目录前言1.join()方法的定义和作用2.join()方法的三个重载版本3.join()方法的工作原

Redis MCP 安装与配置指南

《RedisMCP安装与配置指南》本文将详细介绍如何安装和配置RedisMCP,包括快速启动、源码安装、Docker安装、以及相关的配置参数和环境变量设置,感兴趣的朋友一起看看吧... 目录一、Redis MCP 简介二、安www.chinasem.cn装 Redis MCP 服务2.1 快速启动(推荐)2.

Spring Boot配置和使用两个数据源的实现步骤

《SpringBoot配置和使用两个数据源的实现步骤》本文详解SpringBoot配置双数据源方法,包含配置文件设置、Bean创建、事务管理器配置及@Qualifier注解使用,强调主数据源标记、代... 目录Spring Boot配置和使用两个数据源技术背景实现步骤1. 配置数据源信息2. 创建数据源Be

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

Spring Boot从main方法到内嵌Tomcat的全过程(自动化流程)

《SpringBoot从main方法到内嵌Tomcat的全过程(自动化流程)》SpringBoot启动始于main方法,创建SpringApplication实例,初始化上下文,准备环境,刷新容器并... 目录1. 入口:main方法2. SpringApplication初始化2.1 构造阶段3. 运行阶