Cenos安全配置之身份识别相关

本文涉及的产品
运维安全中心(堡垒机),免费版 6个月
运维安全中心(堡垒机),企业双擎版 50资产 7天
简介: Cenos安全配置之身份识别相关

640.jpg


一、身份识别:


640.png


1.默认账户安全:


删除或锁定不用需要的默认账户:

执行命令:

#cat /etc/passwd#/cat /etc/shadow

查看账户、口令文件、与系统管理员确认不必要的账户。对于一些保留的系统伪账户如:bin,sys,adm,uucp,lp,nuucp,hpdb,www,daemon等可根据需求锁定登陆

加固方法:

  使用命令passwd -l <用户名>,锁定不必要的账号。

  使用命令passwd -u <用户名>,解锁需要恢复的账号

  使用命令userdel  -r <用户名>,删除不用的默认账号


修改高危用户默认shell变量:

打开 /etc/passwd 文件, 你将看到所有用户及其使用的 Shell, 会有很多行类似这样的内容, 每行是一个用户.sr:x:1000:1000:ghw:/home/ghw:/bin/sh这里只需要件 /bin/sh 改成 /bin/bash 即可.sr:x:1000:1000:ghw:/home/ghw:/bin/bash


2.账号及权限分配:


不同用途设置不同权限

Linux中用户的分类

所有者(u) 同组用户(g) 其他人(o)

linu中文件权限

读(r) 写(w) 执行(x) 没有权限(-)

文件权限详情


-rw-r--r--. 2 root root   11 Jun  3 01:32 bb.text
drwxr-xr-x. 2 root root 4096 Jun  2 07:46 b
第1位(d 或者 -):d代表这是个目录文件,- 则表示这是个普通文件,还有不常碰到的有p(pipe管道文件)、s(socket套接字文件)、 l(link连接文件)、 c(char字符文件)、b(block块文件)
2~4位(代表u=user):所有者权限  
5~7位(代表g=group):同组用户权限
8~11位(o=other):其他人权限
2:该文件的链接个数,要和ln  ln -s source target
root root:文件所属者  文件所属组
11:文件大小
(Jun  3 01:32)最后修改时间


修改权限:


格式:chmod [添加或者删除权限] file


640.png


给文件添加或删除执行权限

方式一:通过字符修改

  chmod o+w test.txt

  添加权限:+

  删除权限:-

 chmod o+w,g+w test.txt:给其他人和同组用户写权限

  chmod a+w test.txt:给所有用户

方式二:3位8进制表示

   rw-r--r--:(110 100 100)2  == 644

   chmod 644 test.txt

   rwxrwxrwx:(111 111 111)2  == 777

   chmod 777 test.txt

修改文件所属用户和所属组:

chown username:groupName file

640.png

chown :groupName file

640.png

chown username: file

640.png


-R:递归修改所属用户和所属组


3.账号登陆限制


限制登陆次数,锁定账户,主要为了防止暴力破解用户密码


1.修改PAM配置


限制终端方式登录:

vim vim /etc/pam.d/login
#%PAM-1.0
#添加如下一行
auth required pam_tally2.so deny=3 unlock_time=100 even_deny_root root_unlock_time=300
deny:               设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户
unlock_time:        设定普通用户锁定后,多少时间后解锁,单位是秒
root_unlock_time:   设定root用户锁定后,多少时间后解锁,单位是秒

限制ssh方式登录:

vim /etc/pam.d/sshd
#%PAM-1.0
#添加如下一行
auth required pam_tally2.so deny=3 unlock_time=100 even_deny_root root_unlock_time=300
注:
由于openssh版本区别,有些版本在/etc/pam.d/sshd添加是不生效的,需要修改ssh配置文件开启PAM模块
vim /etc/ssh/sshd_config
#修改并取消注释
UsePAM yes
重启服务
systemctl restart sshd.service
#登录成功后重置次数
account    required      pam_tally2.so

2.PAM命令扩展


查看用户登录失败的次数:

pam_tally2 -u user
解锁aihuidi用户
pam_tally2 -r -u user

4.空口令账户设置


禁止SSH空密码用户登录


加固方法:


编辑文件/etc/ssh/sshd_config,将PermitEmptyPasswords配置为no:


640.png

5.删除除root外UID为0的账户

理论依据:

   任何UID为0的帐户都具有系统上的超级用户特权,只有root账号的uid才能为0

配置要求:

   除root之外的其他账号UID不能为0

检查步骤

执行以下命令查看系统中uid为0的账号

#/bin/cat /etc/passwd | /bin/awk -F: '($3 == 0) { print $1 }' 

640.png

合规标准


除root外无其他uid为0的账号则合规,否则不合规。  


加固方案


1、执行备份

#cp –p /etc/passwd /etc/passwd.bak 
#cp –p /etc/shadow /etc/shadow.bak 
#cp –p /etc/group /etc/group.bak 

2、删除除root外其他uid为0的账号【删除之前应确保账号未被其他业务使用】

#userdel username


5.账户口令复杂度及定期更换

1). 禁止使用旧密码


vi /etc/pam.d/system-auth找到同时有 “password” 和 “pam_unix.so” 字段并且附加有 “remember=5” 的那行,它表示禁止使用最近用过的5个密码(己使用过的密码会被保存在 /etc/security/opasswd 下面)。

password    sufficient    pam_unix.so sha512 shadow nullok try_firstpass  use_authtok remember=5

640.png

2.设置密码最短长度


vi /etc/pam.d/system-auth

找到同时有 “password” 和 “pam_cracklib.so” 字段并且附加有 “minlen=10” 的那行,它表示最小密码长度为(10 - 类型数量)。这里的 “类型数量” 表示不同的字符类型数量。PAM 提供4种类型符号作为密码(大写字母、小写字母、数字和标点符号)。如果你的密码同时用上了这4种类型的符号,并且你的 minlen 设为10,那么最短的密码长度允许是6个字符。

password requisite pam_cracklib.so retry=3 difok=3 minlen=10

3.设置密码复杂度

vi /etc/pam.d/system-auth
找到同时有 “password” 和 “pam_cracklib.so” 那行.
#  retry  允许重试3次
# difok=N:新密码必需与旧密码不同的位数   difok=3 新密码必须与旧密码有3位不同
# minlen  最小位数
# ucredit  大写字母位数
# lcredit  小写字母位数
# dcredit=N: N >= 0:密码中最多有多少个数字;N < 0密码中最少有多少个数字.   dcredit=-1  密码中最少有1个数字
# ocredit=N:特殊字母的个数    ocredit=-1 密码中至少有1个特殊字符
# 它表示密码必须至少包含一个大写字母(ucredit),两个小写字母(lcredit),一个数字(dcredit)和一个标点符号(ocredit)。
password requisite pam_cracklib.so retry=3 difok=3 minlen=10 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1

centos7如何继续使用pam_cracklib模块检验密码复杂度


   由于Centos7默认取消了对pam_cracklib模块的使用,配置文件/etc/pam.d/system-auth中没有pam_cracklib.so相关的条目。

   有同学直接在/etc/pam.d/system-auth文件末尾添加“password    requisite     pam_cracklib.so try_first_pass retry=3 type=  minlen=16 ucredit=-1 lcredit=-1 ocredit=-1 dcredit=-1” ,然后发现实际上密码复杂度策略并没有生效。

   经测试是因为位置不对,把上面的语句添加在“pam_pwquality.so”所在行的前面,即可使策略生效。如下所示:


640.png

4.设置密码过期期限

vi /etc/login.defs
PASSMAXDAYS    99999   #密码的最大有效期, 99999:永久有期
PASSMINDAYS      0          #是否可修改密码,0可修改,非0修改密码后下一次修改需间隔多少天后可修改
PASS_MIN_LEN     5          #密码最小长度,使用pam_cracklib module,该参数不再有效 
PASSWARNAGE    7          #密码失效前多少天在用户登录时通知用户修改密码

5.linux 禁止普通用户su到root用户


为了更进一步加强系统的安全性,有必要建立一个管理员的 组,只允许这个组的用户来执行“su -”命令登录为root用户,而让其他组的用户即使执行“su -”、输入了正确的root密码,也无法登录为root用户。在UNIX和Linux下,这个组的名称通常为“wheel”


禁止非whell组用户切换到root


1、 修改/etc/pam.d/su配置              

vi/etc/pam.d/su                                    
auth required pam_wheel.so group=wheel  --将auth改行没有注释掉普通用户就没办法切换到root 
#auth required pam_wheel.so group=wheel --将#auth改行注释掉普通用户就可以切换到root

640.png

2、修改/etc/login.defs文件


        echo “SU_WHEEL_ONLY yes” >> /etc/login.defs ← 添加语句到行末以上操作完成后,可以再建立一个新用户,然后用这个新建的用户测试会发现,没有加入到wheel组的用户,执行“su -”命令,即使输入了正确的root密码,也无法登录为root用户


3、通过shiran用户登录尝试切换到root              

                 

su - root     即使密码输入正确也无法切换  

640.png

4: 把root用户加入wheel组再尝试切换,可以切换    

  

usermod -G wheel shiran  ← 将普通用户woo加在管理员组wheel组中                                      su - shiran                                                                            

su - root           ←  这时候我们看到是可以切换了    


640.png

相关文章
|
8月前
HTML单页在线自适应拟态影院源码
HTML单页在线自适应拟态影院源码
221 25
|
11月前
|
机器学习/深度学习 分布式计算 Java
《探索 Apache Spark MLlib 与 Java 结合的卓越之道》
本文探讨了Apache Spark MLlib与Java结合的最佳实践,涵盖基础认知、数据预处理、模型选择与构建、训练调优及部署应用。Spark以其分布式计算能力著称,MLlib提供丰富的机器学习算法,Java则拥有成熟生态。两者结合可高效处理大规模数据集,构建灵活的机器学习应用。通过RDD和DataFrame API进行数据操作,利用特征工程工具优化数据,选择合适的分类、回归或聚类模型,并通过管道机制简化工作流。模型训练时合理设置参数并调优,最终将模型部署到生产环境,释放其商业价值。
208 8
|
11月前
|
存储 人工智能 运维
内附源码|头部基模企业信赖之选——DMS+Lindorm智能搜索方案
本文为数据库「拥抱Data+AI」系列连载第6篇,针对企业构建智能搜索服务的痛点,介绍如何利用阿里云Data+AI解决方案构建一站式AI搜索服务,深入分析了DMS+Lindorm的智能搜索解决方案。
|
存储 安全 Linux
在Linux中,`/etc/passwd` 和 `/etc/shadow` 文件分别有什么作用?
在Linux中,`/etc/passwd` 和 `/etc/shadow` 文件分别有什么作用?
|
监控 安全 Linux
在Linux中,如何进行系统安全加固?
在Linux中,如何进行系统安全加固?
|
监控 安全 Linux
CentOS7下安装配置ntp服务的方法教程
通过以上步骤,您不仅能在CentOS 7系统中成功部署NTP服务,还能确保其配置合理、运行稳定,为系统时间的精确性提供保障。欲了解更多高级配置或遇到特定问题,提供了丰富的服务器管理和优化资源,可作为进一步学习和求助的平台。
2100 1
|
数据采集 机器学习/深度学习 数据挖掘
使用Python进行数据预处理与清洗的最佳实践
本文探讨了Python在数据预处理和清洗中的关键作用。预处理包括数据收集、整合、探索、转换和标准化,而清洗则涉及缺失值、重复值、异常值的处理及数据格式转换。文中提供了使用pandas库进行数据读取、缺失值(如用平均值填充)和重复值处理、异常值检测(如IQR法则)以及数据转换(如min-max缩放)的代码示例。此外,还讲解了文本数据清洗的基本步骤,包括去除标点、转换为小写和停用词移除。整体上,文章旨在帮助读者掌握数据预处理和清洗的最佳实践,以提高数据分析的准确性和效率。
2070 2
|
Web App开发 网络协议 安全
C# | 实现QUIC协议的客户端与服务端
QUIC(Quick UDP Internet Connections)是一种基于UDP协议的可靠、安全、高效的传输协议,由Google开发。它是HTTP/3协议的基础,并被视为未来互联网传输层协议的重要候选者之一。 与TCP不同,QUIC协议使用多路复用(Multiplexing)技术,可以在一个连接上同时传输多个数据流,这些数据流可以独立于彼此进行流量控制和拥塞控制,从而提高了传输效率。此外,QUIC协议还支持零RTT握手,即在第一次连接时就可以发送数据,进一步减少了延迟。
504 0
C# | 实现QUIC协议的客户端与服务端
|
缓存 监控 Linux
Linux系统的tty架构及UART驱动详解
Linux系统的tty架构及UART驱动详解
2335 0
|
前端开发 JavaScript 程序员
GitHub 上能挖矿的神仙技巧 - 如何发现优秀开源项目
GitHub 上能挖矿的神仙技巧 - 如何发现优秀开源项目
614 0
GitHub 上能挖矿的神仙技巧 - 如何发现优秀开源项目