操作系统安全加固
Agile Controller-IoT运行在SUSE Linux 12上,操作系统的缺省配置通常不满足电信网络管理系统安全性的要求。操作系统通常默认运行冗余的服务、开放不必要的通讯端口、设置易受攻击的TCP/IP参数,因此操作系统容易成为Agile Controller-IoT日常运行和管理过程中的薄弱环节。为了确保Agile Controller-IoT能安全和稳定地运行,应当按照业界网络安全优秀实践加固操作系统,并定期安装安全补丁。
操作系统加固目标
- 最小化原则:通过安全定制策略后,操作系统的开放端口、访问权限和运行服务都会受到一定限制,以仅满足该服务器基本业务可正常运行为目的进行最小化定制,尽可能提高操作系统的安全能力。
- 专用性原则:针对每个Agile Controller-IoT的操作系统,可提供专用于该系统的安全加固策略,体现专业系统提供专门加固策略的原则。
- 适用性原则:所提供的安全加固策略均经过严格的测试,不会影响正常的业务运行。
- 可审计原则:通过专用工具定制的安全策略,可以记录日志,当发生策略变更时,可通过原有的日志记录审计已经定制的策略。
操作系统加固策略
对SUSE操作系统进行安全加固,可以有效降低操作系统级的安全风险,建议您按照CIS提供的Benchmarks对操作系统进行加固。在华为提供SUSE操作系统时,也进行了系统加固,并使用Nessus对系统进行了评估,主要包含限制操作系统服务、日志与审计、内核参数调整、系统访问认证和授权、文件或目录权限、告警信息补丁。如果需要了解安全加固的启动、回退方法以及具体加固内容和默认设置,请参见《操作系统加固建议(CIS_SUSE_Linux_Enterprise_11_Benchmark)》。
操作系统安全补丁策略
华为公司建议您Linux操作系统最少一年一次集中安装补丁,对于供应商发布的高危漏洞应当在供应商发布补丁后尽快安装。
IPv6安全加固建议
禁用IPV6:Agile Controller-IoT集群主要使用IPv4进行通信,操作系统默认开启IPv6,因此建议禁用IPv6。
禁用方法如下:
- 查看是否启用了IPv6。以root用户登录Linux操作系统,输入命令ifconfig,如果接口中有"int6 addr: ",说明启用了IPv6。
- 修改/etc/sysctl.conf,在文件末尾新增:net.ipv6.conf.all.disable_ipv6 = 1。
- 执行sysctl -p /etc/sysctl.conf 使配置生效。
- 执行ifconfig,确认IPv6已禁用。
SSH安全加固建议
- 限定SSH服务的源IP:默认SSH 绑定到所有网卡的所有 IP,端口号是 22。默认配置下操作系统中的所有IP地址都允许SSH登录,包括控制器使用的浮动IP。对外暴露的IP地址也可以被用作SSH登录的IP,存在被外部侵入的风险。建议只在允许外部通过SSH访问的网卡IP上绑定SSH服务,降低风险。
- 以root用户登录Linux操作系统。
- 执行vi /etc/ssh/sshd_config,编辑SSH配置文件。
- 添加ListenAddress 192.168.1.1属性,其中IP地址192.168.1.1为允许外部通过SSH访问的网卡IP。
- 执行service sshd restart重启SSH服务后即可生效。此时外部只能通过这个IP地址进行SSH连接。
- 禁止root帐号远程登录
- 创建低权限用户,用于运维操作。
- 执行vi /etc/ssh/sshd_config,编辑SSH配置文件。
- 搜索PermitRootLogin yes,将yes修改为no
- 执行service sshd restart重启SSH服务后即可生效。
- SSH加密算法,/etc/ssh/sshd_config配置。
- KexAlgorithms的值中删除diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1以及名称以ecdsa-sha2-nistp开头的值,建议使用diffie-hellman-group-exchange-sha256。
- Ciphers建议使用aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com。
- MACs建议使用hmac-sha2-512,hmac-sha2-256。
- HostKeyAlgorithms建议使用rsa-sha2-512,rsa-sha2-256,ssh-ed25519。
SSH通信信息加固建议
屏蔽SSH服务的版本信息,降低攻击风险。
屏蔽方法如下:
- 以root用户登录Linux操作系统。
- 执行vi /etc/ssh/sshd_config,编辑SSH配置文件。
- 检查是否存在Banner属性,如果不存在,添加Banner属性。
- 编辑Banner属性的指定文件,修改文件内容为“Default Version”。
建议客户在运维阶段修改SSH的版本信息说明,避免其他主机获取SSH版本信息。
telnet安全加固建议
telnet安全性较低,建议禁用telnet,使用SSH。telnet禁用方法如下:
- 输入chkconfig telnet 确认telnet服务是否启用,若显示on,则说明telnet服务启用,建议禁用。
- 输入vi /etc/xinetd.d/telnet,将disable=no改成disable=yes。
- 输入chkconfig telnet off。
- 输入chkconfig --del telnet 设置telnet服务开机不启动。
- 输入/etc/init.d/xinetd restart 使更改生效。
- 输入 vi /etc/services 注释23号端口。
禁用TFTP协议
TFTP协议不安全,建议禁用。关闭命令:chkconfig tftp off。
禁用FTP协议
FTP协议不安全,建议禁用。关闭命令:service vsftpd stop。
防止低权限用户通过继承环境变量提权
输入cat /etc/login.defs | grep ALWAYS_SET_PATH,若显示为no,建议修改为yes。
防止历史命令泄漏敏感信息
操作系统的历史口令查询(如上下键、ctrl + r、历史记录命令history)等方式,会显示口令等敏感信息,导致敏感信息泄漏,建议如下防御措施:
- 操作完敏感的命令后,及时删除命令记录,输入命令:history -c。欧拉操作系统不支持此命令,建议使用措施2或措施3。
- 针对特定操作期间关闭历史记录;业务命令执行前执行命令set +o history 临时禁用历史功能;需要重启历史功能,执行命令set -o history将环境恢复原状。
- 可以通过设置环境变量HISTCONTROL=ignorespace,然后在输入带密码的命令行前加一个空格,强制Linux不记录某些敏感历史命令;此操作是临时生效,若想永久生效,请修改配置环境变量:
- SUSE操作系统,编辑/etc/bash.bashrc,末尾添加 export HISTCONTROL=ignorespace;重启操作系统。
- 欧拉操作系统,编辑/etc/bashrc,末尾添加 export HISTCONTROL=ignorespace;重启操作系统。
操作系统口令复杂度检查建议
通过白盒方式检查操作系统口令复杂度配置。linux 检查方法如下:
- 查看操作系统中口令的配置文件
- /etc/pam.d/common-password(Debian-base systems)
- /etc/security/pwquality.conf (RedHat/CentOS)
-
password requisite pam_cracklib.so retry=5 difok=3 minlen=6 ucredit=-1 lcredit=-1 dcredit=-1 dictpath=/usr/share/cracklib/pw_dict
参数
说明
retry
尝试次数
difok
最少不同字符
minlen
最小密码长度
ucredit
限制密码中最少包含的大写字符
lcredit
限制密码中最少包含的小写字符
dcredit
限制密码中最少包含的数字
关闭风险6010端口
SSH默认开启参数X11Forawarding,导致6010端口开启,关闭端口方法如下:
- 输入/etc/ssh/sshd_config,将X11Forawarding参数注释掉。
- 重启SSH服务。
增加防火墙策略(仅国网场景)
限制南向最大TCP连接数为200,输入如下命令:
iptables -A INPUT -p tcp --dport xxxxx -m connlimit --connlimit-above 200 -j REJECT
其中xxxxx为南向SG服务提供的前置机接入端口(详见通讯矩阵),默认端口号为10020。
标签:操作系统,etc,禁用,telnet,安全,SSH,linux,加固 From: https://www.cnblogs.com/Amelie2024/p/18623438