Я использую простой vpn-сервер со следующими программами:
Конфигурация моего сервера:
Прошло всего несколько дней с тех пор, как я начал запускать сервер. Проблема в том, что Netdata продолжает присылать мне эти 3 типа ошибок каждые несколько часов.
Я подумал, что это не имеет большого значения, поэтому проигнорировал их.
Я не уверен, что это проблема брандмауэра, узкое место в системе или одно из трех упомянутых программ VPN работают не очень хорошо.
Я просмотрел почти все файлы журнала в / var / log
, но не смог найти ни одной ошибки или проблемы до того, как сервер стал недоступен. Я не уверен, завис ли сервер , или произошел сбой. причина отсутствия журнала после определенного момента. только после того, как мы принудительно перезагрузили.
Я обнаружил проблему. Это было связано с openvpn. Я просмотрел / var / log / syslog
и, по-видимому, у openvpn возникла проблема при установлении связи TLS с клиентом. И он продолжал регистрировать эти ошибки:
TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
TLS handshake failed
Причиной тому был параметр reneg-sec
, который имел значения по умолчанию 3600. Вот цитата из официальных документов openvpn:
–reneg-sec n
Повторное согласование ключа канала данных через n секунд (по умолчанию = 3600). При использовании двухфакторная аутентификация, обратите внимание, что это значение по умолчанию может вызвать конечному пользователю будет предлагаться повторная авторизация один раз в час.
Также имейте в виду, что эту опцию можно использовать как на клиенте, так и на сервер, и в зависимости от того, что использует меньшее значение, будет запускаться пересмотр. Распространенной ошибкой является установка более высокого значения -reneg-sec. значение либо на клиенте, либо на сервере, в то время как другая сторона соединение по-прежнему использует значение по умолчанию 3600 секунд, что означает что повторное согласование по-прежнему будет происходить один раз в 3600 секунд. В решение - увеличить –reneg-sec как на клиенте, так и на сервере, или установите его на 0 на одной стороне соединения (чтобы отключить), а на вашем выбранное значение на другой стороне.
Этот параметр гарантирует, что клиент должен повторно согласовывать свой ключ каждый час.
Итак, если вы оставили openvpn на (стороне клиента) на долгое время, и если по какой-либо причине один из рукопожатие не удается. Это приведет к бесконечному количеству неудачных переговоров. Я предполагаю, что это вызвало отброшенные пакеты и прочее.
Не говоря уже о том, что интерфейс "tun0" изначально был создан openvpn, о чем я не знал.
В любом случае решение состоит в изменении интерфейса reneg-sec
либо на большее значение, либо просто установите его на ноль и отключите. Я решил просто использовать параметр отключения и поместить reneg-sec 0
в профили server.conf
и client .opvn
.
Также, если это произойдет чтобы использовать UFW, вы должны отредактировать / etc / default / ufw
и изменить
DEFAULT_FORWARD_POLICY
, чтобы принять.
Если вы по-прежнему получаете ошибки UDP, вам, вероятно, также необходимо изменить настройки сети.