Различия



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

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

wiki:nastrojka_openvpn [2013/06/26 14:20]
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. Файл, содержащий параметры Diffie Hellman.
Строка 107: Строка 107:
 Конфигурация интерфейса. При помощи параметра ifconfig определяем IP адрес сервера и маску подсети. Конфигурация интерфейса. При помощи параметра ifconfig определяем IP адрес сервера и маску подсети.
   ifconfig 10.10.10.1 255.255.255.0   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   ifconfig-pool-persist ipp.txt
 Он определяет файл, в котором будет сохраняться информация о машине и ее IP. Файл содержит строки: Имя машины,IP адрес. Во время работы, сервер с периодичностью в 600 секунд обновляет содержимое этого файла. При включении, сервер читает содержимое файла. Он определяет файл, в котором будет сохраняться информация о машине и ее IP. Файл содержит строки: Имя машины,IP адрес. Во время работы, сервер с периодичностью в 600 секунд обновляет содержимое этого файла. При включении, сервер читает содержимое файла.
-Если вы хотите, чтобы клиенты могли видеть друг друга, то необходимо добавить следующее: 
-  client-to-client 
 Использование шифрования для повышения уровня безопасности соединения. Использование шифрования для повышения уровня безопасности соединения.
   cipher AES-128-CBC   cipher AES-128-CBC
-Использование компрессии для уменьшения объема передаваемого траффика. 
-  comp-lzo 
 Макрокоманда "пинговать" противоположную сторону туннеля с указанным периодом 10 сек, при отсутствии встречных пингов в течение 120 сек, считать туннель упавшим и запускать пересоединение.  Макрокоманда "пинговать" противоположную сторону туннеля с указанным периодом 10 сек, при отсутствии встречных пингов в течение 120 сек, считать туннель упавшим и запускать пересоединение. 
   keepalive 10 120   keepalive 10 120
Строка 122: Строка 122:
 Не закрывать или переоткрывать устройства TUN/TAP при получении сигнала SIGUSR1 или по прошествию интервала n опции "keepalive m n". Не закрывать или переоткрывать устройства TUN/TAP при получении сигнала SIGUSR1 или по прошествию интервала n опции "keepalive m n".
   persist-tun   persist-tun
 +Использование компрессии для уменьшения объема передаваемого траффика.
 +  comp-lzo
 Сохранение информации о текущих соединениях сервера: Сохранение информации о текущих соединениях сервера:
   status log/status.log   status log/status.log
Строка 127: Строка 129:
   log log/openvpn.log   log log/openvpn.log
 Установка уровня детализации событий для логов. Установка уровня детализации событий для логов.
-  verb 4+  verb 3
 Установка ограничения на повторяющиеся события в логах. Установка ограничения на повторяющиеся события в логах.
   mute 5   mute 5
  
 В итоге должно получиться что-то вроде следующего файла: В итоге должно получиться что-то вроде следующего файла:
-<file - openvpn.conf>+<file - openvpn-server.conf>
 port 1194 port 1194
 proto udp proto udp
Строка 156: Строка 158:
 status logs/status.log status logs/status.log
 log logs/openvpn.log log logs/openvpn.log
-verb 4+verb 3
 mute 5 mute 5
 </file> </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. 
 \\ \\