操作系统安全加固

用户需按照所在组织的安全策略,及时更新安全补丁,并使用所在组织认可的软件版本。

防火墙配置

操作系统安装后,若配置普通用户,可以通过在“/etc/login.defs”文件中新增“ALWAYS_SET_PATH”字段并设置为“yes”,防止越权操作。此外,为了防止普通用户通过su root继承环境变量从而提权,可以将服务器配置文件“/etc/default/su”中的配置参数“ALWAYS_SET_PATH”设置为“yes”

K8s的安装部署阶段需要关闭防火墙,生产环境中安全的做法是在防火墙上配置K8s各组件通信的端口以及网络策略,具体配置方法请自行查看官方文档。

设置umask

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

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

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

    vim /etc/profile

  2. “/etc/profile”文件末尾加上umask 077,保存并退出。
  3. 执行如下命令使配置生效。

    source /etc/profile

无属主文件安全加固

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

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

防Dos攻击

可以通过添加白名单和调整服务组件并发参数大小等方式,防止资源被恶意请求占满。客户端维持连接的时间取决于服务器所设置的“keepAlive”相关参数,请根据实际业务合理设置TCP保活时间、探测次数和探测间隔。

为防止SYN攻击,根据实际业务需求,打开“tcp_syncookies”,通过设置“tcp_max_syn_backlog”重新调整SYN队列的长度,通过“tcp_synack_retries”“tcp_syn_retries”重新定义SYN的重试次数。