Dilling
Professional
- Messages
- 149
- Reaction score
- 139
- Points
- 43
В процессе работы я сталкивался с разными конфигами, которые не дружат с некоторыми версиями OpenVPN. Вообще OpenVPN клиент - весьма странная вещь. Новые версии не имеют никакой обратной совместимости со старыми конфигами, либо не поддерживают некоторые параметры, сегодня я разберу некоторые из них (те, которые необходимо менять в зависимости от устройства-клиента OpenVPN, чтобы у вас не возникало проблем при использовании). С полной документацией можно ознакомиться по официальной ссылке. Отдельного упоминания заслуживают клиенты в известных нам всем прошивках на малину с веб-интерфейсом, которые просто не дружат ни с чем и сыпят ошибками, ну да ладно, сегодня мы собрались здесь не для того чтобы поносить необразованных кокеров программистов, а для того чтобы самим получить полезные в работе знания и делать пять лямов баксов в сутки.
Для работы без raspberry настоятельно рекомендую использовать клиент Viscosity, который имеет обратную совместимость, умеет сам определять версию OpenVPN по конфигурации, а также имеет полезные настройки маршрутизации ipv4/ipv6 только через сервер а также не страдает от утечки DNS, как, к примеру, Tunnelblick для Mac OS. Аналоги - OpenVPN Connect 2.7.1 для Mac OS, либо же OpenVPN Connect 2.5.3/2.6.3 для Windows, но в случае работы с официальным клиентом лучше уточните у вашего селлера конфигураций, с какой версией его конфиги будут совместимы.
dev tun/dev tap - в данном параметре dev tun создает туннель к серверу, а dev tap прокладывает маршрут таким образом, как будто вы подключены напрямую к роутеру. В целом параметр dev tap лучше использовать для распберри, но на деле это не критично.
tun-mtu/mssfix отвечает за максимальный размер передаваемого пакета (если не указан в тексте конфига - используется значение 1450), рекомендую использовать mssfix 0 при использовании tcp и mssfix 1330 при использовании udp. Это выставит параметр в значение 1500, что характерно для стандартного подключения и позволит не палит VPN перед антифродом.
block-outside-dns это параметр для клиентов MacOS/Win/iOS/Android, который позволяет избежать утечки dns. Клиентом Tunnelblick (MacOS) и OpenVPN для raspberry данный параметр не поддерживается.
Также нужные вам dns сервера можно указать параметром dhcp-option DNS 8.8.8.8 (днс Google для примера)
windows-driver wintun - параметр для создания сетевого интерфейса подключения в Windows.
block-ipv6 - параметр для MacOS/Win/iOS/Android, который позволяет избежать утечки ip через ipv6. В raspberry/роутерах следует настраивать это другим способом, поскольку в них данный параметр не поддерживается.
script-security 2 - это параметр для Raspberry, который позволяет выполнить внешние скрипты, на практике позволяет избежать утечки dns при использовании на малине софта для поключения к dns по вашей конфигурации.
tls-version-min 1.0 - тоже параметр для распберри, поскольку в данный момент она использует TLS версий 1.0/1.1, а стандартный параметр OpenVPN это версия 1.2, поэтому следует указать этот параметр во избежание ошибок при подключении.
Здесь я разобрал основные параметры, из за которых подключение к конфигурации может приводить к ошибке при импорте их в Ваш клиент.
Остальные параметры на подключение влиять не будут , однако если есть интерес более подробно разобраться в технической части, а не только подключиться/активировать трубу/снять 5 долларов с инст плайда и купить себе полку шмали, вот полезные ссылки, короче будет время - ознакомитесь, думаю не стоит вас грузить инфой которая практически применима только если вы сами эти конфиги прокладываете.
https://openvpn.net/community-resources/
https://forums.raspberrypi.com/search.php?keywords=OpenVPN&sid=c0c7f5edf5c330126eb04c49952a0d38
https://habr.com/ru/articles/216295/
https://serverfault.com/questions/tagged/openvpn
Для работы без raspberry настоятельно рекомендую использовать клиент Viscosity, который имеет обратную совместимость, умеет сам определять версию OpenVPN по конфигурации, а также имеет полезные настройки маршрутизации ipv4/ipv6 только через сервер а также не страдает от утечки DNS, как, к примеру, Tunnelblick для Mac OS. Аналоги - OpenVPN Connect 2.7.1 для Mac OS, либо же OpenVPN Connect 2.5.3/2.6.3 для Windows, но в случае работы с официальным клиентом лучше уточните у вашего селлера конфигураций, с какой версией его конфиги будут совместимы.
dev tun/dev tap - в данном параметре dev tun создает туннель к серверу, а dev tap прокладывает маршрут таким образом, как будто вы подключены напрямую к роутеру. В целом параметр dev tap лучше использовать для распберри, но на деле это не критично.
tun-mtu/mssfix отвечает за максимальный размер передаваемого пакета (если не указан в тексте конфига - используется значение 1450), рекомендую использовать mssfix 0 при использовании tcp и mssfix 1330 при использовании udp. Это выставит параметр в значение 1500, что характерно для стандартного подключения и позволит не палит VPN перед антифродом.
block-outside-dns это параметр для клиентов MacOS/Win/iOS/Android, который позволяет избежать утечки dns. Клиентом Tunnelblick (MacOS) и OpenVPN для raspberry данный параметр не поддерживается.
Также нужные вам dns сервера можно указать параметром dhcp-option DNS 8.8.8.8 (днс Google для примера)
windows-driver wintun - параметр для создания сетевого интерфейса подключения в Windows.
block-ipv6 - параметр для MacOS/Win/iOS/Android, который позволяет избежать утечки ip через ipv6. В raspberry/роутерах следует настраивать это другим способом, поскольку в них данный параметр не поддерживается.
script-security 2 - это параметр для Raspberry, который позволяет выполнить внешние скрипты, на практике позволяет избежать утечки dns при использовании на малине софта для поключения к dns по вашей конфигурации.
tls-version-min 1.0 - тоже параметр для распберри, поскольку в данный момент она использует TLS версий 1.0/1.1, а стандартный параметр OpenVPN это версия 1.2, поэтому следует указать этот параметр во избежание ошибок при подключении.
Здесь я разобрал основные параметры, из за которых подключение к конфигурации может приводить к ошибке при импорте их в Ваш клиент.
Остальные параметры на подключение влиять не будут , однако если есть интерес более подробно разобраться в технической части, а не только подключиться/активировать трубу/снять 5 долларов с инст плайда и купить себе полку шмали, вот полезные ссылки, короче будет время - ознакомитесь, думаю не стоит вас грузить инфой которая практически применима только если вы сами эти конфиги прокладываете.
https://openvpn.net/community-resources/
https://forums.raspberrypi.com/search.php?keywords=OpenVPN&sid=c0c7f5edf5c330126eb04c49952a0d38
https://habr.com/ru/articles/216295/
https://serverfault.com/questions/tagged/openvpn