Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
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 | ||