Pro bezpečné provozování systému Calom je potřeba udělat již při
instalaci několik kroků - nastavit práva, zabezpečit komunikaci
a nastavit firewall.
Tento dokument popíše strukturu komunikace mezi komponentami,
kterou je třeba chránit, dále požadavky systému, aby mu bylo
možné přiřadit minimální práva pro provoz.
Jednotlivé komponenty spolu komunikují pomocí síťových protokolů
nešifrovanými kanály.
Pro zabezpečení informací před únikem nebo před pozměněním je
proto nutné tyto kanály zabezpečit.
Jedna možnost je rozmístit komponenty tak, aby byly na stejném
počítači - tím odpadne možnost komunikaci přečíst nebo narušit.
Další možností je vytvořit bezpečný šifrovaný SSL tunel (viz. níže).
Poznámky ke komunikace mezi:
Klient | Server | Poznámky |
Calom klient (calom, WebCalom, WebCalom scheduler, ...) | Calom server |
Základní komunikace s Calom serverem. Klient se serveru autentizuje, server klientovi ne. Proto je nutné, aby se klient obracel na správný server a aby nemohlo dojít k nežádoucímu spojení na jiný server. K přenosu hesla i všech dat dochází v nezabezpečeném kanálu, je nutné kanál ochránit, např. pomocí SSL tunnelingu. Další možností je provozovat Calom klient (např. WebCalom) na stejném stroji jako Calom server. Tím odpadá nutnost šifrovat kanál. |
Calom server |
Externí dirdb resolver (od verze 2.3.0) |
Spojení opět probíhá nezabezpečeným kanálem, Calom server
navazuje spojení na stroj, který mu nastaví Calom klient
nebo který je nastaven v konfiguračním souboru. Je nutné chránit
před přesměrováním na jiný stroj/port. V tomto případě není možné využít SSL tunneling, protože je spojení navazováno dynamicky, na předem neznámý přidělený port. Lze tedy uplatnit pouze přesun na stejný počítač jako Calom server. Protože je resolver často spouštěn WebCalomem, měl by i WebCalom, pokud používá externi resolver, běžet na stejném stroji jako Calom server. |
WebCalom |
Externí dirdb resolver (od verze 2.3.0) |
WebCalom většinou externí resolver spouští, proto komunikují
přes zabezpečenou rouru. Z předchozího bodu vyplývá, že pokud bude externí resolver používán, měl by i WebCalom běžet na stejném stroji jako Calom server. |
Apache server | WebCalom | WebCalom může běžet jako standalone aplikace a může komunikovat s HTTP klientem přímo, nebo může být spouštěn jako CGI-bin program Apache serverem. V takovém případě spolu server a WebCalom komunikují přes zabezpečenou rouru. Je však nutné dbát na standardní zabezpečení CGI-bin programů. |
WWW uživatel | WebCalom |
Spojení mezi WWW uživatelem a WebCalomem je realizováno
buď přímo (standalone WebCalom) nebo prostřednictvím
serveru Apache. Ve standardním nastavení (používá se Apache) je nutné zabezpečit komunikaci nastavením Apache serveru, aby používal SSL nebo TLS spojení. |
WebCalom | WebCalom scheduler | WebCalom a WebCalom scheduler vždy běží na stejném stroji. WebCalom scheduler naslouchá požadavkům z WebCalomu, je však třeba chránit jej před spojením z jiného programu než z WebCalomu, např. pomocí firewallu. |
Calom server a konzolový klient se implicitně instalují do adresáře
/usr/lib/calom
, WebCalom do /usr/lib/cgi-bin/calom
.
Obě instalace musi být provedeny pod uživatelem calom
a skupinou calom
.
Je možné spouštět Calom server pod uživatelem root, protože se po přemístění
do adresáře data
uživatele calom
zbaví práv
superuživatele.
Adresáře s instalací Calom serveru a WebCalomu by měly být nepřístupné pro čtení ostatními uživateli, protože obsahují citlivá data uživatelů.
Pro správné fungování potřebuje Calom server:
./data
~calom/data
)
a všech podadresářích.
/tmp
.
<cgi-bin-root>/calom
(dále jen <webcalom-path>
) a všech podadresářů.
<webcalom-path>
):
scratch
xslt/scratch
helpers
.
<webcalom-path>
a jeho
podadresářů (stačí ty, které potřebuje pro zápis + config
).
<webcalom-path>
):
ready-reports
helpers
(pouze soubor scheduler.log)scratch
<webcalom-path>
a jeho
podadresářů (stačí config
a helpers
).
Pro zabezpečení síťového kanálu mezi dvěma počítači v módu client-server
lze použít SSL tunneling. Tím vytvoříte bezpečný kanál, který se
dá použít pro komunikaci.
Lze použít nástroje z balíku OpenSSH nebo např:
Pro bezpečnou práci s Calom serverem je nutné, aby na počítači, kde je server nainstalován, fungoval firewall, který dovolí spojení zvenku pouze na:
Pro posílení bezpečnosti je možné nasadit další bezpečnostní opatření:
V případě přístupu ke čtení komunikačních kanálů je možné
získat informace probíhající kanálem - o hovorech, o účastnících
a v omezené míře i o konfiguraci systému a sítě.
V případě, že se podaří získat CLI přístup na Calom server,
je dále možné:
Systém Calom není navržen na případ, že útočník bude schopen
přesměrovat spojení nebo změnit DNS záznamy (pokud Calom používá
doménová jména, ne IP adresy).
V takovém případě může dojít k neoprávněnému získání dat,
případně pozměnění dat v dirdb databázi.