This repository has been archived on 2026-08-17. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
debian-configuration/README.md
T
beatzaplenty ba73420350 Document pve-test's wifi-primary network and add Claude node guardrails
pve-test was briefly clustered with pve1 then deliberately de-clustered
so it could move to wifi-primary networking (4addr bridge mode, bonded
with a wired LAN backup) - a change not achievable while clustered given
corosync's latency requirements. Captures that as a reproducible script
plus docs: cluster separation procedure, the wifi network design and the
live-cutover pitfalls hit along the way, and node-role/history context.

Also adds CLAUDE.md guardrails for pve1 (production) vs pve-test
(sandbox) - this repo had none before, despite scripts here being able
to make real changes to both.

Separately: both nodes' mgmt firewalls were dropping ICMP by default
(TCP 22/8006 only), which looked like an outage mid-troubleshooting even
though SSH/web UI were fine. Added an explicit ping-allow rule to the
firewall template, applied it live on both nodes, and added an audit.sh
check so it stays enforced.
2026-07-21 21:20:27 +00:00

56 lines
2.5 KiB
Markdown

# Proxmox Configuration
Base configuration and hardening toolset for Proxmox VE hosts, plus planning
docs for eventually growing this into a 3-node HA/Ceph cluster. See
`docs/00-overview.md` for the staging: **Stage 1** (base config/hardening,
applies to any host — active) vs. **Stage 2** (multi-node HA/Ceph — future,
deferred).
## Goals
- Stage 1: a reusable, idempotent base-hardening toolset (`scripts/`) that
can be run against any new Proxmox host — repo/updates, SSH, firewall, PVE
user/access hardening — verified with `scripts/audit.sh`.
- Stage 2 (future): 3-node cluster, quorum via corosync, HA-managed VMs
backed by Ceph. Needs dedicated hardware node 1 (`pve1`, an ASUS PN53 mini
PC) doesn't have — see `docs/01-hardware-node1.md`.
See `CLAUDE.md` for the guardrails Claude Code follows when working
against these hosts (`pve1` is production and off-limits by default;
`pve-test` is the sandbox).
## Repo layout
- `docs/` — planning docs: hardware layout, storage migration, networking,
security hardening, node roles. Read `docs/00-overview.md` first, then
`docs/05-node-roles.md` for what `pve1`/`pve-test` actually are.
- `scripts/` — scripts to apply configuration on a node (SSH hardening, repo
switch, firewall, updates, wifi/bond networking, etc). Idempotent, safe
to re-run. `scripts/bootstrap.sh` runs the full Stage 1 sequence end to
end; `scripts/audit.sh` verifies it (read-only).
`scripts/setup-wifi-bond-network.sh` reproduces `pve-test`'s wifi
network (see `docs/06-pve-test-wifi-network.md`). `scripts/lib/` holds
shared helpers (`common.sh`) sourced by the other scripts.
- `config/` — reference config files/snippets to drop onto a node (firewall
rules, sshd config, etc.).
## Quick start (Stage 1, on a fresh node)
```
MGMT_CIDR=192.168.2.0/24 ./scripts/bootstrap.sh
./scripts/create-admin-user.sh <username>
# then enable 2FA for that user + root@pam via the web UI
./scripts/audit.sh
```
## Status
`pve1` built (ASUS PN53 mini PC, ZFS mirror boot+VM storage, single
2.5GbE NIC) and already running production VMs/CTs. Stage 1 base
hardening applied and verified (`scripts/audit.sh` all green): enterprise
repos removed, SSH key-only + fail2ban, unattended security upgrades,
PVE firewall (mgmt-only), subscription nag disabled, named admin user
(`wayne@pve`) created. Remaining manual step: enable 2FA/TOTP for
`wayne@pve` and `root@pam` via the web UI. Stage 2 (cluster/Ceph) not
started — needs nodes 2/3 on hardware that can actually support it.