当前位置: 首页 > news >正文

系统安全配置与加固

用途限制声明,本文仅用于网络安全技术研究、教育与知识分享。文中涉及的渗透测试方法与工具,严禁用于未经授权的网络攻击、数据窃取或任何违法活动。任何因不当使用本文内容导致的法律后果,作者及发布平台不承担任何责任。渗透测试涉及复杂技术操作,可能对目标系统造成数据损坏、服务中断等风险。读者需充分评估技术能力与潜在后果,在合法合规前提下谨慎实践。

这里我们来讲述系统安全配置与加固,在进行内网渗透工程中,我们接触到的,利用最多的就是系统,了解系统的安全配置有利于我们进行渗透测试,比如说提权,横向移动等操作,当我们无法利用系统或者服务漏洞来进行提权或者横向移动时,那么利用安全配置的缺陷来进行渗透就是一个很好的思路。接下来我们来讲述windows和linux系统的安全配置以及相应的加固。

系统安全的核心是构建 “纵深防御体系”,覆盖身份认证、访问控制、内存保护、日志审计、网络防护、漏洞管理、数据加密七大维度。本文将分别拆解 Windows(以 Win10/Win11、Server 2019/2022 为例)与 Linux(以 CentOS 7/8、Ubuntu 20.04/22.04 为例)的原生安全机制,并提供可落地的加固操作(含命令、配置路径、验证方法)。

第一部分:Windows 系统安全机制与加固

Windows 通过 “本地安全策略 + 域策略 + 内置防护组件” 构建安全体系,需重点加固 “账户安全、权限控制、网络边界、日志审计” 四大模块。

一、身份认证机制与加固(账户安全核心)

1. 原生安全机制

机制名称

原理与作用

适用场景

本地账户(SAM 数据库)

账户信息存储于C:\Windows\System32\config\SAM(哈希加密,非明文),支持密码策略(复杂度、有效期)。

非域环境的单机 / 服务器

域账户(Active Directory)

账户信息集中存储于域控制器(DC),支持组策略统一管控,依赖 Kerberos 协议认证。

企业域环境(多主机统一管理)

UAC(用户账户控制)

限制普通用户权限,高权限操作(如安装软件、修改系统配置)需管理员授权(弹窗确认),防止恶意程序自动执行。

所有 Windows 系统

Windows Hello

支持生物识别(指纹、面部、PIN 码),替代传统密码,基于 TPM 2.0 芯片存储认证信息,防窃取。

个人 PC / 笔记本(需硬件支持)

账户锁定策略

连续登录失败 N 次后锁定账户(默认无,需手动配置),防暴力破解。

本地 / 域账户均适用

2. 加固操作(关键步骤)

(1)强化本地账户密码策略

配置路径:控制面板 → 管理工具 → 本地安全策略 → 账户策略 → 密码策略

策略项

推荐值

作用

密码必须符合复杂性要求

已启用

密码需包含大小写、数字、特殊字符(长度≥8)

密码长度最小值

10 个字符

防止弱口令(如 123456)

密码最长使用期限

90 天

定期更换密码,降低泄露风险

强制密码历史

记住 5 个以前的密码

防止重复使用旧密码

密码最短使用期限

2 天

防止频繁改密码绕过历史限制

验证:新建用户或修改密码时,系统会强制校验复杂度(如输入123456会提示 “不符合策略”)。

(2)加固 UAC 权限

配置路径:控制面板 → 用户账户 → 更改用户账户控制设置

推荐级别:选择 “始终通知”(最高级别),任何程序修改系统设置或安装软件均需管理员确认,防止静默安装恶意程序。

注意:域环境可通过 “组策略” 统一配置所有主机的 UAC 级别(域控制器 → 组策略管理 → 默认域策略 → 计算机配置 → Windows 设置 → 安全设置 → 本地策略 → 安全选项 → 用户账户控制:管理员批准模式中管理员的提升权限提示行为)。

(3)禁用 / 删除冗余账户

操作工具:lusrmgr.msc(本地用户和组)

删除默认 “Guest” 账户(来宾账户,权限低但易被利用);

禁用无实际用途的账户(如旧员工账户、测试账户);

重命名 “Administrator” 账户(默认账户名易被暴力破解,改为非默认名称如Admin_2024)。

命令行操作(管理员权限):

net user Guest /active:no  # 禁用Guest账户

wmic useraccount where name='Administrator' rename 'Admin_2024'  # 重命名管理员账户

二、访问控制机制与加固(权限最小化)

1. 原生安全机制

机制名称

原理与作用

关键组件

DAC(自主访问控制)

资源(文件 / 文件夹 / 注册表)所有者可自主设置权限(如 “读取”“写入”“完全控制”),基于用户 / 组分配权限。

文件属性 → 安全选项卡

ACL(访问控制列表)

每个资源关联一张 ACL 表,记录 “哪些用户 / 组拥有哪些权限”,支持精细化权限控制(如拒绝特定用户访问)。

安全描述符(SD)

权限继承

子文件夹 / 文件默认继承父文件夹的权限,简化权限配置,但需防止继承导致的权限泄露。

高级安全设置 → 继承选项

特殊权限(如 Take Ownership)

仅管理员可获取文件所有权,防止普通用户篡改系统关键文件(如SAM数据库)。

SeTakeOwnershipPrivilege权限

2. 加固操作(核心是 “最小权限”)

(1)系统分区与关键目录权限加固

核心原则:仅给 “Administrators” 和 “SYSTEM” 账户 “完全控制” 权限,普通用户仅给 “读取” 权限,防止恶意篡改系统文件。

目录路径

推荐权限配置

C:\Windows

Administrators(完全控制)、SYSTEM(完全控制)、Users(读取 & 执行)、TrustedInstaller(完全控制)

C:\Program Files

同C:\Windows(防止普通用户安装恶意软件)

C:\Users\Public

Users(读取 & 执行)、Administrators(完全控制)(公共目录防止普通用户写入恶意文件)

C:\Windows\System32\config

仅 Administrators 和 SYSTEM(完全控制)(含 SAM 数据库,严禁普通用户访问)

操作步骤:

右键目录 → 属性 → 安全 → 编辑 → 移除无关用户 / 组(如 “Everyone”);

对保留的用户 / 组,严格分配权限(如 Users 仅 “读取 & 执行”);

取消 “允许继承权限”(如需自定义权限),并选择 “复制” 现有权限(避免权限丢失)。

(2)注册表权限加固

关键注册表路径(防止恶意修改系统配置):

HKEY_LOCAL_MACHINE\SOFTWARE(软件安装信息)

HKEY_LOCAL_MACHINE\SYSTEM(系统核心配置,如服务、驱动)

权限配置:仅 Administrators 和 SYSTEM(完全控制),Users(读取),禁止普通用户写入。

操作工具:regedit.exe → 右键注册表项 → 权限 → 按上述原则配置。

三、内存与进程防护机制与加固(防恶意代码执行)

1. 原生安全机制

机制名称

原理与作用

启用状态

DEP(数据执行保护)

标记 “数据区域”(栈、堆、全局变量)为 “不可执行”,防止攻击者将恶意代码注入数据区执行(如缓冲区溢出)。

分 “仅 Windows 程序和服务”“所有程序” 两种模式

ASLR(地址空间布局随机化)

每次程序启动时,随机化代码段、栈、堆、动态链接库(DLL)的内存地址,使攻击者难以预测恶意代码位置。

Windows Vista 及以上默认启用

CFG(控制流保护)

检查函数调用的 “返回地址” 是否合法(基于预设的 “安全调用表”),防止控制流被篡改(如 ROP 攻击)。

Windows 10 及以上默认启用

进程完整性级别(IL)

给进程分配 “低 / 中 / 高” 完整性级别(如浏览器为 “中”,管理员程序为 “高”),低级别进程无法修改高级别进程数据。

任务管理器 → 详细信息 → 完整性列

2. 加固操作(确保防护机制全启用)

(1)启用 DEP 最高级别

配置路径:控制面板 → 系统 → 高级系统设置 → 性能 → 设置 → 数据执行保护

推荐选项:选择 “为所有程序和服务启用 DEP,除了我选择的程序”(避免因兼容性关闭关键防护)。

验证:通过systeminfo命令查看 DEP 状态,输出 “数据执行保护可用” 且 “DEP 策略:已启用”。

(2)确认 ASLR 与 CFG 启用

ASLR 验证:运行cmd → 输入wmic os get osarchitecture, buildnumber,Windows 10 1703 及以上默认强制启用 ASLR,无法手动关闭(需通过组策略修改特殊场景)。

CFG 验证:通过 Visual Studio 编译程序时,默认启用/guard:cf(CFG 编译选项);系统级 CFG 可通过组策略确认:
路径:本地安全策略 → 安全设置 → 本地策略 → 安全选项 → “控制流保护:启用 CFG 的应用程序的强制级别” → 设为 “强制”。

四、网络防护机制与加固(边界安全)

1. 原生安全机制

机制名称

原理与作用

关键组件

Windows 防火墙(WF)

基于 “入站 / 出站规则” 过滤网络流量(按端口、协议、IP 地址限制),默认阻止未授权入站连接。

wf.msc(高级防火墙管理)

高级安全 Windows 防火墙(WFAS)

支持更精细化规则(如域 / 私有 / 公共网络分别配置、IPsec 策略、连接安全规则)。

wf.msc

IPsec(Internet 协议安全)

通过 “加密 + 认证” 保护 IP 数据包传输,防止数据在网络中被窃听或篡改(如域环境中 DC 与客户端的通信)。

组策略 → IPsec 设置

网络隔离(如 VLAN)

域环境中通过组策略划分网络区域(如 “服务器区”“客户端区”),限制跨区域访问。

域控制器组策略

2. 加固操作(重点是 “关闭不必要端口,限制访问源”)

(1)配置 Windows 防火墙入站规则

核心原则:“默认拒绝所有入站连接,仅允许必要服务的端口”(如 SSH、RDP、HTTP/HTTPS)。

必禁用端口(易被攻击的高危端口):

端口号

关联服务

风险点

操作

135

RPC(远程过程调用)

易被用于漏洞攻击(如 MS17-010)

入站规则 → 禁用 “Remote Procedure Call (RPC)”

139

NetBIOS

用于文件共享,易被枚举主机信息

入站规则 → 禁用 “NetBIOS Session Service”

445

SMB 协议

易被利用(如永恒之蓝、勒索病毒)

入站规则 → 禁用 “File and Printer Sharing (SMB-In)”

3389

RDP(远程桌面)

易被暴力破解,暴露远程管理接口

仅允许特定 IP 访问(如公司内网 IP)

配置步骤(以限制 RDP 为例):

打开wf.msc → 入站规则 → 找到 “Remote Desktop - User Mode (TCP-In)”;

右键 → 属性 → 范围 → 远程 IP 地址 → 选择 “下列 IP 地址” → 添加允许的 IP(如192.168.1.0/24);

拒绝所有其他 IP 访问(默认已拒绝,无需额外配置)。

五、日志审计与监控机制与加固(溯源核心)

1. 原生安全机制

机制名称

原理与作用

日志存储位置

Windows 事件日志

记录系统、安全、应用程序三类日志:
- 系统日志:服务启动 / 停止、驱动错误;
- 安全日志:登录 / 注销、权限变更、文件访问;
- 应用日志:软件运行错误 / 警告。

eventvwr.msc(事件查看器)

高级审计策略

支持精细化审计(如 “账户登录审计”“对象访问审计”“特权使用审计”),默认仅开启基础审计。

本地安全策略 → 高级审计策略配置

日志轮转

自动切割过大日志(默认最大 20480KB),防止磁盘占满,但需配置日志备份。

事件查看器 → 日志属性

2. 加固操作(确保 “关键行为可溯源”)

(1)启用高级审计策略

配置路径:本地安全策略 → 高级审计策略配置 → 系统审计策略 → 选择需审计的类别,推荐启用:

审计类别

推荐审计项

作用

账户登录

成功和失败

监控异常登录(如异地登录、暴力破解)

账户管理

成功和失败

监控账户创建 / 删除 / 密码修改(防恶意账户)

对象访问

成功和失败(针对关键文件 / 注册表)

监控系统文件篡改(如 SAM 数据库访问)

特权使用

成功和失败

监控管理员权限滥用(如获取文件所有权)

详细跟踪

进程创建(成功)

监控恶意程序启动(如木马进程)

验证:启用后,执行相关操作(如登录失败、修改文件权限),在事件查看器 → Windows 日志 → 安全中可看到对应审计事件(事件 ID 如 4625 = 登录失败,4688 = 进程创建)。

(2)配置日志备份与轮转

操作步骤:

事件查看器 → 右键 “安全日志” → 属性;

日志大小上限:设为 102400KB(100MB),避免频繁轮转;

当日志达到最大大小时:选择 “存档日志,不覆盖事件”(需定期手动备份或配置脚本自动备份);

备份日志:右键日志 → 保存所有事件(格式为.evtx),存储到非系统分区(防止系统崩溃丢失日志)。

(3)启用进程命令行审计(Windows 10 1809+)

作用:记录进程启动时的完整命令行(如cmd.exe /c ping attacker.com),便于溯源恶意操作。

配置路径:组策略 → 计算机配置 → 管理模板 → Windows 组件 → 事件日志服务 → 安全 → 启用 “在安全日志中记录进程创建的命令行” → 设为 “已启用”。

验证:启动cmd并执行dir,在安全日志中找到事件 ID 4688,“详细信息” 中可看到 “CommandLine: dir”。

六、漏洞与补丁管理机制与加固(防已知漏洞利用)

1. 原生安全机制

机制名称

原理与作用

工具 / 组件

Windows Update(WU)

自动检测并安装系统漏洞补丁、驱动更新、功能更新,支持 “延迟更新”(企业场景)。

设置 → 更新和安全 → Windows 更新

WSUS(Windows Server Update Services)

企业级补丁管理服务器,统一管控域内主机的补丁下载与安装,避免带宽浪费。

服务器管理器 → WSUS 角色

漏洞扫描(Windows Defender)

内置杀毒软件,支持漏洞扫描(如系统漏洞、软件漏洞),与 WU 联动修复。

Windows 安全中心 → 漏洞防护

2. 加固操作(“及时打补丁,定期扫漏洞”)

(1)配置 Windows Update 自动更新

个人 PC / 非关键服务器:
路径:设置 → 更新和安全 → Windows 更新 → 高级选项 → 选择 “自动下载并安装更新”(确保 “接收其他 Microsoft 产品的更新” 已勾选)。

企业关键服务器:
建议通过 WSUS 统一管理,设置 “延迟更新 7-14 天”(测试兼容性后再推送),避免补丁导致服务中断。
操作:服务器管理器 → 添加角色和功能 → 勾选 “Windows Server Update Services” → 配置同步源(如微软官网或上级 WSUS)。

(2)定期手动扫描漏洞

操作工具:Windows 安全中心 → 病毒和威胁防护 → 扫描选项 → 选择 “全面扫描”(每月至少 1 次)。

第三方工具:使用微软基线安全分析器(MBSA,mbsacli.exe)或 Qualys、Nessus 等工具,扫描未修复的高危漏洞(如 CVE-2021-44228 Log4j2、CVE-2022-21907 远程代码执行漏洞)。

第二部分:Linux 系统安全机制与加固

Linux 基于 “开源内核 + 权限分离 + 最小服务” 设计,安全机制更依赖 “配置优化 + 工具扩展”,核心加固维度与 Windows 类似,但操作方式以命令行为主。

一、身份认证机制与加固(账户安全)

1. 原生安全机制

机制名称

原理与作用

关键文件 / 工具

PAM(可插拔认证模块)

模块化认证框架,支持密码复杂度、账户锁定、双因素认证(如 Google Authenticator),通过配置文件控制认证逻辑。

/etc/pam.d/目录下配置文件

影子密码(Shadow)

账户密码哈希存储于/etc/shadow(仅 root 可读),替代早期/etc/passwd(所有人可读),防密码泄露。

/etc/shadow、/etc/passwd

SSH 认证

支持 “密码认证” 和 “密钥认证”,密钥认证基于非对称加密(公钥存服务器,私钥存客户端),安全性远高于密码。

sshd_config、~/.ssh/目录

sudo 权限管控

通过/etc/sudoers配置 “普通用户可执行的 root 命令”,避免直接使用 root 登录,便于权限审计。

sudo、visudo工具

2. 加固操作(命令行为主)

(1)强化密码策略(基于 PAM)

配置文件:/etc/pam.d/system-auth(CentOS)或/etc/pam.d/common-password(Ubuntu)

添加密码复杂度规则(需安装pam_cracklib模块):

# CentOS:编辑/etc/pam.d/system-auth,在password段添加

password requisite pam_cracklib.so try_first_pass retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1# Ubuntu:编辑/etc/pam.d/common-password,添加password [success=1 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512 minlen=10 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1

参数说明:

minlen=10:密码最小长度 10;

difok=3:新密码与旧密码至少 3 个字符不同;

ucredit=-1:至少 1 个大写字母;lcredit=-1:至少 1 个小写字母;dcredit=-1:至少 1 个数字;ocredit=-1:至少 1 个特殊字符;

retry=3:密码输入错误 3 次后退出。

配置密码有效期(/etc/login.defs):

vim /etc/login.defs# 修改以下参数

PASS_MAX_DAYS   90    # 密码最长使用90天

PASS_MIN_DAYS   2     # 密码最短使用2天

PASS_WARN_AGE   7     # 密码过期前7天提醒

(2)启用账户锁定(基于 PAM)

配置文件:/etc/pam.d/system-auth(CentOS)或/etc/pam.d/common-auth(Ubuntu)

添加账户锁定规则:

# CentOS:在auth段添加

auth required pam_tally2.so deny=5 unlock_time=1800 even_deny_root root_unlock_time=1800# Ubuntu:在auth段添加auth required pam_tally2.so deny=5 unlock_time=1800 even_deny_root root_unlock_time=1800

参数说明:

deny=5:连续 5 次失败锁定账户;

unlock_time=1800:普通用户锁定 30 分钟(1800 秒);

even_deny_root:root 账户也受锁定限制(防 root 暴力破解);

root_unlock_time=1800:root 账户锁定 30 分钟。

验证:连续输错 5 次密码后,执行pam_tally2 --user=root查看锁定状态,输出 “Count=5”;30 分钟后自动解锁,或手动解锁:pam_tally2 --user=root --reset。

(3)SSH 密钥认证加固(禁用密码登录)

步骤 1:客户端生成密钥对(本地 PC 执行):

ssh-keygen -t ed25519  # 生成ed25519算法密钥(比RSA更安全、更短)# 按提示输入密钥保存路径(默认~/.ssh/id_ed25519),可设置密钥密码(增强安全性)

步骤 2:将公钥上传到服务器(客户端执行):

ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server-ip  # user为服务器用户名,server-ip为服务器IP

步骤 3:服务器禁用 SSH 密码登录(服务器端执行,root 权限):

vim /etc/ssh/sshd_config# 修改以下参数PasswordAuthentication no  # 禁用密码认证PubkeyAuthentication yes   # 启用密钥认证PermitRootLogin no         # 禁用root直接SSH登录(需通过普通用户sudo提权)Port 2222                  # (可选)修改SSH默认端口22为2222,减少扫描攻击# 重启sshd服务生效systemctl restart sshd  # CentOS/RHEL# 或systemctl restart ssh   # Ubuntu/Debian

验证:客户端执行ssh -p 2222 user@server-ip,无需输入密码(若设置了密钥密码,需输入密钥密码);尝试用密码登录会提示 “Permission denied”。

二、访问控制机制与加固(权限最小化)

1. 原生安全机制

机制名称

原理与作用

关键命令 / 文件

DAC(自主访问控制)

基于用户(UID)、组(GID)、其他用户(Other)分配权限(读 r=4、写 w=2、执行 x=1),文件所有者可修改权限。

chmod、chown、ls -l

SUID/SGID 特殊权限

程序执行时继承文件所有者(SUID)或所属组(SGID)权限(如passwd命令为 SUID,普通用户可修改自己密码),但易被滥用提权。

ls -l中权限位含s(如-rwsr-xr-x)

粘滞位(Sticky Bit)

仅目录所有者和文件所有者可删除目录下的文件(如/tmp目录),防止普通用户删除他人文件。

ls -d /tmp显示drwxrwxrwt(末尾t为粘滞位)

SELinux(安全增强 Linux)

强制访问控制(MAC),基于 “策略” 限制进程对资源的访问(如 Apache 进程仅能访问/var/www/html),CentOS 默认启用。

getenforce、setenforce、semanage

AppArmor(应用盔甲)

Ubuntu 默认启用的 MAC 机制,为每个程序配置 “安全配置文件”,限制其可访问的文件、网络资源。

aa-status、apparmor_parser

2. 加固操作(核心是 “清理危险权限,启用 MAC”)

(1)清理 SUID/SGID 程序(防止提权)

查找系统中所有 SUID/SGID 程序(root 权限):

# 查找SUID程序find / -perm -4000 -type f 2>/dev/null# 查找SGID程序find / -perm -2000 -type f 2>/dev/null

清理原则:仅保留必要的 SUID/SGID 程序(如passwd、sudo、ping),对无关程序移除 SUID/SGID 权限:

# 示例:移除危险程序的SUID权限chmod u-s /usr/bin/find  # find命令的SUID权限易被用于提权,非必要则移除

(2)启用并配置 SELinux(CentOS)

确认 SELinux 状态:

getenforce  # 输出Enforcing(启用)、Permissive(宽容,仅日志)、Disabled(禁用)

启用 SELinux(若禁用):

编辑/etc/selinux/config:

vim /etc/selinux/configSELINUX=enforcing  # 设为enforcing(强制模式)SELINUXTYPE=targeted  # 仅对特定程序生效(推荐)

重启系统生效:reboot;

验证:getenforce输出Enforcing。

SELinux 基础配置(避免服务因 SELinux 被阻断):

例:允许 Apache 访问自定义网站目录/data/www:

semanage fcontext -a -t httpd_sys_content_t '/data/www(/.*)?'  # 添加SELinux上下文restorecon -Rv /data/www  # 应用上下文setsebool -P httpd_can_network_connect 1  # 允许Apache联网(如需)
(3)启用 AppArmor(Ubuntu)

确认 AppArmor 状态:

aa-status  # 输出“apparmor module is loaded”且“profiles are loaded”

启用 AppArmor 配置文件(以保护 SSH 为例):

aa-enforce /etc/apparmor.d/usr.sbin.sshd  # 强制启用SSH的AppArmor配置

aa-status | grep sshd  # 验证,输出“enforce /usr/sbin/sshd”

自定义 AppArmor 配置(如需限制程序访问):

复制模板配置:cp /etc/apparmor.d/template /etc/apparmor.d/usr.bin.myapp;

编辑配置文件,添加允许访问的路径(如/usr/bin/myapp mrw, /var/data/myapp/ r,);

加载配置:apparmor_parser -r /etc/apparmor.d/usr.bin.myapp。

三、内存与进程防护机制与加固(防恶意代码)

1. 原生安全机制

机制名称

原理与作用

内核参数 / 工具

NX(No eXecute,不可执行)

同 Windows DEP,标记数据区域(栈、堆)为不可执行,防止缓冲区溢出攻击执行恶意代码。

内核参数nx(默认启用)

ASLR(地址空间布局随机化)

随机化程序代码段、栈、堆、共享库的内存地址,使攻击者难以预测 shellcode 位置。

内核参数randomize_va_space(默认启用)

Stack Canary(栈金丝雀)

栈帧中插入随机 “金丝雀值”,溢出时覆盖该值会触发程序崩溃,防止栈溢出利用。

编译时-fstack-protector选项(GCC 默认启用)

进程资源限制(ulimit)

限制单个进程的资源使用(如最大进程数、最大文件句柄数、最大内存使用),防止 DoS 攻击。

ulimit命令、/etc/security/limits.conf

2. 加固操作(确保内核防护全启用)

(1)确认 ASLR 启用

查看 ASLR 状态:

cat /proc/sys/kernel/randomize_va_space

输出含义:

0:禁用 ASLR;

1:部分启用(随机化栈、共享库);

2:全启用(随机化栈、堆、共享库、代码段)。

启用全 ASLR(若未启用):

echo "kernel.randomize_va_space=2" >> /etc/sysctl.confsysctl -p  # 生效

(2)配置进程资源限制(ulimit)

编辑/etc/security/limits.conf(root 权限):

vim /etc/security/limits.conf# 添加以下限制(对所有用户生效,*表示所有用户)*               hard    nproc           1024    # 最大进程数1024*               hard    nofile          65535   # 最大文件句柄数65535*               hard    core            0       # 禁用核心转储(core dump,防止泄露进程内存)*               hard    stack           8192    # 最大栈大小8MB

验证:执行ulimit -a,输出 “max user processes (-u) 1024”“open files (-n) 65535” 等。

四、网络防护机制与加固(边界安全)

1. 原生安全机制

机制名称

原理与作用

工具 / 配置文件

iptables(CentOS 7 及以下)

基于 “链(Chain)” 和 “规则(Rule)” 过滤网络流量,支持按端口、协议、IP、MAC 地址限制,默认无规则(需手动配置)。

iptables、iptables-save

firewalld(CentOS 7+、RHEL 7+)

动态防火墙管理工具,基于 “区域(Zone)” 配置规则(如 public、internal 区域),支持服务名(如 ssh、http)而非仅端口。

firewalld-cmd、firewall-config

ufw(Uncomplicated Firewall,Ubuntu)

Ubuntu 默认防火墙工具,简化 iptables 配置,支持基础的入站 / 出站规则。

ufw命令

TCP Wrappers

基于/etc/hosts.allow和/etc/hosts.deny限制 TCP 服务访问(如 sshd、vsftpd),优先级高于防火墙。

hosts.allow、hosts.deny

2. 加固操作(以 firewalld 和 ufw 为例)

(1)CentOS 7+ 配置 firewalld

步骤 1:启动并设置开机自启:

systemctl start firewalldsystemctl enable firewalldfirewall-cmd --state  # 验证,输出“running”

步骤 2:配置基础规则(仅允许必要服务):

# 查看默认区域(通常为public)firewall-cmd --get-default-zone# 允许SSH(端口2222,若已修改SSH端口)firewall-cmd --permanent --zone=public --add-port=2222/tcp# 允许HTTP(80)和HTTPS(443)(若需Web服务)firewall-cmd --permanent --zone=public --add-service=httpfirewall-cmd --permanent --zone=public --add-service=https# 拒绝所有其他入站连接(默认已拒绝,无需额外配置)# 重新加载规则生效firewall-cmd --reload

步骤 3:限制特定 IP 访问(如仅允许公司内网 IP 访问 SSH):

firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="2222" accept'firewall-cmd --permanent --zone=public --remove-port=2222/tcp  # 移除全局允许的2222端口firewall-cmd --reload验证规则:firewall-cmd --zone=public --list-all  # 查看public区域所有规则
(2)Ubuntu 配置 ufw

步骤 1:启用 ufw 并设置默认规则:

ufw default deny incoming  # 默认拒绝所有入站ufw default allow outgoing  # 默认允许所有出站ufw enable  # 启用ufwufw status  # 验证,输出“Status: active”

步骤 2:允许必要服务:

# 允许SSH(端口2222)

ufw allow 2222/tcp# 允许HTTP和HTTPSufw allow 80/tcpufw allow 443/tcp# 限制特定IP访问SSHufw allow from 192.168.1.0/24 to any port 2222 proto tcp验证规则:ufw status numbered  # 查看带编号的规则列表

五、日志审计与监控机制与加固(溯源)

1. 原生安全机制

机制名称

原理与作用

工具 / 配置文件

rsyslog(系统日志)

收集并转发系统日志(如内核日志、服务日志、应用日志),支持输出到文件、远程日志服务器。

/etc/rsyslog.conf、/var/log/目录

auditd(审计守护进程)

精细化审计系统调用、文件访问、进程操作,支持实时监控和日志记录,CentOS 默认安装,Ubuntu 需手动安装。

auditctl、ausearch、aureport

logrotate(日志轮转)

自动切割过大日志(按大小 / 时间),压缩旧日志,删除过期日志,防止磁盘占满。

/etc/logrotate.conf、/etc/logrotate.d/

2. 加固操作(重点是 auditd 审计)

(1)配置 rsyslog 远程日志(企业场景)

作用:将本地日志发送到远程日志服务器,防止攻击者篡改本地日志销毁证据。

服务器端(日志接收端)配置(CentOS):

vim /etc/rsyslog.conf# 启用UDP接收(或TCP,更可靠)module(load="imudp")input(type="imudp" port="514")# 或启用TCP接收# module(load="imtcp")# input(type="imtcp" port="514")# 配置日志存储路径(按客户端IP分类)$template RemoteLog,"/var/log/remote/%FROMHOST-IP%/%PROGRAMNAME%.log"*.* ?RemoteLog# 重启rsyslogsystemctl restart rsyslog

客户端(日志发送端)配置:

vim /etc/rsyslog.conf# 添加远程日志服务器地址*.* @log-server-ip:514  # UDP协议(@)# 或 *.* @@log-server-ip:514  # TCP协议(@@)# 重启rsyslogsystemctl restart rsyslog
(2)配置 auditd 审计关键行为

安装 auditd(Ubuntu 需手动安装):

# CentOS/RHEL(默认已安装)systemctl start auditdsystemctl enable auditd# Ubuntuapt install auditd -ysystemctl enable --now auditd

添加审计规则(监控关键文件 / 操作):

# 1. 监控/etc/passwd(账户修改)

auditctl -w /etc/passwd -p rwxa -k passwd_changes# 2. 监控/etc/shadow(密码修改)auditctl -w /etc/shadow -p rwxa -k shadow_changes# 3. 监控/etc/sudoers(sudo配置修改)auditctl -w /etc/sudoers -p rwxa -k sudoers_changes# 4. 监控SSH登录(记录所有ssh相关操作)auditctl -w /usr/sbin/sshd -p rwxa -k sshd_activity# 5. 监控进程创建(记录所有execve系统调用)auditctl -a exit,always -F arch=b64 -S execve -k process_creation

参数说明:

-w /path:监控的文件 / 路径;

-p rwxa:监控的权限(read、write、execute、append);

-k key:给规则加标签(便于后续查询);

-a exit,always:记录系统调用退出事件。

查询审计日志:

# 按标签查询(如查询passwd修改)

ausearch -k passwd_changes# 按时间查询(如查询今天的审计日志)ausearch -ts today# 生成审计报告aureport -a  # 所有审计事件统计aureport -x  # 进程执行报告

六、漏洞与补丁管理机制与加固(防已知漏洞)

1. 原生安全机制

机制名称

原理与作用

工具 / 命令

yum(CentOS/RHEL)

RPM 包管理工具,支持从官方仓库或第三方仓库(如 EPEL)下载并安装补丁,yum update可更新所有包。

yum、yum-cron(自动更新)

apt(Ubuntu/Debian)

DEB 包管理工具,apt update更新包索引,apt upgrade安装补丁,apt dist-upgrade处理依赖变更。

apt、unattended-upgrades(自动更新)

内核更新

Linux 内核漏洞需通过更新内核包修复(如kernel包),更新后需重启生效。

yum install kernel、apt install linux-image-generic

2. 加固操作(自动更新 + 定期扫描)

(1)配置自动更新

CentOS/RHEL 配置 yum-cron:

# 安装yum-cronyum install yum-cron -y# 编辑配置文件vim /etc/yum/yum-cron.conf# 修改以下参数update_cmd = security  # 仅更新安全补丁(推荐,避免功能更新导致兼容性问题)update_messages = yes  # 发送更新通知download_updates = yes  # 自动下载补丁apply_updates = yes     # 自动安装补丁(生产环境需谨慎,建议先测试)# 启动并设置开机自启systemctl start yum-cronsystemctl enable yum-cron

Ubuntu 配置 unattended-upgrades:

# 安装工具apt install unattended-upgrades update-notifier-common -y# 启用自动更新dpkg-reconfigure -plow unattended-upgrades  # 选择“是”# 编辑配置文件(仅更新安全补丁)vim /etc/apt/apt.conf.d/50unattended-upgrades# 确保以下配置生效Unattended-Upgrade::Allowed-Origins {"${distro_id}:${distro_codename}-security";  # 仅安全补丁# 注释其他源(如${distro_id}:${distro_codename}-updates)};Unattended-Upgrade::AutoFixInterruptedDpkg "true";  # 自动修复中断的dpkg进程Unattended-Upgrade::SendEmail "true";  # 发送邮件通知(需配置邮件)# 配置更新频率(每天检查一次)vim /etc/apt/apt.conf.d/20auto-upgradesAPT::Periodic::Update-Package-Lists "1";  # 每天更新包索引APT::Periodic::Unattended-Upgrade "1";   # 每天执行自动更新
(2)定期漏洞扫描(第三方工具)

使用 OpenVAS(开源漏洞扫描器):

# Ubuntu安装apt install openvas -ygvm-setup  # 初始化(需等待较长时间,生成管理员账户)gvm-start  # 启动服务

访问 Web 界面(默认https://localhost:9392),使用初始化生成的管理员账户登录,创建扫描任务(输入目标 IP),扫描完成后查看漏洞报告(高危漏洞需优先修复)。

第三部分:跨系统安全加固核心

安全维度

Windows 关键加固点

Linux 关键加固点

身份认证

1. 密码复杂度≥10 位(大小写 + 数字 + 特殊字符);
2. 账户锁定 5 次 / 30 分钟;
3. 重命名 Administrator,禁用 Guest;
4. 启用 Windows Hello。

1. PAM 配置密码复杂度(minlen=10,difok=3);
2. 账户锁定 5 次 / 30 分钟;
3. SSH 禁用密码登录,启用密钥;
4. 禁用 root SSH 登录。

访问控制

1. 系统目录(C:\Windows、C:\Program Files)仅给 Admin/SYSTEM 完全控制;
2. 移除文件 ACL 中的 Everyone 组;
3. 注册表关键路径权限加固。

1. 清理危险 SUID/SGID 程序;
2. 启用 SELinux(CentOS)或 AppArmor(Ubuntu);
3. /tmp 目录设置粘滞位;
4. 关键文件(/etc/passwd)权限设为 644。

内存防护

1. DEP 设为 “所有程序启用”;
2. 确认 ASLR/CFG 启用;
3. 进程完整性级别设为 “中 / 高”。

1. ASLR 设为全启用(randomize_va_space=2);
2. 编译时启用 Stack Canary(-fstack-protector);
3. ulimit 限制进程资源(nproc=1024)。

网络防护

1. 防火墙禁用 135/139/445 端口;
2. RDP 仅允许特定 IP;
3. 禁用 SMBv1;
4. 启用 IPsec(域环境)。

1. firewalld/ufw 仅允许 SSH(2222)、HTTP/HTTPS;
2. 限制 SSH 访问 IP;
3. 启用 TCP Wrappers(hosts.allow/deny);
4. 禁用 IPv6(非必要)。

日志审计

1. 启用高级审计(账户登录、对象访问、进程创建);
2. 日志大小设为 100MB,存档不覆盖;
3. 启用进程命令行审计。

1. auditd 监控 /etc/passwd、sshd、进程创建;
2. rsyslog 发送日志到远程服务器;
3. logrotate 配置日志轮转(保留 4 周,压缩)。

漏洞管理

1. Windows Update 自动安装安全补丁;
2. 定期用 MBSA 扫描漏洞;
3. 禁用 IE 等漏洞组件。

1. yum-cron/apt 自动更新安全补丁;
2. 定期用 OpenVAS 扫描漏洞;
3. 及时更新内核(高危漏洞)。

通过以上机制与加固操作,可构建 Windows 与 Linux 系统的 “纵深防御体系”,大幅降低被攻击的风险。

http://www.dtcms.com/a/389325.html

相关文章:

  • 【AI-Agent】AI游戏库
  • 病毒库更新原理
  • 服务器内存爆炸,日志无报错,通过分析 Dump 文件查找问题原因
  • 【Redis学习】服务端高并发分布式结构演变之路
  • 【JavaScript 性能优化实战】第三篇:内存泄漏排查与根治方案
  • 关于JavaScript性能优化实战的技术
  • 分布式流处理与消息传递——Paxos Stream 算法详解
  • ​​瑞芯微RK3576多路AHD摄像头实测演示,触觉智能配套AHD硬件方案
  • mysql删除数据库命令,如何安全彻底地删除MySQL数据库?
  • vscode中创建项目、虚拟环境,安装项目并添加到工作空间完整步骤来了
  • 如何快速传输TB级数据?公司大数据传输的终极解决方案
  • Linux的进程调度及内核实现
  • 使用BeanUtils返回前端为空值?
  • Windows Server数据库服务器安全加固
  • Linux TCP/IP调优实战,性能提升200%
  • Amazon ElastiCache:提升应用性能的云端缓存解决方案
  • 查找并替换 Excel 中的数据:Java 指南
  • 多线服务器具体是指什么?
  • Golang语言基础篇001_常量变量与数据类型
  • pytest文档1-环境准备与入门
  • MySQL 专题(四):MVCC(多版本并发控制)原理深度解析
  • 【开发者导航】在终端中运行任意图形应用:term.everything
  • [Python]pytest是什么?执行逻辑是什么?为什么要用它测试?
  • Nginx set指令不能使用在http块里,可以使用map指令
  • LeetCode 1759.统计同质子字符串的数目
  • 揭秘Linux文件管理与I/O重定向核心
  • 【PyTorch】DGL 报错FileNotFoundError: Cannot find DGL C++ graphbolt library
  • Autoware不同版本之间的区别
  • 多轮对话-上下文管理
  • 在阿里云私网服务器(无公网IP)上安装 Docker 环境的完整指南