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

Начните с интервала перезапуска

Интервал — это подсказка прежде всего остального. Ровный ритм, совпадающий с окном ping-restart, указывает на заменяемую сессию, а не на сбойный путь, потому что сбои пути редко бывают такими регулярными. Запишите точный промежуток между перезапусками и строку причины в журнале клиента. Тайм-аут с последующим перезапуском рассказывает другую историю, чем неудачное рукопожатие.

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

Запишите интервал и причину. Оба являются доказательством, и оба дешево собрать.

Прочитайте, что сервер сказал о втором входе

На сервере, который вы контролируете, журнал называет общее имя и показывает второе подключение. Без duplicate-cn это подключение заменяет существующую сессию для того же имени, и сообщение обычно говорит об этом прямо. С duplicate-cn обе сессии сосуществуют, и симптом меняется: клиенты остаются на связи, но делят один набор настроек на клиента и одно решение об отзыве. Читайте две записи вместе, потому что замена видна только в последовательности.

У хостингового сервиса у вас может вообще не быть серверного журнала. Тогда подсказка — время: стабильный туннель, который падает каждый раз, когда подключается другая машина, и в журнале клиента нет ничего, кроме тайм-аута.

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

Разделите личность на стороне сервера

Выдайте один сертификат на устройство через CA, которая подписывает для этого сервера. С Easy-RSA это означает отдельное клиентское имя для каждого устройства, и профиль затем строится из этого сертификата и его ключа. Общее имя становится личностью устройства, и именно этого серверу не хватало. Называйте их по устройству, а не по человеку, чтобы замена давала новое имя.

Общий ключ управляющего канала — это отдельная вещь. tls-crypt или tls-auth защищает управляющий канал для каждого клиента и предназначен для совместного использования. Это не личность клиента, и его замена не исправит дублированный сертификат.

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

После разделения держите адреса и настройки согласованными

Фиксированные адреса вводят второй способ коллизии. Если сервер назначает их через ifconfig-pool-persist или файл на клиента, эти записи всё ещё указывают на старое имя. Два устройства могут получить один и тот же адрес туннеля даже после разделения сертификатов, и этот сбой выглядит иначе, чем исходный цикл.

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

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

Выведите старую личность из обращения как следует

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

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

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