Я использую простой 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
и клиент .opvn
профили.
Также, если вы используете UFW, вам нужно отредактировать /etc/default/ufw
и изменить DEFAULT_FORWARD_POLICY
принять.
Если вы все еще продолжаете получать ошибки UDP, вам, вероятно, также необходимо изменить настройки сети.