Gdje OpenVPN server treba pisati svoj dnevnik i zašto
log, log-append i syslog se razlikuju, a upravitelj usluga drži vlastitu kopiju. Odaberite jedan mjerodavan tok, držite životni ciklus čitljivim i postavite retenciju.
Dizajn dnevnika odgovara na tri pitanja: koji je proces stvorio zapis, gdje taj zapis završava i koliko dugo preživljava. OpenVPN može pisati u datoteku, predati poruke sistemskom loggeru ili ih prepustiti onome što upravitelj usluga uhvati, i to nisu tri kopije jednog toka. Svaki izbor mijenja tko posjeduje rotaciju, koji korisnik može čitati rezultat i što se događa tijekom pokretanja. Riješite odgovore prije incidenta, jer poslije nasljeđujete ono što je konfigurirano.
Što daemon zapravo radi s direktivom
Direktive nisu apstrakcije; svaka odlučuje gdje proces piše svoje poruke. log /path otvara tu datoteku, log-append /path otvara je za dodavanje, a syslog predaje poruke lokalnom sistemskom loggeru preko svoje utičnice. Bez ijedne od njih izlaz ide na standardni izlaz, a upravitelj usluga odlučuje što se događa dalje. Pročitajte djelotvornu jedinicu i profil zajedno prije nego zaključite da daemon ignorira vašu konfiguraciju.
Posljednji je slučaj uobičajen kod paketske instalacije i objašnjava zašto se dva administratora ne slažu oko toga gdje dnevnik živi. Jedan čita journal jedinice, drugi datoteku koju daemon nikada nije napisao.
Provjerite konfiguraciju koja radi, a ne datoteku na disku. Drop-in nadjačavanje jedinice ili datoteka okoline mogu promijeniti djelotvornu direktivu bez diranja profila koji čitate.
log skraćuje, log-append ne
log skraćuje postojeću datoteku kad direktiva stupi na snagu, pa ponovno pokretanje briše dokaze od prije. log-append zadržava ono što postoji i dodaje. Nijedna opcija ništa ne rotira i nijedna sama kasnije ne otvara datoteku iznova, zato rotacija treba suradnju.
Ako rotacija preimenuje datoteku dok daemon nastavi pisati u stari deskriptor, nova datoteka ostaje prazna, a potrošnja diska nastavlja rasti u preimenovanoj. Pošaljite procesu signal da ponovno otvori ili rotirajte strategijom kopiraj-pa-skrati i prihvatite kopirni prozor.
Mapa, vlasništvo i dozvole dio su dizajna. Daemon može nakon pokretanja raditi kao neprivilegirani korisnik, a mapa koju je root stvorio pri instalaciji tada možda neće biti upisiva. Pripremite je kroz pakiranje ili proces postavljanja umjesto da popravljate dozvole tijekom incidenta.
Upravitelj usluga drži drugu kopiju
systemd po zadanome hvata standardni izlaz i standardnu pogrešku, pa jedinica bez izričitog preusmjeravanja već ima dnevnik. Dodavanje datotečne direktive daje dva toka s različitom retencijom, različitim čitateljima i različitim vremenskim oznakama.
To nije automatski pogrešno, ali mora biti odluka. Zadržite zapis o pokretanju u journalu, jer se kvarovi prije postojanja konfigurirane datoteke ne pojavljuju nigdje drugdje. Zatim učinite datoteku mjerodavnom za događaje u stabilnom radu i napišite to u runbooku. Dva mjerodavna toka znače dva odgovora na svako pitanje.
Potvrdite izbor testom koji namjerno ne uspijeva. Pokrenite daemon s nečitljivim certifikatom i provjerite koji tok bilježi grešku.
Opširnost nije isto što i upotrebljiv detalj
Viša razina verb dodaje više redaka, a nakon neke točke retke koje nitko ne čita. Razina 3 razuman je stalni režim za većinu postava, dok razina 4 i više odgovaraju ograničenoj istrazi s poznatim pitanjem. Potiskivanje ponavljanja smanjuje šum, ali ne smije skrivati koliko se često neki događaj vraća. Postavite razinu koju možete održavati i podignite je samo za imenovanu istragu s krajem.
Zadržite identitet instance i vremenske oznake u zapisu. Ponovna veza izgleda točno kao prva veza kad se datoteci mjesecima dodaje sadržaj, a naziv instance nedostaje.
Pazite što još završava u toj datoteci. Preusmjereni izlaz može sadržavati tekst pozvanih skripti, a pomoćni program koji ispisuje svoje okruženje stavlja vjerodajnice i putanje ključeva u čitljiv dnevnik. Tretirajte pristup dnevniku kao sigurnosnu odluku čak i kad sam daemon ne ispisuje ništa osjetljivo.
Rotacija, retencija i signali koji ponovno učitavaju
Dogovorite retenciju s osobom koja posjeduje disk i postavite je prije nego što volumen odluči umjesto vas. Signal za ponovno učitavanje nije naredba za održavanje dnevnika: slanje pogrešnog ponovno pokreće tunel i prekida svakog korisnika. Napišite postupak ponovnog otvaranja uz pravilo rotacije da se njih dvoje ne raziđu.
Rezultat bi trebala biti usluga koju operater može opisati: jedan mjerodavan tok, svaki događaj smješten u životni ciklus i zapis dostupan bez prikupljanja svake datoteke s tajnama na hostu. Taj je opis prihvatni test dizajna i jeftino ga je provjeriti prije sljedećeg incidenta.