.NET

Zabezpečení a víceuživatelský server

Tato kapitola shrnuje, co OmniDB dělá pro ochranu uložených přihlašovacích údajů a sdíleného víceuživatelského serveru a co to znamená pro vás jako správce nebo uživatele. Instalaci a zpřístupnění serveru popisuje kapitola Nasazení omnidb-server; správu hesel z příkazové řádky kapitola Konfigurační nástroj OmniDB.

„Serverovým režimem“ se níže rozumí omnidb-server spuštěný bez -A — víceuživatelská instance, ke které se lidé přihlašují z prohlížeče, ať už naslouchá jen na loopbacku, nebo na síťové adrese (-H). Desktopová aplikace je vždy jednouživatelská.

Uložená hesla jsou šifrovaná

Hesla k databázím uložená v připojení, hesla a přístupové fráze SSH i soukromé klíče SSH se před zápisem do uživatelské databáze OmniDB, omnidb.db, šifrují (AES-256-GCM). Šifrovací klíč v tomto souboru uložen není: je v úložišti tajných údajů operačního systému — v Klíčence macOS, Správci přihlašovacích údajů Windows nebo v Secret Service na Linuxu — takže samotná kopie omnidb.db je neprozradí.

Tam, kde žádné úložiště tajných údajů není dostupné (typicky na linuxovém serveru bez grafického prostředí), uchovává OmniDB klíč místo toho v souboru .connection_secret_key (čitelném pouze pro vlastníka) v domovském adresáři OmniDB; jakmile tento soubor existuje, používá se vždy. V takovém případě:

Existující nešifrované záznamy ze starších verzí se automaticky zašifrují při prvním spuštění novější verze. Pokud heslo raději vůbec ukládat nechcete, ponechte ho ve formuláři připojení prázdné: OmniDB se na něj pak v případě potřeby zeptá a uchová ho jen v paměti, po dobu 30 minut, pro vaši relaci (viz Vytváření uživatelů a připojení).

Počáteční účet admin

Nová instalace v serverovém režimu vytvoří jednoho superuživatele, admin, s náhodným heslem, které se jednou vypíše do logu serveru:

omnidb-server: initialized a new app database — initial login: admin / <password> (shown only once; change it under Settings, or run: omnidb-server --set-password admin)

Přihlaste se s ním a změňte ho v Nastavení > Heslo, nebo si předem nastavte vlastní heslo z příkazové řádky:

omnidb-server --set-password admin [-d /path/to/homedir]

Desktopová aplikace nikdy nezobrazuje přihlašovací stránku; ke svému vlastnímu místnímu serveru, dostupnému jen přes loopback, se přihlašuje automaticky.

Ochrana přihlášení a relace

Omezení v serverovém režimu

Protože každé připojení víceuživatelského serveru otevírá serverový proces na serverovém počítači, jsou omezeny některé volby připojení, které by četly vlastní soubory serveru:

Na desktopovou aplikaci se tato omezení nevztahují, tam jsou soubory vaše vlastní.

Veřejná připojení

Připojení označené jako Veřejné připojení? může používat každý uživatel OmniDB na serveru, upravovat ho však může jen jeho vlastník. Pro všechny ostatní platí:

Exportované soubory

Exporty dotazů a exporty DBML se zapisují do složky temp serveru pod náhodnými názvy a stáhnout je může jen uživatel, který je vytvořil. Po 24 hodinách se automaticky mažou.

Klíče hostitelů SSH

Tunely SSH a připojení terminálu SSH ověřují klíč hostitele serveru podle souboru ~/.ssh/known_hosts uživatele operačního systému, pod kterým běží omnidb-server. Neznámý nebo změněný klíč hostitele je odmítnut — OmniDB nedůvěřuje hostiteli potichu při prvním použití. Přidejte hostitele jednou z tohoto účtu, například:

ssh [email protected]        # accept the key once
# or
ssh-keyscan ssh-server.example.com >> ~/.ssh/known_hosts

Vystavení do sítě

Vestavěné TLS neexistuje. Ponechte omnidb-server na 127.0.0.1 (výchozí) za reverzní proxy, která ukončuje TLS, místo abyste vystavovali prosté HTTP pomocí -H 0.0.0.0 — viz Nasazení omnidb-server. Dokud je server navázán na loopback, odpovídá jen na požadavky adresované na 127.0.0.1, localhost nebo [::1] s jeho vlastním portem, což ho chrání před útoky DNS rebinding z webových stránek. Cookies relace jsou označeny jako Secure, když požadavek přijde přes TLS nebo s hlavičkou X-Forwarded-Proto: https, a všechny požadavky měnící stav jsou chráněny proti útokům cross-site request forgery (CSRF).