专栏首页释然IT杂谈Cenos安全配置之身份识别相关

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

一、身份识别:

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

本文分享自微信公众号 - 释然IT杂谈(gh_ad4551519762),作者:z释然z

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux强化论:15步打造一个安全的Linux服务器

    可能大多数人都觉得Linux是安全的吧?但我要告诉你,这种想法绝对是错误的!假设你的笔记本电脑在没有增强安全保护的情况下被盗了,小偷首先就会尝试用“root”(...

    释然
  • 网工小白升级打怪篇(三)ssh实现远程管理

    使用telnet进行远程设备维护的时候,由于密码和通讯都是明文的,易受sniffer侦听,所以应采用SSH替代telnet。SSH (Secure Shell...

    释然
  • 企业运维经典面试题汇总(4)

    1、如何过滤出已知当前目录下yangwen中的所有一级目录(提示:不包含yangwen目录下面目录的子目录及隐藏目录,即只能是一级目录)?

    释然
  • Linux强化论:15步打造一个安全的Linux服务器

    可能大多数人都觉得Linux是安全的吧?但我要告诉你,这种想法绝对是错误的!假设你的笔记本电脑在没有增强安全保护的情况下被盗了,小偷首先就会尝试用“root”(...

    释然
  • FTP使用MariaDB完成虚拟用户认证

    文件传输协议(英文:File Transfer Protocol,縮寫:FTP)是用於在網絡上進行文件傳輸的一套標準協議。它属于网络传输协议的应用层。FTP是一...

    用户2645267
  • ubuntu 下去除root的密码检验策略

    超级大猪
  • 解决Linux修改密码报PAM authentication failed错误

    最近接到一个运维开发任务,需要开发一个帐号管理系统,对手头三千多台 Linux 服务器的 root 帐号进行批量系统的管理,实现定期修改 root 为随机密码并...

    张戈
  • 世界五百强出来了,你觉得华为、阿里、腾讯三者之间的差距在哪?

    根据最新的数据,2017年华为全年营收约6000亿元,增长15.7%。阿里巴巴和腾讯均达到了2400亿元左右,增速超过了40%。几年的时间,阿里巴巴和腾讯的营收...

    一墨编程学习
  • Oracle 的 DBMS_SCN 修正以及 SCN 的 auto-rollover 新特性

    在 Oracle 11.2.0.2 之后,随着一系列 SCN 耗尽问题的出现,很多补丁涌现出来,一个新的 Package 增加进来。 这个 Package 就是...

    数据和云
  • 用 RxJS、RxWX 编写微信小程序

    RxJS RxJS是微软推出的ReactiveX系列,符合纯函数特点的第三方开源库有非常著名underscore和lodash,以及更加强大的RxJS。它可以用...

    极乐君

扫码关注云+社区

领取腾讯云代金券