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

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:руководство_по_ubuntu_server:частные_сети:openvpn [2012/10/28 13:14]
[Настройка простого сервера]
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)====
Строка 93: Строка 93:
 </​code>​ </​code>​
  
-Начните с копирования и распаковки **server.conf.gz** в **/​etc/​openvpn/​server.conf**^+Начните с копирования и распаковки **server.conf.gz** в **/​etc/​openvpn/​server.conf**:
 <​code>​ <​code>​
 sudo cp /​usr/​share/​doc/​openvpn/​examples/​sample-config-files/​server.conf.gz /​etc/​openvpn/​ sudo cp /​usr/​share/​doc/​openvpn/​examples/​sample-config-files/​server.conf.gz /​etc/​openvpn/​
Строка 99: Строка 99:
 </​code>​ </​code>​
  
-Отредактируйте /​etc/​openvpn/​server.conf и убедитесь что следующие строки указывают на сертификаты и ключи, которые ​вы создали ​на предыдущем разделе.+Отредактируйте /​etc/​openvpn/​server.conf и убедитесь что следующие строки указывают на сертификаты и ключи, которые ​мы создали ​в предыдущем разделе.
 <​code>​ <​code>​
 ca ca.crt ca ca.crt
Строка 107: Строка 107:
 </​code>​ </​code>​
  
-That is the minimum you have to configure to get a working ​OpenVPN ​serverYou can use all the default settings in the sample ​server.conf ​fileNow start the serverYou will find logging and error messages in your syslog. +Это тот минимум,​ который вы должны настроить,​ чтобы получить работающий **OpenVPN** серверВы можете использовать все значения по умолчанию из файла примера ​server.conf. ​Теперь запустите серверВы найдете журнал событий и ошибок в вашем **syslog**
 +<​code>​
 root@server:/​etc/​openvpn#​ /​etc/​init.d/​openvpn start root@server:/​etc/​openvpn#​ /​etc/​init.d/​openvpn start
  * Starting virtual private network daemon(s)...  * Starting virtual private network daemon(s)...
    ​* ​  ​Autostarting VPN '​server' ​                    [ OK ]    ​* ​  ​Autostarting VPN '​server' ​                    [ OK ]
 +</​code>​
  
-Now check if OpenVPN ​created a tun0 interface+Теперь проверьте,​ что **OpenVPN** создал интерфейс **tun0**
 +<​code>​
 root@server:/​etc/​openvpn#​ ifconfig tun0 root@server:/​etc/​openvpn#​ ifconfig tun0
 tun0      Link encap:​UNSPEC ​ HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  ​ tun0      Link encap:​UNSPEC ​ HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  ​
Строка 120: Строка 121:
           UP POINTOPOINT RUNNING NOARP MULTICAST ​ MTU:​1500 ​ Metric:1           UP POINTOPOINT RUNNING NOARP MULTICAST ​ MTU:​1500 ​ Metric:1
 [...] [...]
 +</​code>​
  
 ====Настройка простого клиента==== ====Настройка простого клиента====
  
-There are various different ​OpenVPN ​client implementations with and without GUIsYou can read more about clients in a later sectionFor now we use the OpenVPN ​client for Ubuntu ​which is the same executable as the serverSo you have to install the openvpn ​package again on the client machine+Существует несколько реализаций клиента **OpenVPN** как с графическим интерфейсом так и без негоВы можете сможете прочитать больше о клиентах в следующем разделеНа данный момент мы используем **OpenVPN ​клиент** для **Ubuntu** который использует ту же программу,​ что и серверПоэтому вам снова придется поставить пакет **openvpn** но уже на клиентской машине
- +<​code>​sudo apt-get install openvpn</code>
-sudo apt-get install openvpn +
- +
-This time copy the client.conf sample config file to /​etc/​openvpn/​. +
- +
-sudo cp /​usr/​share/​doc/​openvpn/​examples/​sample-config-files/​client.conf /​etc/​openvpn/+
  
-Copy the client ​keys and the certificate of the CA you created in the section above to e.g. /​etc/​openvpn/ ​and edit /etc/​openvpn/​client.conf ​to make sure the following lines are pointing to those files. If you have the files in /​etc/​openvpn/ ​you can omit the path.+Тем временем скопируем файл примера **client.conf** в каталог **/​etc/​openvpn/​**: 
 +<​code>​sudo cp /usr/​share/​doc/openvpn/​examples/​sample-config-files/​client.conf /​etc/​openvpn/​</​code>​
  
 +Скопируйте ключи клиента и сертификат центра сертификатов,​ созданные в предыдущем разделе,​ например,​ в /​etc/​openvpn/​ и отредактируйте /​etc/​openvpn/​client.conf,​ чтобы убедиться,​ что следующие строки указывают на эти файлы. Если вы положили файлы в **/​etc/​openvpn/​**,​ то путь к ним можете опустить.
 +<​code>​
 ca ca.crt ca ca.crt
 cert client1.crt cert client1.crt
 key client1.key key client1.key
 +</​code>​
  
-And you have to at least specify the OpenVPN ​server name or addressMake sure the keyword ​client ​is in the config. That's what enables client mode+И вам осталось указать адрес или имя **OpenVPN** сервераУбедитесь в наличии ключевого слова **//client//** в файле настроекОно включает режим клиента:​ 
 +<​code>​
 client client
 remote vpnserver.example.com 1194 remote vpnserver.example.com 1194
 +</​code>​
  
-Now start the OpenVPN ​client+Далее запустим **OpenVPN** клиента
 +<​code>​
 root@client:/​etc/​openvpn#​ /​etc/​init.d/​openvpn start root@client:/​etc/​openvpn#​ /​etc/​init.d/​openvpn start
  * Starting virtual private network daemon(s)... ​    * Starting virtual private network daemon(s)... ​  
    ​* ​  ​Autostarting VPN '​client' ​                         [ OK ]     ​* ​  ​Autostarting VPN '​client' ​                         [ OK ] 
 +</​code>​
  
-Check if it created a tun0 interface+Убедитесь,​ что интерфейс **tun0** создан
 +<​code>​
 root@client:/​etc/​openvpn#​ ifconfig tun0 root@client:/​etc/​openvpn#​ ifconfig tun0
 tun0      Link encap:​UNSPEC ​ HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  ​ tun0      Link encap:​UNSPEC ​ HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  ​
           inet addr:​10.8.0.6 ​ P-t-P:​10.8.0.5 ​ Mask:​255.255.255.255           inet addr:​10.8.0.6 ​ P-t-P:​10.8.0.5 ​ Mask:​255.255.255.255
           UP POINTOPOINT RUNNING NOARP MULTICAST ​ MTU:​1500 ​ Metric:1           UP POINTOPOINT RUNNING NOARP MULTICAST ​ MTU:​1500 ​ Metric:1
 +</​code>​
  
-Check if you can ping the OpenVPN ​server+Проверьте,​ что вам доступен **OpenVPN** сервер
 +<​code>​
 root@client:/​etc/​openvpn#​ ping 10.8.0.1 root@client:/​etc/​openvpn#​ ping 10.8.0.1
 PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data. PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
 64 bytes from 10.8.0.1: icmp_req=1 ttl=64 time=0.920 ms 64 bytes from 10.8.0.1: icmp_req=1 ttl=64 time=0.920 ms
 +</​code>​
  
-The OpenVPN ​server always uses the first usable ​IP address in the client network and only that IP is pingable. E.g. if you configured a /24 for the client network maskthe .1 address will be usedThe P-t-P address you see in the ifconfig ​output above is usually not answering ​ping requests. +<​note>​Сервер **OpenVPN** всегда использует первый доступный адрес в сети клиента и только этот ​IP адрес будет откликаться на pingНапример,​ если вы настроили маску ​/24 клиентской сетито будет использован адрес, оканчивающийся на .1. Адрес ​P-t-P, который вы видите в выводе ​ifconfig ​выше обычно не отвечает на запросы ​ping.</​note>​
- +
-Check out your routes:+
  
 +Проверьте вашу маршрутизацию:​
 +<​code>​
 root@client:/​etc/​openvpn#​ netstat -rn root@client:/​etc/​openvpn#​ netstat -rn
 Kernel IP routing table Kernel IP routing table
Строка 172: Строка 177:
 192.168.42.0 ​   0.0.0.0 ​        ​255.255.255.0 ​  ​U ​        0 0          0 eth0 192.168.42.0 ​   0.0.0.0 ​        ​255.255.255.0 ​  ​U ​        0 0          0 eth0
 0.0.0.0 ​        ​192.168.42.1 ​   0.0.0.0 ​        ​UG ​       0 0          0 eth0 0.0.0.0 ​        ​192.168.42.1 ​   0.0.0.0 ​        ​UG ​       0 0          0 eth0
 +</​code>​
  
-====Решение первичных проблем====+====Первичное решение ​проблем====
  
-If the above didn't work for youcheck this:+Если что-то из тогочто рассмотрено выше, у вас не работает,​ проверьте следующее:
  
-    Check your syslog, ​e.g. grep -i vpn /​var/​log/​syslog +  -- Проверьте ваш ​syslog, ​например,​ так:  
- +  ​.. <​code>​grep -i vpn /​var/​log/​syslog</​code>​ 
-    Can the client connect to the server machineMaybe a firewall ​is blocking accessCheck syslog ​on server+  -- Может ли клиент соединиться с серверомВозможно доступ блокирует ​firewall? ​Проверьте ​syslog ​на сервере
- +  -- Клиент и сервер должны использовать одни и те же протокол и порт, например, UDP порт ​1194. Смотрите опции настройки **port** и **proto**. 
-    Client and server must use same protocol and porte.g. UDP port 1194, see port and proto config option +  -- Клиент и сервер должны использовать одно и то же сжатие. Смотрите опцию настройки **comp-lzo**. 
- +  -- Клиент и сервер должны использовать один и тот же режим: маршрутизации (routed) или моста (bridged). Смотрите опцию настройки **server** или **server-bridge**.
-    Client and server must use same config regarding compression,​ see comp-lzo ​config option +
- +
-    Client and server must use same config regarding bridged vs routed ​mode, see server ​vs server-bridge ​config option+
  
 ====Расширенные настройки==== ====Расширенные настройки====
  
-===Расширенная ​конфигурация перенаправленного ​VPN на сервере===+===Расширенная настройка VPN на сервере ​в режиме маршрутизации===
  
-The above is a very simple working ​VPN. The client can access services on the VPN server machine through an encrypted tunnelIf you want to reach more servers or anything in other networkspush some routes to the clientsE.g. if your company'​s network can be summarized to the network ​192.168.0.0/​16, ​you could push this route to the clientsBut you will also have to change the routing for the way back your servers need to know a route to the VPN client-network.+Выше рассмотрена очень простая работающая ​VPN. Клиент имеет доступ к сервисам на машине ​VPN сервера через зашифрованный каналЕсли вы хотите получить доступ к большему количеству серверов или к чему-то в других сетяхдобавьте несколько маршрутов на клиентеНапример,​ если сеть вашей компании в целом может быть описана как ​192.168.0.0/​16, ​вы можете добавить этот маршрут на клиентеНо вам придется также изменить маршрут для обратного направления ​ваши сервера должны знать как проложить маршрут до сети ​VPN клиента.
  
-Or you might push a default gateway to all the clients to send all their internet traffic to the VPN gateway first and from there via the company ​firewall ​into the internetThis section shows you some possible options.+Или вы можете указать шлюз по умолчанию для всех клиентов чтобы посылать весь их трафик сначала на VPN сервер,​ а от него через защитный сервер (firewall) компании в интернетВ этом разделе вы увидите некоторые возможные варианты настроек.
  
-Push routes to the client to allow it to reach other private subnets behind the serverRemember that these private subnets will also need to know to route the OpenVPN ​client address pool (10.8.0.0/24) back to the OpenVPN server.+Передать маршрут клиенту чтобы разрешить ему доступ к другим частным подсетям за серверомПомните,​ что эти частные сети также должны знать как построить маршрут до диапазона адресов клиента ​OpenVPN, находящегося за OpenVPN сервером:​ 
 +<​code>​push "​route ​10.0.0.0 255.0.0.0"</​code>​
  
-push "route 10.0.0.0 255.0.0.0"+Если указана,​ то такая директива настроит всех клиентов на перенаправление их сетевых шлюзов по умолчанию через VPN, что заставит весь трафик,​ такой как просмотр страниц интернет-сайтов или DNS запросы,​ проходить через VPN (машине OpenVPN сервера или вашему центральному firewall может потребоваться маскировать с помощью NAT интерфейсы TUN/TAP в сторону интернета,​ чтобы они работали правильно):​ 
 +<​code>​push "redirect-gateway def1 bypass-dhcp"</​code>​
  
-If enabled, this directive will configure all clients to redirect their default network gateway through the VPN, causing all IP traffic such as web browsing and and DNS lookups to go through the VPN (the OpenVPN server ​machine or your central firewall may need to NAT the TUN/TAP interface to the internet in order for this to work properly).+Настройка режима сервера и предоставление ​VPN подсети для ​OpenVPN ​откуда брать клиентские адреса. Сервер заберет себе адрес 10.8.0.1, а остальные могут использоваться для предоставления клиентам. Каждый клиент будет иметь возможность подключиться к серверу по адресу 10.8.0.1. Поставьте комментарий на этой строке,​ если используете режим сетевого моста:​ 
 +<​code>​server ​10.8.0.0 255.255.255.0</​code>​
  
-push "​redirect-gateway def1 bypass-dhcp"​ +Сохранять записи соответствий клиента с их виртуальными ​IP адресами в указанном файлеЕсли ​OpenVPN ​выключается или перегружаетсяповторно подключившиеся клиенты получат те же виртуальные ​IP адреса,​ что и в прошлый раз: 
- +<​code>​ifconfig-pool-persist ipp.txt</​code>​
-Configure server mode and supply a VPN subnet for OpenVPN to draw client addresses from. The server will take 10.8.0.1 for itself, the rest will be made available to clients. Each client will be able to reach the server on 10.8.0.1. Comment this line out if you are ethernet bridging. +
- +
-server 10.8.0.0 255.255.255.0 +
- +
-Maintain a record of client to virtual ​IP address associations in this fileIf OpenVPN ​goes down or is restartedreconnecting clients can be assigned the same virtual ​IP address from the pool that was previously assigned. +
- +
-ifconfig-pool-persist ipp.txt +
- +
-Push DNS servers to the client.+
  
 +Передать настройки на DNS сервера клиенту:​
 +<​code>​
 push "​dhcp-option DNS 10.0.0.2"​ push "​dhcp-option DNS 10.0.0.2"​
 push "​dhcp-option DNS 10.1.0.2"​ push "​dhcp-option DNS 10.1.0.2"​
 +</​code>​
  
-Allow client to client ​communication.+Разрешить соединения между клиентами:​ 
 +<​code>​client-to-client</​code>​
  
-client-to-client+Разрешить сжатие на VPN соединении:​ 
 +<​code>​comp-lzo</​code>​
  
-Enable compression on the VPN link. +Директива **keepalive** обеспечивает отправку сообщений типа ​ping вперед и назад через соединение для того, чтобы каждая сторона знала, когда другая сторона становится недоступнаПроверка раз в секунду и решениечто удаленная точка не отвечает,​ если ответ не принят в течение ​секунд:​ 
- +<​code>​keepalive 1 3</​code>​
-comp-lzo +
- +
-The keepalive ​directive causes ​ping-like messages to be sent back and forth over the link so that each side knows when the other side has gone downPing every 1 secondassume that remote peer is down if no ping received during a second time period. +
- +
-keepalive 1 3 +
- +
-It's a good idea to reduce the OpenVPN daemon'​s privileges after initialization.+
  
 +Хорошей идеей является снижение привилегий для сервиса OpenVPN после установки:​
 +<​code>​
 user nobody user nobody
 group nogroup group nogroup
 +</​code>​
  
-OpenVPN 2.0 includes a feature that allows the OpenVPN ​server to securely obtain a username and password from a connecting client, and to use that information as a basis for authenticating the clientTo use this authentication method, first add the auth-user-pass ​directive to the client configurationIt will direct the OpenVPN ​client to query the user for a username/​password,​ passing it on to the server over the secure ​TLS channel+OpenVPN 2.0 включает возможность для сервера ​OpenVPN ​безопасно получать имя пользователя и пароль от подключающегося клиента и использовать эту информацию как основу аутентификации клиентаДля использования этого метода аутентификации сперва добавьте директиву **auth-user-pass** в настройку клиентаЭто укажет клиенту ​OpenVPN ​запрашивать у пользователя имя и пароль и передавать их на сервер через безопасный канал ​TLS. 
 +<​code>​
 # client config! # client config!
 auth-user-pass auth-user-pass
 +</​code>​
  
-This will tell the OpenVPN ​server to validate the username/​password entered by clients using the login PAM module. Useful if you have centralized authentication with e.g. Kerberos. +Это скажет серверу ​OpenVPN ​проверять имя и пароль,​ введенные клиентом,​ с помощью модуля ​PAM. Это применимо если у вас централизованная аутентификация,​ например,​ с помощью ​Kerberos. 
- +<​code>​plugin /​usr/​lib/​openvpn/​openvpn-auth-pam.so login</​code>​
-plugin /​usr/​lib/​openvpn/​openvpn-auth-pam.so login+
  
-Please read the OpenVPN hardening ​security ​guide for further security advice.+<​note>​Пожалуйста,​ прочтите [[http://​openvpn.net/​index.php/​open-source/​documentation/​howto.html#​security|руководство по укреплению безопасности]] OpenVPN для дальнейших консультаций по безопасности.</​note>​
  
-===Расширенная настройка VPN с мостом ​на сервере===+===Расширенная настройка VPN на сервере ​в режиме сетевого моста===
  
-OpenVPN ​can be setup for either a routed ​or a bridged VPN mode. Sometimes this is also referred to as OSI layer-2 versus layer-3 VPNIn a bridged ​VPN all layer-frames ​e.g. all ethernet ​frames - are sent to the VPN partners and in a routed VPN only layer-3 packets are sent to VPN partnersIn bridged mode all traffic including traffic which was traditionally LAN-local like local network broadcasts, DHCP requests, ARP requests etcare sent to VPN partners whereas in routed mode this would be filtered.+**OpenVPN** может быть настроен в двух режимах VPN: маршрутизации (routed) и сетевого моста (bridged). Иногда их относят к VPN уровню-2 (канальный) и уровню-3 (пакетный) сетевой модели OSIВ режиме сетевого моста все ​VPN кадры (frames) ​2-го уровня,​ такие как кадры ​ethernet, посылаются ​VPN партнеру,​ в то время как в режиме маршрутизации посылаются только пакеты уровня-3. В режиме моста весь трафик,​ включая традиционно локальный трафик,​ такой как сетевые широковещательные пакеты, DHCP запросы, ARP запросы и т.д., посылается ​VPN партнеру,​ в то время как в режиме маршрутизации он будет отфильтрован.
  
 ==Подготовка настроек интерфейса для сетевого моста на сервере== ==Подготовка настроек интерфейса для сетевого моста на сервере==
  
-Make sure you have the bridge-utils ​package installed+Убедитесь,​ что у вас установлен пакет **bridge-utils**
- +<​code>​sudo apt-get install bridge-utils</code>
-sudo apt-get install bridge-utils +
- +
-Before you setup OpenVPN in bridged mode you need to change your interface configuration. Let's assume your server has an interface eth0 connected to the internet and an interface eth1 connected to the LAN you want to bridge. Your /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
Строка 266: Строка 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
Строка 284: Строка 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
Строка 298: Строка 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
  
Строка 310: Строка 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 +Теперь у вас есть возможность соединиться с удаленной сетью через ​VPN.
- +
-You should now be able to connect to the remote LAN through the VPN.+
  
 ====Реализации клиентского программного обеспечения==== ====Реализации клиентского программного обеспечения====
Строка 344: Строка 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
Строка 361: Строка 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
Строка 390: Строка 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
Строка 419: Строка 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                                  ​
Строка 441: Строка 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.+
  
 ---- ----