一、 第一天:基础环境搭建与网络安全入门
第一天的核心是搭建网络安全学习与实操的基础环境,掌握核心概念与常用工具,为后续的攻防实操打下基础。
1. 核心概念梳理
- 网络安全三大核心目标:CIA 三元组(保密性 Confidentiality、完整性 Integrity、可用性 Availability),这是所有网络安全工作的出发点与落脚点。
- 常见威胁类型:恶意软件(病毒、木马、勒索软件)、网络攻击(DDoS、SQL 注入、跨站脚本)、人为失误(弱密码、误操作)。
- 实操环境要求:推荐采用 "主机 + 虚拟机" 架构,搭建隔离的测试环境(避免影响真实网络)。
2. 必备实操环境搭建
(1)虚拟机环境部署(VirtualBox/Vmware)
推荐搭建多节点测试环境,至少包含以下 3 台虚拟机:
- 攻击机:Kali Linux(内置海量网络安全工具,无需额外配置)
- 目标机 1:CentOS 7/8(Linux 服务器,用于练习系统加固与 Linux 下的攻防)
- 目标机 2:Windows Server 2019(Windows 服务器,熟悉 Windows 系统安全配置)
(2)Kali Linux 常用工具安装与配置(补充默认未预装工具)
bash
运行
# 1. 更新软件源(国内源,提升下载速度)
echo "deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib" > /etc/apt/sources.list
apt update && apt upgrade -y
# 2. 安装常用工具(端口扫描、漏洞检测、密码破解)
apt install nmap nikto hydra burpsuite -y
# 3. 验证工具安装成功
nmap -V
hydra -V
(3)网络互通配置
确保三台虚拟机处于同一虚拟网卡模式(仅主机模式或桥接模式),配置同一网段 IP 地址,验证互通性:
bash
运行
# Linux 环境下验证(Kali 对 CentOS )
ping 192.168.1.100 -c 4
# Windows 环境下验证(命令提示符)
ping 192.168.1.101 -n 4
3. 第一天核心总结
搭建隔离、可用的实操环境是网络安全学习的前提,Kali Linux 是攻防实操的核心工具集,掌握基础的环境配置与工具安装,是后续进阶的关键。
二、 第二天:系统安全加固(Linux + Windows)
系统是网络安全的 "第一道防线",第二天的核心是掌握主流操作系统的安全加固方案,从账户、密码、权限、服务等维度提升系统抗攻击能力。
1. Linux 系统(CentOS 7/8)安全加固实操
(1)账户与密码安全加固
- 禁用无用账户(减少攻击面)
bash
运行
# 查看当前系统账户
cat /etc/passwd | grep -v "/sbin/nologin"
# 禁用无用账户(如games、ftp,根据实际情况调整)
usermod -L games # 锁定账户
userdel -r ftp # 彻底删除账户及家目录
- 配置强密码策略(通过 pam 模块)
bash
运行
# 1. 安装密码复杂度校验工具
yum install pam_pwquality -y
# 2. 编辑配置文件,设置强密码规则
vim /etc/security/pwquality.conf
配置文件核心参数(添加 / 修改):
plaintext
minlen = 12 # 密码最小长度12位
dcredit = -1 # 至少包含1位数字
ucredit = -1 # 至少包含1位大写字母
lcredit = -1 # 至少包含1位小写字母
ocredit = -1 # 至少包含1位特殊字符
retry = 3 # 密码输入重试次数3次
enforce_for_root # 对root用户强制执行该策略
- 禁用 root 用户远程登录(核心加固项)
bash
运行
# 编辑sshd配置文件
vim /etc/ssh/sshd_config
# 修改以下参数
PermitRootLogin no # 禁用root远程登录
AllowUsers test # 仅允许test用户远程登录(按需添加,多个用户用空格分隔)
# 重启sshd服务使配置生效
systemctl restart sshd
systemctl enable sshd # 设置开机自启
(2)服务与端口安全加固
- 关闭无用服务(减少暴露面)
bash
运行
# 查看当前运行的服务
systemctl list-units --type=service --state=running
# 关闭并禁用无用服务(如bluetooth、postfix,根据实际业务调整)
systemctl stop bluetooth
systemctl disable bluetooth
- 端口扫描与封禁(使用 nmap+firewalld)
bash
运行
# 1. 扫描本机开放端口
nmap -sT 127.0.0.1
# 2. 配置firewalld,仅开放必要端口(22-SSH、80-HTTP)
firewall-cmd --permanent --add-port=22/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --remove-all-ports # 先删除所有开放端口(可选,按需操作)
firewall-cmd --reload # 重载配置
# 3. 查看firewalld当前配置
firewall-cmd --list-ports
2. Windows 系统(Windows Server 2019)安全加固实操
(1)账户安全加固
-
禁用 Guest 账户,重命名 Administrator 账户
- 图形界面:计算机管理 → 本地用户和组 → 用户 → 右键 Guest → 禁用;右键 Administrator → 重命名(如 Admin_XXX,避免默认账户被针对)。
- 命令行(管理员模式):
cmd
net user guest /active:no # 禁用Guest账户 wmic useraccount where "name='Administrator'" rename "Admin_Secure" # 重命名管理员账户 -
配置账户密码策略
- 组策略编辑器:运行
gpedit.msc→ 计算机配置 → Windows 设置 → 安全设置 → 账户策略 → 密码策略。 - 核心配置:
- 密码必须符合复杂性要求(启用)
- 密码长度最小值(12 位)
- 密码最长使用期限(90 天)
- 强制密码历史(5 次,禁止重复使用近期密码)
- 组策略编辑器:运行
(2)防火墙与端口加固
-
启用 Windows Defender 防火墙,配置入站规则
- 图形界面:控制面板 → 系统和安全 → Windows Defender 防火墙 → 启用或关闭 Windows Defender 防火墙。
- 仅允许必要端口入站(22、80、3389 - 远程桌面,按需开启),禁用所有无用端口。
-
关闭无用服务
- 运行
services.msc→ 找到无用服务(如 Telnet、Server、Bluetooth Support Service)→ 右键 → 属性 → 启动类型改为 "禁用" → 停止服务。
- 运行
3. 第二天核心总结
系统安全加固的核心是 "最小权限原则 " 与 "减少暴露面",无论是 Linux 还是 Windows,都需从账户、密码、服务、端口四个核心维度入手,形成第一道安全屏障。
三、 第三天:网络攻击与防御实操(核心攻防)
第三天聚焦实战化攻防,掌握常见网络攻击的原理、实施步骤,以及对应的防御方案,"知攻方,方能更好守方"。
1. 常见网络攻击实操(仅用于合法测试环境)
(1)端口扫描与服务探测(nmap 核心命令)
端口扫描是攻击的第一步,用于发现目标主机的开放端口与运行服务,为后续攻击提供线索。
bash
运行
# 1. 基础TCP扫描(扫描目标主机所有端口)
nmap -sT 192.168.1.100
# 2. 快速扫描常见1000个端口
nmap -F 192.168.1.100
# 3. 扫描指定端口(22、80、443)
nmap -p 22,80,443 192.168.1.100
# 4. 扫描端口并识别服务版本(更详细信息)
nmap -sV -p 22,80 192.168.1.100
# 5. 无反馈扫描(隐蔽性更高,避免被防火墙检测)
nmap -sS 192.168.1.100
(2)暴力破解(Hydra 实战,针对 SSH 服务)
暴力破解是通过枚举用户名与密码组合,尝试登录目标服务的攻击方式,常见于弱密码场景。
bash
运行
# 语法:hydra -l 用户名 -p 密码 目标IP 服务
# 语法:hydra -L 用户名列表 -P 密码列表 目标IP 服务
# 1. 单个用户密码尝试(测试root/123456)
hydra -l root -p 123456 192.168.1.100 ssh
# 2. 批量用户名+批量密码暴力破解(使用字典文件)
hydra -L user.txt -P password.txt 192.168.1.100 ssh -vV -t 10
# 参数说明
# -L:指定用户名字典文件
# -P:指定密码字典文件
# -vV:显示详细破解过程
# -t:指定并发线程数(避免线程过多被封禁)
(3)Web 漏洞攻击(SQL 注入 基础原理与演示)
SQL 注入是针对 Web 应用程序的漏洞攻击,通过在用户输入框中插入恶意 SQL 语句,绕过验证并获取数据库信息。
-
漏洞场景演示(简易查询页面):
- 正常访问:
http://192.168.1.101/index.php?id=1(查询 ID=1 的信息) - 注入测试 1:
http://192.168.1.101/index.php?id=1' or 1=1 --(绕过查询条件,获取所有数据) - 注入测试 2:
http://192.168.1.101/index.php?id=1' union select 1,user(),database() --(获取数据库用户与当前数据库名)
- 正常访问:
-
核心原理:Web 应用程序未对用户输入进行过滤或转义,导致恶意 SQL 语句被直接执行。
2. 对应防御方案(针对性加固)
(1)端口扫描防御
- 启用防火墙(firewalld/Windows 防火墙),仅开放必要端口,封禁陌生 IP 的扫描请求。
- 部署入侵检测系统(IDS)/ 入侵防御系统(IPS),如 Snort,检测并告警异常端口扫描行为。
- 隐藏敏感服务端口,通过端口映射将默认端口(22、3389)改为非默认端口(如 2222、33899)。
(2)暴力破解防御
- 强制执行强密码策略(参考第二天系统加固内容),避免弱密码存在。
- 限制远程登录尝试次数,如 Linux 下通过
fail2ban封禁多次登录失败的 IP:
bash
运行
# 安装fail2ban
yum install fail2ban -y
# 配置sshd防护规则
vim /etc/fail2ban/jail.local
添加核心配置:
plaintext
[sshd]
enabled = true
filter = sshd
logpath = /var/log/secure
maxretry = 3 # 最大重试3次
bantime = 3600 # 封禁1小时
findtime = 600 # 10分钟内统计重试次数
启动并启用 fail2ban:
bash
运行
systemctl start fail2ban
systemctl enable fail2ban
- 禁用密码登录,采用 SSH 密钥对登录(更高安全性)。
(3)SQL 注入防御
- 核心:输入验证与过滤,采用预编译语句(Prepared Statement),避免直接拼接 SQL 语句。
- 后端代码示例(PHP 预编译语句,防止 SQL 注入):
php
运行
<?php
// 连接数据库
$servername = "localhost";
$username = "root";
$password = "SecurePass123!";
$dbname = "testdb";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 接收用户输入(ID)
$id = $_GET['id'];
// 预编译语句(防止SQL注入)
$stmt = $conn->prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("i", $id); // "i" 表示参数为整数类型
// 执行查询
$stmt->execute();
$result = $stmt->get_result();
// 输出结果
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "ID: " . $row["id"]. " - 姓名: " . $row["name"]. "<br>";
}
} else {
echo "0 条结果";
}
// 关闭连接
$stmt->close();
$conn->close();
?>
- 辅助措施:部署 Web 应用防火墙(WAF),如阿里云 WAF、Nginx WAF,拦截恶意 SQL 注入请求。
3. 第三天核心总结
网络攻防是 "矛与盾" 的对抗,掌握常见攻击的原理与步骤,才能针对性地制定防御策略。防御的核心是 "层层设防",从网络层、系统层到应用层,形成完整的防御体系。
四、 第四天:日志审计与应急响应(事后追溯与止损)
第四天的核心是 "事后处理",当安全事件发生后,如何通过日志审计定位攻击源、分析攻击过程,以及如何快速应急响应,减少损失并防止二次攻击。
1. 日志审计(核心日志位置与分析命令)
日志是网络安全的 "黑匣子",记录了系统、服务、网络的所有操作行为,是定位安全事件的关键依据。
(1)Linux 系统核心日志
- 系统日志:
/var/log/messages(记录系统启动、服务运行、系统错误等全局信息) - 安全日志:
/var/log/secure(记录用户登录、权限变更、SSH 登录等安全相关信息,核心审计日志) - SSH 服务日志:
/var/log/sshd.log(记录 SSH 连接请求、登录成功 / 失败等信息) - 应用日志:如 Nginx 日志
/var/log/nginx/access.log(访问日志)、/var/log/nginx/error.log(错误日志)
(2)Linux 日志分析常用命令
bash
运行
# 1. 查看安全日志(实时监控,排查暴力破解)
tail -f /var/log/secure
# 2. 筛选SSH登录失败记录(定位暴力破解源)
grep "Failed password" /var/log/secure | more
# 3. 统计SSH登录失败次数最多的IP(找出攻击源IP)
grep "Failed password" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | head -10
# 4. 筛选SSH登录成功的记录(确认是否有非法登录)
grep "Accepted password" /var/log/secure
# 5. 查看系统近期重启记录(排查是否有异常重启)
last reboot
(3)Windows 系统核心日志
- 事件查看器:运行
eventvwr.msc打开,核心日志目录:- 安全日志(Windows 日志 → 安全):记录用户登录 / 注销、账户管理、权限变更等,事件 ID 是关键(如 4624 - 登录成功、4625 - 登录失败)。
- 系统日志(Windows 日志 → 系统):记录系统服务、驱动、硬件的运行状态。
- 应用程序日志(Windows 日志 → 应用程序):记录应用程序的运行错误与信息。
2. 应急响应流程(标准化处理步骤)
当发生安全事件(如服务器被入侵、数据泄露、勒索软件攻击)时,需按照标准化流程进行应急响应,最大限度减少损失。
(1)第一步:遏制(停止损失扩大,隔离受影响系统)
- 断开受影响服务器的网络连接(物理拔线或禁用网卡),防止攻击者进一步渗透或窃取数据。
- 隔离受影响的存储设备(如硬盘、U 盘),避免恶意软件扩散到其他系统。
- 备份受影响系统的当前状态(完整镜像备份),为后续取证分析保留证据,避免证据被篡改。
(2)第二步:取证与分析(定位攻击源与攻击过程)
- 日志取证:提取受影响系统的核心日志(安全日志、系统日志、应用日志),分析攻击时间、攻击源 IP、攻击行为、攻击路径。
- 文件取证:检查系统关键文件(如
/etc/passwd、/etc/shadow)是否被篡改,检查是否存在恶意软件(如木马、后门程序)。 - 内存取证:提取系统内存镜像,分析是否存在正在运行的恶意进程,避免恶意软件通过内存逃逸躲避检测。
- 分析结论:明确攻击类型(如暴力破解、SQL 注入、勒索软件)、攻击源、攻击成功的原因(如弱密码、未修补漏洞)、造成的损失(如数据泄露、系统瘫痪)。
(3)第三步:清除(移除恶意软件,修复漏洞)
- 移除恶意软件:删除系统中的恶意文件、后门程序、木马,终止恶意进程,清理恶意注册表项(Windows 系统)。
- 修复系统漏洞:安装系统最新安全补丁(Linux:
yum update -y;Windows:Windows Update),修补 Web 应用漏洞(如 SQL 注入、XSS)。 - 重置账户密码:重置所有系统账户、应用账户的密码,采用强密码策略,禁用可疑账户。
(4)第四步:恢复(恢复系统与数据,恢复业务运行)
- 验证系统安全性:确认恶意软件已被彻底清除,漏洞已被修补,系统不存在安全隐患。
- 恢复数据:从干净的备份中恢复数据(确保备份未被篡改),优先恢复核心业务数据。
- 恢复系统运行:将服务器重新接入网络,启动核心服务,恢复业务正常运行,实时监控系统状态。
(5)第五步:总结与改进(避免同类事件再次发生)
- 编写应急响应报告:记录安全事件的全过程、分析结论、处理措施、造成的损失、经验教训。
- 优化安全策略:针对本次安全事件暴露的问题,优化系统安全加固策略、网络防御策略、访问控制策略。
- 开展安全培训:对相关人员开展安全培训,提升安全意识,避免人为失误(如弱密码、点击钓鱼链接)导致安全事件。
- 定期演练:定期开展网络安全应急响应演练,提升团队的应急处置能力,确保在安全事件发生时能够快速、高效响应。
3. 第四天核心总结
日志审计是应急响应的基础,标准化的应急响应流程是减少安全事件损失的关键。网络安全不仅要 "防患于未然",还要 "亡羊补牢",通过事后总结与改进,不断完善安全防御体系。