本文为软考信息安全工程师个人学习笔记,依据官方考试大纲与公开技术规范整理,仅用于学习交流,不作为商业用途。
一、Unix/Linux操作系统层次结构
UNIX/Linux操作系统分为三层:
| 层级 | 名称 | 说明 |
|---|---|---|
| 最底层 | 硬件层 | 物理硬件平台 |
| 中间层 | 系统内核 | 操作系统核心,管理硬件资源 |
| 最上层 | 应用层 | 用户应用程序和服务 |
对比记忆:Windows系统三层架构为硬件抽象层、内核层、系统服务模块层。考试可能以选择题或案例分析形式出现对比。
多用户多任务特性:
- 多用户:允许多个用户同时使用操作系统资源(区别于仅支持多用户账户创建)
- 多任务:系统可同时处理多个任务
二、Unix/Linux安全机制
2.1 认证机制
UNIX/Linux提供四种认证方式:
| 认证方式 | 说明 |
|---|---|
| 基于口令的认证 | 基础密码验证方式 |
| 终端认证 | 限制超级用户从特定IP/终端远程登录的安全机制(如仅允许指定IP登录root账户) |
| 主机信任机制 | 系统提供不同主机之间的相互信任机制,使得不同主机用户之间无须系统认证就可以登录 |
| 第三方认证 | 一次一密口令认证S/Key(抗重放攻击)、Kerberos认证系统、插入式身份认证PAM |
考试重点:终端认证的安全意义——限制超级用户远程登录IP。S/Key一次一密口令抗重放攻击。
2.2 审计机制
不同版本UNIX/Linux日志文件目录不同:
| 版本 | 日志目录 |
|---|---|
| 早期版本UNIX | /usr/adm |
| 较新版本UNIX | /var/adm |
| Solaris、Linux、BSD | /var/log |
2.3 访问控制机制
UNIX/Linux一般通过文件访问控制列表(ACL)实现系统资源控制,即常说的"9bit"位权限。
权限结构(10位表示):
d rwx r-x --- │ │ │ └── 其他用户权限(第8-10位) │ │ └────── 同组用户权限(第5-7位) │ └────────── 用户权限(第2-4位) └───────────── 文件类型(第1位)文件类型:
| 字符 | 类型 |
|---|---|
| - | 普通文件 |
| d | 目录文件 |
| l | 链接文件 |
| b | 设备文件 |
| p | 管道文件 |
权限位含义:r=可读(4),w=可写(2),x=可执行(1),-=无访问权限。
示例解析:文件-rwxr-xr--
- 用户test:读、写、执行(rwx = 7)
- 同组用户:读、执行(r-x = 5)
- 其他用户:只读(r-- = 4)
数字表示法:如644权限 = 用户读写(6=4+2)+ 同组只读(4)+ 其他只读(4)。
考试重点:需掌握数字表示、字母表示和文字描述三种权限表达方式的相互转换。
三、Unix/Linux系统安全增强技术
3.1 系统补丁软件包
- 及时从应急响应安全站点获取漏洞公布信息,根据危害情况安装补丁包
- 安装补丁前必须确认补丁软件包的数字签名,检查完整性,保证补丁可信,防止特洛伊木马或恶意代码攻击
- Linux中可用MD5Sum检查工具判断补丁软件包的完整性
3.2 最小化系统网络服务
满足业务前提下,尽量关闭不需要的服务和网络端口。
具体安全要求:
| 配置项 | 要求 |
|---|---|
| inetd.conf文件权限 | 设置为600(仅root可读写) |
| inetd.conf文件属主 | root |
| services文件权限 | 设置为644(root可读写,其他只读) |
| services文件属主 | root |
| 注销不必要服务 | finger、echo、chargen、rsh、rlogin、tftp等 |
| 端口开放策略 | 只开放与业务运行有关的网络通信端口 |
3.3 设置系统开机保护口令
在UNIX/Linux中,用户可通过特殊组合键无须用户名和口令就能以单用户身份进入系统。
双重保护机制:
- 第一重:操作系统登录密码
- 第二重:BIOS密码(防止通过PE系统绕过认证)
防护措施:设置BIOS开机保护口令,阻止入侵者开机;同时尽量避免入侵者物理临近系统。
3.4 弱口令检查
常用口令检查工具:John the Ripper。
3.5 禁用默认账号
如禁用root远程登录等。
3.6 用SSH增强网络服务安全
针对Telnet、FTP的安全问题,一般采用SSH(Secure Shell)增强安全。
- SSH提供认证、加密等安全服务
- 在两台或多台主机之间构造加密通道,保证通信安全
- 使用非对称加密建立安全会话
- 典型端口22(需在防火墙放行)
3.7 利用tcp_wrapper增强访问控制
通过tcp_wrapper,管理员可设置对inetd提供的各种服务进行监控和过滤。
- 功能类比:相当于Windows的端口过滤器
- 控制维度:基于IP地址、端口号进行访问控制
- 支持permit/deny规则设置
3.8 构筑UNIX/Linux主机防火墙
支持的防火墙软件包:
| 工具 | 说明 |
|---|---|
| ipchains | 早期版本 |
| iptables | 现行主流 |
| netfilter | 内核级 |
考试重点:2021年案例分析曾考察iptables配置。规则语法类似网络设备ACL,包含源/目的IP、端口等匹配条件,支持permit/deny动作。
3.9 使用Tripwire或MD5Sum完整性检测工具
建立新系统后,记录所有系统文件的硬件和软件信息,形成系统文件基准信息库,以便日后检查系统文件完整性变化,避免恶意程序植入和修改。
- MD5Sum:计算文件哈希值,补丁包完整性验证
- Tripwire:进行周期性校验,发现被篡改的文件
3.10 检测LKM后门
LKM(可加载内核模块)后门可直接修改系统核心,恶意模块可导致系统崩溃。
专用检测工具:
| 工具 | 说明 |
|---|---|
| Kstat | 内核状态检查 |
| Chkrootkit | rootkit检测 |
| Rootkit Hunter | 综合检测工具 |
3.11 系统安全监测
UNIX/Linux系统安全是动态的,对运行系统进行实时监控有利于及时发现安全问题。
常用安全工具:
| 工具 | 说明 |
|---|---|
| Netstat | 网络连接监控 |
| Isof | 文件打开状态查看 |
| Snort | 开源入侵检测系统 |
监控重点:异常高的CPU/内存占用进程、可疑网络连接行为。
四、系统安全增强配置
4.1 禁止访问重要文件
对于系统中关键性文件(如inetd.conf、services、lilo.conf等):
# 改变文件属性为600chmod600/etc/inetd.conf# 保证文件属主为root,设置为不能改变chattr +i /etc/inetd.conf# 只有root重新设置复位标志后才能修改chattr-i/etc/inetd.confchattr +i:设置不可更改标志,需root执行chattr -i才能解除锁定。
4.2 禁止不必要的SUID程序
SUID可以使普通用户以root权限执行某个程序,存在提权风险。
- 应严格控制系统中的SUID程序
- 仅保留必要的最小集合(如passwd等必要管理程序)
- 其他非必要程序应去除SUID位
4.3 为LILO增加开机口令
在/etc/lilo.conf文件中增加选项,使LILO启动时要求输入口令。
安全注意:LILO中口令以明码方式存放,必须配合
chmod 600 /etc/lilo.conf限制文件访问权限。
4.4 设置口令最小长度和最短使用时间
修改文件/etc/login.defs中的参数:
| 参数 | 说明 | 建议值 |
|---|---|---|
| PASS_MIN_LEN | 口令最小长度 | 至少8(系统默认通常为5) |
| PASS_MIN_DAYS | 口令最短使用时间 | 如42天 |
4.5 限制远程访问
通过/etc/hosts.allow和/etc/hosts.deny两个文件允许和禁止远程主机对本地服务的访问。
配置方法:
# hosts.deny:默认拒绝所有ALL: ALL@ALL# hosts.allow:明确允许特定IP/网段ftp:202.XXX.XXX YYY.com允许内容书写格式:
| 允许内容 | 书写格式 |
|---|---|
| ssh允许单个IP | sshd:192.168.220.1 |
| ssh允许IP段 | sshd:192.168.220. |
| telnet允许单个IP | in.telnetd:192.168.220.1 |
| telnet允许IP段 | in.telnetd:192.168.221. |
验证工具:使用tcpdchk检查设置是否正确。
4.6 用户超时注销
修改/etc/profile文件,在"HISTFILESIZE="行的下一行增加:
TMOUT=600所有用户将在10分钟无操作后自动注销(数值单位为秒),防止用户离开后未注销导致安全隐患。
4.7 注销时删除命令记录
编辑/etc/skel/.bash_logout文件,增加:
rm-f$HOME/.bash_history用户注销时自动删除命令记录。如只需针对特定用户(如root),在该用户主目录下修改.bash_history文件即可。
安全意义:防止敏感操作命令被他人查看,特别建议为root用户配置。
五、安全模块应用
5.1 Linux安全模块(LSM)
Linux安全模块(LSM)为Linux内核提供了一个轻量级的、通用目的的访问控制框架,使得很多不同的访问控制模型可以作为可加载模块来实现。
实现方式:采用在内核源代码中放置钩子的方法,对内核内部对象的访问进行控制。
工作流程:系统调用→DAC检测→LSM模块检查→策略引擎决策→访问引导回家。
5.2 插件式身份验证模块(PAM)
通过"插件"增加UNIX/Linux新的身份验证服务,而无须更改原有的系统登录服务(如Login、FTP、Telnet)。
- 可与Kerberos等安全机制集成
- 模块化设计避免影响系统底层安全
- 四大功能模块:验证服务模块、账户管理模块、会话管理模块、口令管理模块
5.3 安全增强Linux(SELinux)
SELinux(Security Enhanced Linux)由策略和实施组成:
- 策略封装在安全服务器中
- 实施由对象管理器具体执行
访问控制能力:
- 基于角色的访问控制(RBAC)
- 强制访问控制(MAC)
执行流程:对象请求→策略查询→SID映射→安全上下文映射→策略实施。
六、国产操作系统安全分析与防护
6.1 主要国产操作系统
中科方德、中标麒麟、北京凝思科技、普华、深度Linux、华为鸿蒙操作系统、阿里飞天云操作系统、统信UOS。
重要考点:均基于开源Linux内核进行深度定制开发。
6.2 国产操作系统安全风险
| 风险类型 | 说明 |
|---|---|
| Linux内核安全风险 | 内核漏洞:输入验证错误、缓冲区溢出错误、边界条件错误、访问验证错误、异常条件处理错误、环境错误、配置错误、条件竞争错误、设计错误等 |
| 自主研发系统组件安全 | 软件复杂性导致自主研发组件可能存在安全漏洞 |
| 依赖第三方系统组件安全 | 依赖的第三方组件存在安全漏洞(如OpenSSL协议安全漏洞) |
| 系统安全配置不当 | 未启用安全功能、设置弱口令、开放过多服务端口、使用非安全远程登录工具等 |
| 硬件安全 | 受制于硬件而产生的安全问题 |
6.3 国产操作系统安全增强措施
在自主可控、安全可信方面,对开源Linux进行安全增强,从内核到应用提供全方位安全保护:
| 措施 | 说明 |
|---|---|
| 管理员分权 | 实施三权分立(操作员/审计员/安全管理员) |
| 最小特权 | 仅分配任务所需最低权限 |
| 结合角色的基于类型的访问控制 | 基于角色和类型的细粒度访问控制 |
| 细粒度自主访问控制 | 精细化的自主访问控制 |
| 多级安全 | 严格遵循"禁止上读下写"的多级安全策略 |
本章小结
本章节系统梳理了Unix/Linux操作系统的安全机制与防护实践:
- 三层架构:硬件层→系统内核→应用层(对比Windows:硬件抽象层/内核/服务模块)
- 多用户多任务:多用户=同时使用资源,多任务=同时处理多个任务
- 四种认证:口令认证/终端认证(限制root远程IP)/主机信任机制/第三方认证(S/Key一次一密/Kerberos/PAM)
- 审计日志目录:早期/usr/adm→较新/var/adm→Solaris/Linux/BSD用/var/log
- 9bit权限控制:文件类型(d/-/l/b/p)+用户权限+同组权限+其他权限,数字表示r=4/w=2/x=1
- 11项安全增强技术:补丁完整性校验(MD5Sum+数字签名)/最小化服务(inetd.conf 600/services 644/注销finger等)/BIOS开机密码/弱口令检查(John the Ripper)/禁用默认账号/SSH替代TelnetFTP/tcp_wrapper访问控制/防火墙(iptables/netfilter)/完整性检测(Tripwire/MD5Sum)/LKM后门检测(Chkrootkit/Rootkit Hunter)/系统监测(Netstat/Isof/Snort)
- 7项增强配置:禁止访问重要文件(chmod 600+chattr +i)/禁止不必要SUID/LILO开机口令(明文需chmod 600)/口令策略(PASS_MIN_LEN≥8/PASS_MIN_DAYS)/远程访问控制(hosts.allow/hosts.deny+tcpdchk)/超时注销(TMOUT=600)/注销删命令记录(rm .bash_history)
- 安全模块:LSM(内核钩子框架)/PAM(插件式认证,四大模块)/SELinux(策略+实施,支持RBAC和MAC)
- 国产操作系统:均基于Linux内核定制(中标麒麟/鸿蒙/UOS等),五大风险(内核漏洞/自主组件/第三方依赖/配置不当/硬件),五项增强(分权/最小特权/类型访问控制/细粒度DAC/多级安全禁止上读下写)
上述内容中,9bit权限转换、四种认证方式、SSH替代Telnet、iptables防火墙、SUID风险、hosts.allow/deny配置、国产操作系统基于Linux内核、SELinux支持RBAC+MAC为高频考点,Linux安全增强配置和iptables规则可能出现在下午案例分析题中。
本文为软考信息安全工程师个人学习笔记,依据官方考试大纲与公开技术规范整理,仅用于学习交流,不作为商业用途。