原创头条 | 如何让主机合规分析报告评分达到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)

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏偏前端工程师的驿站

Java魔法堂:以Windows服务的形式运行Java程序

一、前言                               由于防止维护人员误操作关闭Java控制台程序,因此决定将其改造为以Windows服务的形式...

28660
来自专栏FreeBuf

Firefox新增安全机制:附加组件签名机制

根据Net MarketShare的数据显示,2016年8月份Firefox浏览器占全球市场份额7.69%,仅次于Chrome和IE,排名第三。可见,Firef...

21750
来自专栏微服务

微服务实践分享与探讨

服务调用关系 ? API网关优缺点 简化沟通方式 API网关对所有微服务提供单一的访问点 安全性 对客户端隐藏了服务发现和服务版本 阻止大规模攻击,包括S...

35670
来自专栏阮一峰的网络日志

Content Security Policy 入门教程

跨域脚本攻击 XSS 是最常见、危害最大的网页安全漏洞。 ? 为了防止它们,要采取很多编程措施,非常麻烦。很多人提出,能不能根本上解决问题,浏览器自动禁止外部注...

33550
来自专栏武培轩的专栏

当你在浏览器地址栏输入一个URL后回车,将会发生的事情?

当我们在浏览器的地址栏输入 www.cnblogs.com ,然后回车,回车到看到页面到底发生了什么呢? 域名解析 --> 发起TCP的3次握手 --> 建立T...

38570
来自专栏性能与架构

web安全 - 文件上传漏洞

文件上传本身是互联网中最为常见的一种功能需求,所以文件上传漏洞攻击是非常常见,并且是危害极大的 常见安全问题 1) 上传文件是Web脚本语言,服务器的Web...

37370
来自专栏区块链

权限管理与数据恢复

1、SQL的安全机制: 客户机安全:系统安全 服务器安全:登录SQL实例安全 数据库安全:访问数据库安全 对象安全:对数据库对象的操作安全 2、服务器安全:登录...

20470
来自专栏Flutter入门到实战

Flutter填坑全面总结

Flutter是一个新的跨平台开发的工具,博主也玩了一段时间,一步步的踩着坑摸石头过河,这其中受尽了各种各样的坑,各种谷歌,stackoverflow,Flut...

63020
来自专栏ytkah

thinkcmf安装教程与目录结构详解 快速上手版

  最近接了一个建站项目,要求用thinkcmf来搭建,ytkah在想php都大致一样吧,快速地下载安装包,可是!怎么安装呢?没看到安装指引文件或目录,查看了安...

54240
来自专栏androidBlog

Git ssh 配置及使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdutxiaoxu/article/details/...

42720

扫码关注云+社区

领取腾讯云代金券