本文正在参与 “性能优化实战记录”话题征文活动
设置用户权限配置文件的权限 | 文件权限
描述
设置用户权限配置文件的权限
加固建议
执行以下5条命令
chown root:root /etc/passwd /etc/shadow /etc/group /etc/gshadow chmod 0644 /etc/group chmod 0644 /etc/passwd chmod 0400 /etc/shadow chmod 0400 /etc/gshadow
操作时建议做好记录或备份
确保SSH LogLevel设置为INFO | 服务配置
描述
确保SSH LogLevel设置为INFO,记录登录和注销活动
加固建议
编辑 /etc/ssh/sshd_config 文件以按如下方式设置参数**(取消注释): LogLevel INFO**
操作时建议做好记录或备份
设置SSH空闲超时退出时间 | 服务配置
描述
设置SSH空闲超时退出时间,可降低未授权用户访问其他用户ssh会话的风险
加固建议
编辑/etc/ssh/sshd_config,将ClientAliveInterval 设置为300到900,即5-15分钟,将ClientAliveCountMax设置为0。
ClientAliveInterval 900 ClientAliveCountMax 0
ClientAliveCountMax和ClientAliveInterval 取消注释符号#
操作时建议做好记录或备份
SSHD强制使用V2安全协议 | 服务配置
描述
SSHD强制使用V2安全协议
加固建议
编辑 /etc/ssh/sshd_config 文件以按如下方式设置参数: Protocol 2
操作时建议做好记录或备份
确保SSH MaxAuthTries设置为3到6之间 | 服务配置
描述
设置较低的Max AuthTrimes参数将降低SSH服务器被暴力攻击成功的风险。
加固建议
在/etc/ssh/sshd_config中取消MaxAuthTries注释符号#,设置最大密码尝试失败次数3-6,建议为4: MaxAuthTries 4
操作时建议做好记录或备份
禁止SSH空密码用户登录 | 服务配置
描述
禁止SSH空密码用户登录
加固建议
在/etc/ssh/sshd_config中取消PermitEmptyPasswords no注释符号#
操作时建议做好记录或备份
重启Apache systemctl restart httpd
设置密码修改最小间隔时间 | 身份鉴别
描述
设置密码修改最小间隔时间,限制密码更改过于频繁
加固建议
在 /etc/login.defs 中将 PASS_MIN_DAYS 参数设置为7-14之间,建议为7: PASS_MIN_DAYS 7 需同时执行命令为root用户设置: chage --mindays 7 root
操作时建议做好记录或备份
设置密码失效时间 | 身份鉴别
描述
设置密码失效时间,强制定期修改密码,减少密码被泄漏和猜测风险,使用非密码登陆方式(如密钥对)请忽略此项。
加固建议
使用非密码登陆方式如密钥对,请忽略此项。在 /etc/login.defs 中将 PASS_MAX_DAYS 参数设置为 60-180之间,如 PASS_MAX_DAYS 90。需同时执行命令设置root密码失效时间: chage --maxdays 90 root
操作时建议做好记录或备份
重启Apache
systemctl restart httpd
systemctl restart sshd
限制编译器
如果你的系统被黑掉了,那么攻击者会对系统使用的是哪种编译器很感兴趣。为什么呢?因为他们可以去下载一个简单的C文件(POC),并且在你的系统上进行编译,从而在几秒钟之内就成为了root用户。如果编译器是开启的话,他们还可以在你的系统上做一些严重的破坏。
首先,你需要检查单个的数据包以确定其包含有哪些二进制文件。然后你需要限制这些二进制文件的权限。
$ rpm -q --filesbypkg gcc | grep 'bin'
现在我们需要创建一个可以访问二进制文件的编译器的组名称了:
$ groupadd compilerGroup
然后,你可以赋予这个组能够改变任何二进制文件的所有权:
$ chown root:compilerGroup /usr/bin/gcc
最后重要的是:仅编译器组才有改变该二进制文件的权限:
$ chmod 0750 /usr/bin/gcc
至此,任何试图使用gcc的用户将会看到权限被拒绝的信息了。