⚠️ Upozornění: Funkce jsou experimentální. Použití na vlastní riziko. © 2026 GLG, a.s.
⚠️ DŮLEŽITÉ: Všechny funkce jsou experimentální, v aktivním vývoji. Použití na vlastní riziko. Přizpůsobení vašemu workflow je nutné.
© 2026 GLG, a.s. | ← Zpět na obsah

12. Zabezpečení sítě a hardening

12.1 Princip: minimalizovat útočnou plochu

UAML běží lokálně ve výchozím nastavení — žádné otevřené porty, žádný externí přístup.

Pokud potřebujete vzdálený přístup, dodržujte tyto kroky.

12.2 Omezení služeb na autorizované IP


# Firewall: povolit dashboard pouze z konkrétních IP
sudo ufw default deny incoming
sudo ufw allow from 192.168.1.0/24 to any port 8780  # Dashboard — jen LAN
sudo ufw allow from 192.168.1.0/24 to any port 8770  # MCP — jen LAN
sudo ufw allow from 10.0.0.5 to any port 8791        # Coordination — jen VPS
sudo ufw enable

12.3 Spouštějte jen to co potřebujete


# Zkontrolujte co běží:
ss -tlnp | grep -E "878[0-9]|8770|8791"

# Vypněte služby které nepotřebujete:
systemctl disable uaml-dashboard.service
systemctl disable uaml-mcp.service

12.4 SSH tunely pro vzdálený přístup

Místo otevírání portů používejte SSH tunely:


# Přístup k dashboardu ze vzdáleného stroje bezpečně:
ssh -L 8780:127.0.0.1:8780 user@uaml-server
# Otevřete http://localhost:8780 v prohlížeči — šifrované, žádný port vystaven

# Trvalý tunel s autossh:
autossh -M 0 -f -N -L 8780:127.0.0.1:8780 user@uaml-server

12.5 Whitelist mobilní IP přes Signal

Pro mobilní uživatele s měnící se IP adresou:


# Agent obdrží zprávu přes Signal: "Moje IP je 85.123.45.67"
# Agent ověří odesílatele, pak:

def whitelist_ip(ip_address, port=8780, duration_hours=12):
    """Dočasně přidá IP na whitelist pro přístup k dashboardu."""
    subprocess.run([
        "ufw", "allow", "from", ip_address,
        "to", "any", "port", str(port),
        "comment", f"mobile-{ip_address}-temp"
    ])
    
    # Naplánovat odebrání (bezpečnost: nenechat trvalé díry)
    subprocess.run([
        "at", f"now + {duration_hours} hours",
        "-c", f"ufw delete allow from {ip_address} to any port {port}"
    ])
    
    return f"✅ {ip_address} na whitelistu pro port {port} na {duration_hours}h"

# Tok:
# 1. Uživatel pošle IP přes Signal (šifrované, ověřený odesílatel)
# 2. Agent validuje formát IP
# 3. Agent přidá dočasné firewall pravidlo
# 4. Pravidlo automaticky vyprší po 12 hodinách
# 5. Uživatel přistoupí k dashboardu z mobilu

12.6 Autentizace API


# Pro REST API — Bearer token autentizace:
# V config.yaml:
api:
  auth:
    enabled: true
    token: "vas-tajny-token"

# Použití klientem:
curl -H "Authorization: Bearer vas-tajny-token" \
  http://localhost:8780/api/stats

12.7 Bezpečnostní checklist

| ✅ Kontrola | Příkaz |

|------------|--------|

| Žádné zbytečné porty | ss -tlnp |

| Firewall aktivní | ufw status |

| Dashboard ne na 0.0.0.0 | Zkontrolovat bind v configu |

| SSH jen klíčem | grep PasswordAuthentication /etc/ssh/sshd_config |

| Automatické aktualizace | apt list --upgradable |

| UAML audit trail aktivní | uaml health |

| PII detekce zapnutá | Zkontrolovat Focus Engine config |

| Oprávnění souborů | ls -la ~/.uaml/memory.db (má být 600) |

| Zálohy naplánované | crontab -l \| grep backup |