База знаний

www. IT-Mehanika .ru --  журнал доброго админа

Настройка OpenVPN сервера (CentOS) и на Микротике.

Нашел очень внятно, с отличными комментами и примерами написанную статью про OpenVPN. Кому интересно вот тут 
Имя Автора не указано, но РЕСПЕКТ ему И УВАЖУХА. Наступает резкое просветление в мозгу :). Так как у меня еще есть Микротик, захотелось на нем попробовать поднять сервер OpenVPN. Спасибо автору из Краснодара за очень понятную статью, которую я здесь буду цитировать (она тут) . В статье 2 части, вначале про настройку на CentOS, потом про Микротик. И еще, если у вас на клиенте NetworkManager, не забывайте о прикольном инструменте Import-Export. Очень удобно импортировать конфиговые файлы OpenVPN клиента. Итак ...

Настройка OpenVPN сервера (CentOS)

Итак, стоит следующая задача: поднять на удаленном сервере, в другой стране, OpenVPN сервер с сертификатной аутентификацией. Весь трафик пользователя ( веб, icq, почта и т.д. ), при подключении VPN, должен автоматически направляться через защищенный канал, без каких либо дополнительных настроек приложений. На выходе получаем трафик с IP адреса OpenVPN сервера.

Сервер стоит на операционной системе CentOS.

 

OpenVPN - свободная реализация технологии VPN ( виртуальная частная сеть ) для создания шифрованных каналов связи. Для обеспечения безопасности управляющего канала и канала данных используется библиотека OpenSSL. Сфера применения довольно обширна, безопасное удаленное администрирование, организация удаленных рабочих мест, и, как в данном случае, обеспечение анонимной работы в интернет.
OpenVPN поддерживает несколько видов аутентификации.

 

  • Предустановленный ключ — самый простой вариант.
  • Аутентификация по сертификатам — наиболее гибкий в настройках метод.
  • Аутентификация по логину и паролю — клиентский сертификат при этом можно не использовать ( сертификат сервера обязателен ).

 

Мы будем использовать второй вариант, то есть аутентификацию клиентов с помощью сертификатов, поскольку он является самым гибким из перечисленных.

 

Включаем форвардинг пакетов

 

Важный шаг, поскольку если этого не сделать, работать данная схема не будет.
Подправляем файл /etc/sysctl.conf, в строке:

 

net.ipv4.ip_forward = 0

меняем 0 на 1

 

net.ipv4.ip_forward = 1

и выполняем команду:

 

[root@localhost /]# sysctl -p

это загрузит переменные ядра из обновленного файла sysctl.conf.
В CentOS, как и в большинстве дистрибутивов Linux, в качестве стандартного фаервола выступает iptables, добавляем в фаервол следующее правило:

 

[root@localhost /]# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source ВНЕШНИЙ_IP

Вообще, вместо SNAT, можно использовать MASQUERADE, как рекомендует мануал по OpenVPN, но SNAT работает быстрей.
Не забудьте сделать что-бы оно загружалось при запуске системы.

 

[root@localhost ~]# mkdir /etc/iptables
[root@localhost ~]# /sbin/iptables-save > /etc/iptables/rules
[root@localhost ~]# echo "/sbin/iptables-restore < /etc/iptables/rules" >> /etc/rc.d/rc.local

Установка OpenVPN сервера

 

В стандартных репозитариях CentOS, пакет OpenVPN отсутствует, поэтому сначала нужно добавить репозитарий в котором есть OprnVPN, я использую EPEL.

 

[root@localhost ~]# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
Retrieving http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
warning: /var/tmp/rpm-xfer.FQI0km: Header V3 DSA signature: NOKEY, key ID 217521f6
Preparing...                ########################################### [100%]
   1:epel-release           ########################################### [100%]

Репозитарий добавлен, можно приступать к установке.

 

[root@localhost ~]# yum install openvpn

После установки OpenVPN, появляется ее домашняя папка, /etc/openvpn, это справедливо как минимум для CentOS, в других операционных системах папка может располагаться в другом месте, например во операционной системе FreeBSD ее принято держать в /usr/local/etc/openvpn/.

 

При установке, кроме самого OpenVPN сервера, будет установлен набор скриптов, для простой генерации ключей и сертификатов, расположено все это добро в /usr/share/openvpn/easy-rsa/2.0/. Кроме того в /usr/share/doc/openvpn-( версия )/, можно найти различные скрипты и примеры конфигов, которые могут пригодиться при построении различных вариантов VPN соединений.
Теперь можно приступать к настройке OpenVPN сервера.

 

Создание ключей и сертификатов

 

Структуру папок для ключей можно настроить как вам удобней, я буду делать по своему. В папке /usr/share/openvpn/easy-rsa/2.0/, создаем папку keys:

 

[root@localhost /]# cd /usr/share/openvpn/easy-rsa/2.0/
[root@localhost /]# mkdir ./keys

Далее настраиваем переменные в файле /usr/share/openvpn/easy-rsa/2.0/vars. Тут опять-же зависит от того, какую структуру папок вы выбрали для создания ключей и сертификатов и от прочих личных предпочтений. У меня получилось так:

 

export EASY_RSA="`pwd`"
export OPENSSL="openssl"
export PKCS11TOOL="pkcs11-tool"
export GREP="grep"

export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`
export KEY_DIR="$EASY_RSA/keys"		# папка для ключей

echo NOTE: If you run ./clean-all, I will be doing a rm -rf on $KEY_DIR

export PKCS11_MODULE_PATH="dummy"
export PKCS11_PIN="dummy"

export KEY_SIZE=1024  # длина ключа, можно поставить 2048

export CA_EXPIRE=3650	# срок действия корневого сертификата
export KEY_EXPIRE=3650   # срок действия ключа
export KEY_COUNTRY="ME"  
export KEY_PROVINCE="ME"
export KEY_CITY="MORDOR"
export KEY_ORG="DARKSIDE"
export KEY_EMAIL="Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
 "

Этот файл вызывается перед запуском скриптов генерации для установки необходимых значений переменных окружения. Что-бы лишний раз не заморачиваться с этим, я прописал вызов vars, в начало каждого скрипта, который мы будем использовать. Например файл build-ca будет выглядеть так:

 

#!/bin/bash
# Build a root certificate
. ./vars	# это будет срабатывать только если запускать build-ca находясь в той-же папке, можно прописать и абсолютный путь
export EASY_RSA="${EASY_RSA:-.}"
"$EASY_RSA/pkitool" --interact --initca $*

Так-же в качестве подготовки, нужно создать пару файлов, выполнив следующие команды:

 

[root@localhost 2.0]# touch /usr/share/openvpn/easy-rsa/2.0/keys/index.txt
[root@localhost 2.0]# echo "00" > /usr/share/openvpn/easy-rsa/2.0/keys/serial

Кроме того, рекомендую заглянуть в файл openssl.cnf, это файл конфигурации openssl, значения из которого так-же будут использоваться в процессе создания сертификатов и ключей. В частности там можно настроить названия, получаемых на выходе файлов.

 

Теперь создадим самоподписной корневой сертификат с секретным ключом, в процессе отвечаем на вопросы:

 

[root@localhost 2.0]# ./build-ca
NOTE: If you run ./clean-all, I will be doing a rm -rf on /usr/share/openvpn/easy-rsa/2.0/keys
Generating a 1024 bit RSA private key
............................................++++++
...................++++++
writing new private key to 'ca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [ME]:
State or Province Name (full name) [ME]:
Locality Name (eg, city) [MORDOR]:
Organization Name (eg, company) [DARKSIDE]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) [DARKSIDE CA]:openvpn-ca  
Name []:openvpn-ca
Email Address [Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
 ]:

Теперь создадим сертификат и секретный ключ для сервера:

 

[root@localhost 2.0]# [root@localhost 2.0]# ./build-key-server server
NOTE: If you run ./clean-all, I will be doing a rm -rf on /usr/share/openvpn/easy-rsa/2.0/keys
Generating a 1024 bit RSA private key
.......................................................................................++++++
.....++++++
writing new private key to 'server.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [ME]:
State or Province Name (full name) [ME]:
Locality Name (eg, city) [MORDOR]:
Organization Name (eg, company) [DARKSIDE]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) [server]:
Name []:
Email Address [Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
 ]:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:	# для сервера пароль ставить не нужно, просто жмем Enter
An optional company name []:
Using configuration from /usr/share/openvpn/easy-rsa/2.0/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName           :PRINTABLE:'ME'
stateOrProvinceName   :PRINTABLE:'ME'
localityName          :PRINTABLE:'MORDOR'
organizationName      :PRINTABLE:'DARKSIDE'
commonName            :PRINTABLE:'server'
emailAddress          :IA5STRING:'Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
 '
Certificate is to be certified until Jan 15 10:51:17 2021 GMT (3650 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

Генерируем ключ Диффи-Хелмана. Алгоритм Диффи-Хелмана позволяет получить двум сторонам общий секретный ключ, использующийся для дальнейшего симметричного шифрования данных.

 

[root@localhost 2.0]# ./build-dh
NOTE: If you run ./clean-all, I will be doing a rm -rf on /usr/share/openvpn/easy-rsa/2.0/keys
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
.....................+...............................+.........................+.........................+..............................+..................................................+.......................................+...+.....................................................................................................................+........................................................................................+.......................................+..............................................................+...........................................................++*++*++*

Напоследок генерируем ключ для TLS аутентификации.

 

[root@localhost 2.0]# openvpn --genkey --secret keys/tls.key

Теперь создадим каталог /etc/openvpn/keys и скопируем туда необходимые серверу ключи и сертификаты:

 

[root@localhost 2.0]# mkdir /etc/openvpn/keys
[root@localhost 2.0]# cp /usr/share/openvpn/easy-rsa/2.0/keys/ca.crt /etc/openvpn/keys/ca.crt
[root@localhost 2.0]# cp /usr/share/openvpn/easy-rsa/2.0/keys/server.crt /etc/openvpn/keys/server.crt
[root@localhost 2.0]# cp /usr/share/openvpn/easy-rsa/2.0/keys/server.key /etc/openvpn/keys/server.key
[root@localhost 2.0]# cp /usr/share/openvpn/easy-rsa/2.0/keys/tls.key /etc/openvpn/keys/tls.key
[root@localhost 2.0]# cp /usr/share/openvpn/easy-rsa/2.0/keys/dh1024.pem /etc/openvpn/keys/dh1024.pem

Настало время определиться с конфигом. Я взял готовый файл server.conf из /usr/share/doc/openvpn-2.1.1/sample-config-files/, и привел к необходимому виду.
Получилось следующее:

 

port 1194 # Порт на котором сервер будет принимать соединения
local 111.111.111.111 # Адрес, на котором будет висеть openvpn сервер
proto tcp # Протокол. Можно поставить tcp или udp. Вопрос что выбрать, не однозначный и зависит от конкретных условий. Протокол udp работает побыстрей, но не всегда применим.
dev tun0 # Устройство туннеля
server 10.8.0.0 255.255.255.0 # Виртуальная сеть, которая будет установлена между клиентом и сервером

# Ключи и сертификаты
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh2048.pem
tls-auth keys/tls.key 0 # На стороне сервера 0, на стороне клиента 1

cipher AES-256-CBC # Алгоритм шифрования, в данном случае 256-битный AES
user nobody # Пользователь от которого будет работать OpenVPN сервер 
group nobody # Группа
status openvpn-status.log
log-append openvpn.log
verb 3 # Уровень логгирования 
mute 20 # Не выводить повторять сообщение после 20 повторов
max-clients 30 # Максимальное количество клиентов
keepalive 10 120 # Каждые 10 секунд слать пинг, по истечении таймаута 120 секунд, перезапустить туннель
client-config-dir /etc/openvpn/servers/server/ccd # Директория для индивидуальных настроек каждого клиента
tls-server # Явное указание, что данный хост является TLS сервером
comp-lzo # Сжатие трафика
persist-key # Не трогать tun устройство при перезапуске openvpn сервера
persist-tun # Не перечитывать файлы ключей при перезапуске туннеля
push "redirect-gateway def1" # Протолкнуть клиенту новый шлюз по умолчанию
push "dhcp-option DNS 8.8.8.8" # Назначить для клиента DNS сервер, в данном случае публичный DNS от гугла

Собственно теперь можно пробовать запустить серверную часть и проверить, все-ли в норме.

 

[root@localhost openvpn]# service openvpn start
Starting openvpn:                                          [  OK  ]

Проверяем, появилось-ли устройство для туннеля.

 

[root@localhost openvpn]# ifconfig tun0
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.1  P-t-P:10.8.0.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Занял-ли OpenVPN сервер, отведенный ему адрес и порт.

 

[root@localhost openvpn]# netstat -tupln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
.............
udp        0      0 192.168.50.135:1194         0.0.0.0:*                               3315/openvpn
.............

Вроде все на месте.
Если что-то пошло не так, смотрим /etc/openvpn/openvpn.log, при необходимости можно увеличить уровень логгирования с помощью опции конфига verb.

 

Настраиваем OpenVPN клиента

 

Начнем с создания ключей и сертификата.

 

[root@localhost openvpn]# cd /usr/share/openvpn/easy-rsa/2.0
[root@localhost 2.0]# ./build-key client01
NOTE: If you run ./clean-all, I will be doing a rm -rf on /usr/share/openvpn/easy-rsa/2.0/keys
Generating a 1024 bit RSA private key
.........++++++
..................++++++
writing new private key to 'client01.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [ME]:
State or Province Name (full name) [ME]:
Locality Name (eg, city) [MORDOR]:
Organization Name (eg, company) [DARKSIDE]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) [client01]:
Name []:
Email Address [Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
 ]:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: # Если установить пароль, он будет запрашиваться при подключении
An optional company name []:
Using configuration from /usr/share/openvpn/easy-rsa/2.0/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName           :PRINTABLE:'ME'
stateOrProvinceName   :PRINTABLE:'ME'
localityName          :PRINTABLE:'MORDOR'
organizationName      :PRINTABLE:'DARKSIDE'
commonName            :PRINTABLE:'client01'
emailAddress          :IA5STRING:'Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
 '
Certificate is to be certified until Jan 16 12:38:32 2021 GMT (3650 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

Rопируем все необходимые клиенту файлы.

 

[root@localhost 2.0]# mkdir /root/ovpn
[root@localhost 2.0]# cp /usr/share/openvpn/easy-rsa/2.0/keys/ca.crt /root/ovpn/ca.crt
[root@localhost 2.0]# cp /usr/share/openvpn/easy-rsa/2.0/keys/client01.crt /root/ovpn/client01.crt
[root@localhost 2.0]# cp /usr/share/openvpn/easy-rsa/2.0/keys/client01.key /root/ovpn/client01.key
[root@localhost 2.0]# cp /usr/share/openvpn/easy-rsa/2.0/keys/tls.key /root/ovpn/tls.key
[root@localhost 2.0]# cp /usr/share/openvpn/easy-rsa/2.0/keys/dh1024.pem /root/ovpn/dh1024.pem

Стандартный файл конфигурации клиента можно взять все там-же, /usr/share/doc/openvpn-2.1.1/sample-config-files/client.conf.
Приводим конфиг к следующему виду:

 

client
remote 188.116.32.161 1194 # Адрес и порт OpenVPN сервера
proto tcp # Протокол, должен совпадать с сервером
dev tun # Устройство
# Сертификаты и ключи
ca ca.crt
dh dh2048.pem
cert admin.crt
key admin.key
tls-auth tls.key 1
cipher AES-256-CBC #Алгоритм шифрования, должен совпадать с серверным
verb 3
mute 20
keepalive 10 120
comp-lzo
persist-key
persist-tun
resolv-retry infinite
nobind

Кидаем получившийся файл конфигурации в папку с ключами:

 

[root@localhost 2.0]# cp /usr/share/doc/openvpn-2.1.1/sample-config-files/client.conf /root/client01.conf # Для *nix клиентов
[root@localhost 2.0]# cp /usr/share/doc/openvpn-2.1.1/sample-config-files/client.conf /root/client01.ovpn # Для Windows клиентов

Для добавления программ в автозапуск, в CentOS, используется команда chkconfig. При запуске без параметров выведет возможные ключи. Добавим необходимые сервисы:

 

[root@localhost ~]# chkconfig --level 2345 openvpn on

Проверяем:

 

[root@localhost ~]# chkconfig --list

С CentOS закончили.

 

Клиентская часть OpenVPN, коротко

 

Тут все просто, со страницы официальный клиент openvpn качаем клиент под нужную операционную систему, устанавливаем. У меня на рабочей машине WinXP, поэтому рассказываю на его примере. Что-бы все заработало, нужно добавить в Win виртуальное TAP устройство, сделать это можно с помощью bat файла из комплекта OpenVPN ( C:\Program Files (x86)\OpenVPN\bin\addtap.bat ).
Клиентские ключи и конфиг, которые мы копировали в папку /root/ovpn, нужно скинуть на машину-клиента и скопировать в папку C:\Program Files (x86)\OpenVPN\config\client01. Далее запускаете OpenVPN GUI, в трее появится значок, по правому клику вылезем менюшка со списком возможных соединений, там можно обнаружить и наш client01. Соединение берет имя файла конфигурации клиента, в нашем случае это client01.ovpn.

 

Если все было сделано правильно, после установки соединения с OpenVPN сервером, весь трафик, без каких-либо дополнительных телодвижений, пойдет через созданный шифрованный туннель, в том числе и трафик skype, icq и пр.

Где проверить свою анонимность, думаю найдете.


Теперь о Микротике. Поднимаем OpenVPN сервер на Mikrotik

 

В некоторых случаях требуется получить доступ например из дома в локальную сеть на работе, это довольно просто можно сделать с помощью OpenVPN. Я опишу каким образом можно это реализовать с помощью микротика, хотя заранее оговорюсь, реализация OpenVPN на этой железке оставляет желать лучшего.

Во-первых: полноценного ethernet тунеля OpenVPN микротик сделать не в состоянии, потому что остуствует напрочь возможность выдавать IP адреса OVPN клиентам по DHCP, все адреса выдаёт только сам микротик, как его не крути и с чем вокруг него не прыгай;
Во-вторых: не поддерживается сжатие заголовков;
В-третьих: работает только по tcp, в то время как предпочитаемый для OpenVPN - udp.

Всё это вместе взятое немного раздражает, но с этим, как я считаю, можно смирится.

Итак, настройку я условно разделю на две части, это настройка сервера (на железке) и настройка клиента (windows).

Настройка OpenVPN на Mikrotik (Сервер)

 

Пожалуй подготовительный этап следует начать с генерации сертификатов, поскольку passphrase авторизация считается менее защищённой из-за MITM уязвимости, а мы же не хотим что бы кто-то кроме нас самих мог получить доступ к нашей корпоративной сети. Подробно процесс по созданию сертификатов описан здесь. Добавлю лишь что для самого микротика надо генерировать сертификат сервера, а для клиента сертификат клиента. !!! Ключи для эксперимента можно взять из первой части статьи. Разница в их названии. Вместо ключей mikrotik, ставьте server.!!!

После создания сертификатов нам понадобится публичные сертификаты CA и для самого микротика, а так же закрытый ключ микротика, копируем их

открывем WinBox на микротике, переходим в раздел Files и жмём на кнопку Paste

Получается примерно такая картинка

После этого сертификаты необходимо импортировать, для этого идём в раздел System - Certificates и жмём кнопку Import, я первым импортировал публичный сертификат CA

 дальше импортируем публичный сертификат микротика

 и закрытый ключ для него

должна получится примерно такая картинка, обращаем внимание что напротив сертификата микротика должно стоять KT ( у меня KR - это нормуль)

следующим шагом создаём пул IP адресов для наши OVPN клиентов IP - Pool, жмём кнопку +, я добавил диапазон 172.21.108.2-172.21.108.14, и назвал пул ovpn

следующим этапом создаём PPP профиль, соответственно заходим в раздел PPP вкладка Profiles добавляем профиль кнопкой +, вводим имя, локальный адрес микротика с которым будут работы нашим клиенты, должен лежать в подсети с созданным ранее пулом адресов и указываем пул, остальное оставляем без изменений

после этого настраиваем сам OpenVPN сервер, делается это в разделе PPP вкладка Interface, кнопка OVPN Server, ставим галку Enabled, mode выставляем ethernet, выбираем созданный ранее профиль, а также ставим галку Require Client Certificate и выбираем сертификат микротика, маску по желанию можно поменять.

Осталось совсем немного, нужно создать пользователя, переходим в раздел PPP - Secrets, вводим имя пользователя, пароль, указываем сервис и профиль.

Поскольку мы используем сертификаты, надо что бы время на клиенте и на сервере совпадало, поэтому настраиваем sntp клиента, что бы микротик мог синхронизировать время, делается это в разделе System - SNTP Client. Я указал локальный SNTP сервер, вы можете использовать любой публичный сервер в интернете (например 85.21.78.91) или указать свой внутренний.
Осталось настроить разрешающее правило фаервола, переходим в раздел IP - Firewall вкладка Filter Rules.

Здесь надо указать In. Interface - интерфейс по которому к Вам приходит интернет, остальное как на скриншоте.

Созданное правило должно находится выше запрещающих правил.

На этом настройка сервера завершена, переходим к настройке клиента.

Настройка клиента OpenVPN Windows для микротика

О том где загрузить и как установить OpenVPN клиент описано в статье по созданию сертификатов. После установки нам необходимо будет перейти в каталог с установленным OpenVPN и добавить файл client.ovpn в каталог config следующего содержания

proto tcp-client
# в этой строчке мы указываем адрес в интернете нашего микротика
remote 123.123.123.123
dev tap

nobind
persist-key

tls-client
#указываем имена публичного CA сертификата
ca ca.crt
# публичного сертификата клиента
cert client.crt
# и его закрытый ключ
key  cllent.key
ping 10
verb 3
ns-cert-type server
cipher AES-256-CBC
auth SHA1
pull
# эта строка задаёт файл с логином-паролем которые мы прописывали в PPP-Secrets на микротике
auth-user-pass auth.cfg
# в этой части мы задаём настройки сетей которые находятся за микротиком, # в моём случае 192.168.1.0 с маской 255.255.255.0 это сеть, # а 172.21.108.1 это адрес микротика который мы указывали в PPP профиле
route-method exe
route-delay 2
route 192.168.1.0 255.255.255.0 172.21.108.1

Так же копируем в эту папку публичные сертификаты CA и клиента, и закрытый ключ клиента и создаём файл auth.cfg вида

user
123

где user - имя пользователя, 123 - пароль, которые мы задавали в PPP-Secrets на микротике

На этом настройка клиента завершена, запускаем OpenVPN GUI и он начинает подключение

Внимание! В Win7 с включённым UAC, а также на Win8 и Win8.1 не зависимо от того включён или выключен UAC запускаем OpenVPN GUI только в режиме Запускать от имени администратора! В противном случаем у Вас не добавятся маршруты или и вовсе не произойдёт подключения.

 

Еще раз спасибо авторам статей из которых собран материал. Готов выставить пиво!

 

 

 

You have no rights to post comments