Kome pripadaju OpenVPN zapisi: demonu, rsyslogu ili logrotateu?
Jedan pisac, jedan rotator, jedna politika čuvanja. Prvo odaberite put, imenujte demona za uski filtar i dokažite ponovno otvaranje jednom rotiranom datotekom.
Rotacija zapisa kvari se na predvidljiv način: tri komponente svaka misli da posjeduje datoteku, a rezultat je rotirani zapis koji nastavlja rasti dok nova datoteka ostaje prazna. Demon drži deskriptor, logrotate preimenuje putanju, a rsyslog piše sasvim drugdje. Odaberite jednog pisca i jednog rotatora prije nego na hrpu dodate još jedno pravilo. Popis provjera u nastavku ide tim redom jer svaki kasniji korak ovisi o njemu.
Odredite tko piše datoteku
Dva su nacrta legitimna. U prvome VPN proces sam piše datoteku preko svoje opcije log ili log-append. U drugome šalje zapise u sistemski zapisnik, a rsyslog ili journald odlučuje gdje će završiti.
To su alternative, a ne slojevi. Host koji uključi oboje završi s dvije datoteke koje se ne slažu, a ona koju čitate često je zastarjela. Odaberite putanju namjerno, a zatim uklonite drugog pisca.
Pročitajte djelotvornu konfiguraciju usluge prije nego što bilo što promijenite, uključujući drop-in datoteke koje mogu nadjačati datoteku jedinice. Direktiva prisutna u profilu koji ste uredili nije dokaz da je to ona koju je učitao pokrenuti proces. Usporedite jedinicu s argumentima procesa, a zatim s datotekama koje je stvarno otvorio.
Imenujte demona da filtar može biti uzak
Na putu preko sysloga dajte demonu zaseban identitet i filtrirajte po njemu. Pravilo koje odgovara nazivu programa ove VPN instance drži njezine zapise izvan zajedničke datoteke čija politika čuvanja pripada nečemu drugom.
Uska pravila čine odgovorivim i sljedeće pitanje: koja je usluga proizvela ovaj redak? Filtar koji odgovara svemu što sadrži riječ VPN rado će prikupiti promet drugog tunela i zamutiti oboje. Uspoređujte po točnom identifikatoru koji jedinica predaje zapisniku.
Zatvorite pravilo nakon radnje kako zapisi ne bi također propali u zadano odredište. Dvostruki reci u dvije datoteke izgledaju kao pogreška u zapisivanju, a zapravo su nedostajući prekid. Taj jedini propust udvostručuje i trošak pohrane politike čuvanja.
Rotirajte bez gubitka deskriptora
Kad demon piše datoteku, logrotate preimenuje putanju, ali proces zadržava svoj otvoreni deskriptor. Novi zapisi nastavljaju u preimenovanu datoteku dok nešto ne natjera proces da ponovno otvori izvornu putanju; zato rotacija može izgledati uspješno dok nova datoteka ostaje prazna.
Rješenje je radnja postrotate koja pokreće dokumentirano ponašanje ponovnog učitavanja ili restarta usluge. Slanje signala zapisniku posve je druga radnja i ne čini ništa za demona koji drži vlastitu datoteku.
Gdje je ponovno otvaranje nemoguće, copytruncate je pričuva: kopirajte datoteku, a zatim je skratite na mjestu. Deskriptor ostaje valjan, ali se gubi sve zapisano između kopiranja i skraćivanja, pa je to razmjena, a ne rješenje. Pod opterećenjem taj procjep može progutati upravo kvar koji pokušavate uhvatiti.
Odaberite jedno od dvoga po datoteci i zapišite odabir, jer njihovo miješanje na istoj putanji stvara procjepe koje je kasnije vrlo teško pripisati. Čitatelj koji u jednom direktoriju nađe oba uzorka ne može reći koji je mjerodavan.
Postavite čuvanje prema prozoru incidenta
Čuvanje, kompresija i najveća veličina trebaju slijediti iz toga koliko duboko stvarno istražujete. Prozor od sedam dana s kompresijom i gornjom granicom veličine razumno je polazište za mnoga uvođenja; broj prepisan iz priručnika nije.
Držite politiku na jednom mjestu. Ako logrotate rotira datoteku i rsyslog je također rotira, pobjeđuje druga rotacija, a sustav imenovanja prve preživljava kao nered. Odaberite vlasnika, isključite drugu rotaciju i zabilježite tu odluku uz politiku.
Dokumentacija rsysloga pokriva njegov model usmjeravanja i radnji, dok dokumentacija usluge OpenVPN ostaje mjerodavna za demonove vlastite opcije zapisivanja. Nijedna od njih ne odlučuje o vašoj politici čuvanja umjesto vas.
Ispitajte jednu rotaciju i jedan novi događaj
Prisilite jednu rotaciju, a zatim generirajte jedan novi događaj, primjerice neuspjelu autentifikaciju. Potvrdite da se novi zapis pojavljuje u novoj datoteci i da je stara datoteka prestala rasti.
Provjerite i dopuštenja na novoj datoteci, jer rotacija koja je ponovno stvori s drugim vlasnikom slomi pisca pri sljedećem upisu i stvori procjep koji izgleda kao pad. Usporedite vlasnika i način rada s računom usluge prije nego što odete. Zatim potvrdite da je komprimirana arhiva čitljiva, jer arhiva koju nitko ne može otvoriti nije čuvanje. Brzo čitanje najnovijeg zapisa u staroj datoteci dokazuje i kompresiju i dopuštenja.
Završite tako da zabilježite vlasnika svakog koraka: koja komponenta piše, koja rotira i gdje živi politika čuvanja. Taj zapis pretvara sljedeći incident sa zapisima u petominutnu provjeru umjesto poslijepodneva nagađanja koji je sloj ispustio redak.