ai-chatbot/docs/security/server-hardening.md
Your Name 73d0d9d8c2
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled
feat(security): integrate one-click server hardening into deploy flow
2026-02-12 15:09:16 +08:00

47 lines
1.2 KiB
Markdown

# Server Hardening
This project now includes a built-in one-click hardening workflow that is executed during deployment.
## Entry point
Run as root from repository root:
```bash
bash scripts/security/install-security-stack.sh
```
This installer will:
1. Install/update `perf-guard` malware cleanup timer.
2. Apply baseline server hardening (`harden-server.sh`).
## What hardening does
- Enforces npm/pnpm registry to `https://registry.npmjs.org`.
- Adds SSH hardening drop-in file:
- limits auth retries and login grace time
- disables X11/TCP forwarding
- can enforce key-only login in strict mode
- Installs/configures fail2ban (`sshd` + nginx jails).
- Applies firewall rules (keep SSH port + 80/443, and optional custom ports).
- Applies kernel/network sysctl hardening.
## Runtime options
- `HARDEN_SSH_STRICT=1`
Enable key-only SSH auth (`PasswordAuthentication no`) when `/root/.ssh/authorized_keys` exists.
- `HARDEN_ALLOW_PORTS=3000,8080`
Extra TCP ports to allow in firewall.
- `HARDEN_FIREWALL_MODE=skip`
Skip firewall changes.
- `HARDEN_SKIP_PACKAGE_INSTALL=1`
Skip package installation (only apply config).
## Logs
- Hardening log: `/var/log/ai-chatbot-hardening.log`
- Perf guard log: `/var/log/perf-guard.log`