Wklejasz log do wątku pomocy, odpowiedź wskazuje, że zawiera twój klucz prywatny, a wklejenie jest trwałe. Cichsza awaria ujawnia się później, gdy każdy adres stał się X, a plik nie dowodzi już, że klient i serwer były różnymi hostami. Przebieg redakcji usuwa to, co daje dostęp lub wskazuje osobę, i zachowuje to, co wyjaśnia awarię. To przekształcenie z regułami, a nie usuwanie za pomocą pola wyszukiwania.

Redakcja to przekształcenie, nie usuwanie

Log niesie strukturę równie dobrze jak wartości: ten adres rozmawiał z tamtym, o tej porze, a handshake zatrzymał się na tym kroku. To wartości czynią plik niebezpiecznym do publikacji. To struktura czyni go w ogóle wartym publikacji.

Usunięcie całych linii zabiera jedno i drugie naraz, dlatego przycięty log często nic nie odpowiada. Złożenie każdej wartości w jeden token zawodzi inaczej, bo dwa odrębne peery stają się jednym aktorem. Oba przebiegi mogą wyglądać schludnie i mimo to zniszczyć dowód. Test polega na tym, czy czytelnik, który nigdy nie widział twojej sieci, potrafi prześledzić sekwencję i dojść do wniosku, do którego doszedłeś.

Najpierw wyimek, potem czyszczenie

Wytnij fragment wokół awarii, zanim cokolwiek zmienisz. Mniejszy wyimek łatwiej sprawdzić i mniej prawdopodobne, że przeniesie coś, o czym zapomniałeś, że było w pliku. Przechowuj nietknięty oryginał w chronionym miejscu, aż sprawa zostanie zamknięta. Redakcja jest stratna, a surowy plik to jedyny sposób, by odpowiedzieć na pytanie uzupełniające.

Przeczytaj wyimek jako zwykły tekst, zanim zaufasz, że polecenie eksportu usunęło części prywatne, bo eksportery podsumowują i rotują pola, zamiast je czyścić. Tryby debug i verbose to najbardziej prawdopodobne miejsce na blok klucza lub osadzone dane logowania. Otwórz plik w edytorze pokazującym pełne wiersze, nie w przeglądarce, która zawija i ukrywa koniec.

Co musi zniknąć i w jakiej kolejności

Zacznij od materiału dającego dostęp, bo pominięcie tutaj kończy ćwiczenie: bloki kluczy prywatnych, hasła, klucze wstępnie współdzielone, tokeny API, kody odzyskiwania. Nie tylko identyfikują; może ich użyć każdy, kto czyta wątek. Przebieg, który usuwa wszystko inne i zostawia jeden z nich, zawiódł.

Potem warstwa tożsamości: nazwy użytkowników, podmioty i numery seryjne certyfikatów, identyfikatory kont i każda ścieżka zawierająca imię i nazwisko osoby. Nic z tego nie jest użyteczne samo, ale razem wskazuje osobę, a tego publiczny wątek nie potrzebuje.

Potem warstwa topologii, i tu wchodzi osąd. Publiczne adresy, zakresy wewnętrzne i nazwy hostów można zastąpić, gdy ich ujawnienie nie służy żadnemu celowi diagnostycznemu, a stabilne etykiety biją puste miejsca. Kolejność ma znaczenie, bo wcześniejsze warstwy są bezwzględne, a ostatnia jest decyzją. Praca w tej kolejności chroni też przed spędzeniem godziny nad nazwami hostów, gdy blok klucza leży w czterdziestym wierszu.

Original kindReplace withKeep
Client addressCLIENT_AWhich side initiated
Server addressSERVER_BPort and protocol
UsernameUSER_1The failure that mentions it
HostnameHOST_1Resolution order

Nie niszcz relacji

Nadaj każdej rzeczywistej wartości jeden symbol zastępczy i używaj go ponownie za każdym razem, gdy ta wartość się pojawia. Jeśli dwa adresy były różne, muszą pozostać różne po przebiegu, inaczej czytelnik dojdzie do wniosku, że klient połączył się sam ze sobą. Spójność to cały mechanizm: czytelnik uczy się mapowania, widząc powracającą etykietę. Jeden ponownie użyty token dla dwóch aktorów to najszybszy sposób, by log stał się nieczytelny.

Kolejność i czas są częścią tej samej struktury. Zachowaj sekwencję nietkniętą, a jeśli przesuwasz znaczniki czasu, przesuń wszystkie o tę samą wartość i powiedz to w jednej linii. Mieszanie zmienionych i prawdziwych czasów jest gorsze niż ich usunięcie, bo wtedy luki wyglądają jak dowód czegoś, co nigdy się nie zdarzyło.

Porty, protokół i kierunek zostają takie, jakie są. Symbol zastępczy na adresie nie wymaga symbolu zastępczego na porcie.

Zachowaj pytanie, na które log musi odpowiedzieć

Zapisz pola, których potrzebuje pomocnik, zanim zaczniesz edytować: dokładny, niebędący tajemnicą tekst błędu, wersje klienta i serwera, transport i to, która strona zainicjowała próbę. To one pozwalają obcemu rozpoznać awarię. Trzymanie listy obok zamienia przebieg w sprawdzenie, a nie w nadzieję.

Gdy wysyłasz plik, dodaj jedną linię mówiącą, co zastąpiono, żeby nikt nie spędził godziny na diagnozowaniu zastępczej nazwy hosta. Dokumentacja OpenVPN dotycząca logów diagnostycznych wymienia pola, które niosą jej logi, i to jest lista, którą właśnie zmieniasz. Zapytaj, zanim wyślesz zrzut pamięci lub przechwycenie pakietów, i używaj kanału pomocy, który możesz zweryfikować. Te artefakty zawierają znacznie więcej niż log tekstowy, a część z nich nie jest twoja do publikacji.

Przeczytaj gotowy wyimek raz od pierwszego do ostatniego wiersza, łącznie z początkiem i końcem. Zrzuty ekranu zasługują na więcej nieufności niż tekst, bo niosą inne okna, nazwy kont i pozycje menu.

Powiązane artykuły