终端/服务器安全基线检查

服务器基线检查(Security Baseline)是对服务器进行安全配置核查的标准化流程:检查账户口令、审计日志、网络防护、服务配置等是否符合安全规范,并对不合规项进行加固。一次完整的基线核查能发现 90% 以上的常见弱配置,是等保测评、渗透测试前期的必备环节。

检查项总览

基线类型 检查项数 高危 中危 低危 信息
Windows 基线 57 8 2 8 39
Linux 基线 63 34 4 21 4
合计 120 42 6 29 43

优先处理高危项:Windows 重点关注默认共享、自动登录、危险服务(Remote Registry/Messenger/TermService)、补丁更新;Linux 重点关注账户口令策略、SSH 配置、日志审计、网络防护。

一、Windows 基线检查(57 项)

所有组策略类检查项均可通过 gpedit.msc 打开本地组策略编辑器操作;服务类通过 services.msc 管理。表格较宽时可在下方横向滚动查看。

账户与密码策略(12 项)

# 检测项 风险 修复操作
1 账户:管理员帐户状态 中危 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“安全选项”,双击右侧“帐户: 管理员帐户状态”设置为“已禁用”。
2 账户:重命名管理员帐户 中危 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“安全选项”,双击右侧“帐户: 重命名管理员帐户”设置为除“Administrator”外的值。
3 密码复杂性要求 低危 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“账户策略”->“密码策略”,双击右侧“密码必须符合复杂性要求”,点击“已启用”使得在更改或创建密码时执行复杂性要求。
4 密码长度最小值 低危 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“账户策略”->“密码策略”,双击右侧“密码长度最小值”设置为大于等于8的数字。
5 账户:来宾帐户状态 低危 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“安全选项”,双击右侧“帐户: 来宾帐户状态”设置为“已禁用”。
6 账户:重命名来宾帐户 低危 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“安全选项”,双击右侧“账户:重命名来宾帐户”设置为除“Guest”外的值。
7 密码最长使用期限 信息 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“账户策略”->“密码策略”,双击右侧“密码最长使用期限”设置为小于等于60天。
8 密码最短使用期限 信息 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“账户策略”->“密码策略”,双击右侧“密码最短使用期限”设置为非0值。
9 强制密码历史 信息 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“账户策略”->“密码策略”,双击右侧“强制密码历史”设置为0-24之间,且不可为0。
10 帐户锁定阈值 信息 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“账户策略”->“账户锁定策略”,双击右侧“帐户锁定阈值”设置为非0值。
11 帐户锁定时间 信息 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“账户策略”->“账户锁定策略”,双击右侧“帐户锁定时间”设置为至少10分钟。
12 复位帐户锁定计数器 信息 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“账户策略”->“账户锁定策略”,双击右侧“复位帐户锁定计数器|重置帐户锁定计数器”设置为非0值。

审核与日志(12 项)

# 检测项 风险 修复操作
13 审核策略更改 信息 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“审核策略”,双击右侧“审核策略更改”设置。
14 审核登录事件 信息 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“审核策略”,双击右侧“审核登录事件”设置。
15 审核对象访问 信息 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“审核策略”,双击右侧“审核对象访问”设置。
16 审核进程跟踪 信息 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“审核策略”,双击右侧“审核进程跟踪”设置。
17 审核目录服务访问 信息 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“审核策略”,双击右侧“审核目录服务访问”设置。
18 审核特权使用 信息 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“审核策略”,双击右侧“审核特权使用”设置。
19 审核系统事件 信息 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“审核策略”,双击右侧“审核账户登录事件”设置。
20 审核账户登录事件 信息 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“审核策略”,双击右侧“审核账户登录事件”设置。
21 审核帐户管理 信息 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“审核策略”,双击右侧“审核帐户管理”设置。
22 应用日志查看器设置 信息 依次打开“控制面板”->“管理工具”->“事件查看器”->“Windows 日志”->“应用程序”,右键选择“属性”,设置日志查看器大小为非0值。
23 系统日志查看器设置 信息 依次打开“控制面板”->“管理工具”->“事件查看器”->“Windows 日志”->“系统”,右键选择“属性”,设置日志查看器大小为非0值。
24 安全日志查看器设置 信息 依次打开“控制面板”->“管理工具”->“事件查看器”->“Windows 日志”->“安全”,右键选择“属性”,设置日志查看器大小为非0值。

网络与登录安全(10 项)

# 检测项 风险 修复操作
25 Microsoft 网络服务器: 登录时间过期后断开与客户端的连接 信息 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“安全选项”,双击右侧“Microsoft 网络服务器: 登录时间过期后断开与客户端的连接”设置为启用。
26 Microsoft 网络服务器: 对通信进行数字签名(如果客户端允许) 信息 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“安全选项”,双击右侧“Microsoft 网络服务器: 对通信进行数字签名(如果客户端允许)”设置。
27 交互式登录:提示用户过期之前修改密码 信息 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“安全选项”,双击右侧“交互式登录:提示用户过期之前修改密码”设置最少为10。
28 交互式登录: 无需按 Ctrl+Alt+Del 信息 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“安全选项”,双击右侧“交互式登录: 无需按 Ctrl+Alt+Del”设置。配置为“已禁用(停用)”。
29 交互式登录: 之前登录到缓存的次数(域控制器不可用时) 信息 此项仅适用于域成员。打开命令提示符,运行命令“gpedit.msc”打开组策略编辑器,浏览到路径“本地计算机策略\计算机配置\Windows设置\安全设置\本地策略\安全选项”,在右边窗格中找到“(交互式登录:)可被缓存保存的前次登录个数(在域控制器不可用的情况下)”或“交互式登录: 之前登录到缓存的次数(域控制器不可用时)”,配置为不大于标准值的值:5。非域成员主机的实际值将显示为0。
30 网络安全: 基于 NTLM SSP 的(包括安全 RPC)服务器的最小会话安全 信息 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“安全选项”,双击右侧“网络安全: 基于 NTLM SSP 的(包括安全 RPC)服务器的最小会话安全”设置为“求128位加密”。
31 网络访问: 不允许匿名枚举 SAM 帐户 信息 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“安全选项”,双击右侧“网络访问: 不允许匿名枚举 SAM 帐户”设置未开启。
32 域成员: 对安全通道数据进行数字加密(如果可能) 信息 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“安全选项”,双击右侧“域成员: 对安全通道数据进行数字加密(如果可能)”设置。
33 域成员: 对安全通道数据进行数字加密或数字签名(始终) 信息 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“安全选项”,双击右侧“域成员: 对安全通道数据进行数字加密或数字签名(始终)”设置。
34 域成员: 对安全通道数据进行数字签名(如果可能) 信息 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“安全选项”,双击右侧“域成员: 对安全通道数据进行数字签名(如果可能)”设置。

系统服务与安全配置(16 项)

# 检测项 风险 修复操作
35 关闭默认共享盘 高危 进入“开始->运行->Regedit”,进入注册表编辑器,更改注册表键值:在HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters\新建DWRD值,数值名称为AutoShareServer,值为0。。
36 允许管理员自动登录 高危 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“安全选项”,双击右侧“恢复控制台: 允许自动管理登录”设置。
37 远程注册表服务 高危 按下WIN+R键输入“services.msc”打开服务,找到“Remote Registry”,双击打开设置为“禁用”。
38 Messenger服务 高危 按下WIN+R键输入“services.msc”打开服务,找到“Messenger”,双击打开设置为“禁用”。
39 Clipbook服务 高危 按下WIN+R键输入“services.msc”打开服务,找到“Clipbook”,双击打开设置为“禁用”。
40 Alerter服务 高危 按下WIN+R键输入“services.msc”打开服务,找到“Alerter”,双击打开设置为“禁用”。
41 TermService服务 高危 按下WIN+R键输入“services.msc”打开服务,找到“TermService”,双击打开设置为“禁用”。
42 检查是否已开启系统补丁更新服务或程序 高危 点击【控制面板】-【系统和安全】找到Windows Update,点击更改设置,选择自动安装更新。
43 启动系统自带防火墙 低危 进入“控制面板“->”网络连接“->”本地连接”,在高级选项的设置中,查看是否启用Windows防火墙。查看是否在“例外”中配置允许业务所需的程序接入网络。查看是否在“例外->编辑->更改范围”编辑允许接入的网络地址范围。当存在多种防火墙类型时,如公用网络、工作网络防火墙时,需全部启用。
44 禁用全部驱动器自动运行 信息 WinXP下, 按下WIN+R键输入“gpedit.msc”打开本地组策略编辑器,依次点击“本地计算机 策略”->“计算机配置”->“管理模板”->“系统”,双击右侧“关闭自动播放”,下方的“关闭自动播放”下拉框中选择“所有驱动器”,点击“确定”保存。 Win7及以上,按下WIN+R键输入“gpedit.msc”打开本地组策略编辑器,依次点击“本地计算机 策略”->“计算机配置”->“管理模板”->“Windows 组件”->“自动播放策略”,双击右侧“关闭自动播放”,下方的“关闭自动播放”下拉框中选择“所有驱动器”,点击“确定”保存。
45 屏幕保护程序启动等待时间 信息 依次打开“控制面板”->“外观和个性化”->“屏幕保护程序”设置为1-15分钟的值。
46 屏幕保护程序是否使用“恢复时显示登陆屏幕” 信息 依次打开“控制面板”->“外观和个性化”->“屏幕保护程序”设置。
47 从远程系统强制关机 信息 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“用户权限分配”,在右侧列表找到该项设置为“系统管理员”。
48 关闭系统 信息 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“用户权限分配”,在右侧列表找到该项设置为“系统管理员、备份操作员(Backup Operators)、高级用户(Power User)”。
49 取得文件或其他对象的所有权 信息 依次点击“本地计算机 策略”->“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“用户权限分配”,在右侧列表找到该项设置为“系统管理员”。
50 启用数据执行保护功能 信息 进入“控制面板->系统->高级系统设置”,在“高级”选项卡的 “性能”下的“设置”。进入 “数据执行保护”选项卡。查看是否设置为“ 仅为基本 Windows 程序和服务启用DEP”。

浏览器安全(7 项)

# 检测项 风险 修复操作
51 禁用VBScript(IE浏览器) 高危 计算机配置\管理模板\Windows 组件\Internet Explorer\Internet 控制面板\安全页\Internet 区域 → "允许在 Internet Explorer 中运行 VBScript" 设置为“已禁用”
52 跨域 HTTP 基本身份验证提示(谷歌浏览器) 低危 计算机配置/用户配置 > 管理模板 > Google/Google Chrome > Google Chrome > HTTP 身份验证的政策 → "跨域 HTTP 基本身份验证提示" 设置为“已禁用”
53 禁用自动填充(谷歌浏览器) 低危 计算机配置/用户配置 > 管理模板 > Google/Google Chrome > Google Chrome → "启用自动埴充" 设置为“已禁用”
54 启用安全浏览(谷歌浏览器) 低危 计算机配置/用户配置 > 管理模板 > Google/Google Chrome > Google Chrome → "启用安全浏览" 设置为“已启用”
55 禁用 ActiveX 控件(IE浏览器) 信息 计算机配置\管理模板\Windows 组件\Internet Explorer\Internet 控制面板\安全页\Internet 区域 → "对未标记为可安全执行脚本的 ActiveX 控件初始化并执行脚本" 设置为“已禁用”
56 阻止文件下载(IE浏览器) 信息 计算机配置\管理模板\Windows 组件\Internet Explorer\Internet 控制面板\安全页\Internet 区域 → "文件下载" 设置为“已禁用”
57 禁用 Java 小程序(IE浏览器) 信息 计算机配置\管理模板\Windows 组件\Internet Explorer\Internet 控制面板\安全页\Internet 区域 → "Java 权限" 设置为“已禁用”

二、Linux 基线检查(63 项)

以下命令兼容 Debian / Ubuntu / CentOS 等主流发行版(包管理命令按发行版调整)。修改前请先备份配置文件。

账户与密码策略(13 项)

# 检测项 风险 修复操作
1 检查系统是否启用了sudo命令 高危 下载安装sudo,neokylin默认没有配置yum 管理设备,需要自己配置,然后按照yum 安装方式执行,或者打neokylin客服电话,进行咨询
2 检查系统中是否存在密码为空的帐户 高危 方法1. 执行命令 su username 切换到指定username用户,然后执行 passwd,根据提示设置密码; 方法2. sudo su - 切换到root用户,然后执行 passwd useranme,根据提示设置username的密码。
3 检查系统中是否存在UID与root帐户相同的帐户 高危 方法 1. 执行命令 usermod -u uid username 其中uid修改为所指定uid 大于10000; 方法 2. root权限 编辑/etc/passwd文件,修改username记录的第二个冒号与第三个冒号之间的值。
4 检查是否存在未禁止登录的系统默认帐户 高危 使用管理员权限修改/etc/passwd文件,修改以下(daemon|bin|sys|sync|games|man|lp|mail|news|uucp|proxy|www-data|backup|list|irc|gnats|nobody|libuuid|speech-dispatcher|rpc|netdump|xfs)帐户的登录时使用的shell为“/sbin/nologin”,及每行最后面,如果不需要禁止这里面的账户,或者禁止其他账户,根据需求修改。
5 检查是否设置密码最小长度 高危 编辑/etc/login.defs文件,取消PASS_MIN_LEN前的#号,并修改PASS_MIN_LEN值为8。
6 检查是否设置密码过期时间 高危 编辑 #vi /etc/login.defs文件,添加或者修改PASS_MAX_DAYS的值为90,即PASS_MAX_DAYS=90。
7 检查是否设置了密码更改最小间隔周期 高危 编辑#vi /etc/login.defs文件,并修改或添加PASS_MIN_DAYS 2,表示至少2天修改一次密码,如果需要频繁修改密,则注释掉或删掉这行,又或者设置为0。
8 检查是否设置密码在设定时不能使用前几次密码的次数限制 高危 相关文件 1.Debian / Ubuntu:所在文件 #/etc/pam.d/common-password, 2.CentOS / RedHat / Fedora 所在文件 #/etc/pam.d/system-auth 3.suse 所在文件 /etc/pam.d/passwd或者/etc/pam.d/common-password(最新版在这个下面) 编辑对应文件,在 password sufficient pam_unix.so 所在行最后面添加remember=5 表示不能重复前5次的密码。
9 检查是否配置密码复杂度策略 高危 修改/etc/security/pwquality.conf文件,在ucredit=1 lcredit=1 dcredit=1 ocredit=1 选3种,取消注释,并修改为ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1。注:ucredit:大写字母个数;lcredit:小写字母个数;dcredit:数字个数;ocredit:特殊字符个数。
10 检查是否设置密码过期前警告天数 中危 编辑/etc/login.defs文件,并修改或添加PASS_WARN_AGE 7,表示密码过期的前七天提醒。
11 检查记录历史命令条数是否设置 中危 编辑文件/etc/profile,修改或添加HISTSIZE=1000,表示1000条历史命令
12 检查是否禁止wheel组之外的用户使用su命令切换到root 低危 这里采用pam管理,1.编辑 /etc/pam.d/su文件,添加或修改为下面两行:auth required pam_wheel.so group=wheel 和 auth sufficient pam_rootok.so 2. 然后把需要使用sudo命令用户添加到wheel组, 执行命令:usermod –G wheel username
13 检查是否可以查看系统的OS补丁 低危 联系neokylin客服,或者去nekylin官网下载最新版os镜像进行升级。

审计与日志(10 项)

# 检测项 风险 修复操作
14 检查是否开启日志功能 高危 1.老版本没有使用systemd的管理服务时,使用传统命令"service syslog(rsyslog|syslog-ng) start"或者/etc/init.d/syslog start来启动日志服务(两者等价)。 2.使用systemd的系统使用命令"systemctl start syslog(rsyslog|syslog-ng).service"来启动服务。 注:后面服务管理方式都是类似
15 检查是否开启audit日志审计功能 高危 使用管理员权限输入命令"service auditd start"或者"systemctl start auditd.service"开启审计服务,如无法开启或不存在服务,请安装审计安装包(audit)后重新尝试。
16 检查启用系统核心转储设置 高危 编辑#vi /etc/security/limits.conf文件,添加或者修改下面两行 * soft core 0 ,* hard core 0
17 检查是否设置审计日志保存时间 高危 检查审计日志默认保存时间是否符合规范,建议保存180天内的日志。则编辑/etc/logrotate.conf,如果日志轮转周期设置为weekly(默认)则建议修改rotate值为27,表示27周,同理若周期为daily则建议rotate设置为180,表示180天,若周期为monthly则建议设置为6,表示6个月。
18 检查是否对登录进行日志记录 高危 登录日志文件为/var/log/wtmp, /var/log/utmp,这两个个文件中记录着所有登录过主机的用户,时间,来源等内容,这个文件不具可读性,可用last命令来看。 如果命令无结果,请检查系统安装是否正确,如有需要请重新安装。
19 检查用户对设备的操作是否被记录 低危 通过设置日志文件可以对每个用户的每一条命令进行记录,这一功能默认是不开放的,为了打开它,需要安装pacct工具,并执行以下命令: #touch /var/log/pacct #accton /var/log/pacct 执行读取命令lastcomm username –f /var/log/pacct
20 检查是否配置syslog-ng安全事件的日志 低危 编辑/etc/syslog-ng/syslog-ng.conf 配置: filter f_msgs { level(err) or facility(kern) and level(debug) or facility(daemon) and level(notice); }; destination msgs { file("/var/adm/msgs"); }; log { source(src); filter(f_msgs); destination(msgs); }; 其中/var/adm/msgs为日志文件。 如果该文件不存在,则创建该文件,执行命令# touch /var/adm/msgs,并修改权限为666。执行命令 # chmod 666 /var/adm/msgs. 重启日志服务: #/etc/init.d/syslog restart
21 检查是否配置rsyslog安全事件的日志 低危 编辑/etc/rsyslog.conf 添加或者修改为 *.err;kern.debug;daemon.notice /var/adm/messages 其中/var/adm/messages为日志文件。 如果该文件不存在,则创建该文件,执行命令# touch /var/adm/messages,并修改权限为666 执行命令# chmod 666 /var/adm/messages. 重启日志服务: #service rsyslog restart 或者 systemctl restart rsyslog.service
22 检查是否配置syslog安全事件的日志 低危 编辑/etc/syslog.conf 配置: *.err;kern.debug;daemon.notice /var/adm/messages 其中/var/adm/messages为日志文件。 如果该文件不存在,则创建该文件,命令为: touch /var/adm/messages,并修改权限为666 执行# chmod 666 /var/adm/messages. 重启日志服务: #service syslog restart 或者 systemctl restart syslog.service
23 检查是否启用syslog日志审计 低危 1. 若启用syslog,则编辑/etc/syslog.conf, 若启用rsyslog,则编辑/etc/rsyslog.conf, 选择对应文件添加: authpriv.* /var/log/secure 2. 若启用syslog-ng,则编辑:/etc/syslog-ng/syslog-ng.conf。 添加: filter f_secure { facility(authpriv); }; destination priverr { file("/var/log/secure"); }; log { source(src); filter(f_secure); destination(priverr); }; 3. 创建/var/log/secure文件,执行命令 touch /var/log/secure 4. 重启syslog服务 #/etc/init.d/syslog(rsyslog|syslog-ng) restart 或者 systemctl restart syslog(rsyslog|syslog-ng).service。

网络与登录安全(13 项)

# 检测项 风险 修复操作
24 检查是否设置ssh远程登录密码最大重试次数 高危 编辑/etc/pam.d/sshd文件,在"#%PAM-1.0"下面添加或者修改 auth required pam_tally2.so deny=5 unlock_time=1800,即表示最大重试次数5次,失败锁定帐户时间30分钟(1800秒)。
25 检查是否允许root帐户ssh远程登录 高危 编辑/etc/ssh/sshd_config文件,修改或者注释 PermitRootLogin no;然后重启sshd服务 执行systemctl restart sshd.service 或者 service sshd restart
26 检查是否没有允许所有IP访问主机 高危 编辑#vi /etc/hosts.allow,删除或者注释掉 sshd:All
27 检查是否配置禁止所有ip段访问主机 高危 编辑 #vi /etc/hosts.deny,添加或修改sshd:All
28 检查是否已禁用telnet服务 高危 执行 ps -ef | grep telnet 等命令找到telnet服务后将其关闭 1.执行systemctl stop telnet.socket或者service telnet.socket stop停止telnet; 2. 执行chkconfig telnet off 禁止telnet开机自启动。 3. 执行service xinetd restart使命令生效
29 检查是否用户的最小权限是否符合规定 高危 执行下面三个命令 1. # chmod 644 /etc/passwd,2. # chmod 644 /etc/group,3. # chmod 600 /etc/shadow
30 检查是否配置帐户认证失败的次数 高危 相关文件 1. Debian / Ubuntu:所在文件 #/etc/pam.d/common-account, 2. CentOS / RedHat / Fedora 所在文件 #/etc/pam.d/system-auth 3. suse 所在文件 /etc/pam.d/passwd或者/etc/pam.d/common-auth(最新版在这个下面) 编辑对应文件添加:auth required pam_tally2.so deny=5 unlock_time=1800 no_lock_time 参数说明: deny #连续认证失败次数超过的次数 unlock_time #锁定的时间,单位为秒
31 检查系统当前的umask默认权限值是否符合规范 中危 编辑 /etc/profile,添加或者修改umask 0022,或者执行 umask 022
32 检查系统是否禁止所有广播包 低危 为了防止异常修改前请先备份配置文件 #cp -p /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts.bak ,执行命令 #sysctl -w net.ipv4.icmp_echo_ignore_broadcasts="1" 并修改/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts的值为1
33 检查系统是否分配组权限 低危 1.为了防止意外,执行备份: #cp -p /etc/group /etc/group.bak 2.创建新的用户组 #groupadd 组名 #usermod -g 组名 -d 用户目录 -m 用户名 把用户添加进入某个组(s),具体使用命令 usermod --help 参考说明进行相关设置
34 检查是否启用cron行为日志功能 低危 1.如果启用了syslog-ng日志则在/etc/syslog-ng/syslog-ng.conf中添加 filter f_cron { facility(cron); }; destination cron { file("/var/log/cron"); }; log { source(src); filter(f_cron); destination(cron); }; 其中/var/log/cron为日志文件。 如果该文件不存在,则创建该文件,命令为: touch /var/log/cron,并修改权限为666.命令为:chmod 666 /var/log/cron; 2.如果启用了rsyslog日志则编辑/etc/rsyslog.conf文件, 配置: cron.* /var/log/cron , 其中/var/log/cron为日志文件。 如果该文件不存在,则创建该文件,命令为: touch /var/log/cron,并修改权限为666.命令为:chmod 666 /var/log/cron; 3.如果启用了syslog日志则编辑/etc/syslog.conf文件, 配置: cron.* /var/log/cron , 其中/var/log/cron为日志文件。 如果该文件不存在,则创建该文件,命令为: touch /var/log/cron,并修改权限为666.命令为:chmod 666 /var/log/cron。
35 检查数据包转发是否关闭 低危 执行命令 #cat /proc/sys/net/ipv4/ip_forward 如果返回值为0,说明数据包转发功能已经关闭,为1则开启。 关闭数据包转发功能: 命令: #sysctl -w net.ipv4.ip_forward=0
36 检查是否关闭IP欺骗和多IP绑定功能 低危 1. 编辑/etc/host.conf文件: 添加或者修改nospoof on #关闭IP伪装;配置2. 编辑/etc/host.conf文件: 添加或者修改multi off #关闭多IP绑定

系统服务与安全配置(24 项)

# 检测项 风险 修复操作
37 检查是否启用了不必要的系统服务 高危 查看正在运行的服务 #ps -ef;如果有需要关闭的服务,如finger,则执行命令: # /etc/init.d/finger stop 或者 service finger stop 或者 systemctl stop finger#关闭正在运行的finger服务。需要关闭不必要的基本服务有:finger、telnet、sendmail、time、echo、discard、daytime、chargen、comsat、klogin、kshell、ntalk、talk、tftp、uucp、dtspc、smb、ident、printer、bootps、lpd、nfs、nfslock、ypbind
38 检查系统是否允许root帐户telnet远程登录 高危 使用pam管理,编辑 /etc/pam.d/login文件,添加行"auth required pam_securetty.so"。
39 检查环境变量PATH目录下是否存在权限为777的目录 高危 执行命令 ls -l `echo $PATH | tr ":" " "` 查看指定PATH变量下目录的权限,并把权限为777的挑选出来,执行命令 chmod 755 dirname修改目录权限,按照对应的要求设置,默认一般大多数情况为755,dirname为要修改权限的目录名。
40 检查环境变量目录下是否存在权限为777的文件 高危 执行命令 ls -l `echo $PATH | tr ":" " "` 查看指定PATH变量下文件的权限,并把权限为777的挑选出来,执行命令 chmod 644 filename修改目录权限,按照对应的要求设置,默认一般大多数情况为644,filename为要修改权限的文件名。
41 检查系统会话超时配置 高危 以管理员权限执行,vi /etc/profile,添加 export TMOUT=480(单位:秒,可根据具体情况设定超时退出时间,要求不大于480秒),注销用户,再用该用户登录激活该功能
42 检查是否禁用了talk服务 高危 编辑# vi/etc/xinetd.d/talk,修改service talk的disable属性值改为yes;或执行命令"chkconfig talk off"或"systemctl diable talk.service" 来禁止开机启动
43 检查是否禁用了ntalk服务 高危 编辑#vi /etc/xinetd.d/ntalk,修改service ntalk的disable属性值改为yes。或执行命令"chkconfig ntalk off"或"systemctl diable ntalk.service",来禁止开机启动
44 检查是否禁用了sendmail服务 高危 执行命令 service sendmail stop or system stop sendmail.service 关闭当前sendmail服务;然后执行chkconfig sendmail off or system disable sendmail.service 关闭sendmail服务开机自动启动。
45 检查是否修改了snmp的默认团体名 高危 编辑#vi /etc/snmp/snmpd.conf,修改private和public对应的团体名为用户自定义设置团体名,根据各自需求修改。
46 检查磁盘是否充足 高危 如果磁盘动态分区空间不足,请联系建议管理员扩充磁盘容量,或者购买硬盘,或者云主机申请扩容,或者删除无用的其他文件。
47 检查NFS服务配置是否关闭 高危 1. 如果需要开启NFS服务,则编辑文件:vi /etc/hosts.allow 增加一行:portmap: 允许访问的IP;2.如果需要停止NFS服务,执行:#server nfs stop 或者 systemctl stop nfs 。
48 检查系统是否开启缓冲区溢出攻击(ASLR) 高危 编辑文件/proc/sys/kernel/randomize_va_space,并修改内容为1或者2。建议修改为2,安全性最高。
49 检查PATH环境变量是否含有相对路径 中危 编辑#vi /etc/profile或/home/username/.bash_profile 在环境变量$PATH中把包含(.和..)的路径换成绝对路径,或者直接删除.
50 检查/etc/aliases和/etc/mail/aliases是否禁用不必要的别名文件 低危 1. 编辑别名文件vi /etc/aliases,删除或注释掉下面的行 #games: root #ingres: root #system: root #toor: root #uucp: root #manager: root #dumper: root #operator: root #decode: root #root: marc 更新后运行/usr/bin/newaliases,使其改变生效; 2. 编辑别名文件vi /etc/mail/aliases,删除或注释掉下面的行 #games: root #ingres: root #system: root #toor: root #uucp: root #manager: root #dumper: root #operator: root #decode: root #root: marc 修改后运行命令:/usr/bin/newaliases,使其改变生效。
51 检查是否启动空闲时自动定时锁定屏幕功能(适用于具备gnome图形界面的设备) 低危 配置方法:一般在如下路径中 "系统设置"-->"显示设置"-->“屏幕保护程序”; 启用空闲激活 或用命令方式: gsettings set org.gnome.desktop.screensaver idle-activation-enabled true 启用屏幕锁定 或使用命令: gsettings set org.gnome.desktop.screensaver lock-enabled true 启用空闲激活时间 或使用命令: gsettings set org.gnome.desktop.screensaver lock-delay 15 根据具体情况设置时间
52 检查是否禁止源路由 低危 为了防止异常修改前请先备份配置文件,执行cp -p /proc/sys/net/ipv4/conf/all/accept_source_route /proc/sys/net/ipv4/conf/all/accept_source_route.bak,然后执行 #sysctl -w net.ipv4.conf.all.accept_source_route="0" 并修改/proc/sys/net/ipv4/conf/all/accept_source_route的值为0
53 检查是否禁止icmp重定向报文 低危 为了防止异常修改前请先备份配置文件 #cp -p /proc/sys/net/ipv4/conf/all/accept_redirects /proc/sys/net/ipv4/conf/all/accept_redirects.bak ,执行命令 #sysctl -w net.ipv4.conf.all.accept_redirects="0" 并修改/proc/sys/net/ipv4/conf/all/accept_redirects的值为0
54 检查系统内核是否发送重定向 低危 为了防止异常修改前请先备份配置文件 #cp -p /proc/sys/net/ipv4/conf/all/send_redirects /proc/sys/net/ipv4/conf/all/send_redirects.bak ,执行命令 #sysctl -w net.ipv4.conf.all.send_redirects="0" 并修改/proc/sys/net/ipv4/conf/all/send_redirects的值为0
55 检查系统是否内核IP转发 低危 为了防止异常修改前请先备份配置文件 #cp -p /proc/sys/net/ipv4/ip_forward /proc/sys/net/ipv4/ip_forward.bak ,执行命令 #sysctl -w net.ipv4.ip_forward="0" 并修改/proc/sys/net/ipv4/ip_forward的值为0
56 检查是否使用NTP同步时间,以及对应服务是否安装开启 信息 1.检查是否安装ntp服务器, redhat centos使用rpm -qa | grep ntp查看(其他发行版本根据具体命令查看),没有则执行yum install ntp,2.配置文件/etc/ntp.conf是否配置同步的服务器,应有下面类似内容server 0.centos.pool.ntp.org iburst,根据自己选择添加同步时间的服务器; 3.检查是否有ntp服务,a. redhat7(fedora20 centos7 ubuntu 15.04 suse20 debian8)以前的版本(没有使用systemd替换SysV) 使用chkconfig --list 检查是否有ntp服务,如果没有则添加,使用命令 chkconfig --add ntpd,然后设定等级chkconfig ntpd on,最后开启服务service ntpd restart; b.使用systemd的系统使用命令 systemctl list-unit-files --type=service | grep -cE 'ntp|ntpd' 查询是否有ntp服务,没有则添加,使用systemctl add ntpd.service,启动服务systemctl start ntpd.service 参考网址https://linux.cn/article-5581-1.html
57 检查ssh登录前的警告是否设置 信息 1. 执行如下命令创建ssh banner信息文件: #touch /etc/ssh/banner #chown bin:bin /etc/ssh/banner #chmod 644 /etc/ssh/banner #echo "您想想设置的信息"> /etc/ssh/banner 可根据实际需要修改该文件的内容。 2. 修改/etc/ssh/sshd_config文件,添加如下行: Banner /etc/ssh/banner 3.重启sshd服务: #/etc/init.d/sshd restart
58 检查ssh登录后警告是否设置 信息 修改文件/etc/motd的内容,如没有该文件,则创建它。 #echo "您想设置的信息"> /etc/motd根据实际需要修改该文件的内容
59 检查登录issue提示信息设置是否符合规范 信息 编辑#vi /etc/issue and /etc/issue.net 添加内容 " 你想提示的登录信息" 请根据实际需求添加绝修改其中的内容,但是不要出现系统敏感信息,如CentOS等操作系统名称。
60 检查是否有文件拥有suid和sgid权限 信息 执行命令: find /usr/bin/chage /usr/bin/gpasswd /usr/bin/wall /usr/bin/chfn /usr/bin/chsh /usr/bin/newgrp /usr/bin/write /usr/sbin/usernetctl /usr/sbin/traceroute /bin/mount /bin/umount /bin/ping /sbin/netreport -type f -perm /6000 2>/dev/null 如果有不符合权限文件filename,执行chmod 755 filename修改文件的权限。 例如:chmod a-s /usr/bin/gpasswd

用户与文件权限(3 项)

# 检测项 风险 修复操作
61 检查是否分配普通用户 低危 为用户创建帐号: #useradd username #创建帐号 #passwd username #设置密码 修改权限: #chmod 750 directory #其中755为设置的权限,可根据实际情况设置相应的权限,directory是要更改权限的目录) 使用该命令为不同的用户分配不同的帐号,设置不同的口令及权限信息等。
62 检查是否配置远程日志功能 低危 1.若启用syslog-ng日志则在/etc/syslog-ng/syslog-ng.conf中配置destination logserver { udp("192.168.0.1" port(514)); }; log { source(src); destination(logserver); }; 将192.168.0.1替换为实际的IP; 2.若启用rsyslog日志则修改配置文件vi /etc/rsyslog.conf, 加上: *.* @192.168.0.1 可以将"*.*"替换为你实际需要的日志信息。比如:kern.* ; mail.* 等等。 将192.168.0.1替换为实际的IP或域名。; 3.若启用syslog日志则修改配置文件vi /etc/syslog.conf, 加上: *.* @192.168.0.1 可以将"*.*"替换为你实际需要的日志信息。比如:kern.* ; mail.* 等等。 将192.168.0.1替换为实际的IP或域名。
63 检查重要文件属性设置是否符合规范 低危 对/etc/passwd文件,/etc/shadow文件,/etc/group文件,/etc/gshadow分别添加隐藏属性,执行命令如:chattr +i /etc/passwd

三、检查流程建议

  1. 先备份:修改 /etc/passwd、/etc/shadow、/etc/ssh/sshd_config 等关键文件前先 cp -p 备份
  2. 高危优先:先处理 42 项高危项,再处理中危、低危
  3. 验证影响:SSH 相关配置(如禁用 root 登录)修改后先开一个新终端验证可登录,再断开当前连接
  4. 工具辅助:可用 lynis(apt install lynis)、openscap 等自动化工具做初步扫描,再逐项人工复核
  5. 生成报告:检查结果按「检查项 / 风险等级 / 是否合规 / 修复状态」记录,作为等保测评和验收依据

四、加固速查(中高危项)

仅列出中危、高危检查项,按风险等级从高到低排列,可当工作清单逐项处理。

Windows 中高危(11 项)

# 风险 检查项
1 高危 关闭默认共享盘
2 高危 允许管理员自动登录
3 高危 远程注册表服务
4 高危 Messenger服务
5 高危 Clipbook服务
6 高危 Alerter服务
7 高危 TermService服务
8 高危 检查是否已开启系统补丁更新服务或程序
9 高危 禁用VBScript(IE浏览器)
10 中危 账户:管理员帐户状态
11 中危 账户:重命名管理员帐户

Linux 中高危(37 项)

# 风险 检查项
1 高危 检查系统是否启用了sudo命令
2 高危 检查系统中是否存在密码为空的帐户
3 高危 检查系统中是否存在UID与root帐户相同的帐户
4 高危 检查是否存在未禁止登录的系统默认帐户
5 高危 检查是否设置密码最小长度
6 高危 检查是否设置密码过期时间
7 高危 检查是否设置了密码更改最小间隔周期
8 高危 检查是否设置密码在设定时不能使用前几次密码的次数限制
9 高危 检查是否配置密码复杂度策略
10 高危 检查是否开启日志功能
11 高危 检查是否开启audit日志审计功能
12 高危 检查启用系统核心转储设置
13 高危 检查是否设置审计日志保存时间
14 高危 检查是否对登录进行日志记录
15 高危 检查是否设置ssh远程登录密码最大重试次数
16 高危 检查是否允许root帐户ssh远程登录
17 高危 检查是否没有允许所有IP访问主机
18 高危 检查是否配置禁止所有ip段访问主机
19 高危 检查是否已禁用telnet服务
20 高危 检查是否用户的最小权限是否符合规定
21 高危 检查是否配置帐户认证失败的次数
22 高危 检查是否启用了不必要的系统服务
23 高危 检查系统是否允许root帐户telnet远程登录
24 高危 检查环境变量PATH目录下是否存在权限为777的目录
25 高危 检查环境变量目录下是否存在权限为777的文件
26 高危 检查系统会话超时配置
27 高危 检查是否禁用了talk服务
28 高危 检查是否禁用了ntalk服务
29 高危 检查是否禁用了sendmail服务
30 高危 检查是否修改了snmp的默认团体名
31 高危 检查磁盘是否充足
32 高危 检查NFS服务配置是否关闭
33 高危 检查系统是否开启缓冲区溢出攻击(ASLR)
34 中危 检查是否设置密码过期前警告天数
35 中危 检查记录历史命令条数是否设置
36 中危 检查系统当前的umask默认权限值是否符合规范
37 中危 检查PATH环境变量是否含有相对路径

基线检查不是一次性的工作——服务器每变更一次配置、每上线一个新服务,都应该重新核查一遍。把这份清单存成模板,配合定期巡检(建议每月一次),能持续保持服务器的安全水位。