所选语种没有对应资源,请选择:

本站点使用Cookies,继续浏览表示您同意我们使用Cookies。Cookies和隐私政策>

提示

尊敬的用户,您的IE浏览器版本过低,为获取更好的浏览体验,请升级您的IE浏览器。

升级

FusionCloud 6.3.0 安全管理指南 09

评分并提供意见反馈 :
华为采用机器翻译与人工审校相结合的方式将此文档翻译成不同语言,希望能帮助您更容易理解此文档的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 华为对于翻译的准确性不承担任何责任,并建议您参考英文文档(已提供链接)。
加固操作系统

加固操作系统

设置sudo白名单并限制root用户登录

通过设置sudo白名单并限制root用户登录,可以降低被攻击风险。

操作步骤
  1. paas用户登录PaaS-Core01节点。

    说明:

    本章节用到的节点IP地址请找系统管理员获取。

  2. 执行如下命令进入目录。

    cd /var/paas/bootstrap/scripts

  3. 修改cmd_list格式。

    dos2unix cmd_list

  4. 拷贝命令到其余所有节点。

    scp limit_sudo.sh cmd_list 节点IP地址:/var/paas/

  5. 执行如下命令进行设置。

    sudo bash limit_sudo.sh -l

  6. paas用户分别登录到所有其余节点执行如下命令。

    cd /var/paas/

    sudo bash limit_sudo.sh -l

  7. 执行如下命令验证设置情况:

    sudo vi /etc/sudoers

    如果提示需要输入paas用户密码,则说明已经设置完成。

    说明:

    如果需要查看各个节点设置情况,需要分别在各节点执行该命令。

配置SSH监听指定IP地址

加固影响

配置SSH监听IP地址后,用户只能使用已配置的节点IP地址,通过SSH访问服务器,增强服务器的访问安全。

操作步骤
  1. 以paas用户登录PaaS-Core01节点。
  2. 执行如下命令,切换到root用户。

    su - root

    Password:用户密码

  3. 修改/etc/ssh/sshd_config。

    在/etc/ssh/sshd_config中查找ListenAddress项,修改参数为已配置的本节点ip地址,如ListenAddress 10.10.10.10。如果原来是注释状态,去掉注释符。

  4. 执行如下命令重启sshd服务

    systemctl restart sshd

  5. 依次登录到管理域的所有节点,重复执行步骤 1~步骤 4,配置节点SSH监听节点ip。

如何关闭rpc服务

加固影响

关闭后无法使用nfs服务。

操作步骤
  1. 以paas用户登录PaaS-Core01节点。
  2. 执行如下命令,切换到root用户。

    su - root

    Password:用户密码

  3. 执行如下命令关闭rpc服务。

    systemctl stop rpcbind.socket

  4. 依次登录到管理域的所有节点,重复执行步骤 1~步骤 3,关闭rpc服务。

禁用未使用的文件系统模块

加固影响

无。

操作步骤
  1. 以paas用户登录PaaS-Core01节点。
  2. 执行如下命令,切换到root用户。

    su - root

    Password:用户密码

  3. 执行下面命令,禁用未使用的文件系统模块。

    echo "install cramfs /bin/true" >> /etc/modprobe.d/CIS.conf

    echo "install jffs2 /bin/true" >> /etc/modprobe.d/CIS.conf

    echo "install squashfs /bin/true" >> /etc/modprobe.d/CIS.conf

    echo "install udf /bin/true" >> /etc/modprobe.d/CIS.conf

    echo "install vfat /bin/true" >> /etc/modprobe.d/CIS.conf

    echo "install dccp /bin/true" >> /etc/modprobe.d/CIS.conf

    echo "install sctp /bin/true" >> /etc/modprobe.d/CIS.conf

    echo "install tipc /bin/true" >> /etc/modprobe.d/CIS.conf

  4. 依次登录到管理域的所有节点,重复执行步骤 1~步骤 3,卸载未使用的文件系统模块。

SSH连接配置项加固

加固影响

见加固操作步骤步骤 3~步骤 7

操作步骤
  1. 以paas用户登录PaaS-Core01节点。
  2. 执行如下命令,切换到root用户。

    su - root

    Password:用户密码

  3. 禁止root登录。

    在/etc/ssh/sshd_config中配置“PermitRootLogin no”。

  4. 允许通过创建非特权子进程处理接入请求的方法来进行权限分离。

    在/etc/ssh/sshd_config中配置“UsePrivilegeSeparation yes”。

  5. 不允许TCP转发。

    在/etc/ssh/sshd_config中配置“AllowTcpForwarding no”。

  6. 在接收登录请求之前检查home目录和rhosts文件的权限和所有权。

    在/etc/ssh/sshd_config中配置“StrictModes yes”。

  7. 配置SSH进行数据校验的消息摘要算法。

    在/etc/ssh/sshd_config中配置“MACs hmac-sha2-256,hmac-sha2-512”。

    说明:

    MACs:指定允许在SSH-2中使用哪些消息摘要算法来进行数据校验。多个算法之间使用逗号分隔。

  8. 配置SSH连接加密算法。

    在/etc/ssh/sshd_config中配置“Ciphers aes128-ctr,aes192-ctr,aes256-ctr”。

    说明:

    Ciphers:指定SSH-2允许使用的加密算法。多个算法之间使用逗号分隔。

  9. 配置SSH连接建立时间。

    在/etc/ssh/sshd_config中配置“LoginGraceTime 60”。

  10. 只允许paassftpuser用户登录。

    在/etc/ssh/sshd_config中配置“AllowUsers paas sftpuser”。如果没有这个参数,需添加到配置文件的最后。

  11. 重启SSH。

    service sshd restart

  12. 依次登录到管理域的所有节点,重复执行步骤 1~步骤 11,完成SSH连接配置项加固。

密码修改间隔时间修改

加固影响

加固完成后密码修改间隔时间不短于7天。

操作步骤
  1. 以paas用户登录PaaS-Core01节点。
  2. 执行如下命令,切换到root用户。

    su - root

    Password:用户密码

  3. 配置密码修改间隔时间不短于7天。

    在/etc/login.defs中配置“PASS_MIN_DAYS 7”。

  4. 扫描系统中带密码的全部用户。

    egrep ^[^:]+:[^\!*] /etc/shadow | cut -d: -f1

  5. 设置密码过期提醒时间不短于7天

    chage --mindays 7 <user>

    说明:

    <user>是步骤 4中扫描到的所有用户,每个用户单独执行命令。

  6. 依次登录到管理域的所有节点,重复执行步骤步骤 1~步骤 5,完成加固。

限制登录客户端个数

加固影响

加固完成后用户只能同时不超过10个客户端登录。

操作步骤
  1. 以paas用户登录PaaS-Core01节点。
  2. 执行如下命令,切换到root用户。

    su - root

    Password:用户密码

  3. 限制登录客户端个数。

    在/etc/securetty中删除“tty0”~“tty9”之外的其他console。

  4. 依次登录到管理域的所有节点,重复执行步骤 1~步骤 3,完成加固。

设置core dump配置

加固影响

无。

操作步骤
  1. 以paas用户登录PaaS-Core01节点。
  2. 执行如下命令,切换到root用户。

    su - root

    Password:用户密码

  3. 设置core dump配置。

    1. 在/etc/security/limits.conf中设置“* hard core 0”
    2. 在/etc/sysctl.conf设置“fs.suid_dumpable = 0”
    3. 执行sysctl -w fs.suid_dumpable=0命令

      如果返回fs.suid_dumpable=0信息,说明设置成功。

  4. 依次登录到管理域所有节点,重复执行步骤 1~步骤 3,完成加固。

配置网络参数

加固影响

无。

操作步骤
  1. 以paas用户登录PaaS-Core01节点。
  2. 执行如下命令,切换到root用户。

    su - root

    Password:用户密码

  3. 在/etc/sysctl.conf中设置“net.ipv6.conf.all.accept_ra = 0”、“net.ipv6.conf.default.accept_ra = 0”、“net.ipv4.icmp_echo_ignore_all = 1”。

    执行如下命令:

    sysctl -w net.ipv6.conf.all.accept_ra=0

    sysctl -w net.ipv6.conf.default.accept_ra=0

    sysctl -w net.ipv6.route.flush=1

    sysctl -w net.ipv4.icmp_echo_ignore_all=1

  4. 在/etc/sysctl.conf中设置“net.ipv6.conf.all.accept_redirects = 0”、“net.ipv6.conf.default.accept_redirects = 0”。

    执行如下命令:

    sysctl -w net.ipv6.conf.all.accept_redirects=0

    sysctl -w net.ipv6.conf.default.accept_redirects=0

    sysctl -w net.ipv6.route.flush=1

  5. 依次登录到管理域的所有节点,重复执行步骤 1~步骤 4,完成加固。

关闭vim history(可选)

系统中帐号默认可以查看之前对文件进行vim的信息,这里面可能包含一些敏感信息,因此需要对操作系统进行配置,禁止用户生成vim信息。

加固影响

执行加固后,将不再记录vim history。

操作步骤
  1. paas用户逐个登录管理域的所有节点。在每个节点上切换到不同帐号,删除每个帐号家目录下面的.viminfo文件(如果没有这个文件,不用删除)。下面以dbuser用户为例说明。

    su - root

    su - dbuser

    rm .viminfo

  2. 在每个节点上的每个帐号家目录下面的.vimrc文件中增加"set viminfo="的设置。

    vi .vimrc

    在“.vimrc”文件中添加“set viminfo=”。修改完成后,先按“ESC”,然后执行:wq!命令,保存该文件并退出vi编辑器。

设置dbuser密码有效期

可选操作。系统安装过程后dbuser帐号口令永久有效,执行下列操作可以设置密码有效期。

加固影响

执行加固后,需要及时定期修改口令,否则会影响业务功能正常使用。

操作步骤
  1. 获取数据库节点IP。

    说明:
    • 数据库节点参考“加固注意事项”。
    • 本章节用到的节点IP地址请找系统管理员获取。

  2. paas用户逐个登录数据库节点,并切换到root用户,执行后续操作步骤。

    su - root

    Password:用户密码

  3. 执行如下命令设置有效期:

    chage -I 365 -M 90 -m 1 -W 7 dbuser

    说明:

    -I:密码过期多少天后,帐户将被禁用

    -M:密码使用的最大天数

    -m:密码使用的最小天数

    -W:密码过期前多少天警告

  4. 执行如下命令验证设置情况。

    chage -l dbuser

加固dbuser的命令历史记录

升级场景可选操作。系统升级过程中,若历史版本的dbuser帐号未禁用历史记录,可执行下列操作可以禁用历史记录,达到用户安全加固的目的。可以使用步骤 5提供的方法验证是否已经禁用历史记录。

加固影响

执行加固后,dbuser帐号执行history后不再能查看自身执行过的历史命令。

操作步骤
  1. 获取数据库节点IP。

    说明:

    数据库节点参考“加固注意事项”。

  2. paas用户逐个登录数据库节点,并切换到root用户,再切换到dbuser户,执行后续操作步骤。

    su - root

    su - dbuser

  3. 删除已有.bash_history。

    rm -rf ~/.bash_history

  4. 修改~/.bashrc,设置history相关参数。

    echo "unset HISTFILE" >> ~/.bashrc

    echo "HISTFILESIZE=0" >> ~/.bashrc

    echo "HISTSIZE=0" >> ~/.bashrc

    source ~/.bashrc

  5. 验证方法。

    退出dbuser用户后再切换到dbuser,在dbuser用户下执行history,不会再打印历史命令。

数据库节点iptables加固

通过iptables可以限制只有指定的IP地址才能访问数据库,提高数据库的安全性。

参数说明
  • 租户管理域pod所在网段:用变量{MANAGE-POD-IPS}标识
  • 租户管理域节点所在网段:用变量{MANAGE-NODE-IPS}标识
加固方法
  1. 参考暂停主备倒换功能操作,暂停主备倒换功能。
  2. 以paas用户登录Paas-Core01节点,参考获取数据库信息操作,使用dbsvc_adm工具查询数据库信息并记录。
  3. 以paas用户登录Paas-Core01节点,获取租户管理域pod所在网段:

    说明:

    Paas-Core01节点IP,可以询问系统管理员获取。

    ssh paas@{Paas-Core01节点IP }

    su - root

    vi /var/paas/bootstrap/knowledge/{配置文件}

    根据实际部署环境选择配置文件1vm(fusionstage_TinyCoreBase.yaml)、5VM(fusionstage_MicroCoreBase.yaml),如果不清楚,请联系管理员获取。

    获取参数“management_network_subnet”的值为租户管理域网段,例如:172.17.0.0/16

  4. 获取租户管理域节点所在网段。

    • 1VM:“fusionstage_TinyCoreBase.yaml”配置文件中的“cfe_bootstrap_network” 配置项值即为户管理域节点所在网段。
    • 5VM:“fusionstage_MicroCoreBase.yaml”配置文件中的“cfe_bootstrap_network” 配置项值即为户管理域节点所在网段。

  5. 依次登录数据库节点,执行步骤 6~步骤 7,将所有规则项都添加到iptables白名单。

    ssh paas@{数据库节点维护IP }

    su - root

    说明:
    • 数据库节点参考“加固注意事项”。
    • 数据库节点维护IP,可以询问系统管理员获取。

  6. 执行节点加固前,先备份当前的iptables配置,保存还原点。

    iptables-save > /root/iptables.conf.dbm.mysql.bak

  7. 配置iptables。

    说明:

    iptables命令格式参考用例(以下端口均为数据库使用范围内的端口):

    iptables -I INPUT -s 172.16.0.0/16-ptcp -m multiport --dports32080:32089,26500:26509,32090:32099,26520:26549,26650:26749 -j ACCEPT

    如果当前为租户管理域加固节点可以按顺序执行下列命令:
    1. 禁止所有IP地址访问数据库端口。

      iptables -I INPUT -p tcp -m multiport --dports 32080:32089,26500:26509,32090:32099,26520:26549,26650:26749 -j REJECT

    2. 允许租户管理域范围容器ip段访问数据库端口。

      iptables -I INPUT -s {MANAGE-POD-IPS} -p tcp -m multiport --dports 32080:32089,26500:26509,32090:32099,26520:26549,26650:26749 -j ACCEPT

    3. 允许租户管理域范围节点ip段访问数据库端口。

      iptables -I INPUT -s {MANAGE-NODE-IPS} -p tcp -m multiport --dports 32080:32089,26500:26509,32090:32099,26520:26549,26650:26749 -j ACCEPT

    说明:

    在步骤5的过程中,如果需要清除上述某条iptables规则,可以将上述已设置成功的iptables命令内容中的-I参数替换为-D后逐条执行(root用户),直到用iptables -L查看结果中,不再包含待删除的规则。

  8. 如果执行步骤 7中的配置iptables操作失败,可利用步骤 6中备份好的iptables配置文件来恢复到iptables初始配置。具体操作请执行如下命令:

    cd /root/

    iptables-restore iptables.conf.dbm.mysql.bak

  9. 验证加固结果。

    加固完成之后,需要确保如下几项正确:

    • 应用可以正常使用数据库。
    • 参考获取数据库信息操作,使用dbsvc_adm工具能够查询到数据库信息,查询到的实例个数与加固前一致。且Role为Master或Slave时,State字段为Up、Rpl Status字段为Normal。此时说明数据库状态正常。
    • 从不在白名单列表的IP节点上使用mysql或者redis客户端登录已加固的数据库,如果提示不能连接,则表明加固成功。

  10. 若步骤步骤 9验证通过,则在数据节点中分别执行以下操作:

    1. 保存以上配置到iptables.conf文件中。使用root用户执行以下命令。

      iptables-save> /root/iptables.conf

    2. 执行以下命令打开boot.local文件,添加iptables-restore /root/iptables.conf命令到该文件中,按“Esc”,输入“:wq”,并按“Enter”保存配置,回显如下。

      vi /etc/init.d/boot.local

      #! /bin/sh  
      #  
      # Copyright (c) 2002 SuSE Linux AG Nuernberg, Germany. All rights reserved.  
      #  
      # Author: Werner Fink, 1996  
      # Burchard Steinbild, 1996  
      #  
      # /etc/init.d/boot.local  
      #  
      # script with local commands to be executed from init on system startup  
      #  
      # Here you should add things, that should happen directly after booting  
      # before we're going to the first run level.
        
      iptables-restore /root/iptables.conf

  11. 参考恢复主备倒换功能操作,恢复主备倒换功能。
预期结果
  • 本机维护IP地址和容器IP地址的同网段的ip地址能访问本机数据库端口,且重启后依然生效。
  • 其他IP地址不能访问本机mysql和redis端口。

    mysql端口范围

    redis端口范围

    32080:32089

    26500:26509

    32090:32099

    26520:26549

    26650:26749

加固容器应用

可选操作。在数据面节点部署容器应用前,通过配置docker daemon相关的启动参数,可以降低容器应用受到file dos和process dos攻击的风险。

加固影响

执行加固操作后,在该节点运行的容器应用使用的相关资源将受到限制,请根据实际业务情况配置,避免出现应用不可用的情况。

操作步骤
  1. paas用户逐个登录待部署应用节点,并切换到root用户,执行后续操作步骤。
  2. 使用vim修改配置文件 /etc/sysconfig/docker(此处配置文件路径以EulerOS为例,请根据对应操作系统的实际配置文件路径为准),增加相关的启动参数。

    vim /etc/sysconfig/docker

    在文件中的OPTIONS参数中添加如下配置项:
    --default-ulimit nofile = <soft limit>:<hard limit>
    --default-ulimit nproc = <soft limit>:<hard limit>

    其中--default-ulimit nofile用于限制单个容器的文件句柄数,--default-ulimit nproc用于限制docker daemon及其所有容器中非root用户的进程数;soft limit表示软限制,hard limit表示硬限制,请根据业务实际需要填写相应限制值。

  1. 修改完成后,先按“ESC”,然后执行如下命令,保存并退出编辑模式。

    :wq!

  2. 执行如下命令,重启docker服务完成加固。

    service docker restart

翻译
下载文档
更新时间:2019-01-25

文档编号:EDOC1100015665

浏览量:29480

下载量:793

平均得分:
本文档适用于这些产品
相关文档
相关版本
Share
上一页 下一页