Подключение Linux Ubuntu 20.04, 20.10, 21.04 к Forti VPN
Предыстория
Так уж получилось, что для удаленного доступа к работе приходится использовать Forti VPN.
В Windows за подключение отвечает отдельное приложение, а в Ubuntu 18.04 раньше использовал пакет из репозитория openfortivpn и GUI клиент с сайта https://hadler.me/linux/openfortigui/ .
Не феншуйно, но работало. Времени искать более правильное решение не было.
Сейчас, когда только-только вышла Ubuntu 20.04 работающего без ошибок GUI Forti VPN клиента еще не выпустили.
Прежде всего в репозитории я нашел для GNOME пакет network-manager-fortisslvpn-gnome. В результате его установки в настройках подключения появился пункт настройки VPN и возможность выбора типа подключения.
Безусловно это вселяло надежду, что получится отказаться от громоздкого GUI приложения.
После создания и настройки нового подключения появляется соответствующий пункт в панели управления.
Но вот незадача, не подтягиваются DNS сервера от DHCP сервера. После многих часов поиска ответа на вопрос что же происходит привели меня к следующему выводу. Оказалось, что наш VPN-cервер Forti использует SSL для шифрования, а его использование по умолчанию отключено в systemd.
Решение
Итого, чтобы настроить подключение к Forti VPN с шифрованием SSL и корректным использованием DNS серверов нужно:
1 – Установить network-manager-fortisslvpn-gnome
sudo apt-get install network-manager-fortisslvpn-gnome
2 – Открываем файл /etc/systemd/resolved.conf . Далее ищем строчку DNSOverTLS, раскомментируем ее и присваиваем значение opportunistic. Потом раскомментируем строку Domains и прописываем доменное имя DNS-сервера. После чего дописываем DNS.
[Resolve]
DNS=X.X.X.X
DNS=Y.Y.Y.Y
#FallbackDNS=
Domains=corp.yourdomain.com
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
DNSOverTLS=opportunistic
#Cache=yes
#DNSStubListener=yes
#ReadEtcHosts=yes
3. Перезапускаем systemd
sudo systemctl daemon-reload
sudo systemctl restart systemd-networkd
sudo systemctl restart systemd-resolved
Затем переподключаем соединение или для избежания доп проблем вообще перезагружаемся.
Все, при новом подключении к VPN серверу DNS серверы должны начать использоваться системой.
Альтернативное решение
Есть всегда альтернативный способ прописать DNS-серверы вручную и для этого нужно:
1 – Установить resolvconf
sudo apt-get install resolvconf
2 – Затем открыть один из файлов в папке /etc/resolvconf/resolv.conf.d (head или tail)
3 – После чего прописать в файл информацию о DNS серверах.
Суть в том, что после установки resolvconf он начинает управлять DNS серверами и итоговый файл /etc/resolv.conf начинает формироваться на основе трех файлов:
/etc/resolvconf/resolv.conf.d/head
/run/resolvconf/interface/systemd-resolved
/etc/resolvconf/resolv.conf.d/tail
Получается, что добавляя информацию в эти файлы мы автоматически ее добавляем в итоговый файл /etc/resolv.conf