Návrh logování odpovídá na tři otázky: který proces vytvořil záznam, kam se záznam ukládá a jak dlouho přežije. OpenVPN může zapisovat do souboru, předávat zprávy systémovému loggeru nebo je nechat na tom, co zachytí správce služeb, a to nejsou tři kopie jednoho proudu. Každá volba mění, kdo vlastní rotaci, který uživatel může výsledek číst a co se děje při startu. Rozhodněte odpovědi před incidentem, protože poté zdědíte to, co je nastaveno.

Co démon s direktivou skutečně dělá

Direktivy nejsou abstrakce; každá rozhoduje, kam proces zapisuje své zprávy. log /path otevře tento soubor, log-append /path ho otevře pro připisování a syslog předá zprávy místnímu systémovému loggeru přes svůj socket. Bez žádné z nich jde výstup na standardní výstup a správce služeb rozhodne, co se stane dál. Přečtěte si platnou jednotku a profil společně, než usoudíte, že démon ignoruje vaši konfiguraci.

Poslední případ je u balíčkové instalace běžný a vysvětluje, proč se dva správci neshodnou na tom, kde log žije. Jeden čte journal jednotky, druhý soubor, který démon nikdy nezapsal.

Zkontrolujte běžící konfiguraci, ne soubor na disku. Přepsání jednotky typu drop-in nebo soubor prostředí mohou změnit platnou direktivu, aniž by se dotkly profilu, který čtete.

log zkracuje, log-append ne

log zkrátí existující soubor, jakmile direktiva vstoupí v platnost, takže restart smaže důkazy z doby před ním. log-append zachová, co tam je, a přidává. Ani jedna možnost nic nerotuje a ani jedna soubor později sama znovu neotevře, proto rotace potřebuje spolupráci.

Pokud rotace přejmenuje soubor, zatímco démon dál zapisuje do starého deskriptoru, nový soubor zůstane prázdný a spotřeba disku dál roste v přejmenovaném. Signalizujte procesu znovuotevření, nebo rotujte strategií kopíruj-a-zkrať a přijměte kopírovací okno.

Adresář, vlastnictví a oprávnění jsou součástí návrhu. Démon může po startu běžet jako neprivilegovaný uživatel, a adresář vytvořený rootem při instalaci pak nemusí být zapisovatelný. Připravte ho pomocí balíčkování nebo procesu nasazení, místo abyste opravovali oprávnění během incidentu.

Správce služeb si drží druhou kopii

systemd ve výchozím nastavení zachycuje standardní výstup a standardní chybu, takže jednotka bez výslovného přesměrování už log má. Přidání souborové direktivy dá dva proudy s různou retencí, různými čtenáři a různými časovými razítky.

To není automaticky špatně, ale musí to být rozhodnutí. Ponechte startovní záznam v journalu, protože selhání před vznikem nastaveného souboru se nikde jinde neobjeví. Potom udělejte soubor autoritativním pro události v ustáleném stavu a napište to do runbooku. Dva autoritativní proudy znamenají dvě odpovědi na každou otázku.

Potvrďte volbu testem, který schválně selže. Spusťte démona s nečitelným certifikátem a zjistěte, který proud chybu zaznamená.

Podrobnost není totéž co použitelný detail

Vyšší úroveň verb přidává více řádků a po určitém bodu řádky, které nikdo nečte. Úroveň 3 je rozumný ustálený stav pro většinu nasazení, zatímco úroveň 4 a vyšší se hodí k ohraničenému šetření se známou otázkou. Potlačení opakování snižuje šum, ale nesmí skrývat, jak často se událost opakuje. Nastavte úroveň, kterou udržíte, a zvyšte ji jen pro pojmenované šetření s koncem.

Ponechte v záznamu identitu instance a časová razítka. Opětovné připojení vypadá přesně jako první připojení, když se do souboru přidává měsíce a chybí název instance.

Dávejte pozor, co dalšího do souboru dopadá. Přesměrovaný výstup může obsahovat text volaných skriptů a pomocný program, který vypisuje své prostředí, dostane přihlašovací údaje a cesty ke klíčům do čitelného logu. Berte přístup k logu jako bezpečnostní rozhodnutí, i když sám démon nic citlivého nevypisuje.

Rotace, retence a signály, které načítají znovu

Rozhodněte o retenci s tím, kdo vlastní disk, a nastavte ji dřív, než svazek rozhodne za vás. Signál k opětovnému načtení není příkaz pro údržbu logu: odeslání špatného restartuje tunel a odpojí každého uživatele. Napište postup znovuotevření vedle pravidla rotace, aby se oba nerozešly.

Výsledkem by měla být služba, kterou operátor umí popsat: jeden autoritativní proud, každá událost umístěná v životním cyklu a záznam dostupný bez sbírání všech souborů nesoucích tajemství na hostiteli. Tento popis je akceptační test návrhu a jeho ověření před dalším incidentem je levné.

Související články