Linux系统安全加固规范

第1章 概述

1.1 适用范围

本配置标准的使用者包括:服务器系统管理员、应用管理员、网络安全管理员。

1.2 适用版本

LINUX系列服务器;

第2章 账号管理、认证授权

2.1 账号

2.1.1 用户口令设置

|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 安全基线项目名称 | 操作系统Linux用户口令安全基线要求项 |
| 安全基线编号 | SBL-Linux-02-01-01 |
| 安全基线项说明 | 帐号与口令-用户口令设置 |
| 检测操作步骤 | 1、询问管理员是否存在如下类似的简单用户密码配置,比如: root/root, test/test, root/root1234 2、执行:more /etc/login,检查PASS_MAX_DAYS/PASS_MIN_LEN/PASS_MIN_DAYS/PASS_WARN_AGE参数 3、执行:awk -F: '(2 == "") { print 1 }' /etc/shadow, 检查是否存在空口令账号 |
| 基线符合性判定依据 | 建议在/etc/login文件中配置:PASS_MIN_LEN=6 不允许存在简单密码,密码设置符合策略,如长度至少为6 不存在空口令账号 |
| 备注 | |

2.1.2 root 用户远程登录限制

|---------------|---------------------------------------------|
| 安全基线项目名称 | 操作系统Linux远程登录安全基线要求项 |
| 安全基线编号 | SBL-Linux-02-01-02 |
| 安全基线项说明 | 帐号与口令-root用户远程登录限制 |
| 检测操作步骤 | 执行:more /etc/securetty,检查Console参数 |
| 基线符合性判定依据 | 建议在/etc/securetty文件中配置:CONSOLE = /dev/tty01 |
| 备注 | |

2.1.3 检查是否存在除root之外UID为0的用户

|---------------|-------------------------------------------------|
| 安全基线项目名称 | 操作系统Linux超级用户策略安全基线要求项 |
| 安全基线编号 | SBL-Linux-02-01-03 |
| 安全基线项说明 | 帐号与口令-检查是否存在除root之外UID为0的用户 |
| 检测操作步骤 | 执行:awk -F: '(3 == 0) { print 1 }' /etc/passwd |
| 基线符合性判定依据 | 返回值包括"root"以外的条目,则低于安全要求; |
| 备注 | 补充操作说明 UID为0的任何用户都拥有系统的最高特权,保证只有root用户的UID为0 |

2.1.4 root 用户环境变量的安全性

|---------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 安全基线项目名称 | 操作系统Linux超级用户环境变量安全基线要求项 |
| 安全基线编号 | SBL-Linux-02-01-04 |
| 安全基线项说明 | 帐号与口令-root用户环境变量的安全性 |
| 检测操作步骤 | 执行:echo PATH \| egrep '(\^\|:)(\\.\|:\|)',检查是否包含父目录, 执行:find `echo PATH \| tr ':' ' '\` -type d \\( -perm -002 -o -perm -020 \\) -ls,检查是否包含组目录权限为777的目录 | | **基线符合性判定依据** | 返回值包含以上条件,则低于安全要求; find \`echo PATH | tr ':' ' '` -type d \( -perm -777 -o -perm -777 \) -ls |
| 备注 | 补充操作说明 确保root用户的系统路径中不包含父目录,在非必要的情况下,不应包含组权限为777的目录 |

2.1.5 远程连接的安全性配置

|---------------|-------------------------------------------------------------------------------------|
| 安全基线项目名称 | 操作系统Linux远程连接安全基线要求项 |
| 安全基线编号 | SBL-Linux-02-02-01 |
| 安全基线项说明 | 帐号与口令-远程连接的安全性配置 |
| 检测操作步骤 | 执行:find / -name .netrc,检查系统中是否有.netrc文件, 执行:find / -name .rhosts ,检查系统中是否有.rhosts文件 |
| 基线符合性判定依据 | 返回值包含以上条件,则低于安全要求; |
| 备注 | 补充操作说明 如无必要,删除这两个文件 |

2.1.6 用户的umask安全配置

|---------------|-------------------------------------------------------------------------------------------|
| 安全基线项目名称 | 操作系统Linux用户umask安全基线要求项 |
| 安全基线项说明 | 帐号与口令-用户的umask安全配置 |
| 检测操作步骤 | 执行:more /etc/profile more /etc/csh.login more /etc/csh.cshrc more /etc/bashrc检查是否包含umask值 |
| 基线符合性判定依据 | umask值是默认的,则低于安全要求 |
| 备注 | 补充操作说明 直接vi /etc/bashrc 建议设置用户的默认umask=077 数据库机器不装。 |

2.1.7 重要目录和文件的权限设置

|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 安全基线项目名称 | 操作系统Linux目录文件权限安全基线要求项 |
| 安全基线编号 | SBL-Linux-02-02-03 |
| 安全基线项说明 | 文件系统-重要目录和文件的权限设置 |
| 检测操作步骤 | 执行以下命令检查目录和文件的权限设置情况: ls --l /etc/ ls --l /etc/rc.d/init.d/ ls --l /tmp ls --l /etc/inetd.conf ls --l /etc/passwd ls --l /etc/shadow ls --l /etc/group ls --l /etc/security ls --l /etc/services ls -l /etc/rc*.d |
| 基线符合性判定依据 | 若权限过低,则低于安全要求; |
| 备注 | 补充操作说明 对于重要目录,建议执行如下类似操作: # chmod -R 750 /etc/rc.d/init.d/* 这样只有root可以读、写和执行这个目录下的脚本。 |

2.1.8 查找未授权的SUID/SGID文件

|---------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 安全基线项目名称 | 操作系统Linux SUID/SGID文件安全基线要求项 |
| 安全基线编号 | SBL-Linux-02-02-04 |
| 安全基线项说明 | 文件系统-查找未授权的SUID/SGID文件 |
| 检测操作步骤 | 用下面的命令查找系统中所有的SUID和SGID程序,执行: for PART in `grep -v ^# /etc/fstab | awk '(6 != "0") {print 2 }'`; do find / \( -perm -04000 -o -perm -02000 \) -type f -xdev -print Done |
| 基线符合性判定依据 | 若存在未授权的文件,则低于安全要求; |
| 备注 | 补充操作说明 建议经常性的对比suid/sgid文件列表,以便能够及时发现可疑的后门程序 |

2.1.9 检查任何人都有写权限的目录

|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 安全基线项目名称 | 操作系统Linux目录写权限安全基线要求项 |
| 安全基线编号 | SBL-Linux-02-02-05 |
| 安全基线项说明 | 文件系统-检查任何人都有写权限的目录 |
| 检测操作步骤 | 在系统中定位任何人都有写权限的目录用下面的命令: for PART in `awk '(3 == "ext2" \|\| 3 == "ext3") \ { print $2 }' /etc/fstab`; do find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print Done |
| 基线符合性判定依据 | 若返回值非空,则低于安全要求; |
| 备注 | |

2.1.10 查找任何人都有写权限的文件

|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 安全基线项目名称 | 操作系统Linux文件写权限安全基线要求项 |
| 安全基线编号 | SBL-Linux-02-02-06 |
| 安全基线项说明 | 文件系统-查找任何人都有写权限的文件 |
| 检测操作步骤 | 在系统中定位任何人都有写权限的文件用下面的命令: for PART in `grep -v ^# /etc/fstab | awk '(6 != "0") {print 2 }'`; do find $PART -xdev -type f \( -perm -0002 -a ! -perm -1000 \) -print Done |
| 基线符合性判定依据 | 若返回值非空,则低于安全要求; |
| 备注 | |

2.1.11 检查没有属主的文件

|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 安全基线项目名称 | 操作系统Linux文件所有权安全基线要求项 |
| 安全基线编号 | SBL-Linux-02-02-07 |
| 安全基线项说明 | 文件系统-检查没有属主的文件 |
| 检测操作步骤 | 定位系统中没有属主的文件用下面的命令: for PART in `grep -v ^# /etc/fstab | awk '(6 != "0") {print 2 }'`; do find $PART -nouser -o -nogroup -print done 注意:不用管"/dev"目录下的那些文件。 |
| 基线符合性判定依据 | 若返回值非空,则低于安全要求; |
| 备注 | 补充操作说明 发现没有属主的文件往往就意味着有黑客入侵你的系统了。不能允许没有主人的文件存在。如果在系统中发现了没有主人的文件或目录,先查看它的完整性,如果一切正常,给它一个主人。有时候卸载程序可能会出现一些没有主人的文件或目录,在这种情况下可以把这些文件和目录删除掉。 |

2.1.12 检查异常隐含文件

|---------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 安全基线项目名称 | 操作系统Linux隐含文件安全基线要求项 |
| 安全基线编号 | SBL-Linux-02-02-08 |
| 安全基线项说明 | 文件系统-检查异常隐含文件 |
| 检测操作步骤 | 用"find"程序可以查找到这些隐含文件。例如: # find / -name ".. *" -print --xdev # find / -name "...*" -print -xdev | cat -v 同时也要注意象".xx"和".mail"这样的文件名的。(这些文件名看起来都很象正常的文件名) |
| 基线符合性判定依据 | 若返回值非空,则低于安全要求; |
| 备注 | 补充操作说明 在系统的每个地方都要查看一下有没有异常隐含文件(点号是起始字符的,用"ls"命令看不到的文件),因为这些文件可能是隐藏的黑客工具或者其它一些信息(口令破解程序、其它系统的口令文件,等等)。在UNIX下,一个常用的技术就是用一些特殊的名,如:"..."、".. "(点点空格)或"..^G"(点点control-G),来隐含文件或目录。 |

第3章 日志审计

3.1 日志

3.1.1 syslog 登录事件记录

|---------------|------------------------------------------|
| 安全基线项目名称 | 操作系统Linux登录审计安全基线要求项 |
| 安全基线编号 | SBL-Linux-03-01-01 |
| 安全基线项说明 | 日志审计-syslog登录事件记录 |
| 检测操作步骤 | 执行命令:more /etc/syslog.conf 查看参数authpriv值 |
| 基线符合性判定依据 | 若未对所有登录事件都记录,则低于安全要求; |
| 备注 | |

3.2 审计

3.2.1 Syslog.conf 的配置审核

|---------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 安全基线项目名称 | 操作系统Linux配置审计安全基线要求项 |
| 安全基线编号 | SBL-Linux-03-02-01 |
| 安全基线项说明 | 日志审计-Syslog.conf的配置审核 |
| 检测操作步骤 | 执行:more /etc/syslog.conf,查看是否设置了下列项: kern.warning;*.err;authpriv.none\t@loghost *.info;mail.none;authpriv.none;cron.none\t@loghost *.emerg\t@loghost local7.*\t@loghost |
| 基线符合性判定依据 | 若未设置,则低于安全要求; |
| 备注 | 补充操作说明 建议配置专门的日志服务器,加强日志信息的异地同步备份 |

第4章 系统文件

4.1 系统状态

4.1.1 系统core dump状态

|---------------|----------------------------------------------------------------------------|
| 安全基线项目名称 | 操作系统Linux core dump 状态安全基线要求项 |
| 安全基线编号 | SBL-Linux-04-01-01 |
| 安全基线项说明 | 系统文件-系统core dump状态 |
| 检测操作步骤 | 执行:more /etc/security/limits.conf 检查是否包含下列项: * soft core 0 * hard core 0 |
| 基线符合性判定依据 | 若不存在,则低于安全要求 |
| 备注 | 补充操作说明 core dump中可能包括系统信息,易被入侵者利用,建议关闭 |

相关推荐
HackTwoHub3 小时前
解锁 AI 红队全新玩法!Claude-Red 攻防 Skill 库,内置 SQLi、XXE、文件上传等 Web 专项 Skill,一键导入快速落地渗透实战
前端·人工智能·web安全·网络安全·自动化·系统安全
HackTwoHub3 天前
等级保护现场测评系统重磅更新,支持 AI 接入,可录入全品类资产清单,自动化巡检核查,批量导出测评归档文件
运维·人工智能·安全·web安全·网络安全·自动化·系统安全
程序员JerrySUN4 天前
Jetson 刷机深度解析:flash.sh vs l4t_initrd_flash.sh(含安全与磁盘加密对比)
linux·网络·arm开发·安全·系统安全
m0_738120724 天前
AI安全实战系列(六):Lab06 Model Extraction——模型提取攻击
人工智能·安全·网络安全·语言模型·系统安全
m0_738120726 天前
AI安全实战系列(二):Lab01 Foundations和Lab02 Prompt Injection
linux·运维·人工智能·安全·网络安全·系统安全
HackTwoHub7 天前
AntiDebug Mcp、AI逆向绕过前端,Hook 加密接口,抓取 Vue 路由漏洞,接入 MCP 让 AI 自动化挖掘前端漏洞
前端·vue.js·人工智能·安全·web安全·网络安全·系统安全
HackTwoHub8 天前
AI大模型攻击思路,涵盖提示词劫持、知识库投毒、多语种混淆 + 身份伪装、诱导 AI 输出涉密后台核心配置
人工智能·安全·web安全·网络安全·自动化·系统安全·安全架构
Chengbei119 天前
VMware Workstation Pro 26H1免费虚拟化利器
运维·安全·web安全·自动化·系统安全·apache·安全架构
技术不好的崎鸣同学11 天前
Windows 命令提示符(CMD)恶意脚本分析篇
网络·windows·安全·系统安全
Chengbei1113 天前
全新ARL资产灯塔系统(重构版),多维闭环侦察体系,覆盖边界探测、指纹识别、信息收集检测全链路场景
人工智能·安全·web安全·网络安全·重构·系统安全·xss