freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

CentOS 7安全加固(基础)
一元函数fung 2022-08-28 14:48:50 75185
所属地 北京

一,身份鉴别

1,检查是否存在空密码账户

检查步骤:

执行命令:awk -F:'($2==""){print $1}' /etc/shadow;

查看返回信息

判断依据:

没有返回信息说明不存在空密码,有返回信息按照下面的加固方案进行加固

加固方案:

执行命令:cp /etc/shadow /etc/shadow_bak 对文件进行备份

执行命令:passwd username 为用户设置密码 或 userdel username 删除空密码账户

2,检查密码失效时间

检查步骤:

执行命令:cat /etc/login.defs 查看 PASS_MAX_DAYS 参数设置是否为 60-180 之间

判断依据:

在 60-180 之间合格,否则执行下面的加固方案

加固方案:

执行命令:cp /etc/login.defs /etc/login.defs_bak 对文件进行备份

执行命令:vi /etc/login.defs 将PASS_MAX_DAYS 参数设置为 60-180 之间,如:PASS_MAX_DAYS 90

执行命令:chage -M 90 username 修改之前已存在用户的密码到期时间

3,检查密码修改最小间隔时间

检查步骤:

执行命令:cat /etc/login.defs 查看PASS_MIN_DAYS 参数设置是否为 7-14 之间

判断依据:

PASS_MIN_DAYS 参数设置为 7-14 之间即合格,否则不合格,执行以下加固方案

加固方案:

执行命令:vi /etc/login.defs 将PASS_MIN_DAYS 参数设置为 7-14 之间,建议为 7

执行命令:chage -m 7 username 修改之前已存在用户的密码修改最小间隔时间

4,确保密码到期警告天数为 7 或更多

检查步骤:

执行命令:cat /etc/login.defs 查看 PASS_WARN_AGE 参数设置是否为 7-14 之间

判断依据:

在 7-14 之间合格,不在 7-14 之间,执行以下加固方案

加固方案:

执行命令:vi /etc/login.defs 将 PASS_WARN_AGE 参数设置为 7-14 之间,建议为 7

执行命令:chage -W 7 username 修改之前已存在用户的密码修改最小间隔时间

5,确保 root 是唯一的 UID 为 0 的账户

检查步骤:

执行命令:awk -F:'($3 == "0"){print$1}' /etc/passwd 查看返回值

判断依据:

返回值只有 root 合格,否则执行以下加固方案

加固方案:

执行命令:userdel -rf username 删除 root 之外的 UID 为 0 的用户

6,检查密码复杂度要求

检查步骤:

执行命令:grep -E '^minlen|^minclass' /etc/security/pwquality.conf

查看返回值

判断依据:

查看返回值当中是否有 minlen 和 minclass ,并且 minlen 设置是否为 8-32 之间,minclass 是否设置为 3 或 4 ,符合上面的设置即合格,否则执行以下加固方案

加固方案:

执行命令:cp /etc/security/pwquality.conf /etc/security/pwquality.conf_bak 对文件进行备份

执行命令:authconfig --passminlen=10 --passminclass=3 --update 设置密码长度最小值与密码所需要的最少字符类型并更新设置

7,检查密码重用是否受限制

检查步骤:

执行命令:cat /etc/pam.d/password-auth 和 cat /etc/pam.d/system-auth

查看以上两个文件中password sufficient pam_unix.so 这行末尾是否存在 remember参数

判断依据:

存在 remember 参数且值为 5-24 之间合格,否则执行以下加固方案

加固方案:

执行命令:vi /etc/pam.d/password-auth 和 vi /etc/pam.d/system-auth 分别找到两文件中的 password sufficient pam_unix.so 在该行末尾添加 remember=5 即可

二,服务配置

1,禁止 SSH 空密码用户登录

检查步骤:

执行命令:cat /etc/ssh/sshd_config 查看文件中 PermitEmptyPasswords 参数为 no 且该行未4是否被注释

判断依据:

为被注释合格,否则执行下面的加固方案

加固方案:

执行命令:cp /etc/ssh/sshd_config /etc/ssh/sshd_config_bak 对文件进行备份

执行命令:vi /etc/ssh/sshd_config 将 PermitEmptyPasswords 配置为 no 并删除注释符

执行命令:systemctl restart sshd 重启 sshd 服务使配置生效

2,确保 SSH MaxAuthTries 设置为 3 到 6 之间

检查步骤:

执行命令:cat /etc/ssh/sshd_config 查看文件中 MaxAuthTries 参数是否为 3-6 之间

判断依据:

/etc/ssh/sshd_config 将MaxAuthTries 参数为 3-6 之间且未被注释即合格,否则执行以下加固方案

加固方案:

执行命令:vi /etc/ssh/sshd_config 将 MaxAuthTries 配置为 3-6 之间,建议为 4 ,并删除注释

执行命令:systemctl restart sshd 重启sshd服务配置

3,设置 SSH 空闲超时退出时间

检查步骤:

执行命令:cat /etc/ssh/sshd_config 查看文件中 ClientAliveInterval 与 ClientAliveCountMax 参数

判断依据:

ClientAliveInterval 为 300-900 之间,ClientAliveCountMax 为 0-3 之间,且未被注释即合格,否则执行下面加固方案

加固方案:

执行命令:vi /etc/ssh/sshd_config 将 ClientAliveInterval 设置为 300-900 之间,ClientAliveCountMax 设置为 0-3 之间,并删除注释

执行命令:systemctl restart sshd 重启 sshd 服务

建议将 ClientAliveCountMax 设置为 0

//ClientAliveInterval,指定了服务器端向客户端请求消息的时间间隔, 默认是0,不发送。每一分钟,sshd都和ssh client打个招呼,检测它是否存在,不存时即断开连接。ClientAliveInterval=60,将后面的数值设置修改,单位为秒,如10分钟,则可写600 。

//ClientAliveCountMax ,指如果发现客户端没有相应,则判断一次超时,这个参数设置允许超时的次数,比如10。

4,确保 SSH LogLevel 设置为 INFO

检查步骤:

执行命令:cat /etc/ssh/sshd_config 查看文件中 LogLevel 参数

判断依据:

LogLevel 设置为 INFO 且未被注释即合格,否则执行下面的加固方案

加固方案:

执行命令:vi /etc/ssh/sshd_config 将 LogLevel 设置为 INFO ,并删除注释

执行命令:systemctl restart sshd 重启 ssh 服务

三,文件权限

1,访问控制配置文件的权限设置

检查步骤:

执行命令:ll /etc/hosts.allow /etc/hosts.deny 查看文件权限与所有者等信息

判断依据:

/etc/hosts.allow 和 /etc/hosts.deny 的所有者与所有组均为 root 且权限为 644 即合格,否则执行以下加固方案

加固方案:

执行命令:chown root:root /etc/hosts.allow /etc/hosts.deny

chown 644 /etc/hosts.allow /etc/hosts.deny

为两文件设置权限及所有者等信息

2,设置用户权限配置文件的权限

检查步骤:

执行命令:ll /etc/passwd /etc/shadow /etc/group /etc/gshadow 查看文件权限与所有者等信息

判断依据:

上述文件的所有者与所有组都是 root 且 /etc/group /etc/passwd 的权限小于等于 644 ,/etc/shadow /etc/gshadow 的权限小于等于 400 即合格,否则执行以下加固方案

加固方案:

执行命令:chown root:root /etc/passwd /etc/shadow /etc/group /etc/gshadow

chown 644 /etc/group /etc/passwd

chown 400 /etc/shadow /etc/gshadow

为文件设置权限及所有者等信息

四,安全审计

1,确保 rsyslog 服务已启用

检查步骤:

执行命令:systemctl status rsyslog 查看 rsyslog 服务是否启动

执行命令:systemctl is-enabled rsyslog 查看 rsyslog 是否设置开机自启

判断依据:

已启动 rsyslog 服务且·设置了开机自启动即合格,否则执行以下加固方案

加固方案:

执行命令:systemctl enable rsyslog

systemctl start rsyslog

五,入侵防范

1,开启地址空间布局随机化

检查步骤:

执行命令:cat /etc/sysctl.conf 查看文件当中是否存在 kernel.randomize_va_space = 2

判断依据:

存在 kernel.randomize_va_space = 2 即合格,否则执行下面的加固方案

加固方案:

执行命令:vi /etc/sysctl.conf 在文件内添加一行 kernel.randomize_va_space = 2

执行命令:sysctl -w kernel.randomize_va_space = 2

# 系统安全
本文为 一元函数fung 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
一元函数fung LV.3
这家伙太懒了,还未填写个人描述!
  • 5 文章数
  • 2 关注者
Apache两个解析漏洞复现及防御方法
2022-09-01
安全运维之mysql基线检查
2022-08-29
Https原理及运用的机制(6月16日)
2022-06-17