Zamknięty na zewnątrz serwera VPN: zachowaj drugą drogę do środka
Zepsuty tunel nie powinien odbierać ci także możliwości naprawy serwera. Zaplanuj, przetestuj i przejrzyj niezależną ścieżkę administracyjną, zanim będzie ci potrzebna.
Otwierasz konsolę, zmieniasz jedną regułę zapory i tunel, przez który byłeś połączony, znika. Zmiana była poprawna, przeładowanie nie, a teraz jedyna droga z powrotem do maszyny to ta, którą właśnie zepsułeś. Druga droga do środka jest decyzją projektową i musi istnieć przed awarią, a nie w jej trakcie.
Przejrzyj to, co ci jeszcze zostało
Zacznij od ekranu konsoli przed sobą i wypisz ścieżki, które nie zależą od tunelu. Konsola internetowa dostawcy z sesją szeregową lub VNC jest jedną. Interfejs zarządzania w osobnej sieci jest kolejną. Dostęp fizyczny jest trzeci, i to jego brak ludzie odkrywają w najgorszym momencie.
| Path | Depends on | Usually fails when |
|---|---|---|
| Provider console | Account access and the provider's own API | Credentials live in a wiki only reachable over the tunnel |
| Management subnet | A second interface and its own routing | The bad change was a global route or firewall policy |
| Second tunnel | A different listener, port and credentials | Both listeners were changed in the same edit |
| Physical or local console | Being in the building | Nobody has been in the building for a year |
Czytaj trzecią kolumnę jako listę awarii, a nie jako abstrakcję. Dwie z tych ścieżek zwykle zawodzą z tego samego powodu. Tabela jest sposobem, w jaki zauważasz to, zanim awaria ci to wyjaśni.
Niezależność to kwestia zależności
Konto odzyskiwania nie jest niezależne, jeśli jego hasło jest przechowywane w usłudze, do której docierasz przez tunel. Drugi VPN na tym samym hoście, tym samym porcie i z tą samą polityką zapory też nie jest niezależny, ponieważ zmiana, która zepsuła pierwsze, psuje oba.
Zejdź w dół łańcucha i nazwij, czego potrzebuje każdy krok. Osiągalność sieci, rozwiązywanie nazw, źródło uwierzytelniania i sama usługa zarządzania to cztery osobne zależności, a ścieżka, która dzieli którąkolwiek z nich, dziedziczy tę awarię.
Ścieżka, której nigdy nie testowano, zasługuje na własną nieufność. Konsola nieotwierana od miesięcy może wymagać resetu hasła przez e-mail, a ta skrzynka może być hostowana na maszynie, do której nie docierasz. Przetestuj ścieżkę, gdy wszystko działa, a znajdziesz to w spokojne popołudnie.
Użyj drugiej drogi do jednej kontrolowanej zmiany
Z konsoli zrób migawkę albo skopiuj konfigurację, którą zamierzasz edytować. Zmień jedną rzecz. Przeładuj usługę i odczytaj wynik, zanim dotkniesz czegokolwiek innego, bo dwie zmiany naraz zamieniają odzyskiwanie w eksperyment.
Trzymaj sesję odzyskiwania otwartą, gdy to robisz. Cała wartość drugiej drogi polega na tym, że przeżywa to, co zmieniasz, więc zamknięcie jej najpierw usuwa jedyną właściwość, która czyniła ją użyteczną.
Sprawdzaj ze ścieżki odzyskiwania, nie z pamięci
Kontrola, która ma znaczenie, to czy normalna ścieżka wraca, a sesja odzyskiwania jest miejscem, w którym potwierdzasz to po kolei:
systemctl status openvpn-server@server --no-pager ss -lntup | grep -E ':(1194|443)\b' nft list ruleset | sed -n '1,40p' journalctl -u openvpn-server@server --since '-10 min' --no-pager | tail -n 30
Najpierw przeczytaj stan usługi, potem nasłuch, potem reguły, potem dziennik. Usługa działająca bez nasłuchu wskazuje na konfigurację usługi, natomiast nasłuch bez osiągalnych reguł wskazuje na filtrowanie. Kolejność ma znaczenie, bo każdy krok zawęża następny, a przeskoczenie do dziennika zwykle oznacza czytanie błędów opisujących objaw, a nie przyczynę.
Dokumentacja systemctl opisuje używane tutaj zachowanie stanu i restartu, w tym to, jak nieudane przeładowanie pozostawia poprzedni proces uruchomiony. Przywrócenie spójnej wersji jest lepsze niż wielokrotne ponowne łączenie się z klienta, który nie potrafi naprawić serwera. Jeśli warunek wycofania zdefiniowany przed zmianą został spełniony, przywróć i zatrzymaj się.
Utrzymuj inwentarz na bieżąco
Przeglądaj listę dostępu, gdy zmieniają się ludzie lub infrastruktura. Testuj ścieżkę odzyskiwania, gdy wszystko działa. Wycofuj konta, których nikt nie użył od ostatniej reorganizacji. Dwa przestarzałe konta i jeden wygasły certyfikat to małe porządki we wtorek i awaria w niedzielę.
Zapisuj, kto może używać każdej ścieżki, co ona dopuszcza i jak rotowane są poświadczenia. Ścieżka odzyskiwania bez właściciela staje się zapomnianym wejściem, a to inny rodzaj awarii niż pozostanie na zewnątrz.