专栏首页北京马哥教育原创头条 | 如何让主机合规分析报告评分达到90分?

原创头条 | 如何让主机合规分析报告评分达到90分?

“胖猴,某大型企业高级运维,马哥教育原创作者联盟成员,热爱分享Linux应用技术和原创知识,有30万字以上的原创内容。”

说明:本次文档是根据某厂的主机合规分析报告内容进行整改的,整改后评分达到90分,本次试验环境为Centos6.7。

一、账号管理

1.1密码锁定策略

pam_tally2和pam_faillock PAM 模块都可以允许系统管理员锁定在指定次数内登录尝试失败的用户账户。并在尝试指定次数是进行锁定,防止暴力破解。 检查方法: 查看/etc/pam.d/system-auth和/etc/pam.d/password-auth是否包含下面选项auth required pam_tally2.so deny=3 onerr=fail no_magic_root unlock_time=180 even_deny_root root_unlock_time=10

修改方法: 修改/etc/pam.d/system-auth 文件和/etc/pam.d/password-auth 文件中的 auth

在指定的两个文件中的 account 区段中添加以下命令行:

说明:

/etc/pam.d/login中配置只在本地文本终端上做限制; /etc/pam.d/kde在配置时在kde图形界面调用时限制; /etc/pam.d/sshd中配置时在通过ssh连接时做限制; /etc/pam.d/system-auth中配置凡是调用 system-auth 文件的服务,都会生效。

  • deny 指定最大认证错误次数,如果超出此次数,将执行后面的策略。如锁定N秒,如果后面没有其他策略指定时,默认永远锁定,除非手动解锁。
  • lock_time 锁定时长,按秒为单位;
  • unlock_time 指定认证被锁后,多长时间自动解锁用户;
  • magic_root 如果用户uid=0(即root账户或相当于root的帐户)在帐户认证时调用该模块发现失败时,不计入统计;
  • no_lock_time 不使用.fail_locktime项在/var/log/faillog 中记录用户 ---按英文直译不太明白,个人理解即不进行用户锁定;
  • even_deny_root root用户在认证出错时,一样被锁定(该功能慎用,搞不好就要单用户时解锁了)
  • root_unlock_time root用户在失败时,锁定多长时间。该选项一般是配合even_deny_root 一起使用的。

测试

可人工将计数器清零:

1.2 密码生存期

密码生存期是另一个系统管理员用来保护在机构中防止不良密码的技术。密码有效期的意思就是在指定时段后(通常为 90 天),会提示用户创建新密码。它的理论基础是如果强制用户周期性修改其密码,那么破解的密码对与入侵者来说只在有限的时间内有用。密码有效期的负面影响是用户可能需要写下这些密码。

主要是修改下面三行的内容:

1.3 密码复杂度

由于管理员给用户创建的密码暴露,所以管理员都是让用户自己修改密码,但还需要符合密码的强度,在这种场景下,管理员可能会强制用户定期更改密码,防止密码过期。 当用户需要更改密码时,为符合密码强度,可使用pam_cracklib.so 这个PAM模块来检测用户设置的密码是否符合要求。

将上面的这行修改为下面的内容:

1.4 删除无关帐号

下面的系统自带的账号应该移除或锁定。这类用户的密码列不是用*或者!!开头的。

三类用户:

超级用户:拥有对系统的最高管理权限,缺省是root用户。

普通用户:只能对自己目录下的文件进行访问和修改,具有登录系统的权限。

虚拟用户:也叫“伪”用户,这类用户最大的特点是不能登录系统,它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。

如果上面的这些用户没有被删除或锁定,可选用如下的三种操作: 4.1直接将用户移除掉

4.2若不想将上述用户移除,也可将其进行锁定

4.3还可修改用户的shell为/bin/false

执行下面的指令将上述用户进行锁定:

1.5 口令重复次数限制

对于采用静态口令认证技术的设备,应配置设备,使用户不能重复使用最近五次(含五次)内已使用的口令。

将上面的这行密码控制语句改为:

注意:NIS系统无法生效,非NIS系统或NIS+系统能够生效。

1.6 禁止管理组之外的用户su为根用户

注意:auth同sufficient之间由两个tab建隔开,sufficient与动态库路径之间使用一个tab建隔开。

通常情况下,一般用户通过执行su -命令,输入正确的根用户密码,就能登录成为根用户。但是,为了更进一步加强安全性,有必要创建一个管理员组,只允许该组的用户来执行su -命令登录为根用户,而使得其他组的用户即使是执行了该指令、输入了正确的密码,也无法登录为根用户。这个组的名称通常为wheel。 按照上面的方法修改后,普通用户无法登录为根用户:

若希望该普通用户能够登录为根用户,需要将其加入到wheel组中:

二、文件与目录权限

2.1文件与目录缺省权限控制

首先要对操作的目标文件进行备份:

2.2 配置用户最小授权

2.3 设置关键文件的属性

使用命令查看messages文件是否只可追加不可修改:

a即append,设定该参数后,只能向文件中添加数据,而不能删除。 如果一个用户以root的权限登录或者某个进程以root的权限运行,会保证messages文件不会被篡改,保证系统的相对安全。

三、日志安全

3.1 记录安全事件日志

3.2 日志文件安全

对权限>640的日志文件设定为640的权限。 检测方法: 使用以下命令查看日志文件权限

找到这些权限有问题的日志文件后,对其进行修改权限的操作:

四、系统服务

4.1 限制root用户SSH远程登录

检测方法:

修改方法: 编辑/etc/ssh/sshd_config修改以下两个选项

4.2 登陆超时时间设置

检测方法:

修改方法: 如果/etc/profile中有下面的两行则按需要进行修改,没有这两行则写入这两行:

4.3 清除潜在危险文件

要求系统中不能有这三个文件:.rhosts、.netrc、hosts.equiv。如果使用rlogin进行远程登录,就会需要这三个文件。通常情况下是没有这三个文件的,因而该远程登录方法很少使用了。、 检测方法:

修改方法: 需要删除.rhosts、.netrc、hosts.equiv 如无应用,删除以上文件 删除前需要备份 mv .rhosts .rhosts.bak mv .netrc.netrc.bak mv hosts.equiv hosts.equiv.bak 执行删除操作

4.4 配置NFS服务限制

4.1检测方法: 4.1.1查看系统是否存在如下NFS守护进程:

4.1.2查看NFS服务状态:

4.1.3查看是否对NFS服务访问做限制:

4.2判断依据 4.2.1不存在与NFS有关的服务进程 4.2.2如果存在NFS守护进程,但/etc/hosts.allow设置了允许访问NFS的远程地址且/etc/hosts.deny设置了拒绝访问NFS的远程地址,二者满足其一即可。 4.3修改方案: 4.3.1杀掉如下NFS进程:rpc.lockd rpc.nfsd rpc.statd rpc.mountd 4.3.2禁用NFS

4.3.4如需要NFS服务,设置限制能够访问NFS服务的IP范围 编辑/etc/hosts.allow增加一行: nfs:允许访问的IP 编辑/etc/hosts.deny增加一行: nfs:all

五、网络安全

5.1禁止IP源路由

源路由是一种互联网协议机制,可许可IP数据包携带地址列表的信息,以此分辨数据包沿途经过的路由器。通过某一路径时,会出现一可选项,记录为中间路径。所列出的中间路径,即路径记录,可提供返回至源路由路径上的目的地。这就允许源路由可指定某一路径,无论是严格的还是松散的,可忽略路径列表上的一些或全部路由器。它可允许用户恶意重定向网络流量。因而,应禁用源路由。

5.2控制远程访问的IP地址

首先执行备份:

检查办法: 查看/etc/hosts.allow /etc/hosts.deny文件中是否设置IP范围限制 修改办法

5.3禁止ICMP重定向

为何要关闭该功能,因为其会导致ICMP重定向攻击,即利用ICMP路由公告功能,攻击者使用该功能可改变攻击目标的路由配置(可造成主机的网络连接异常,被用于流量攻击等严重后果)。 检测方法:

修改办法:

5.4对root为ls、rm设置别名

5.5Update bash

确认bash的版本:

可直接使用Yum进行升级,但并不是最新的版本,若要升级到最新的版本,请进行编译安装升级。

本文分享自微信公众号 - 马哥Linux运维(magedu-Linux),作者:胖猴

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

原始发表时间:2017-03-31

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 2017年企业版高薪运维经典基础面试题汇总

    1.解释下什么是GPL,GNU,自由软件? GPL:(通用公共许可证):一种授权,任何人有权取得、修改、重新发布自由软件的权力。 GNU:(革奴计划):目标是创...

    小小科
  • 恢复删除的文件

    当Linux计算机受到入侵时,常见的情况是日志文件被删除,以掩盖攻击者的踪迹。管理错误也可能导致意外删除重要的文件,比如在清理旧日志时,意外地删除了数据库的活动...

    小小科
  • 恢复删除的文件

    当Linux计算机受到入侵时,常见的情况是日志文件被删除,以掩盖攻击者的踪迹。管理错误也可能导致意外删除重要的文件,比如在清理旧日志时,意外地删除了数据库的活动...

    小小科
  • linux(二)之linux常用命令一

    linux的命令非常之多,命令多就算了关键每个命令还有很多的参数。不过其实并不要去害怕它。 你只要常去用,并且的话,大部分你只要记住命令,参数不记得我们可以去查...

    用户1195962
  • 看两种截然不同的设计理念:分布式文件系统支持大和小文件的思考

    为何Google GFS设计成对大文件友好,而像腾讯的TFS(Tencent File System)和淘宝的TFS(Taobao File System)...

    一见
  • Word2Vec

    自然语言处理问题中,一般以词作为基本单元,例如我们想要分析"我去过华盛顿州"这句话的情感,一般的做法是先将这句话进行分词,变成我,去过,华盛顿州,由于神经网络无...

    mathor
  • 贝叶斯分类器及Python实现

    由于某些不可抗拒的原因,LaTeX公式无法正常显示. 点击这里查看PDF版本 Github: https://github.com/yingzk/MyML 博 ...

    YingJoy_
  • Rafy 框架 - 大批量导入实体

    某些场景下,开发者希望能够大批量地把实体的数据导入到数据库中。虽然使用实体仓库保存实体列表非常方便,但是其内部实现机制是一条一条的保存到数据库,当实体的个数较多...

    用户1172223
  • SAP FSM 学习笔记(二) : SAP FSM的微信接入

    Jerry的前一篇文章 SAP FSM 学习笔记(一) : 使用API消费FSM的数据 介绍了SAP Field Service Management Rest...

    Jerry Wang
  • Docker系列教程24-Docker Compose网络设置

    用户1516716

扫码关注云+社区

领取腾讯云代金券