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


加群交流在后台回复“加群”,添加小编微信,小编拉你进去


后台回复“724”获取入门资料


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

一、身份识别:

Cenos安全配置之身份识别相关_复杂度_03

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.textdrwxr-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 targetroot root:文件所属者  文件所属组11:文件大小(Jun  3 01:32)最后修改时间


修改权限:

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

Cenos安全配置之身份识别相关_root用户_04

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

方式一:通过字符修改   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

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

chown :groupName file

Cenos安全配置之身份识别相关_普通用户_06

chown username: file

Cenos安全配置之身份识别相关_复杂度_07

-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=300deny:               设置普通用户和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:

Cenos安全配置之身份识别相关_root用户_08


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 }' 

Cenos安全配置之身份识别相关_普通用户_09

合规标准

除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

Cenos安全配置之身份识别相关_复杂度_10

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”所在行的前面,即可使策略生效。如下所示:

Cenos安全配置之身份识别相关_root用户_11



4.设置密码过期期限

vi /etc/login.defsPASSMAXDAYS    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

Cenos安全配置之身份识别相关_root用户_12


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

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


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

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

Cenos安全配置之身份识别相关_普通用户_13


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

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

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

Cenos安全配置之身份识别相关_复杂度_14



END




更多精彩尽在星球