CentOS7.X-安全加固

01

 

设置口令最长使用天数

 

/etc/login.defs中PASS_MAX_DAYS 不小于标准值90

 

 

02

 

设置口令更改最小间隔天数

 

/etc/login.defs中PASS_MIN_DAYS 不小于标准值2

 

03

 

设置口令最小长度

 

/etc/login.defs中PASS_MIN_LEN 不小于标准值8

 

04

 

设置口令过期提醒天数

 

/etc/login.defs中PASS_WARN_AGE 不小于标准值7

 

05

 

设置root用户密码口令使用天数

 

chage root -M 90

可通过chage -l 用户名查看用户账号密码信息

 

06

 

设置密码重复使用次数限制

 

编辑/etc/pam.d/system-auth 文件,只需在password sufficient 这一行加上remember=5

 

 

07

 

设置密码复杂度

 

编辑/etc/pam.d/system-auth 添加:

password    requisite     pam_pwquality.so retry=5 minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1

最低8位,至少1位数字,至少一个大写、小写、另外的字符

 

08

 

设置账户认证失败次数限制

 

【检查点1】:/etc/pam.d/sshd检查是否配置SSH 方式账户认证失败次数限制

auth  required  pam_tally2.so  deny=5 unlock_time=300 even_deny_root root_unlock_time=60

在account 行下方添加: 

account required pam_tally2.so

【检查点2】:检查是否配置账户认证失败次数限制

编辑/etc/pam.d/system-auth 

auth required pam_tally2.so deny=5 unlock_time=300 even_deny_root root_unlock_time=60

在account 行下方添加:

account required pam_tally2.so

 

 

09

 

检查SELinux是否开启

 

使用getenforce命令查看SELinux是否开启,编辑/etc/selinux/config 修改SELINUX 值为enforcing 或者permissive(建议改成这个模式,只记录不进行拦截),然后使用reboot 命令重启机器使修改生效。

 

 

10

 

配置cron、at的安全性

 

检查/etc/cron.allow和/etc/at.allow是否存在非root用户,如无此文件请创建,并进行用户限制,加固前应当检查业务应用启动用户是否配置了定时任务,避免导致备份失败。

 

11

 

su安全配置

 

编辑su 文件(vi /etc/pam.d/su),检查是否有以下配置:

auth   required     pam_wheel.so use_uid   #只有wheel组能用suauth   sufficient   pam_rootok.so          #su需要密码

 

 

12

 

检查用户umask 设置

 

【检查点1】:/etc/csh.cshrc

【检查点2】:/etc/profile

【检查点3】:/etc/bash.bashrc 或 /etc/bashrc

设置umask值为077,source相关文件,并通过命令umask检查是否修改成功

 

13

 

检查重要文件属性设置

 

【检查点1】:检查/etc/gshadow 文件属性

【检查点2】:检查/etc/shadow 文件属性

【检查点3】:检查/etc/group 文件属性

【检查点4】:检查/etc/passwd 文件属性

检查命令如下:

lsattr /etc/gshadow /etc/shadow /etc/group /etc/passwd

 

加固命令如下:

chattr +i /etc/gshadow /etc/shadow /etc/group /etc/passwd

后续涉及更改密码及新增用户无权限时,可使用:

chattr -i /etc/gshadow ...等命令修改文件属性

使用完毕后请将属性还原为+i

 

14

 

openssh安全配置

 

1. 添加/etc/ssh/sshd_config配置Protocol 2 后重启sshd服务

2. 修改/etc/ssh/sshd_config中 port为高位端口;

3. 检查SSH版本,建议升级至9.4-9.5版本,后期会专门一篇ssh升级的文章,敬请关注。

 

15

 

禁用root远程登录

 

修改/etc/ssh/sshd_config 文件,配置PermitRootLogin no。重启服务,systemctl restart sshd。

此项与第11项存在冲突,加固时请根据实际情况进行二选一,请测试好su命令后再执行此操作。

 

 

16

 

配置空闲会话时长

 

修改/etc/profile ,最最后一行添加:  export TMOUT=600  

并更新profile文件生效:source  /etc/profile

 

17

 

检查是否限制远程登录IP 范围

 

【检查点1】:检查/etc/hosts.allow 配置

all:192.168.4.44:allow   #允许单个IP;sshd:192.168.1.:allow    #允许192.168.1 的整个网段

【检查点2】:检查/etc/hosts.deny 配置

编辑/etc/hosts.deny 增加一行

all:all

 

18

 

检查审计日志是否保存180天

 

/etc/logrotate.conf添加以下配置

/var/log/audit/*.log {    weekly    rotate 26    copytruncate    delaycompress    compress    notifempty    missingok}

 

19

 

完善审计规则

 

编辑/etc/audit/rules.d/audit.rules 添加以下审计规则(此处与CentOS6.x略有不同.)

-w /etc/sudoers.d/ -p wa -k scope-w /etc/sudoers -p wa -k scope-w /etc/security/opasswd -p wa -k identity-w /etc/shadow -p wa -k identity-w /etc/gshadow -p wa -k identity-w /etc/passwd -p wa -k identity-w /etc/group -p wa -k identity-a always,exit -F arch=b32 -S unlink -S unlinkat -S rename -S renameat -F auid>=1000 -F auid!=4294967295 -k delete-a always,exit -F arch=b64 -S unlink -S unlinkat -S rename -S renameat -F auid>=1000 -F auid!=4294967295 -k delete

重启服务service auditd restart

 

20

 

检查防火墙是否开启

 

了解业务端口使用情况后开启防火墙并放行相关服务端口,此处举例放行SSH端口,

systemctl status firewalld  查看防火墙状态

#CentOS7、redhat7firewall-cmd --permanent --zone=public --add-port=80/tcp     #添加端口firewall-cmd --zone=public --remove-port=80/tcp --permanent  #删除端口firewall-cmd --reload          #重启防火墙

 

21

 

恶意代码防范

 

安装恶意代码检测工具,不具备条件的可以考虑安装ClamAV

(过几天写一篇文章介绍,敬请期待。)

 

22

 

检查空密码用户

 

cat /etc/shadow | awk -F: '($2 == "" ) { print $1}'

 

23

 

禁用或删除多余用户

 

此处简单举两个例子,具体情况请根据实际情况调整。

usermod -L shutdownusermod -L halt

 

24

 

关闭不必要的服务

 

卸载、关闭不必要的服务:Telnet、RSH、SMB、Talk、NFS、RPC、IMAP、POP3等服务。

 

posted on 2024-03-12 08:04  五官一体即忢  阅读(84)  评论(0编辑  收藏  举报

导航