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

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

Роутеры Mikrotik позволяют настроить различные варианты VPN сервисов. В данной инструкции мы рассмотрим настройку OpenVPN. Будет выполнено:

  • Генерирование сертификатов.
  • Настройка сервера OpenVPN.
  • Тестовое подключение к серверу.

Подключение к Mikrotik осуществим при помощи Winbox, однако ход настройки через веб-интерфейс аналогичен.

Настройка времени на Mikrotik

Для правильной работы роутера с сертификатами, необходимо корректно настроенное время. Переходим в SystemClock:

Переходим в System - Clock

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

Если время задано неправильно, выбираем подходящий часовой пояс. После переходим в терминал и задаем настройки для сервера, с которым мы будем синхронизировать время:

/system ntp client

set enabled=yes primary-ntp=[:resolve time.nist.gov] secondary-ntp=[:resolve time.windows.com]

* в данном примере мы активируем синхронизацию времени с серверами time.nist.gov и time.windows.com.

Создаем сертификаты для OpenVPN

Сертификаты мы можем создать несколькими способами. Разберем два — на роутере Mikrotik и с помощью утилиты на компьютере с Windows.

Способ 1. На Mikrotik’е.

Проще и быстрее всего сгенерировать сертификаты на самом роутере.

1. Открываем терминал и создаем последовательность для центра сертификации:

/certificate add name=samarka-ca country="RU" state="Samara" locality="Samara" organization="SamarkaLAN" unit="Z37" common-name="CA" key-size=2048 days-valid=3650 key-usage=crl-sign,key-cert-sign

/certificate sign samarka-ca ca-crl-host=127.0.0.1 name="ca"

* первая команда создает файл-шаблон запроса, на основе которого мы генерируем сертификаты второй командой. В шаблоне мы указываем опции для сертификата — так как сам сертификат самоподписанный, можно указать любые значения и это никак не отразится на его использовании (стоит только указать корректные значения для стойкости шифрования key-size и срока действия сертификата days-valid).

2. Генерируем сертификат сервера OpenVPN:

/certificate add name=mikrotik country="RU" state="Samara" locality="Samara" organization="SamarkaLAN" unit="Z37" common-name="SERVER" key-size=2048 days-valid=3650 key-usage=digital-signature,key-encipherment,tls-server

 /certificate sign mikrotik ca="ca" name="server"

* как и в примере выше, мы сначала создали файл запроса и на его основе — сам сертификат. В качестве центра сертификации мы указываем созданный ранее сертификат ca.

Настройка OpenVPN на Mikrotik

После создания сертификатов, можно переходить к настройке самого микротика.

1. Создаем пул IP-адресов

Пул адресов нужен для выдачи клиентам сетевых адресов. Для его настройки переходим в IPPool:

Переходим в IP - Pool

Переходим к добавлению нового пула:

Добавляем новый пул

Введем настройки для нашего пула:

Настройка пула адресов для OpenVPN

* где Name просто указывает название для идентификации пула (openvpn); Addresses — стартовый и конечный адреса, которые будет назначаться клиентам при подключении к VPN. В данном примере мы указываем последовательность от 176.16.10.10176.16.10.250.

2. Создание профиля

В профиле мы задаем настройки IP-адреса интерфейса для VPN и ранее созданный пул.

Переходим в PPP — открываем вкладку Profiles — создаем новый профиль — указываем название для профиля, IP-адрес сервера VPN и пул, из которого будут выдаваться IP-адреса клиентам — OK:

Создание профиля для OpenVPN

* как видим, мы указали название профиля profile-openvpn, выбрали наш пул openvpn и назначили адрес 176.16.10.1 для сервера.

3. Создание пользователя

Для каждого, кто будет подключаться к VPN необходимо создать свою учетную запись. В том же PPP переходим на вкладку Secrets — создаем нового пользователя — задаем ему имя, пароль, указываем сервис ovpn и выбираем профиль, из которого пользователю будет назначен адрес при подключении — нажимаем OK:

Создание пользователя для аутентификации на OpenVPN

* мы создадим учетную запись client1 для сервиса ovpn и профиля, созданного нами ранее.

4. Включаем и настраиваем сервер OpenVPN

Для включение сервиса OpenVPN в том же PPP переходим на вкладку Interface — кликаем по кнопке OVPN Server — включаем сервис (Enabled) и задаем настройки — кликаем по OK:

Включение OpenVPN на Mikrotik

* в данном примере примененные настройки пометились синим цветом. Мы указали профиль для PPP (profile-openvpn), выбрали сертификат сервера (server), включили требование клиентского сертификата (Require Client Certificate) и расширили число алгоритмов для шифрования.

5. Настройка брандмауэра

Мы активировали наш сервер OVPN на порту 1194 и нам нужно открыть данный порт на фаерволе. Переходим в раздел IPFirewall:

Переходим к настройке брандмауэра

На вкладке Filter Rules создаем новое правило:

Настройка правила на брандмауэре для разрешения порта 1194

* мы должны выбрать для ChainInput, указать протокол (tcp) и задать порт, на котором слушает сервер OpenVPN (1194).

По умолчанию для создаваемых правил, действие задано на разрешение, поэтому просто сохраняем правило, нажав OK. После создания правила перетягиваем его мышкой наверх (выше запрещающих правил).

OpenVPN сервер готов к работе.

Настройка клиента

Теперь убедимся, что наш серер работает. Настроим клиентское подключение с компьютера на Windows. Для этого необходимо сгенерировать клиентские сертификаты и настроить клиентское подключение.

1. Создание сертификатов для клиента c помощью консоли на Mikrotik

В консоли на роутере создаем общий шаблон, на основе которого будем генерировать все сертификаты для клиентов:

/certificate add name=Z37-CL country="" state="" locality=""
organization="" unit="" common-name="mikrotik.z37"
key-size=2048 days-valid=3650 key-usage=tls-client

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

/certificate add name=template-client-to-issue copy-from=»template-clients» common-name=»client1″

/certificate sign template-client-to-issue ca=»ca» name=»client1″

* принцип, во многом, схож с процессом создания ключенй для сервера.

Для создания сертификата второго клиента вводим:

/certificate add name=template-client-to-issue copy-from=»template-clients» common-name=»client2″

/certificate sign template-client-to-issue ca=»ca» name=»client2″

… и так далее.

После экспортируем сертификаты:

/certificate export-certificate ca export-passphrase=»»

/certificate export-certificate client1 export-passphrase=12345678

* при выгрузке сертификата клиента обязательно указываем пароль, чтобы экспортировался закрытый ключ.

Теперь переходим в раздел Files и скачиваем сертификат для ca и клиентов:

Загрузка экспортированных сертификатов

После переименовываем их в client1.crtclient1.keyca.crt.

Способ 2. На Windows

Снова запускаем от администратора командную строку. Переходим в каталог easy-rsa:

cd %ProgramFiles%\OpenVPN\easy-rsa

Запустим скрипт vars.bat:

vars.bat

Создадим сертификат для первого пользователя:

build-key.bat client1

* на все запросы наживаем Enter, кроме Common Name — в данном поле вводим имя клиента (в нашем случае, просто client1). В конце подтверждаем введенную информацию — y.
** На каждого клиента нужно сгенерировать свой сертификат, в противном случае, могут быть проблемы идентификации клиентов с последующей выдачей одинаковых IP.

Теперь из папки keys копируем файлы client1.crtclient1.keyca.crt и переносим их на клиентский компьютер.

2. Установка и настройка OpenVPN

Рассмотрим конфигурирование клиента для Windows и Linux. Подробнее процесс описан в статье Настройка OpenVPN клиента — в ней можно найти подробное описание опций настройки, а также пример конфигурирования клиента на Android.

Windows

Заходим на сайт OpenVPN и переходим на страницу загрузки. Скачиваем openvpn-install для нашей операционной системы:

Загрузка OpenVPN клиента

Запускаем установку клиента — оставляем галочки, как есть. Продолжаем установку и дожидаемся ее окончания.

Открываем текстовый редактор и создаем конфиг:

client
dev tun
proto tcp
remote xxx.xxx.xxx.xxx 1194
auth-nocache
ca ca.crt
cert client1.crt
key client1.key
remote-cert-tls server
cipher AES-256-CBC
resolv-retry infinite
nobind
persist-key
persist-tun
verb 3
auth-nocache
auth-user-pass
route 192.168.0.0 255.255.255.0

* в данном конфиге нас интересуют опции:

  • remote — адрес нашего VPN-сервера; 
  • cert и key — имена файлов с сертификатами; 
  • route — адрес маршрута для доступа к локальной сети, которая находится за роутером и куда нужно пустить пользователей.

* подробнее опции описаны в инструкции Настройка OpenVPN клиента.

Сохраняем файл с настройками в каталоге C:\Program Files\OpenVPN\config (или другом, где установлен клиент). В этот же каталог поместим наши сертификаты.

Запускаем OpenVPN GUI от имени администратора — в правом нижнем углу появится иконка программы:

После запуска программы ее значок появится в правом нижнем углу

Кликаем по ней правой кнопкой мыши и выбираем Подключиться:

Подключаемся к OpenVPN серверу

Программа попросит нас авторизоваться — вводим логин и пароль, созданные ранее на роутере (client1); после мы должны будем ввести пароль для сертификата — вводим тот, что использовали при выгрузке.

Дожидаемся подключения — значок должен стать зеленым:

Подключенный к серверу клиент OpenVPN

Если мы хотим запускать клиента без пароля (без необходимости его вводить), в конфиге правим опцию auth-user-pass на:


auth-user-pass auth.txt

Создаем текстовый файл auth.txt в той же папке, где находится файл конфигурации со следующим содержимым:

username
password

* где username — логин пользователя, а password — пароль.

Linux

Приведем примеры установки клиента для систем на базе deb и RPM.

а) на deb (Debian, Ubuntu, Mint):

apt-get install openvpn

б) на RPM (Red Hat, CentOS, Fedora):

yum install epel-release

yum install openvpn

После установки клиента создаем конфигурационный файл:

vi /etc/openvpn/client.conf

client
dev tun
proto tcp
remote xxx.xxx.xxx.xxx 1194
auth-nocache
ca ca.crt
cert client1.crt
key client1.key
remote-cert-tls server
cipher AES-256-CBC
resolv-retry infinite
nobind
persist-key
persist-tun
verb 3
auth-nocache
auth-user-pass
route 192.168.0.0 255.255.255.0

Также в каталог /etc/openvpn копируем сертификаты.

Выполняем подключение:

openvpn —config /etc/openvpn/client.conf

Доступ в Интернет через VPN-сервер

Если нам нужно, чтобы все запросы, в том числе, к Интернет проходили через сервер VPN, в конфигурационном файле клиента добавим:

route 0.0.0.0 0.0.0.0

Переподключаемся к серверу VPN.

Источник: https://www.dmosk.ru/miniinstruktions.php?mini=vpnserver-mikrotik

Довольны?
[Оценок: 0 средняя: 0]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *