OpenVPN Сравнение версий

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:руководство_по_ubuntu_server:частные_сети:openvpn [2012/10/31 06:23]
[Расширенные настройки]
wiki:руководство_по_ubuntu_server:частные_сети:openvpn [2014/04/11 14:47] (текущий)
[Установка сервера]
Строка 13: Строка 13:
  
 Для установки **openvpn** наберите в терминале:​ Для установки **openvpn** наберите в терминале:​
-<​code>​sudo apt-get install openvpn</​code>​+<​code>​sudo apt-get install ​openssl ​openvpn</​code>​
  
 ====Установка структуры открытых ключей (PKI)==== ====Установка структуры открытых ключей (PKI)====
Строка 196: Строка 196:
 Выше рассмотрена очень простая работающая VPN. Клиент имеет доступ к сервисам на машине VPN сервера через зашифрованный канал. Если вы хотите получить доступ к большему количеству серверов или к чему-то в других сетях, добавьте несколько маршрутов на клиенте. Например,​ если сеть вашей компании в целом может быть описана как 192.168.0.0/​16,​ вы можете добавить этот маршрут на клиенте. Но вам придется также изменить маршрут для обратного направления - ваши сервера должны знать как проложить маршрут до сети VPN клиента. Выше рассмотрена очень простая работающая VPN. Клиент имеет доступ к сервисам на машине VPN сервера через зашифрованный канал. Если вы хотите получить доступ к большему количеству серверов или к чему-то в других сетях, добавьте несколько маршрутов на клиенте. Например,​ если сеть вашей компании в целом может быть описана как 192.168.0.0/​16,​ вы можете добавить этот маршрут на клиенте. Но вам придется также изменить маршрут для обратного направления - ваши сервера должны знать как проложить маршрут до сети VPN клиента.
  
-Или вы можете ​добавить шлюз по умолчанию для всех клиентов чтобы посылать весь их трафик сначала на VPN сервер,​ а от него через защитный сервер (firewall) компании в интернет. В этом разделе вы увидите некоторые возможные варианты.+Или вы можете ​указать шлюз по умолчанию для всех клиентов чтобы посылать весь их трафик сначала на VPN сервер,​ а от него через защитный сервер (firewall) компании в интернет. В этом разделе вы увидите некоторые возможные варианты ​настроек.
  
 Передать маршрут клиенту чтобы разрешить ему доступ к другим частным подсетям за сервером. Помните,​ что эти частные сети также должны знать как построить маршрут до диапазона адресов клиента OpenVPN, находящегося за OpenVPN сервером:​ Передать маршрут клиенту чтобы разрешить ему доступ к другим частным подсетям за сервером. Помните,​ что эти частные сети также должны знать как построить маршрут до диапазона адресов клиента OpenVPN, находящегося за OpenVPN сервером:​
 <​code>​push "route 10.0.0.0 255.0.0.0"</​code>​ <​code>​push "route 10.0.0.0 255.0.0.0"</​code>​
  
-Если ​разрешеноэта директива настроит все клиенты на перенаправление их сетевых шлюзов по умолчанию через VPN, что заставит весь трафик,​ такой как просмотр страниц интернет-сайтов или DNS запросы,​ проходить через VPN (машине OpenVPN сервера или вашему центральному firewall может потребоваться маскировать с помощью NAT TUN/​TAP ​интерфейсы в сторону интернета,​ чтобы они работали правильно):​+Если ​указанато такая ​директива настроит всех клиентов на перенаправление их сетевых шлюзов по умолчанию через VPN, что заставит весь трафик,​ такой как просмотр страниц интернет-сайтов или DNS запросы,​ проходить через VPN (машине OpenVPN сервера или вашему центральному firewall может потребоваться маскировать с помощью NAT интерфейсы ​TUN/​TAP ​в сторону интернета,​ чтобы они работали правильно):​
 <​code>​push "​redirect-gateway def1 bypass-dhcp"</​code>​ <​code>​push "​redirect-gateway def1 bypass-dhcp"</​code>​
  
-Настройка режима сервера и предоставление VPN подсети для OpenVPN откуда брать клиентские адреса. Сервер заберет себе адрес 10.8.0.1, а остальные могут использоваться для предоставления клиентам. Каждый клиент будет иметь возможность подключиться к серверу по адресу 10.8.0.1. ​Закомментируйте эту строку, если используете сетевой мост.+Настройка режима сервера и предоставление VPN подсети для OpenVPN откуда брать клиентские адреса. Сервер заберет себе адрес 10.8.0.1, а остальные могут использоваться для предоставления клиентам. Каждый клиент будет иметь возможность подключиться к серверу по адресу 10.8.0.1. ​Поставьте ​комментарий на этой строке, если используете ​режим ​сетевого моста:
 <​code>​server 10.8.0.0 255.255.255.0</​code>​ <​code>​server 10.8.0.0 255.255.255.0</​code>​
  
-Сохранять записи соответствий клиента с их виртуальными IP адресами в указанном файле. Если OpenVPN выключается или перегружается,​ повторно подключившиеся клиенты получат те же виртуальные IP адреса,​ что и в прошлый раз.+Сохранять записи соответствий клиента с их виртуальными IP адресами в указанном файле. Если OpenVPN выключается или перегружается,​ повторно подключившиеся клиенты получат те же виртуальные IP адреса,​ что и в прошлый раз:
 <​code>​ifconfig-pool-persist ipp.txt</​code>​ <​code>​ifconfig-pool-persist ipp.txt</​code>​
  
-Передать DNS сервера клиенту.+Передать ​настройки на DNS сервера клиенту:
 <​code>​ <​code>​
 push "​dhcp-option DNS 10.0.0.2"​ push "​dhcp-option DNS 10.0.0.2"​
Строка 216: Строка 216:
 </​code>​ </​code>​
  
-Разрешить соединения между клиентами.+Разрешить соединения между клиентами:
 <​code>​client-to-client</​code>​ <​code>​client-to-client</​code>​
  
-Разрешить сжатие на соединении ​VPN.+Разрешить сжатие на VPN соединении:
 <​code>​comp-lzo</​code>​ <​code>​comp-lzo</​code>​
  
-Директива **keepalive** обеспечивает отправку сообщений типа ping вперед и назад через соединение для того, чтобы каждая сторона знала, когда другая сторона становится недоступна. Проверка ​каждую ​секундурешение,​ что удаленная точка не отвечает,​ если ответ не принят в течение 3 секунд.+Директива **keepalive** обеспечивает отправку сообщений типа ping вперед и назад через соединение для того, чтобы каждая сторона знала, когда другая сторона становится недоступна. Проверка ​раз в секунду ​и решение,​ что удаленная точка не отвечает,​ если ответ не принят в течение 3 секунд:
 <​code>​keepalive 1 3</​code>​ <​code>​keepalive 1 3</​code>​
  
-Хорошей идеей является снижение привилегий для сервиса OpenVPN после установки.+Хорошей идеей является снижение привилегий для сервиса OpenVPN после установки:
 <​code>​ <​code>​
 user nobody user nobody
Строка 251: Строка 251:
 <​code>​sudo apt-get install bridge-utils</​code>​ <​code>​sudo apt-get install bridge-utils</​code>​
  
-Before you setup OpenVPN ​in bridged mode you need to change your interface configurationLet's assume your server has an interface ​eth0 connected to the internet and an interface ​eth1 connected to the LAN you want to bridgeYour /​etc/​network/​interfaces ​would like this+Перед настройкой **OpenVPN** в режиме сетевого моста вам потребуется изменить настройки вашего интерфейсаДавайте предположим,​ что ваш сервер подключен через ​eth0 к интернету,​ а интерфейс ​eth1 соединен с вашей локальной сетью для которой вы хотите установить сетевой мостВаш файл ​/​etc/​network/​interfaces ​должен выглядеть как-то так
 +<​code>​
 auto eth0 auto eth0
 iface eth0 inet static iface eth0 inet static
Строка 263: Строка 263:
   address 10.0.0.4   address 10.0.0.4
   netmask 255.255.255.0   netmask 255.255.255.0
 +</​code>​
  
-This straight forward interface config needs to be changed into a bridged mode like where the config of interface ​eth1 moves to the new br0 interfacePlus we configure that br0 should bridge interface ​eth1. We also need to make sure that interface ​eth1 is always in promiscuous ​mode this tells the interface to forward all ethernet ​frames to the IP stack+Такая настройка прямого перенаправления интерфейсов должна быть исправлена для режима моста, где настройка интерфейса ​eth1 перемещается на новый интерфейс ​br0. Плюс мы укажем,​ что ​br0 будет интерфейсом моста для ​eth1. Нам также стоит убедиться,​ что интерфейс ​eth1 всегда находится в смешанном (promiscuous) режиме ​это скажет интерфейсу пересылать все ​ethernet ​пакеты в стек ​IP. 
 +<​code>​
 auto eth0 auto eth0
 iface eth0 inet static iface eth0 inet static
Строка 281: Строка 282:
   netmask 255.255.255.0   netmask 255.255.255.0
   bridge_ports eth1   bridge_ports eth1
 +</​code>​
  
-At this point you need to restart networkingBe prepared that this might not work as expected and that you will lose remote connectivityMake sure you can solve problems having local access+На этом этапе вам потребуется перезагрузка сетиБудьте готовы,​ что это не сработает так, как задумывалось,​ и вы потеряете удаленный доступУбедитесь,​ что сможете решить проблемы,​ используя локальный доступ
- +<​code>​sudo /​etc/​init.d/​network restart</​code>​
-sudo /​etc/​init.d/​network restart+
  
 ==Подготовка настроек сервера для сетевого моста== ==Подготовка настроек сервера для сетевого моста==
  
-Edit /​etc/​openvpn/​server.conf ​changing the following options to+Отредактируйте ​/​etc/​openvpn/​server.conf, изменив следующие настройки
 +<​code>​
 ;dev tun ;dev tun
 dev tap dev tap
Строка 295: Строка 296:
 ;server 10.8.0.0 255.255.255.0 ;server 10.8.0.0 255.255.255.0
 server-bridge 10.0.0.4 255.255.255.0 10.0.0.128 10.0.0.254 server-bridge 10.0.0.4 255.255.255.0 10.0.0.128 10.0.0.254
 +</​code>​
  
-Next, create a helper script to add the tap interface to the bridge and to ensure that eth1 is promiscuous modeCreate ​/​etc/​openvpn/​up.sh:​ +Далее создайте вспомогательный сценарий для добавления **tap** интерфейса для моста и для проверки,​ что **eth1** находится в смешанном режимеСоздайте ​/​etc/​openvpn/​up.sh:​ 
 +<​code>​
 #!/bin/sh #!/bin/sh
  
Строка 307: Строка 309:
 /sbin/ip link set "​$ETHDEV"​ promisc on /sbin/ip link set "​$ETHDEV"​ promisc on
 /sbin/brctl addif $BR $TAPDEV /sbin/brctl addif $BR $TAPDEV
 +</​code>​
  
-Then make it executable:+Сделайте файл исполняемым: 
 +<​code>​sudo chmod 755 /​etc/​openvpn/​up.sh</​code>​
  
-sudo chmod 755 /etc/openvpn/up.sh +После настройки сервера перезапустите **openvpn**введя
- +<​code>​sudo /​etc/​init.d/​openvpn restart</​code>​
-After configuring the serverrestart openvpn by entering+
- +
-sudo /​etc/​init.d/​openvpn restart+
  
 ==Настройка клиента== ==Настройка клиента==
  
-First, install ​openvpn ​on the client:+Сначала установите **openvpn** на клиенте: 
 +<​code>​sudo apt-get install openvpn</​code>​
  
-sudo apt-get install openvpn +Затем с настроенным сервером и скопированными сертификатами клиентов в каталог ​/​etc/​openvpn/, ​создайте файл конфигурации клиента,​ скопировав примерВ терминале на клиентской машине введите
- +<​code>​sudo cp /​usr/​share/​doc/​openvpn/​examples/​sample-config-files/​client.conf /​etc/​openvpn</code>
-Then with the server configured and the client certificates copied to the /​etc/​openvpn/ ​directorycreate a client configuration file by copying the exampleIn a terminal on the client machine enter+
- +
-sudo cp /​usr/​share/​doc/​openvpn/​examples/​sample-config-files/​client.conf /​etc/​openvpn +
- +
-Now edit /etc/​openvpn/​client.conf changing the following options:+
  
 +Теперь отредактируйте /​etc/​openvpn/​client.conf,​ изменив следующие опции:
 +<​code>​
 dev tap dev tap
 ;dev tun ;dev tun
 +</​code>​
  
-Finally, restart ​openvpn: +Наконец перезапустите **openvpn**
- +<​code>​sudo /​etc/​init.d/​openvpn restart</​code>​
-sudo /​etc/​init.d/​openvpn restart+
  
-You should now be able to connect to the remote LAN through the VPN.+Теперь у вас есть возможность соединиться с удаленной сетью через ​VPN.
  
 ====Реализации клиентского программного обеспечения==== ====Реализации клиентского программного обеспечения====
Строка 341: Строка 340:
 ===Графический интерфейс сетевого менеджера Linux для OpenVPN=== ===Графический интерфейс сетевого менеджера Linux для OpenVPN===
  
-Many Linux distributions including ​Ubuntu desktop ​variants come with Network Manager, ​a nice GUI to configure your network settingsIt also can manage your VPN connectionsMake sure you have package ​network-manager-openvpn ​installedHere you see that the installation installs all other required packages as well+Множество дистрибутивов ​Linux, включая варианты ​Ubuntu desktop, поставляются с программой **Network Manager**прекрасным графическим интерфейсом для настройки вашей сетиОн также позволяет управлять вашими ​VPN соединениямиУбедитесь,​ что пакет **network-manager-openvpn** установленЗдесь вы можете также увидеть установку всех остальных необходимых пакетов
 +<​code>​
 root@client:​~#​ apt-get install network-manager-openvpn root@client:​~#​ apt-get install network-manager-openvpn
 Reading package lists... Done Reading package lists... Done
Строка 358: Строка 357:
 After this operation, 3,031 kB of additional disk space will be used. After this operation, 3,031 kB of additional disk space will be used.
 Do you want to continue [Y/​n]? ​ Do you want to continue [Y/​n]? ​
 +</​code>​
  
-To inform ​network-manager ​about the new installed packages you will have to restart it+Для информирования **network-manager** о новых установленных пакетах вам придется его перезагрузить
 +<​code>​
 root@client:​~#​ restart network-manager ​ root@client:​~#​ restart network-manager ​
 network-manager start/​running,​ process 3078 network-manager start/​running,​ process 3078
 +</​code>​
  
-Open the Network Manager ​GUIselect the VPN tab and then the '​Add' ​buttonSelect ​OpenVPN ​as the VPN type in the opening requester and press '​Create'​. ​In the next window add the OpenVPN's server name as the '​Gateway'​set '​Type'​ to '​Certificates (TLS)', ​point 'User Certificate' ​to your user certificate, 'CA Certificate' ​to your CA certificate and '​Private Key' ​to your private key fileUse the advanced button to enable compression or other special settings you set on the serverNow try to establish your VPN.+Откройте интерфейс **Network Manager**выберите закладку **VPN** и затем нажмите кнопку %%'​Add'​%% (Добавить)Выберите **OpenVPN** в качестве типа ​VPN в открывшемся запросе и нажмите %%'​Create'​%% (Создать)В следующем окне добавьте имя сервера ​OpenVPN ​в качестве шлюзаустановите тип в %%'​Certificates (TLS)'%%укажите в %%'User Certificate'​%% ваш пользовательский сертификатв %%'CA Certificate'​%% сертификат вашего Центра Сертификатов и в %%'​Private Key'%% файл вашего секретного ключаИспользуйте кнопку %%'​Дополнительно'​%% для разрешения сжатия и других специальных настроек,​ которые вы устанавливали на сервереТеперь попробуйте установить ваш ​VPN.
  
 ===OpenVPN с графическим интерфейсом под Mac OS X: Tunnelblick=== ===OpenVPN с графическим интерфейсом под Mac OS X: Tunnelblick===
  
-Tunnelblick ​is an excellent free, open source implementation of a GUI for OpenVPN ​for OS X. The project'​s homepage is at http://​code.google.com/​p/​tunnelblick/​. ​Download the latest ​OS X installer from there and install itThen put your client.ovpn ​config file together with the certificates and keys in /​Users/​username/​Library/​Application Support/​Tunnelblick/​Configurations/ ​and lauch Tunnelblick ​from your Application folder+**Tunnelblick** является великолепной свободной реализацией графического интерфейса для **OpenVPN** с открытым кодом под **OS X**Домашняя страница проекта находится по адресу [[http://​code.google.com/​p/​tunnelblick/​]]Загрузите оттуда последний **OS X** установщик и запустите егоДалее положите ваш файл настроек **client.ovpn** вместе с сертификатами и секретным ключом в **//%%/​Users/​username/​Library/​Application Support/​Tunnelblick/​Configurations/​%%//** и загрузите **Tunnelblick** из каталога приложений
 +<​code>​
 # sample client.ovpn for Tunnelblick # sample client.ovpn for Tunnelblick
 client client
Строка 387: Строка 388:
 cert client.crt cert client.crt
 key client.key key client.key
 +</​code>​
  
 ===OpenVPN с графическим интерфейсом под Windows 7=== ===OpenVPN с графическим интерфейсом под Windows 7===
  
-First download and install the latest ​OpenVPN Windows Installer. OpenVPN 2.2.1 was the latest when this was writtenAdditionally download an alternative ​Open VPN Windows GUI. The OpenVPN MI GUI from http://​openvpn-mi-gui.inside-security.de ​seems to be a nice one for Windows 7. Download the latest version20110624 was the latest version when this was written.+Для начала загрузите и установите последний [[http://​www.openvpn.net/​index.php/​open-source/​downloads.html|OpenVPN Windows Installer]]На момент написания последней версией был ​OpenVPN 2.2.2Дополнительно загрузите альтернативный графический интерфейс ​Open VPN Windows GUI. [[http://​openvpn-mi-gui.inside-security.de|OpenVPN MI GUI]] представляется более удачным интерфейсом для ​Windows 7. Загружайте последнюю версиюНа момент написания это 20120316.
  
-You need to start the OpenVPN ​serviceGoto Start > Computer > Manage > Services and Applications > Services. ​Find the OpenVPN ​service and start itSet it's startup type to automaticWhen you start the OpenVPN MI GUI the first time you need to run it as an administrator. You have to right click on it and you will see that option. +Вам потребуется запустить сервис **OpenVPN**Выберите в стартовом меню **//Start > Computer > Manage > Services and Applications > Services//**Найдите сервис **OpenVPN** и запустите егоУстановите тип загрузки в **автоматический**Когда вы загружаете **OpenVPN MI GUI** в первый раз, вам надо сделать это в режиме администратораДля этого надо нажать правую кнопку мыши на значке программы и вы увидите такую настройку.
- +
-You will have to write your OpenVPN config in a textfile and place it in C:\Program Files\OpenVPN\config\client.ovpn along with the CA certificateYou could put the user certificate in the user's home directory like in the follwing example.+
  
 +Вам потребуется записать вашу конфигурацию **OpenVPN** в текстовый файл и поместить его в каталог **//​C:​\Program Files\OpenVPN\config\client.ovpn//​** вместе с сертификатом центра сертификатов. Вы можете положить сертификат пользователя в домашний каталог,​ как указано в данном примере:​
 +<​code>​
 # C:\Program Files\OpenVPN\config\client.ovpn # C:\Program Files\OpenVPN\config\client.ovpn
 client client
Строка 416: Строка 418:
 management-query-passwords management-query-passwords
 auth-retry interact auth-retry interact
 +</​code>​
  
 ===OpenVPN для OpenWRT=== ===OpenVPN для OpenWRT===
  
-OpenWRT ​is described as a Linux distribution for embedded devices like WLAN routerThere are certain types of WLAN routers who can be flashed to run OpenWRT. ​Depending on the available memory on your OpenWRT ​router you can run software like OpenVPN ​and you could for example build a small inexpensive branch office router with VPN connectivity to the central officeMore info on OpenVPN ​on OpenWRT ​is hereAnd here is the OpenWRT project'​s homepage: ​http://​openwrt.org +**OpenWRT** описывается как ​Linux дистрибутив для встраивания в устройства типа ​WLAN маршрутизаторовСуществует определенный набор маршрутизаторов,​ в которые может быть прописан **OpenWRT**В зависимости от доступной памяти ваш ​OpenWRT ​маршрутизатор может запускать программы,​ такие как **OpenVPN** и вы можете,​ например,​ построить небольшой недорогой внешний офис с маршрутизатором,​ соединенным через ​VPN с центральным офисом[[http://​wiki.openwrt.org/​doc/​howto/​vpn.overview|Здесь]] можно найти больше информации по OpenVPN ​под ​OpenWRT. ​А [[http://​openwrt.org/​|здесь]] находится домашняя страница проекта **OpenWRT**.
- +
-Log into your OpenWRT ​router and install OpenVPN:+
  
 +Подключитесь к вашему **OpenWRT** маршрутизатору и установите **OpenVPN**:​
 +<​code>​
 opkg update opkg update
 opkg install openvpn opkg install openvpn
 +</​code>​
  
-Check out /​etc/​config/​openvpn ​and put you client config in thereCopy certificated and keys to /​etc/​openvpn/​ +Найдите **/​etc/​config/​openvpn** и поместите в него ваши настройки клиентаСкопируйте сертификаты и ключи в /​etc/​openvpn/​. 
 +<​code>​
 config openvpn client1 config openvpn client1
         option enable 1                                  ​         option enable 1                                  ​
Строка 438: Строка 442:
         option key /​etc/​openvpn/​client.key         option key /​etc/​openvpn/​client.key
         option comp_lzo 1  ​         option comp_lzo 1  ​
 +</​code>​
  
-Restart ​OpenVPN:+Перезапустите ​OpenVPN: 
 +<​code>/​etc/​init.d/​openvpn restart</​code>​
  
-/​etc/​init.d/​openvpn restart +Вам нужно будет посмотреть не требуется ли изменить в маршрутизаторе маршрутизацию и правила ​firewall.
- +
-You will have to see if you need to adjust your router'​s routing and firewall ​rules.+
  
 ====Ссылки==== ====Ссылки====
  
-    See the OpenVPN ​website for additional information+  -- Посетите [[http://​openvpn.net/​|сайт ​OpenVPN]] для дополнительной информации
- +  -- [[http://​openvpn.net/​index.php/​open-source/​documentation/​howto.html#​security|Руководство по укреплению безопасности ​OpenVPN]]. 
-    OpenVPN hardening ​security ​guide +  -- Также хороший источник информациикнига [[http://​www.packtpub.com/​openvpn/​book|Building and Integrating Virtual Private Networks]] от Pakt.
- +
-    Also, Pakt'​s ​OpenVPN: Building and Integrating Virtual Private Networks ​is a good resource.+
  
 ---- ----