安全加固

概述

本文中列出的安全加固措施为基本的加固建议项。用户应根据自身业务,重新审视整个系统的网络安全加固措施。

用户应按照所在组织的安全策略进行相关配置,包括但不局限于以下内容。

  • 软件版本。
  • 权限配置。
  • 防火墙设置。

必要时可参考业界优秀加固方案和安全专家的建议。用户应参考使用的OS和软件的官方建议方式进行相关的加固。

操作系统安全加固

  • 用户需按照所在组织的安全策略,及时更新安全补丁,并使用所在组织认可的软件版本。
  • 删除或禁用系统无用账号,降低安全风险。
  • 检查是否存在空口令账号。
  • 加强口令复杂度,降低被猜解的可能性。
  • 限制用户使用su。

防火墙配置

  • 操作系统安装后,若配置普通用户,可以通过在“/etc/login.defs”文件中新增ALWAYS_SET_PATH字段并设置为yes,防止越权操作。
  • 为了防止普通用户通过su root继承环境变量从而提权,可以将服务器配置文件“/etc/pam.d/su”中的配置参数ALWAYS_SET_PATH设置为yes。
  • 其他操作用户可以参考所使用的OS相关指引信息。

设置umask

建议用户将主机(包括宿主机)和容器中的umask设置为027及以上,提高安全性。

以设置umask为027为例,具体操作如下所示。

  1. 以root用户登录服务器,编辑“/etc/profile”文件。

    vim /etc/profile
    
  2. 在“/etc/profile”文件末尾加上umask 027,执行:wq保存并退出。

  3. 执行如下命令使配置生效。

    source /etc/profile
    

SSH安全加固

  • 用户可以通过修改/etc/ssh/路径下或者~/.ssh路径下的配置文件,如ssh_config和sshd_config等对SSH连接的安全性进行加固。修改完成后,需重启或重新加载SSH服务,例如执行systemctl restart sshd(或service sshd restart)命令,以使配置生效。特别建议禁止使用SSH v1协议,以及不安全的通信协议加密组件等。
  • 用户需注意,开启root登录会有安全风险,详细信息请参考所使用的操作系统的相关文档。
  • 用户可以通过公私钥的方式进行SSH认证登录。在使用此方式时,用户需要注意使用的算法和密钥长度需要满足所在组织的安全要求。一个参考是RSA算法下密钥长度不应低于3072位。同时,用户不应设置空口令的私钥,这会带来安全风险。
  • 私钥口令的长度和复杂性应当满足用户所在组织的安全要求。

无属主文件安全加固

因为官方Docker镜像与物理机上的操作系统存在差异,系统中的用户可能不能一一对应,导致物理机或容器运行过程中产生的文件变成无属主文件。

用户可以执行find / -nouser -o -nogroup命令,查找容器内或物理机上的无属主文件。根据文件的uid和gid创建相应的用户和用户组,或者修改已有用户的uid、用户组的gid来适配,赋予文件属主,避免无属主文件给系统带来安全隐患。