Различия



Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

Ссылка на это сравнение

wiki:nastrojka_openvpn [2013/06/26 14:03]
purepower [Настройка сервера OpenVPN]
wiki:nastrojka_openvpn [2013/10/18 11:39] (текущий)
staubnull
Строка 4: Строка 4:
 ==== Генерация ключей для OpenVPN ==== ==== Генерация ключей для OpenVPN ====
 Первый этап настройки OpenVPN - генерация ключей для серверной и клиентской частей OpenVPN, необходимых для безопасного подключения. Мы рассмотрим самый распространенный вариант работы - один ключ сервера и неограниченное количество ключей клиентов. Первый этап настройки OpenVPN - генерация ключей для серверной и клиентской частей OpenVPN, необходимых для безопасного подключения. Мы рассмотрим самый распространенный вариант работы - один ключ сервера и неограниченное количество ключей клиентов.
-Для их создания понадобится установочный файл OpenVPN для систем Windows, который можно взять по ссылке: [[http://openvpn.net/index.php/download/community-downloads.html|Windows Installer (32-bit или 34-bit)]].+Для их создания понадобится установочный файл OpenVPN для систем Windows, который можно взять по ссылке: [[http://openvpn.net/index.php/download/community-downloads.html|Windows Installer (32-bit или 64-bit)]].
 После его установки необходимо перейти в папку с установленным OpenVPN (по умолчанию: "C:\Program Files\OpenVPN"), открыть папку "easy-rsa", скопировать файл "vars.bat" (или если его нет, то файл "vars.bat.sample") и переименовать в "vars-server.bat", открыть его в любом блокноте для редактирования и заменить строки как в примере (или просто нажать на имя файла в примере для того, чтобы скачать его себе на компьютер): После его установки необходимо перейти в папку с установленным OpenVPN (по умолчанию: "C:\Program Files\OpenVPN"), открыть папку "easy-rsa", скопировать файл "vars.bat" (или если его нет, то файл "vars.bat.sample") и переименовать в "vars-server.bat", открыть его в любом блокноте для редактирования и заменить строки как в примере (или просто нажать на имя файла в примере для того, чтобы скачать его себе на компьютер):
 <file - vars-server.bat> <file - vars-server.bat>
Строка 85: Строка 85:
      
 ==== Настройка сервера OpenVPN ==== ==== Настройка сервера OpenVPN ====
-Необходимо отредактировать основной файл настроек OpenVPN, находящийся по адресу /media/DISK_A1/system/etc/openvpn/openvpn.conf +Необходимо отредактировать основной файл настроек OpenVPN, находящийся по адресу "/media/DISK_A1/system/etc/openvpn/openvpn.conf". 
-Рассмотрим обязательные настройки: +Рассмотрим некоторые возможные настройки: 
-Порт на который будут поступать соединения+Порт на который будут поступать соединения.
   port 1194   port 1194
-Протокол, по которому будет идти соединение+Протокол, по которому будет идти соединение.
   proto udp   proto udp
-Тип интерфейса и режим работы: tun = L3-туннель, tap = L2-туннель+Тип интерфейса и режим работы: tun = L3-туннель, tap = L2-туннель.
   dev tun   dev tun
 +Файл, содержащий параметры Diffie Hellman.
 +  dh keys/dh1024.pem
 Опция ca определяет корневой (root) сертификат, которым подписаны клиентские пары сертификат/ключ. Значение этой опции keys/ca.crt указывает месторасположение этого сертификата относительно каталога openvpn. (Или, иными словами, это открытый ключ сервера). Опция ca определяет корневой (root) сертификат, которым подписаны клиентские пары сертификат/ключ. Значение этой опции keys/ca.crt указывает месторасположение этого сертификата относительно каталога openvpn. (Или, иными словами, это открытый ключ сервера).
   ca keys/ca.crt   ca keys/ca.crt
Строка 99: Строка 101:
 Закрытый ключ, который генерируется вместе с сертификатом, указанным в опции cert. Закрытый ключ, который генерируется вместе с сертификатом, указанным в опции cert.
   key keys/serzh.key   key keys/serzh.key
-Файл, содержащий параметры Diffie Hellman+Использование режима TLS: 
-  dh keys/dh1024.pem +  tls-server, tls-client 
-  +Режим работы сервера. По умолчанию OpenVPN работает в p2p-режиме (point-to-point или один-к-одному), при указании mode server он работает в режиме сервера со многими клиентами. 
 +  mode server 
 +Конфигурация интерфейса. При помощи параметра ifconfig определяем IP адрес сервера и маску подсети. 
 +  ifconfig 10.10.10.1 255.255.255.0 
 +Выделение пула IP адресов, которые будут выдаваться клиентам. 
 +  ifconfig-pool 10.10.10.11 10.10.10.99 
 +Если вы хотите, чтобы клиенты могли видеть друг друга, то необходимо добавить следующее: 
 +  client-to-client 
 +Если вы хотите, что бы за клиентами закреплялись постоянные адреса, добавьте следующий параметр: 
 +  ifconfig-pool-persist ipp.txt 
 +Он определяет файл, в котором будет сохраняться информация о машине и ее IP. Файл содержит строки: Имя машины,IP адрес. Во время работы, сервер с периодичностью в 600 секунд обновляет содержимое этого файла. При включении, сервер читает содержимое файла. 
 +Использование шифрования для повышения уровня безопасности соединения. 
 +  cipher AES-128-CBC 
 +Макрокоманда "пинговать" противоположную сторону туннеля с указанным периодом 10 сек, при отсутствии встречных пингов в течение 120 сек, считать туннель упавшим и запускать пересоединение.  
 +  keepalive 10 120 
 +Не перечитывать заново файлы ключей при получении сигнала SIGUSR1 (переустановка соединения) или через интервал, указанный в опции "keepalive m n" (переустановить соединение через n секунд после отправки последнего icmp пакета клиенту, который остался без ответа). 
 +  persist-key 
 +Не закрывать или переоткрывать устройства TUN/TAP при получении сигнала SIGUSR1 или по прошествию интервала n опции "keepalive m n". 
 +  persist-tun 
 +Использование компрессии для уменьшения объема передаваемого траффика. 
 +  comp-lzo 
 +Сохранение информации о текущих соединениях сервера: 
 +  status log/status.log 
 +Cохранять или добавлять лог в указанный файл: 
 +  log log/openvpn.log 
 +Установка уровня детализации событий для логов. 
 +  verb 3 
 +Установка ограничения на повторяющиеся события в логах
 +  mute 5
  
 +В итоге должно получиться что-то вроде следующего файла:
 +<file - openvpn-server.conf>
 +port 1194
 +proto udp
 +dev tun
 +
 +dh keys/dh1024.pem
 +ca keys/ca.crt
 +cert keys/server.crt
 +key keys/server.key
 +
 +tls-server
 +mode server
 +ifconfig 172.22.0.1 255.255.255.0
 +
 +client-to-client
 +ifconfig-pool-persist ipp.txt
 +
 +cipher AES-128-CBC
 +keepalive 10 120
 +persist-key
 +persist-tun
 +comp-lzo
 +status logs/status.log
 +log logs/openvpn.log
 +verb 3
 +mute 5
 +</file>
 +
 +==== Настройка клиента OpenVPN ====
 +Настройка аналогична настройке сервера за исключением нескольких параметров, которые мы сейчас рассмотрим:
 +Задание доменного имени хоста или IP адреса для соединения с сервером OpenVPN:
 +  remote 87.224.228.141
 +Включение постоянного обновления адреса сервера, если указано доменное имя хоста.
 +  resolv-retry infinite
 +Эта команда заставляет клиента проверить сертификат, предъявленный сервером. Проверяется то, что сертификат именно серверный.
 +  ns-cert-type server
 +
 +В итоге должно получиться что-то вроде следующего файла:
 +<file - openvpn-client.conf>
 +port 1194
 +proto udp
 +dev tun
 +remote 87.224.228.141
 +
 +ca keys/ca.crt
 +cert keys/client.crt
 +key keys/client.key
 +
 +tls-client
 +client
 +
 +resolv-retry infinite
 +ns-cert-type server
 +
 +cipher AES-128-CBC
 +persist-key
 +persist-tun
 +comp-lzo
 +status logs/status.log
 +log logs/openvpn.log
 +verb 3
 +mute 5
 +</file>
  
 \\ \\
 ==== Задание правил IPTABLES ==== ==== Задание правил IPTABLES ====
 Для успешного функционирования OpenVPN нам понадобится добавить правила в IPTABLES. Для успешного функционирования OpenVPN нам понадобится добавить правила в IPTABLES.
-Проще всего это будет сделать создав (изменив) файл /media/DISK_A1/system/etc/firewall.d/fw.sh, в который внести необходимые строки.\\ +Проще всего это будет сделать создав (изменив) файл /media/DISK_A1/system/etc/firewall.d/fw.sh, в который внести необходимые строки. Обязательна только первая строка,а далее в зависимости от настроек:\\
-Обязательна только первая строка,а далее в зависимости от настроек: +
-  #!/bin/sh+
 Если наш OpenVPN настроен на порт 1194 и использует для соединения tcp: Если наш OpenVPN настроен на порт 1194 и использует для соединения tcp:
-  iptables -A INPUT -p tcp --dport 1194 -j ACCEPT+<file - fw.sh> 
 +#!/bin/sh 
 +iptables -A INPUT -p tcp --dport 1194 -j ACCEPT 
 +</file>
 Если наш OpenVPN настроен на порт 1194 и использует для соединения udp: Если наш OpenVPN настроен на порт 1194 и использует для соединения udp:
-  iptables -A INPUT -p udp --dport 1194 -j ACCEPT+<file - fw.sh> 
 +#!/bin/sh 
 +iptables -A INPUT -p udp --dport 1194 -j ACCEPT 
 +</file> 
 +\\ 
 + 
 +==== Настройка OpenVPN в Windows ==== 
 +Для настройки OpenVPN на компьютере под управлением MS Windows необходимо скопировать файл настроек (предварительно изменив его расширение на .ovpn) и файлы ключей (так же в папке "keys") в папку "C:\Program Files\OpenVPN\config". 
 +После чего соединение можно будет запустить через OpenVPN GUI. 
 \\ \\