博客摘录「 华为云平台-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

"

相关推荐
AlfredZhao33 分钟前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao15 小时前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户97183563346621 小时前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪1 天前
linux 拷贝文件或目录到指定的位置
linux
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush42 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5202 天前
Linux 11 动态监控指令top
linux
小宇宙Zz2 天前
Maven依赖冲突
java·服务器·maven
不会C语言的男孩2 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言