博客摘录「 华为云平台-FusionSphere OpenStack 8.2.1 系统加固」2025年7月15日

编号 加固项 "风险

等级" 加固原理/Rationale 审计方法/Audit 期望结果/Expect Results 加固方法/Remediation

1 OpenSSH加固配置

1.1 OpenSSH加固配置

1.1.1 SSH使用的版本 H "Open SSH V2版本在安全性能、方便性上有所提高,默认使用V2版本。

如果用户根据实际需要采用V1版本,可登录主机将数值修改为"1"。

" 查看/etc/ssh/sshd_config文件 Protocol被设置为"2" 将Protocol设置为2

1.1.2 SSH密码算法 H "基于SSH加密传输的安全性需求,请使用以下加密算法:AES128,AES256,AES192,允许同时配置多个算法,以逗号隔开。

" 查看/etc/ssh/sshd_config文件 Ciphers被设置为"aes128-ctr,aes192-ctr,aes256-ctr"(x86系统下)或"aes128-ctr,aes192-ctr,aes256-ctr,chacha20-poly1305@openssh.com,aes128-gcm@openssh.com,aes256-gcm@openssh.com"(arm系统下) 将Ciphers配置项设置为"aes128-ctr,aes192-ctr,aes256-ctr"(x86系统下)或"aes128-ctr,aes192-ctr,aes256-ctr,chacha20-poly1305@openssh.com,aes128-gcm@openssh.com,aes256-gcm@openssh.com"(arm系统下)

1.1.3 SSH认证方式 H 允许公钥认证。 查看/etc/ssh/sshd_config文件 PubkeyAuthentication被设置为"yes" 将PubkeyAuthentication设置为"yes"

1.1.4 SSH认证方式 H 允许使用RSA算法进行安全验证。 查看/etc/ssh/sshd_config文件 RSAAuthentication被设置为"yes"(仅X86系统) 将RSAAuthentication设置为"yes"(仅X86系统)

1.1.5 SSH认证方式 H 认证时不需要使用"rhosts"和"shosts"文件。 查看/etc/ssh/sshd_config文件 IgnoreRhosts被设置为"yes" 将IgnoreRhosts设置为"yes"

1.1.6 SSH认证方式 H 不允许用rhosts或"/etc/hosts.equiv"加上RSA进行安全验证。 查看/etc/ssh/sshd_config文件 RhostsRSAAuthentication被设置为"no"(仅X86系统) 将RhostsRSAAuthentication设置为"no"(仅X86系统)

1.1.7 SSH认证方式 H 需要通过密码认证(需要手动在键盘输入密码认证) 查看/etc/ssh/sshd_config文件 PasswordAuthentication被设置为"yes" 将PasswordAuthentication设置为"yes"

1.1.8 SSH访问所有权 H 设置SSH在接收登录请求之前不检查用户目录和rhosts文件的权限和所有权 查看/etc/ssh/sshd_config文件 StrictModes被设置为"yes" 将StrictModes设置为"yes"

1.1.9 SSH登录前显示提示信息 H 设置SSH登录前显示提示信息。默认的提示信息为"Authorized users only. All activity may be monitored and reported."。 查看/etc/ssh/sshd_config文件 Banner被设置为"/etc/issue.net" 将Banner设置为"/etc/issue.net"

1.1.10 SSH日志 H "在记录来自sshd的消息的时候,是否给出"facility code"。

 KERN:内核信息。

 DAEMON:与xinetd相关的信息。

 USER:用户程序产生的日志信息。

 AUTH:认证信息。

 MAIL:邮件程序产生的日志信息。

" 查看/etc/ssh/sshd_config文件 SyslogFacility被设置为"AUTH" 将SyslogFacility设置为"AUTH"

1.1.11 SSH日志 H 记录日志提供的详细程度,该值从低到高顺序是:QUIET、FATAL、ERROR、INFO、VERBOSE、DEBUG。 查看/etc/ssh/sshd_config文件 LogLevel被设置为"VERBOSE" 将LogLevel设置为"VERBOSE"

1.1.12 禁止空密码用户登录 H 空密码用户是指口令为空的用户,基于安全考虑禁止空密码用户登录系统。 查看/etc/ssh/sshd_config文件 PermitEmptyPasswords被设置为"no" 将PermitEmptyPasswords设置为"no"

1.1.13 PAM登录认证 H 使用PAM模块认证。 查看/etc/ssh/sshd_config文件 UsePAM被设置为"yes" 将UsePAM设置为"yes"

1.1.14 禁止root用户直接SSH登录系统 H 允许root用户直接登录系统,攻击者可能会暴力破解root密码或绕过认证直接登入系统,获取系统超级权限,因此禁止root用户直接SSH登录系统。 查看/etc/ssh/sshd_config文件 PermitRootLogin被设置为"no" 将PermitRootLogin设置为"no"

1.1.15 允许external_om和internal_base平面网段访问22端口 H 不允许除external_om和internal_base平面网段的其他网段访问22端口 执行命令:iptables-save | grep ssh-INPUT 返回结果中存在external_om和internal_base平面网段 无

2 系统访问安全配置

2.1 系统访问安全配置

2.1.1 禁止通过CTRL+ALT+DEL重启系统 H 禁止通过"ALT+CTRL+DEL"重启系统,防止机器遭受非授权的人为的重启 查看/etc/systemd/system/ctrl-alt-del.target和/usr/lib/systemd/system/ctrl-alt-del.target "/etc/systemd/system/ctrl-alt-del.target和

/usr/lib/systemd/system/ctrl-alt-del.target文件不存在" "删除如下文件和链接

rm -f /etc/systemd/system/ctrl-alt-del.target

rm -f /usr/lib/systemd/system/ctrl-alt-del.target"

2.1.2 设置会话超时后系统自动退出 M 无人看管的终端容易被监听或被攻击,可能会危及系统安全。设置会话在5分钟(300秒)没有活动的情况下会话超时。当会话超时时自动退出终端,降低系统被攻击的风险 查看/etc/profile文件 文件中有: export TMOUT=300 文件中有:export TMOUT=300

2.1.3 限制命令历史记录的数量 M Linux会自动记录用户输入过的命令,用于问题定位时查看,此处限制最多记录5000条,当超过5000条时,删除最老的记录 查看/etc/profile文件 "文件中有:

export HISTSIZE=5000

" "在文件中添加:

export HISTSIZE=5000

"

2.1.4 禁用魔术键 H 禁用魔术键,避免由于直接发送命令到内核对系统造成影响,增强内核安全性 查看/etc/sysctl.d/60-uvp-security.conf文件 /etc/sysctl.d/60-uvp-security.conf中,将配置项"kernel.sysrq"设置为"=0" /etc/sysctl.d/60-uvp-security.conf中,将配置项"kernel.sysrq"设置为"=0"

2.1.6 设置内核oops后系统重启 H oops是指内核发生严重错误,最普遍的是引用了内存空地址。安全加固默认系统在发生该情况时重启,防止系统带病运行带来严重的影响 查看/etc/sysctl.d/60-uvp-security.conf文件 "/etc/sysctl.d/60-uvp-security.conf中,将配置项"kernel.panic_on_oops"设置为"=1"

" /etc/sysctl.d/60-uvp-security.conf中,将配置项"kernel.panic_on_oops"设置为"=1"

3 文件及目录安全配置

3.1 文件及目录安全配置

3.1.1 只允许文件属主对本文件进行修改,禁止其他用户对该文件的修改 H 禁止其他用户删除或修改系统日志文件,保证系统日志的完整性 查看/var/log/目录下文件权限 普通用户没有这些文件的修改和执行权限 "执行如下命令。

chmod go-wx /var/log/*

"

3.1.2 设置日志目录和系统命令目录的权限 H 设置/var/log和/sbin、/usr/sbin目录权限为root用户可读写并执行,其他用户可读和可执行 查看/var/log /sbin /usr/sbin目录下文件夹的权限 /var/log /sbin /usr/sbin目录下文件夹的权限分别为755、777、555 "执行如下命令。

chmod 755 /var/log

chmod 777 /sbin

chmod 555 /usr/sbin"

3.1.3 为全局可写目录/tmp设置粘贴位 M 对于公共可写目录/tmp设置粘贴位,避免个人文件被他人修改 查看/tmp目录的权限 /tmp目录的权限信息中有"t"标识 "执行如下命令。

chmod o+t /tmp"

3.1.4 禁止非root用户读写或进入/root目录 H 禁止非root用户读写或进入/root目录 查看/root目录权限 目录权限为700 "执行如下命令。

chmod 700 /root"

3.1.5 设置口令文件权限 H 设置口令文件权限,防止普通用户读取或拷贝加密的口令文件内容。默认权限设置为000,该权限的含义是仅允许root用户进行读操作 查看目录/etc/shadow、/etc/shadow-权限 "/etc/shadow目录权限为000

/etc/shadow-目录权限为000" "执行如下命令。

chmod 000 /etc/shadow

chmod 000 /etc/shadow-

"

3.1.6 禁用core dump H core dump记录Linux系统运行错误的相关信息,甚至包含了系统的敏感信息,为了防止系统信息泄露,禁止使用core dump 查看/etc/profile文件 ulimit -c"设置为"0" ulimit -c"设置为"0"

3.1.7 限制at命令的使用权限,禁止非root用户使用at命令 M at命令用于创建在指定时间自动执行的任务,为避免任意用户通过at命令安排工作,造成系统易受攻击,仅指定root用户可使用该命令 查看/etc/at.deny、/etc/at.allow文件 "/etc/at.deny不存在

/etc/at.allow的所属用户组都是root,权限为400

" "执行如下命令。

rm -f /etc/at.deny

rm -f /etc/at.allow

touch /etc/at.allow

chown root:root /etc/at.allow

chmod 400 /etc/at.allow

"

3.1.8 限制cron命令的使用权限,禁止非root用户使用cron命令 M cron命令用于创建例行性任务,为避免任意用户通过cron命令安排工作,造成系统易受攻击,仅指定root用户可使用该命令 "查看/etc/cron.deny、/etc/cron.allow文件

" "/etc/cron.deny不存在

/etc/cron.allow不存在

" "rm -f /etc/cron.deny

rm -f /etc/cron.allow "

3.1.9 设置守护进程的umask值 M umask用来为新创建的文件和目录设置缺省权限,如果没有设定umask值,则生成的文件具有全局可写权限,存在一定的风险。为了提高守护进程新创建文件和目录的安全性,为其设置umask值为027 查看/etc/rc.status文件 umask被设置为"027" 将umask设置为"027"

3.1.10 设置/etc/inittab的模式和所有权 H 设置/etc/inittab的属主和群组都为root,权限为只有root用户可读和可写 查看/etc/inittab文件的权限和所属用户、组 /etc/inittab文件的权限为600,所属用户和组都是root "执行如下命令

chown root:root /etc/inittab

chmod 600/etc/inittab"

4 帐户口令安全及认证配置

4.1 帐户口令安全及认证配置

4.1.1 锁定连续三次登录失败的用户 H 锁定连续三次登录失败的用户(包括root),5分钟(300秒)后自动解锁 查看/etc/pam.d/password-auth和/etc/pam.d/system-auth文件 "文件中有如下配置

auth required pam_faillock.so preauth audit deny=3 even_deny_root unlock_time=300

auth [default=die] pam_faillock.so authfail audit deny=3 even_deny_root unlock_time=300

auth sufficient pam_faillock.so authsucc audit deny=3 even_deny_root unlock_time=300" "在配置文件/etc/pam.d/password-auth和/etc/pam.d/system-auth中,写入如下内容:

auth required pam_faillock.so preauth audit deny=3 even_deny_root unlock_time=300

auth [default=die] pam_faillock.so authfail audit deny=3 even_deny_root unlock_time=300

auth sufficient pam_faillock.so authsucc audit deny=3 even_deny_root unlock_time=300

"

4.1.2 设置密码复杂度 H 用户密码必须符合相应的复杂度要求 查看/etc/pam.d/password-auth和/etc/pam.d/system-auth文件 "文件中有如下配置:

password requisite pam_pwquality.so minlen=8 minclass=3 enforce_for_root try_first_pass local_users_only retry=3 dcredit=0 ucredit=0 lcredit=0 ocredit=0

password required pam_pwhistory.so use_authtok remember=5 enforce_for_root

" "文件中有如下配置:

password requisite pam_pwquality.so minlen=8 minclass=3 enforce_for_root try_first_pass local_users_only retry=3 dcredit=0 ucredit=0 lcredit=0 ocredit=0

password required pam_pwhistory.so use_authtok remember=5 enforce_for_root"

4.1.3 "通用加密算法场景下:密码通过sha512方式进行加密

SM系列商密算法场景下:密码通过sm3方式进行加密" H "通用加密算法场景下:使用不可逆的安全的sha512加密算法对密码进行加密

SM系列商密算法场景下:使用不可逆的安全的sm3加密算法对密码进行加密" "查看"/etc/pam.d/password-auth

"和"/etc/pam.d/system-auth"文件" "文件中有如下配置:

通用加密算法场景下:password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok

SM系列商密算法场景下:password sufficient pam_unix.so sm3 shadow nullok try_first_pass use_authtok" "通用加密算法场景下:在配置文件"/etc/pam.d/password-auth

"和"/etc/pam.d/system-auth"文件中,写入password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok

SM系列商密算法场景下:

在配置文件"/etc/pam.d/password-auth

"和"/etc/pam.d/system-auth"文件中,写入password sufficient pam_unix.so sm3 shadow nullok try_first_pass use_authtok"

4.1.4 验证登录用户的信息是否正确 H 在用户登录系统时使用pam_unix.so验证用户信息是否正确。如果用户信息错误,则禁止用户登录 "查看"/etc/pam.d/password-auth

"和"/etc/pam.d/system-auth"文件" "文件中有如下配置

account required pam_unix.so" "在配置文件"/etc/pam.d/password-auth

"和"/etc/pam.d/system-auth"中,写入如下内容。

account required pam_unix.so

"

4.1.5 设置密码有效期 H 用户需要定期修改密码,密码必须90天以内更换一次,在密码过期前7天提醒用户 查看/etc/login.defs文件 "写入如下内容。

PASS_MAX_DAYS 90

PASS_MIN_DAYS 0

PASS_WARN_AGE 7

" "写入如下内容。

PASS_MAX_DAYS 90

PASS_MIN_DAYS 0

PASS_WARN_AGE 7

"

4.1.6 限制使用su命令的帐户 H 只允许属于wheel群组的帐户使用su命令 查看/etc/pam.d/su文件 "写入如下内容。

auth required pam_wheel.so use_uid

" "写入如下内容。

auth required pam_wheel.so use_uid

"

相关推荐
-曾牛11 分钟前
Linux搭建LAMP环境(CentOS 7 与 Ubuntu 双系统教程)
linux·运维·ubuntu·网络安全·渗透测试·centos·云计算运维
小嵌同学12 分钟前
Linux 内存管理(2):了解内存回收机制
linux·运维·arm开发·驱动开发·嵌入式
sealaugh3220 分钟前
aws(学习笔记第四十九课) ECS集中练习(1)
笔记·学习·aws
绵绵细雨中的乡音42 分钟前
消息队列与信号量:System V 进程间通信的基础
linux
简CC1 小时前
Linux——文件压缩和解压
linux·运维·服务器
哈里谢顿1 小时前
Ironic 中各个接口的作用详解
openstack
cq_run1 小时前
centos9部署jdk
linux·运维·服务器
肥or胖2 小时前
【音视频协议篇】RTSP系列
c++·笔记·音视频
程序员小胡06192 小时前
操作系统系统面试常问(进程、线程、协程相关知识)
linux·面试·职场和发展
LiuYaoheng2 小时前
【Android】ListView与RecyclerView的基础使用
android·笔记·学习