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

本文涉及的产品
运维安全中心(堡垒机),免费版 6个月
简介: 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

相关文章
|
3月前
|
Ubuntu Linux Shell
Linux logname命令:揭秘当前登录用户的身份
`logname`命令在Linux中显示当前登录用户的用户名。它读取`/var/run/utmp`或`/etc/utmp`文件获取信息,简单直接,数据可靠。适用于多种Linux发行版。在终端输入`logname`即可查看用户名,也可在脚本中使用以动态调整内容。注意,`logname`不考虑`LOGNAME`或`USER`变量,适用于本地登录,无权限问题。在脚本中应处理无对应条目的情况。
|
3月前
|
存储 Linux
深入探索Linux命令:`chfn` - 修改用户指纹信息
`chfn`命令在Linux中用于修改用户的指纹信息,包括全名、办公室号码和电话等。用户可运行`chfn`无参数来修改自身信息,或以`sudo chfn username`修改其他用户信息。要查看指纹信息,可使用`finger`命令。指纹信息在服务器管理、系统日志记录和旧版终端界面中仍有其价值。
|
Linux Android开发
支付宝二维码脱机认证库测试(linux_x86平台验证)
支付宝二维码脱机认证库测试(linux_x86平台验证)
丰富了一个linux基线核查脚本
丰富了一个linux基线核查脚本
|
Ubuntu Linux Shell
【Linux技术专题系列】「必备基础知识」一起探索(su、sudo等相关身份提权/身份切换机制)
【Linux技术专题系列】「必备基础知识」一起探索(su、sudo等相关身份提权/身份切换机制)
205 0
【Linux技术专题系列】「必备基础知识」一起探索(su、sudo等相关身份提权/身份切换机制)
|
安全 Shell Linux
Linux 系统安全及应用(账号安全和引导登录控制)(1)
1 账号安全基本措施 1.1 系统账号清理 1.1.1 将非登录用户的Shell设为/sbin/nologin 在我们使用Linux系统时,除了用户创建的账号之外,还会产生系统或程序安装过程中产生的许多其他账号,除了超级用户root外,其他账号都是用来维护系统运作的,一般不允许登录,常见的非登录用户有bin、adm、mail、lp、nobody、ftp等。 查看/etc/passwd 文件,可以看到多个程序用户。
369 0
|
存储 安全 算法
Linux 系统安全及应用(账号安全和引导登录控制)(3)
1 账号安全基本措施 1.1 系统账号清理 1.1.1 将非登录用户的Shell设为/sbin/nologin 在我们使用Linux系统时,除了用户创建的账号之外,还会产生系统或程序安装过程中产生的许多其他账号,除了超级用户root外,其他账号都是用来维护系统运作的,一般不允许登录,常见的非登录用户有bin、adm、mail、lp、nobody、ftp等。 查看/etc/passwd 文件,可以看到多个程序用户。
295 0
|
安全 Ubuntu Unix
Linux 系统安全及应用(账号安全和引导登录控制)(2)
1 账号安全基本措施 1.1 系统账号清理 1.1.1 将非登录用户的Shell设为/sbin/nologin 在我们使用Linux系统时,除了用户创建的账号之外,还会产生系统或程序安装过程中产生的许多其他账号,除了超级用户root外,其他账号都是用来维护系统运作的,一般不允许登录,常见的非登录用户有bin、adm、mail、lp、nobody、ftp等。 查看/etc/passwd 文件,可以看到多个程序用户。
218 0
|
缓存 网络协议 安全
Linux 系统安全及应用(账号安全和引导登录控制)(4)
1 账号安全基本措施 1.1 系统账号清理 1.1.1 将非登录用户的Shell设为/sbin/nologin 在我们使用Linux系统时,除了用户创建的账号之外,还会产生系统或程序安装过程中产生的许多其他账号,除了超级用户root外,其他账号都是用来维护系统运作的,一般不允许登录,常见的非登录用户有bin、adm、mail、lp、nobody、ftp等。 查看/etc/passwd 文件,可以看到多个程序用户。
175 0
|
运维 监控 安全
Linux 认证授权及用户定义及组的类别 | 学习笔记
快速学习Linux 认证授权及用户定义及组的类别
146 0
Linux 认证授权及用户定义及组的类别 | 学习笔记