h2 Настройка клиентов h2 Настройка на стороне клиентов выполняется кра

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
<h2>Настройка клиентов</h2>
Настройка на стороне клиентов выполняется крайне просто — достаточно сообщить клиенту адрес сервера, логин и пароль. Для macOS и iOS можно создать профили автоконфигурации, которые достаточно будет активировать в два клика.
<spoiler title="Настройка Windows">
В новых версиях Windows IKEv2 настраивается в простом мастере, который можно вызвать из меню подключения к WiFi.
<img src="https://habrastorage.org/webt/mu/hq/_r/muhq_rn7iubyixxxsislcmmqvzm.png" />
Windows не устанавливает маршрут по-умолчанию для такого соединения, поэтому установим его вручную. В свойствах VPN подключения заходим в свойства TCP/IPv4 --> дополнительно и устанавливаем галочку "Использовать шлюз в удаленной сети"
<a href="https://habrastorage.org/webt/ra/c5/_x/rac5_xi76rjiuadeswi3e1m8rug.png"><img src="https://habrastorage.org/webt/ra/c5/_x/rac5_xi76rjiuadeswi3e1m8rug.png" /></a>
<sup>кликабельно</sup>
</spoiler>
<spoiler title="Настройка macOS">
В macOS поддерживается IKEv2 начиная с версии 10.11 (El Capitan). Создание подключение происходит через меню настроек сети.
<img src="https://habrastorage.org/webt/f4/ad/hk/f4adhkw9swpneyfo0jn9jgro9s4.png" alt="image"/>
Добавлем новое подключение. В качестве имени подключения задаем любое произвольное имя.
<img src="https://habrastorage.org/webt/xc/ng/zq/xcngzqon0ilejqrl7hqla-8vbf4.png" alt="image"/>
Для проверки подлинности сертификата, нужно указать доменное имя. При этом в поле "Server Address" можно указать IP адрес сервера, а домен только в "Remote ID", тогда для подключения подключения не будет выполняться DNS-резолв и оно будет происходить чуть быстрее.
<img src="https://habrastorage.org/webt/x4/c2/eq/x4c2eqk2waefy8woi_pnaa8o5uw.png" alt="image"/>
Логин и пароль пользователя указываем из файла <b>/etc/ipsec.secrets</b>
<img src="https://habrastorage.org/webt/-p/gu/98/-pgu98eevkywzjzqjd7dfvq94zc.png" alt="image"/>
</spoiler>
<spoiler title="Настройка iOS">
Настройку iOS можно выполнить вручную через мастер, но намного удобнее использовать профиль автоконфигурации mobileconfig.
Ручная настройка по смыслу аналогична десктопной macOS:
<b>Настройки -> VPN -> Добавить конфигурацию VPN</b>
</spoiler>
<spoiler title="Профиль автоконфигурации для устройств Apple">
Профили автоконфигурации .mobileconfig представляют из себя XML файл с настройка, которые могут настраивать что угодно, от SSL сертификатов до VPN подключений.
Пользователю достаточно кликнуть по файлу и все нужные настройки установятся автоматические
Пример конфига для подключения к нашему IKEv2 серверу.
Для настройки файла под свою конфигурацию, достаточно отредактировать несколько параметров в этом шаблоне:
<b>AuthName</b> — имя пользователя из файла <b>/etc/ipsec.secrets</b>
<b> AuthPassword</b> — пароль пользователя <b>/etc/ipsec.secrets</b>
<b>RemoteAddress</b> — домен или IP адрес сервера
<b>RemoteIdentifier</b> — домен, на который выпущен сертификат
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>IKEv2</key>
<dict>
<!-- Username and password from ipsec.secrets -->
<key>AuthName</key>
<string>IrinaYarovaya</string>
<key>AuthPassword</key>
<string>PleaseLoveMe123</string>
<!-- Hostname or IP address of VPN server.
Chosing IP address instead of DNS name can avoid issues with client DNS resolvers and speed up connection process. -->
<key>RemoteAddress</key>
<string>123.123.123.123</string>
<!-- leftid in ipsec.conf -->
<key>RemoteIdentifier</key>
<string>good.citizen.vpn</string>
<key>AuthenticationMethod</key>
<string>Certificate</string>
<key>ChildSecurityAssociationParameters</key>
<dict>
<!-- in ipsec.conf this proposal is: ike=aes256-sha256-modp2048 -->
<key>DiffieHellmanGroup</key>
<integer>14</integer>
<key>EncryptionAlgorithm</key>
<string>AES-256</string>
<key>IntegrityAlgorithm</key>
<string>SHA2-256</string>
<key>LifeTimeInMinutes</key>
<integer>1440</integer>
</dict>
<key>DeadPeerDetectionRate</key>
<!--
None (Disable)
Low (keepalive sent every 30 minutes)
Medium (keepalive sent every 10 minutes)
High (keepalive sent every 1 minute)
-->
<string>High</string>
<key>ExtendedAuthEnabled</key>
<true/>
<key>IKESecurityAssociationParameters</key>
<dict>
<key>DiffieHellmanGroup</key>
<integer>14</integer>
<key>EncryptionAlgorithm</key>
<string>AES-256</string>
<key>IntegrityAlgorithm</key>
<string>SHA2-256</string>
<key>LifeTimeInMinutes</key>
<integer>1440</integer>
</dict>
<!--
Always On OnDemand Rule
Cen be disabled in connection preferences by "On Demand" checkbox
http://www.v2ex.com/t/137653
https://developer.apple.com/library/mac/featuredarticles/iPhoneConfigurationProfileRef/Introduction/Introduction.html
https://github.com/iphoting/ovpnmcgen.rb
-->
<key>OnDemandEnabled</key>
<integer>1</integer>
<key>OnDemandRules</key>
<array>
<dict>
<key>Action</key>
<string>Connect</string>
</dict>
</array>
</dict>
<key>IPv4</key>
<dict>
<key>OverridePrimary</key>
<integer>1</integer>
</dict>
<key>PayloadDescription</key>
<string>Configures VPN settings</string>
<key>PayloadDisplayName</key>
<string>VPN</string>
<key>PayloadIdentifier</key>
<string>com.apple.vpn.managed.96C1C38F-D4D6-472E-BA90-9117ED8896B5</string>
<key>PayloadType</key>
<string>com.apple.vpn.managed</string>
<key>PayloadUUID</key>
<string>96C1C38F-D4D6-472E-BA90-9117ED8896B5</string>
<key>PayloadVersion</key>
<integer>1</integer>
<!-- VPN connection name in Network Preferences -->
<key>UserDefinedName</key>
<string>London VPN</string>
<key>VPNType</key>
<string>IKEv2</string>
</dict>
</array>
<!-- Set the name to whatever you like, it is used in the profile list on the device -->
<key>PayloadDisplayName</key>
<string>My Super IKEv2 VPN</string>
<!-- A reverse-DNS style identifier (com.example.myprofile, for example) that identifies the profile. This string is used to determine whether a new profile should replace an existing one or should be added. -->
<key>PayloadIdentifier</key>
<string>vpn.googd.citizen</string>
<!-- A globally unique identifier, use uuidgen on Linux/Mac OS X to generate it -->
<key>PayloadUUID</key>
<string>F3FAD91C-019C-4A79-87A1-CF334C583339</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>
</source>
</spoiler>
</spoiler>
<spoiler title="Настройка Android">
К сожалению Android единственная из популярных операционных систем до сих пор не имеет встроенной поддержки IKEv2. Для подключения можно использовать официальный клиент <a href="https://play.google.com/store/apps/details?id=org.strongswan.android&hl=en_US">Strongswan из PlayMarket</a>
</spoiler>