Настройка защищенного OpenVPN туннеля между двумя маршрутизаторами Mikrotik

19.02.2014
Поделиться в:

Достаточно часто, возникает задача по объединению двух различных сетей. Например, когда два разных подразделения одного предприятия, находятся в разных зданиях. Но их компьютеры, должны быть объединены в одну сеть. Тут, конечно же, поможет один из протоколов VPN (Виртуальная частная сеть), что бы создать L2 туннель и решить эту задачу. 

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

1. Генерация сертификата 

2. Настройка сервера 

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

И так, у нас есть два отдельных офиса, расположенных в разных частях города, и подключенных к разным Интернет Провайдерам. Наша задача, объединить их в единую виртуальную сеть. Для этих целей, мы выбрали протокол OpenVPN. Причин для этого выбора, достаточно много. Но достаточно упомянуть, хотя бы RSA шифрование, с длинной ключа не менее 1024 бит. Одним словом - высокая безопасность и сохранность ваших данных. 

1. Генерация сертификата

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

Первым делом, обновляем список доступных пакетов 

~# apt-get update  

Обновление списка доступных пакетов

И устанавливаем, необходимый для генерации сертификата и ключей, пакет OpenVPN 

~# apt-get install openvpn  

установка пакета OpenVPN

Когда пакет установлен, можем приступать к созданию сертификата. При необходимости, в папке /usr/share/doc/openvpn/examples/easy-rsa/2.0/, можем отредактировать файл vars, указав там наши данные в переменных типа export KEY_ххххх. Например, в переменной export KEY-SIZE, можно увеличить размер ключа, заменив 1024 на 2048.  

создание сертификата

Переходим в папку /usr/share/doc/openvpn/examples/easy-rsa/2.0/ 

~# cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/ 

Инициализируем переменные и на на всякий случай, очищаем существующие ключи и сертификаты. 

~# source vars

~# ./clean-all  

pics 4

Инициализируем создание сертификата и ключа собственного центра сертификации 

~# ./pkitool --initca  

pics 5

Создаем ключ и сертификат для OpenVPN сервера (имя файлов сертификата и ключей, будет таким, которое вы указали в файле vars, переменной KEY_NAME) 

~# ./pkitool --pass --server

pics 6

И теперь, в папке /usr/share/doc/openvpn/examples/easy-rsa/2.0/, у нас появился новый каталог keys, в котором и хранятся, все сертификаты и ключи. Для центра сертификации, это файлы ca.crt и ca.key, и для сервера, в нашем случае, это Cert.crt и Cert.key.  

pics 7

Но есть один нюанс. Полученный таким образом ключ, имеет формат pkcs8, который не поддерживается Mikrotik RouterOS, и как следствие, не может быть использован в маршрутизаторе. Поэтому, нам потребуется конвертировать его в подходящий формат. Для чего, мы выполним соответствующую команду 

~# openssl rsa -in keys/Cert.key -out keys/Cert.pem 

В итоге, получив еще один файл в папке keys.  

2. Настройка сервера

Нам нужно, любым доступным способом, например по FTP, получить к себе на компьютер, файлы ca.crt, Cert.crt и Cert.pem. Именно они нам понадобятся для настройки OpenVPN туннеля. Подключаемся к маршрутизатору, который будет выступать сервером, при помощи фирменной утилиты Winbox и переносим все файлы туда.  

pics 8

После чего, импортируем их в систему, в разделе меню System - Certificates, при помощи кнопки Import, где в новом окне выбираем:

Only File - имя файла сертификата или ключа;

Passphrase - пароль для импорта ключа, если необходимо.

pics 9

При этом, стараемся соблюдать последовательность - сперва, сертификат CA, затем сертификат сервера OpenVPN и в конце, ключ.

В итоге, у нас появятся вот такие записи в разделе сертификатов. Причем, возле сертификата OpenVPN сервера, должны быть 2 буквы - KR, обозначающие K:

Decrypted-Private-Key R: RSA.  

pics 10

И теперь, мы можем приступить к непосредственной настройке OpenVPN сервера. Для этого, открываем меню PPP и первым делом, переходим на вкладку Profiles, где кнопкой “+”, добавляем новый профиль. 

В открывшемся окне, в поле Name - присваиваем имя профилю, а в полях Local Address и Remote address, вписываем IP адреса. Где Local, это адрес нашего туннеля, присваиваемый серверу, а Remote - клиенту.  

pics 11

Переходи на вкладку Interfaces, где нажимаем на кнопку OVPN Server и в открывшемся окне, ставим галочку Enabled, тем самым, активируя OpenVPN сервер.

Default Profile - выбираем созданный нами ранее профиль.

Certificate - выбираем сертификат OpenVPN сервера, который мы импортировали в самом начале.

И сохраняем настройки.  

pics 12

Последнее, что нам нужно сделать по настройке сервера, это добавить нового пользователя, на вкладке Secrets. Где мы, при помощи кнопки “+”, создаем новую запись. В которой, в полях Name и Password, вписываем логин и пароль, для будущего пользователя. Service - выбираем ovpn, а в качестве профиля, в поле Profile, выбираем наш OpenVPN профиль.  

pics 13

Однако, нужно иметь в виду, что в зависимости от ваших настроек Firewall, возможно нужно будет добавить разрешающее правило в меню IP - Firewall, на вкладке Filter Rules, следующего содержания:

Chain - input 

Protocol - tcp 

Dst.Port - 1194

Action - accept  

pics 14

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

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

Теперь, переходим к настройке клиента, который находится в другой части города. Его так же, будем настраивать посредством фирменной утилиты Winbox. 

Хочу обратить ваше внимание на то, что настраивая сервер, мы специально в его свойствах, не поставили галочку Requre Client Certificate. Поэтому, не требуется дополнительных сертификатов для клиента, и его настройка, будет достаточно простой. 

В разделе меню PPP, на вкладке Interfaces, кнопкой “+”, добавляем новую запись OVPN Client.  

pics 15

И в открывшемся окне, на вкладке Dial Out, устанавливаем следующие параметры:

Connect To - IP адрес OpenVPN сервера

User - логин клиента

Password - пароль клиента

Auth - выбираем sha1

Cipher - выбираем aes 256  

pics 16

Сохраняем настройки, и вскоре, возле новой записи, должна появиться буква R, свидетельствующая о том, что соединение успешно установлено.  

pics 17

Настало время, проверить все ли работает. Для этого, мы открываем консоль New Terminal и командой ping, определяем доступность узлов локальной сети.  

pics 18

Таким образом, мы видим, что оба маршрутизатора, не смотря на территориальную разницу, находятся в одной локальной сети. 

Далее, в зависимости от ваших потребностей, вы можете настроить NAT, Routing и т.д. на ваше усмотрение.

logo
Настройка защищенного OpenVPN туннеля между двумя маршрутизаторами Mikrotik
Отзывы покупателей
Рейтинг покупателей
3 / 5 3 5 4
На основе 4 оценок покупателей
25%
0%
0%
0%
25%
Отзыв
Отлично
Заголовок*
Достоинства
Недостатки
Комментарий*
Представьтесь
Комментарий
И шо теряем по пропускной способности?50 - 60 % ?
Комментарий
mglushak, Не проверяли..."
Комментарий
баян, в настройках сервера ставите галку aes128! В настройках клиента aes256! Тупо Копипаст?)))))))))
Комментарий

Андрей, возможно автор допустил ошибку на первом скриншоте, и на самом деле, там устанавливалось значение aes 256 а не 128.


Возврат к списку


Популярное оборудование

Авторизуйтесь, чтобы добавить отзыв

x