前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Cenos安全配置之身份识别相关

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

作者头像
释然IT杂谈
发布2020-06-12 17:37:20
2.7K0
发布2020-06-12 17:37:20
举报
文章被收录于专栏:释然IT杂谈

一、身份识别:

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

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

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

chown :groupName file

chown username: file

-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:

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

合规标准

除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

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

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

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

3、通过shiran用户登录尝试切换到root su - root 即使密码输入正确也无法切换

4: 把root用户加入wheel组再尝试切换,可以切换 usermod -G wheel shiran ← 将普通用户woo加在管理员组wheel组中 su - shiran su - root ← 这时候我们看到是可以切换了

END

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 释然IT杂谈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档