Вы открываете консоль, меняете одно правило брандмауэра, и туннель, через который вы были подключены, исчезает. Изменение было верным, перезагрузка нет, и теперь единственный путь назад к машине тот, который вы только что сломали. Второй путь внутрь это проектное решение, и он должен существовать до аварии, а не во время неё.

Пройдитесь по тому, что у вас ещё есть

Начните с экрана консоли перед вами и перечислите пути, не зависящие от туннеля. Веб-консоль провайдера с последовательной сессией или VNC — один. Интерфейс управления в отдельной сети — другой. Физический доступ — третий, и именно его отсутствие люди обнаруживают в самый неподходящий момент.

PathDepends onUsually fails when
Provider consoleAccount access and the provider's own APICredentials live in a wiki only reachable over the tunnel
Management subnetA second interface and its own routingThe bad change was a global route or firewall policy
Second tunnelA different listener, port and credentialsBoth listeners were changed in the same edit
Physical or local consoleBeing in the buildingNobody has been in the building for a year

Читайте третий столбец как список отказов, а не как абстракцию. Два из этих путей обычно отказывают по одной и той же причине. Таблица это способ заметить это до того, как авария объяснит вам это сама.

Независимость — это вопрос зависимостей

Учётная запись восстановления не независима, если её пароль хранится в сервисе, до которого вы добираетесь через туннель. Второй VPN на том же хосте, том же порту и с той же политикой брандмауэра тоже не независим, потому что изменение, сломавшее первый, ломает оба.

Пройдите по цепочке вниз и назовите, что нужно каждому шагу. Сетевая доступность, разрешение имён, источник аутентификации и сам сервис управления это четыре отдельные зависимости, и путь, разделяющий любую из них, наследует этот отказ.

Путь, который никогда не проверяли, заслуживает отдельного недоверия. Консоль, не открывавшаяся месяцами, может потребовать сброса пароля по почте, а этот почтовый ящик может размещаться на машине, до которой вы не добираетесь. Проверьте путь, пока всё работает, и вы обнаружите это тихим днём.

Используйте второй путь для одного контролируемого изменения

Из консоли снимите снимок или скопируйте конфигурацию, которую собираетесь править. Измените одну вещь. Перезагрузите сервис и прочитайте результат, прежде чем трогать что-то ещё, потому что два изменения сразу превращают восстановление в эксперимент.

Держите сессию восстановления открытой, пока делаете это. Вся ценность второго пути в том, что он переживает то, что вы меняете, поэтому закрыть его первым значит убрать единственное свойство, которое делало его полезным.

Проверяйте с пути восстановления, а не по памяти

Проверка, которая важна, возвращается ли обычный путь, и сессия восстановления это место, где вы подтверждаете это по порядку:

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

Сначала прочитайте состояние сервиса, затем слушателя, затем правила, затем журнал. Сервис, работающий без слушателя, указывает на конфигурацию сервиса, а слушатель без доступных правил на фильтрацию. Порядок важен, потому что каждый шаг сужает следующий, а переход сразу к журналу обычно означает чтение ошибок, описывающих симптом, а не причину.

Документация systemctl описывает поведение состояния и перезапуска, используемое здесь, включая то, как неудачная перезагрузка оставляет предыдущий процесс работающим. Восстановить согласованную ревизию лучше, чем снова и снова подключаться с клиента, который не может починить сервер. Если условие отката, заданное до изменения, выполнено, восстановите и остановитесь.

Держите опись актуальной

Пересматривайте список доступа, когда меняются люди или инфраструктура. Проверяйте путь восстановления, пока всё работает. Отзывайте учётные записи, которыми никто не пользовался с последней реорганизации. Две устаревшие записи и один истёкший сертификат небольшая уборка во вторник и авария в воскресенье.

Записывайте, кто может пользоваться каждым путём, что он разрешает и как меняются учётные данные. Путь восстановления без владельца становится забытым входом, а это иной тип отказа, чем остаться запертым снаружи.

Похожие статьи