Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:openvpn [2019/06/04 14:03] [Создание файла конфигурации клиента] |
wiki:openvpn [2021/09/03 11:00] (текущий) [Создание ключей и сертификатов] |
||
---|---|---|---|
Строка 41: | Строка 41: | ||
==== Создание ключей и сертификатов ==== | ==== Создание ключей и сертификатов ==== | ||
Защита соединения в OpenVPN в данном случае строится на использовании сертификатов и ключей для сервера и для клиентов. | Защита соединения в OpenVPN в данном случае строится на использовании сертификатов и ключей для сервера и для клиентов. | ||
- | Для их генерации в пакете OpenVPN имеются специальные скрипты, расположенные в **/usr/share/doc/openvpn/examples/easy-rsa/2.0** Перед началом работы скопируем их, чтобы не изменять оригиналы. | ||
- | |||
- | (для 12.04 LTS) | ||
<code> | <code> | ||
- | mkdir /etc/openvpn/easy-rsa | + | apt-get install easy-rsa |
- | cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa | + | |
</code> | </code> | ||
- | |||
- | (для 14.04 LTS) | ||
- | С лета 2013 года easy-rsa не входит в OpenVPN и команда указанная выше не сработает(не найдет easy-rsa), | ||
- | тогда делаем следующее: | ||
- | <code>apt-get install easy-rsa</code> | ||
<code> | <code> | ||
Строка 159: | Строка 150: | ||
# Указыем, где хранятся файлы с настройками IP-адресов клиентов (создадим ниже) | # Указыем, где хранятся файлы с настройками IP-адресов клиентов (создадим ниже) | ||
- | client-config-dir ccd | + | client-config-dir /etc/openvpn/ccd |
# Запоминать динамически выданные адреса для VPN-клиентов и при последующих подключениях назначать те же значения. | # Запоминать динамически выданные адреса для VPN-клиентов и при последующих подключениях назначать те же значения. | ||
- | ifconfig-pool-persist ipp.txt | + | ifconfig-pool-persist /etc/openvpn/ipp.txt |
# Указываем сети, в которые нужно идти через туннель (сеть-клиента). | # Указываем сети, в которые нужно идти через туннель (сеть-клиента). | ||
Строка 179: | Строка 170: | ||
keepalive 10 120 | keepalive 10 120 | ||
- | # Сжатие трафика | + | # Сжатие трафика. Для отключения используйте на сервере и клиенте comp-lzo no |
comp-lzo | comp-lzo | ||
Строка 236: | Строка 227: | ||
# Задаем маршрут для клиента, чтобы он видел сеть за OpenVPN-сервером. | # Задаем маршрут для клиента, чтобы он видел сеть за OpenVPN-сервером. | ||
+ | # Если маршрут требуется для всех подключаемых клиентов, достаточно эту | ||
+ | # строку прописать в конфигурационный файл сервера server.conf | ||
push "route 192.168.1.0 255.255.255.0" | push "route 192.168.1.0 255.255.255.0" | ||
</code> | </code> | ||
Строка 273: | Строка 266: | ||
<note important>Теперь нужно не забыть скопировать ключи (**ca.crt, client.crt, client.key, ta.key**) на клиента OpenVPN в **/etc/openvpn/keys/**</note> | <note important>Теперь нужно не забыть скопировать ключи (**ca.crt, client.crt, client.key, ta.key**) на клиента OpenVPN в **/etc/openvpn/keys/**</note> | ||
+ | |||
+ | <note important>Если планируется на клиенте импортировать файл настроек **.ovpn** вместе с сертификатами и ключами, например, для Android, важно в конфигурации клиента исключить строку **tls-auth**, вместо нее добавить **key-direction 1**. В противном случае будет ошибка вида //tls error: incoming packet authentication failed from [af_inet]//. | ||
+ | </note> | ||
==== Создание файла конфигурации клиента ==== | ==== Создание файла конфигурации клиента ==== | ||
**/etc/openvpn/client.conf** | **/etc/openvpn/client.conf** | ||
Строка 303: | Строка 299: | ||
mute 20 | mute 20 | ||
</code> | </code> | ||
+ | |||
+ | ==== ИЛИ единый файл конфигурации клиента client.ovpn с сертификатами и ключами для импорта ==== | ||
+ | |||
+ | <code> | ||
+ | client | ||
+ | dev tun | ||
+ | proto udp | ||
+ | |||
+ | # Внеший IP, на или за которым находится ваш сервер OpenVPN и порт (на сервере или роутере, за которым стоит сервер) | ||
+ | remote 111.222.333.444 1194 | ||
+ | |||
+ | # необходимо для DynDNS | ||
+ | resolv-retry infinite | ||
+ | |||
+ | tls-client | ||
+ | |||
+ | # Строка tls-auth /etc/openvpn/keys/ta.key 1, как выше говорилось, заменяется на | ||
+ | key-direction 1 | ||
+ | |||
+ | auth SHA1 | ||
+ | cipher AES-256-CBC | ||
+ | remote-cert-tls server | ||
+ | comp-lzo | ||
+ | persist-key | ||
+ | persist-tun | ||
+ | |||
+ | verb 3 | ||
+ | mute 20 | ||
+ | |||
+ | # Далее идут сертификаты и ключи которые берутся из соответствующих файлов сгенерированных выше | ||
+ | |||
+ | # Из ca.crt | ||
+ | <ca> | ||
+ | -----BEGIN CERTIFICATE----- | ||
+ | ... | ||
+ | -----END CERTIFICATE----- | ||
+ | </ca> | ||
+ | |||
+ | # Из client.crt | ||
+ | <cert> | ||
+ | -----BEGIN CERTIFICATE----- | ||
+ | ... | ||
+ | -----END CERTIFICATE----- | ||
+ | </cert> | ||
+ | |||
+ | # Из client.key | ||
+ | <key> | ||
+ | -----BEGIN PRIVATE KEY----- | ||
+ | ... | ||
+ | -----END PRIVATE KEY----- | ||
+ | </key> | ||
+ | |||
+ | # Из ta.key | ||
+ | <tls-auth> | ||
+ | -----BEGIN OpenVPN Static key V1----- | ||
+ | ... | ||
+ | -----END OpenVPN Static key V1----- | ||
+ | </tls-auth> | ||
+ | </code> | ||
+ | |||
Можно запускать наш клиент OpenVPN | Можно запускать наш клиент OpenVPN |