ICELANDDD/homelab-proxmox-infrastructure

GitHub: ICELANDDD/homelab-proxmox-infrastructure

一个基于 Proxmox VE 的家庭实验室基础设施项目,通过网络分段、防火墙规则和隔离架构来安全地部署 Web 应用和 MySQL 数据库。

Stars: 1 | Forks: 0

# 🏗️ Homelab Proxmox 基础设施 一个基于 **Proxmox VE** 构建的生产级家庭实验室基础设施,具有网络隔离、防火墙规则以及安全的 Web + 数据库架构。 ## 📐 架构 ``` Internet │ ▼ ┌─────────────────────────────────┐ │ Router (192.168.1.1) │ └─────────────────────────────────┘ │ ▼ ┌──────────────────────────────────┐ │ Proxmox VE (192.168.1.50) │ │ │ │ ┌──────────┐ ┌─────────────┐ │ │ │ vmbr0 │ │ vmbr1 │ │ │ │ (Public) │ │ (Private) │ │ │ │192.168.1 │ │ 10.10.10.x │ │ │ └────┬─────┘ └──────┬──────┘ │ │ │ │ │ │ ┌────▼─────┐ ┌─────▼──────┐ │ │ │WebServer │ │ ServerDB │ │ │ │192.168.1 │──▶ |10.10.10.2 | | │ │ .xxx | | | | | |10.10.10.3│ │ (MySQL) │ │ │ └──────────┘ └────────────┘ │ └──────────────────────────────────┘ ``` ## 🔒 安全设计 | 组件 | 网络 | 访问权限 | |---|---|---| | WebServer | vmbr0 (192.168.1.x) | 公网(端口 80、443) | | ServerDB | vmbr1 (10.10.10.x) | 仅限内部访问 | | MySQL | 10.10.10.2:3306 | 仅限 WebServer | | SSH | 仅限 WebServer | 基于密钥的身份验证 | - **ServerDB 在配置完成后无法访问互联网** - **数据库仅接受来自 WebServer** (10.10.10.3) 的连接 - 所有 VM 均配置了 **UFW 防火墙** - **无密码 SSH** — 仅采用基于密钥的身份验证 ## 🛠️ 技术栈 - **Hypervisor:** Proxmox VE 9.x - **操作系统 (OS):** Ubuntu 24.04 LTS(所有 VM) - **数据库:** MySQL 8.0 - **防火墙:** UFW + iptables - **网络:** Linux Bridge (vmbr0, vmbr1) ## 📁 项目结构 ``` homelab-proxmox-infrastructure/ ├── README.md ├── docs/ │ ├── architecture.md │ └── setup-guide.md ├── network/ │ ├── interfaces │ ├── iptables-rules.sh │ ├── netplan-webserver.yaml │ └── netplan-serverdb.yaml ├── firewall/ │ ├── webserver-ufw.sh │ └── serverdb-ufw.sh └── mysql/ └── setup.sql ``` ## 🚀 设置指南 ### 1. Proxmox 网络 ``` # 在 Proxmox Web UI 中添加 vmbr1 (Private Network) # pve → Network → Create → Linux Bridge # IP: 10.10.10.1/24 ``` ### 2. 为 ServerDB 启用路由 ``` # 在 Proxmox shell 上 iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o vmbr0 -j MASQUERADE ufw route allow in on vmbr1 out on vmbr0 ``` ### 3. WebServer 防火墙 ``` sudo ufw allow 22/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable ``` ### 4. ServerDB 防火墙 ``` # 仅允许来自 WebServer 的 MySQL sudo ufw allow from 10.10.10.3 to any port 3306 sudo ufw enable ``` ### 5. MySQL 设置 ``` CREATE USER 'webuser'@'10.10.10.3' IDENTIFIED BY 'yourpassword'; CREATE DATABASE mydb; GRANT ALL PRIVILEGES ON mydb.* TO 'webuser'@'10.10.10.3'; FLUSH PRIVILEGES; ``` ### 6. 禁用 ServerDB 的互联网连接 ``` # 在 Proxmox shell 上 — 在所有 packages 安装后运行 iptables -t nat -F POSTROUTING ``` ## 📊 网络流向 ``` # Web 流量 Internet → Router → WebServer (vmbr0) → App # Database 连接 WebServer (10.10.10.3) → MySQL (10.10.10.2:3306) # 已阻止 Internet → ServerDB ❌ LAN → ServerDB ❌ ServerDB → Internet ❌ ``` ## 📝 许可证 MIT © [ICELANDDD](https://github.com/ICELANDDD)
标签:Proxmox VE, 家庭实验室, 网络隔离, 虚拟化, 防火墙