4.8 KiB
4.8 KiB
created, id, keywords, links, modified, summary, tags, title
| created | id | keywords | links | modified | summary | tags | title | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-04-16T00:45:34+00:00 | fd7ea587-115c-4dfd-85d6-64a71da67f98 |
|
2026-04-16T00:45:34+00:00 | All 23 security and quality issues found during the ana-colo infrastructure survey on 2026-04-15, organized by severity with remediation notes. |
|
Ana Colo — Security and Quality Issues |
Ana Colo — Security and Quality Issues
Survey date: 2026-04-15 Total findings: 23 (3 critical, 7 medium, 13 low)
🔴 Critical
1. DNS exposed to the internet (FortiGate policy 61)
- Policy: wan1 → internal DNS ALLOW ALL
- Risk: DNS amplification attack vector — anyone on the internet can query the internal DNS resolver
- Fix: Restrict DNS source to internal zones and known VPN subnets only
2. Hardcoded secrets in Docker compose files
- Affected files:
synapse/compose.yaml— Postgres passwordseafile/compose.yaml— MySQL root password (also duplicated in .env)gitea/compose.yaml— DB password
- Risk: Secrets committed to git, visible to anyone with compose file access
- Fix: Move all secrets to
.envfiles with 600 permissions; never commit secrets to version control
3. Plaintext secrets in config files
- Affected files:
synapse/homeserver.yaml— DB password, registration secret, macaroon key, form secret, appservice tokensmattermost/config.json— SendGrid API key, SMTP password, encryption keys, saltsmailrise/mailrise.conf— SendGrid API key, Mattermost webhook tokens
- Risk: Credentials stored in version-controllable files, exposed to anyone with read access
- Fix: Externalize to
.envor a secrets manager; add config files to.gitignore
🟡 Medium
4. Disabled but present ollama VIP + open policy
- Details: VIP "ollama-in" is disabled (good) but firewall policy 31 still allows :11434 from WAN
- Fix: Remove both the VIP and the policy
5. WebDAV without TLS
- Details: Port 8444 to NAS — raw TCP; NAS may not serve TLS
- Fix: Route through Traefik for TLS termination, or verify NAS is serving TLS
6. No health checks on most services
- Details: 13 of 20 containers have no health checks configured
- Fix: Add
healthcheckdirectives to all compose files
7. No resource limits on any container
- Details: 20 containers sharing 16GB RAM with no memory or CPU limits
- Fix: Add
deploy.resources.limitsto all compose files
8. No monitoring stack
- Details: No Prometheus, Grafana, Loki, or log aggregation deployed
- Fix: Deploy monitoring (separate task)
9. No backup automation visible
- Details: Restic server exists but no client backup jobs found
- Fix: Define and deploy backup schedules for all critical data
10. FortiGate UTM features stale
- Details: Virus DB: 2018, IPS DB: 2015
- Fix: Update subscriptions or confirm this is intentional
🟢 Low
11. Traefik debug logging in production
- Details:
--log.level=DEBUGis running in production - Fix: Set to INFO or WARN
12. Traefik dashboard unprotected on :8380
- Fix: Add basic auth or restrict to internal sources
13. Stale commented-out configs in traefik.yml
- Details: Old Route53 DNS challenge, multiple cert resolvers
- Fix: Clean up
14. Portainer CE 3 years old + agent 2 years old
- Fix: Update images or remove (Dockge is the replacement)
15. RustDesk image 13 months old
- Fix: Update image
16. IT Tools image 13 months old
- Fix: Update image
17. Dockge backup uses untagged custom image (9392b1d81976)
- Fix: Tag the image or document its source
18. Firewall policy named "DELETE"
- Details: Policy 50: internal → mgmt ALLOW ALL
- Fix: Remove or rename
19. Redundant firewall policies
- Details: Policies 1 and 6 both do internal → wan1 ALLOW ALL
- Fix: Consolidate into a single policy
20. wan2 has no IP (DHCP failed/disabled)
- Fix: Configure the interface or disable it
21. Inconsistent restart policies across stacks
- Details: Some use
unless-stopped, some have none - Fix: Standardize to
unless-stopped
22. No logging configuration on any container
- Fix: Add logging driver options (
max-size,max-file)
23. Several services exposed on direct ports instead of through Traefik
- Affected: SillyTavern :8100, Open WebUI :3100, Dockge :5001, Portainer :9000/:9001, IT Tools :8780, Mailrise :8025
- Note: Some may be intentional (admin tools). Document the reason for each or add Traefik routing.