Шестидесятисекундный тайм-аут TLS: какая сторона на самом деле остановилась?
Прежде чем трогать настройки TLS, сопоставьте одну попытку клиента с собственными событиями сервера. Молчание, раннее отбрасывание и именованный отказ требуют разных исправлений.
Клиент сдаётся через шестьдесят секунд с сообщением о согласовании ключей, а ноутбук не высказывает мнения о причине. Это предложение описывает терпение клиента, а не поведение сервера. Его порождают три совершенно разные ситуации: пакет так и не дошёл до нужной службы, служба отбросила его, не записав ничего, или служба отклонила его и сказала об этом там, где клиент не видит. Именно сопоставление одной попытки на обоих концах и разделяет их.
Дайте одной попытке идентификатор, по которому можно искать
Запишите время начала с его часовым поясом, имя профиля, адрес назначения, который клиент действительно разрешил, порт, а также использует ли соединение UDP или TCP. Если в профиле несколько удалённых записей, отметьте, какую выбрала эта попытка, потому что повторная попытка могла перейти к следующей записи, не изменяя файл, который вы читаете.
Берите конечную точку из активного журнала, а не из загрузки, которую помните. Профиль, указывающий на частный адрес, полностью корректен и совершенно непригоден из сети, которая не может маршрутизировать к нему, и этот случай выглядит так же, как выключенный сервер.
Затем попросите оператора о том же окне на нужном экземпляре. Расхождение часов встречается достаточно часто, чтобы разница в несколько минут заставила подходящее событие выглядеть отсутствующим, поэтому зафиксируйте смещение, а не делайте вывод, что события не было.
Четыре наблюдения, четыре разных следующих шага
То, что сервер фиксирует, определяет ветвь. Отсутствие любой попытки указывает на адресацию, транспорт или путь к службе. Входящие пакеты, исчезающие до обычного обмена, указывают на требования управляющего канала реальной службы. Именованный отказ указывает на объект, который он называет. Ответы, которые покидают сервер, но никогда не доходят до клиента, указывают на обратный путь.
Пустой журнал приложения — более слабое доказательство, чем кажется. Журналирование начинается в определённой точке обмена, и пакеты, отброшенные до этой точки, не оставляют следа в файле, который вы читаете. Там, где это разрешено, оператор может использовать наблюдения службы и сети, чтобы увидеть, дошло ли хоть что-нибудь.
Держите четыре исхода отдельно в своих заметках. Соблазн — слить их в «сервер не отвечает», и именно эта фраза отправляет людей менять шифры, когда настоящая проблема — правило брандмауэра. Заметка, в которой записано только слово тайм-аут, выбросила различие, за которое вы только что заплатили.
Исправьте этап, который называет доказательство
Завершённое TCP-соединение доказывает лишь то, что что-то приняло сокет. Оно не доказывает, что слушатель — это настроенная вами служба OpenVPN, а веб-сервер на том же имени хоста идеально отвечает браузеру, оставаясь несущественным для туннеля.
Если сервер сообщает об истёкшем списке отзыва, это гораздо более конкретный факт, чем итоговый тайм-аут клиента, и исправление относится к удостоверяющему центру, а не к сети. Если два конца расходятся во мнениях о защите управляющего канала или общем материале, сброс пароля ничего не меняет, потому что отбрасывание происходит раньше проверки любых учётных данных.
Измените одну вещь, которую доказательство действительно поддерживает, затем повторите тот же профиль против той же конечной точки. Сохраните первое новое событие, если соединение продвинулось дальше, потому что это событие — следующий этап расследования, а не новая проблема.
grep -nE 'TLS Error|VERIFY ERROR|CRL|handshake failed' /var/log/openvpn/server.log
date -u; timedatectl | head -3
Что на самом деле меняет продление окна
Шестьдесят секунд — это окно рукопожатия клиента, и справочник клиента сообщества документирует параметр, который его настраивает. Его увеличение заставляет клиента ждать дольше, прежде чем сдаться. Оно не заставляет отсутствующую службу появиться и не делает отклонённый пакет приемлемым.
У более длинного окна есть законное применение на медленном канале или сильно загруженном сервере, и его стоит попробовать, когда у вас есть доказательства, что обмен идёт медленно, а не что он вообще не происходит. Попытка с него только откладывает тот же диагноз ещё на минуту и делает временную шкалу труднее для чтения. Если временная шкала показывает обмен, который продвигается, а затем застревает, окно — это симптом нагрузки, а не доступности.