|
@@ -0,0 +1,57 @@
|
|
|
|
|
+# Turvalisus — ohmu (2026-09-26)
|
|
|
|
|
+
|
|
|
|
|
+## Rünnakupind
|
|
|
|
|
+- ohmu on **NAT-i taga** (LAN `192.168.68.114`, WAN `84.50.228.95`); **avalikud domeenid**
|
|
|
|
|
+ (`see1.ee`, `odamus.com`, `nuuditalu.ee` jm) → **`188.166.84.16` = edge** (avalik VM), mitte ohmu.
|
|
|
|
|
+- ohmu Caddy kuulab ainult `100.87.1.24:443` (tailnet). **Internetist otsest ligipääsu pole**
|
|
|
|
|
+ (ruuteril pole forwardi — kinnitatud).
|
|
|
|
|
+- Rünnakupind = **LAN (192.168.68.0/24) + Tailscale'i tailnet**.
|
|
|
|
|
+
|
|
|
|
|
+## UFW
|
|
|
|
|
+- Põhimõte: `deny incoming`.
|
|
|
|
|
+- Lubatud: `22/tcp` kõikjalt; `100.64.0.0/10` (tailnet); `192.168.0.0/16` (LAN); `172.18/20.0.0/16` (docker).
|
|
|
|
|
+- **LAN-blokeering host-protsessidele** (Tailscale'ile ja loopbackile jääb alles):
|
|
|
|
|
+ ```bash
|
|
|
|
|
+ ufw insert 1 deny from 192.168.0.0/16 to any port 8070 proto tcp # llama-server
|
|
|
|
|
+ ufw insert 1 deny from 192.168.0.0/16 to any port 8123 proto tcp # Home Assistant
|
|
|
|
|
+ ufw insert 1 deny from 192.168.0.0/16 to any port 11434 proto tcp # ollama
|
|
|
|
|
+ ufw insert 1 deny from 192.168.0.0/16 to any port 18555 proto tcp # go2rtc (HA)
|
|
|
|
|
+ ```
|
|
|
|
|
+- `22000/tcp` (Syncthing) jäetud avatuks (peer-sync).
|
|
|
|
|
+
|
|
|
|
|
+## Docker: pordid loopback + Tailscale
|
|
|
|
|
+Kõik avalikult (`0.0.0.0`) avaldatud Docker-pordid viidud **ainult** `127.0.0.1` + `100.87.1.24`:
|
|
|
|
|
+`tika:9998`, `anythingllm:3002`, `mcp-filesystem-sse:3100` (ainult loopback), `liiklusatlas:8074`,
|
|
|
|
|
+`reranker:8082`, `flaresolverr:8191`, `clickstack:18080/4317/4318`, `clickstack-proxy:8124`,
|
|
|
|
|
+`n8n:5678`, `playwright:3003`, `jupyter:8887`, `openclaw:3978`. Varem juba: postgres:5432, mariadb:3306,
|
|
|
|
|
+open-webui:3010, portainer:8000/9000/9443, clickhouse:8125/9004, nutikodu:8095.
|
|
|
|
|
+**NB:** Docker möödub ufw-st (`DOCKER-USER` tühi) — seetõttu on ainus kaitse sidumine õige liidesega.
|
|
|
|
|
+`mcp-filesystem-sse` on nüüd ainult `127.0.0.1`; opencode MCP URL → `http://127.0.0.1:3100/sse`.
|
|
|
|
|
+
|
|
|
|
|
+## Saladused
|
|
|
|
|
+- Compose'ist `.env`-i (gitignore'tud, chmod 600): `main/.env` (postgres/mariadb/jupyter) ja
|
|
|
|
|
+ `third/n8n/.env` (TS_AUTHKEY, N8N_RUNNERS_AUTH_TOKEN, N8N_ENCRYPTION_KEY).
|
|
|
|
|
+- **Tähelepanu:** saladused jäid **giti ajalukku** (`/opt/docker-compose` auto-commit). Kaaluda
|
|
|
|
|
+ rotatsiooni ja/või ajaloo puhastust.
|
|
|
|
|
+
|
|
|
|
|
+## SSH
|
|
|
|
|
+- `PasswordAuthentication yes` (jäetud teadlikult); root ainult võtmega; **fail2ban aktiivne**.
|
|
|
|
|
+
|
|
|
|
|
+## Muud leiud (teadvustatud)
|
|
|
|
|
+- `portainer`, `dozzle`, `mcp-terminal` omavad `docker.sock`-i (root-ekvivalent) — portainer on tailnet-only.
|
|
|
|
|
+- `cadvisor` privileged; `homeassistant` host-network.
|
|
|
|
|
+- Tailscale: kogu tailnet on ufw-s lubatud; palju seadmeid (sh `tagged-devices`). Soovitus: Tailscale ACL-d.
|
|
|
|
|
+
|
|
|
|
|
+## Varukoopiad & rollback
|
|
|
|
|
+- Baseline: `/home/ardo/security_backup_2026-09-26/`.
|
|
|
|
|
+- Tar: `/media/ardo/merkuur/backup-2026-09-26/` (`liiklusatlas.tgz`, `openclaw.tgz`, `prod.tgz`,
|
|
|
|
|
+ `docker-compose-configs.tgz`).
|
|
|
|
|
+- Rollback: `git -C /opt/docker-compose revert <commit>` + `docker compose up -d` (või tar-i taastamine
|
|
|
|
|
+ mitte-git kaustadele: `/data/docker/liiklusatlas`, `/data/docker/openclaw`).
|
|
|
|
|
+- Muudatused commitites: `6ad290b` (saladused .env), `2d5b876` (Docker-pordid).
|
|
|
|
|
+
|
|
|
|
|
+## Alles / edasi
|
|
|
|
|
+- Salajaste **rotatsioon** (nt kuuhoolduse käigus) — alusta madala riskiga.
|
|
|
|
|
+- UFW `192.168.0.0/16` kitsendamine (kui LAN pole üldse vajalik) — eraldi otsus.
|
|
|
|
|
+- Tailscale ACL-d (väljaspool ohmu).
|
|
|
|
|
+- SSH parool-auth (teadlikult jäetud).
|