Достаточно часто, возникает задача по объединению двух различных сетей. Например, когда два разных подразделения одного предприятия, находятся в разных зданиях. Но их компьютеры, должны быть объединены в одну сеть. Тут, конечно же, поможет один из протоколов VPN (Виртуальная частная сеть), что бы создать L2 туннель и решить эту задачу.
Вот и сегодня, мы построим такой туннель между двумя маршрутизаторами Mikrotik и подробно рассмотрим все этапы настройки, на реальном примере. В целом, всю эту процедуру, можно условно разделить на три основных пункта:
1. Генерация сертификата
2. Настройка сервера
3. Настройка клиента
И так, у нас есть два отдельных офиса, расположенных в разных частях города, и подключенных к разным Интернет Провайдерам. Наша задача, объединить их в единую виртуальную сеть. Для этих целей, мы выбрали протокол OpenVPN. Причин для этого выбора, достаточно много. Но достаточно упомянуть, хотя бы RSA шифрование, с длинной ключа не менее 1024 бит. Одним словом — высокая безопасность и сохранность ваших данных.
1. Генерация сертификата
Для работы данного протокола, нам понадобится сертификат. Проще всего, сгенерировать его самостоятельно, но для этого нам понадобится компьютер с установленной операционной системой Linux. В моем случае, я воспользовался удаленным сервером.
Первым делом, обновляем список доступных пакетов
~# apt-get update
И устанавливаем, необходимый для генерации сертификата и ключей, пакет OpenVPN
~# apt-get install 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
Инициализируем создание сертификата и ключа собственного центра сертификации
~# ./pkitool —initca
Создаем ключ и сертификат для OpenVPN сервера (имя файлов сертификата и ключей, будет таким, которое вы указали в файле vars, переменной KEY_NAME)
~# ./pkitool —pass —server
И теперь, в папке /usr/share/doc/openvpn/examples/easy-rsa/2.0/, у нас появился новый каталог keys, в котором и хранятся, все сертификаты и ключи. Для центра сертификации, это файлы ca.crt и ca.key, и для сервера, в нашем случае, это Cert.crt и Cert.key.
Но есть один нюанс. Полученный таким образом ключ, имеет формат pkcs8, который не поддерживается Mikrotik RouterOS, и как следствие, не может быть использован в маршрутизаторе. Поэтому, нам потребуется конвертировать его в подходящий формат. Для чего, мы выполним соответствующую команду
~# openssl rsa -in keys/Cert.key -out keys/Cert.pem
В итоге, получив еще один файл в папке keys.
2. Настройка сервера
Нам нужно, любым доступным способом, например по FTP, получить к себе на компьютер, файлы ca.crt, Cert.crt и Cert.pem. Именно они нам понадобятся для настройки OpenVPN туннеля. Подключаемся к маршрутизатору, который будет выступать сервером, при помощи фирменной утилиты Winbox и переносим все файлы туда.
После чего, импортируем их в систему, в разделе меню System — Certificates, при помощи кнопки Import, где в новом окне выбираем:
Only File — имя файла сертификата или ключа;
Passphrase — пароль для импорта ключа, если необходимо.
При этом, стараемся соблюдать последовательность — сперва, сертификат CA, затем сертификат сервера OpenVPN и в конце, ключ.
В итоге, у нас появятся вот такие записи в разделе сертификатов. Причем, возле сертификата OpenVPN сервера, должны быть 2 буквы — KR, обозначающие K:
Decrypted-Private-Key R: RSA.
И теперь, мы можем приступить к непосредственной настройке OpenVPN сервера. Для этого, открываем меню PPP и первым делом, переходим на вкладку Profiles, где кнопкой “+”, добавляем новый профиль.
В открывшемся окне, в поле Name — присваиваем имя профилю, а в полях Local Address и Remote address, вписываем IP адреса. Где Local, это адрес нашего туннеля, присваиваемый серверу, а Remote — клиенту.
Переходи на вкладку Interfaces, где нажимаем на кнопку OVPN Server и в открывшемся окне, ставим галочку Enabled, тем самым, активируя OpenVPN сервер.
Default Profile — выбираем созданный нами ранее профиль.
Certificate — выбираем сертификат OpenVPN сервера, который мы импортировали в самом начале.
И сохраняем настройки.
Последнее, что нам нужно сделать по настройке сервера, это добавить нового пользователя, на вкладке Secrets. Где мы, при помощи кнопки “+”, создаем новую запись. В которой, в полях Name и Password, вписываем логин и пароль, для будущего пользователя. Service — выбираем ovpn, а в качестве профиля, в поле Profile, выбираем наш OpenVPN профиль.
Однако, нужно иметь в виду, что в зависимости от ваших настроек Firewall, возможно нужно будет добавить разрешающее правило в меню IP — Firewall, на вкладке Filter Rules, следующего содержания:
Chain — input
Protocol — tcp
Dst.Port — 1194
Action — accept
Оно должно располагаться раньше запрещающих правил.
3. Настройка клиента
Теперь, переходим к настройке клиента, который находится в другой части города. Его так же, будем настраивать посредством фирменной утилиты Winbox.
Хочу обратить ваше внимание на то, что настраивая сервер, мы специально в его свойствах, не поставили галочку Requre Client Certificate. Поэтому, не требуется дополнительных сертификатов для клиента, и его настройка, будет достаточно простой.
В разделе меню PPP, на вкладке Interfaces, кнопкой “+”, добавляем новую запись OVPN Client.
И в открывшемся окне, на вкладке Dial Out, устанавливаем следующие параметры:
Connect To — IP адрес OpenVPN сервера
User — логин клиента
Password — пароль клиента
Auth — выбираем sha1
Cipher — выбираем aes 256
Сохраняем настройки, и вскоре, возле новой записи, должна появиться буква R, свидетельствующая о том, что соединение успешно установлено.
Настало время, проверить все ли работает. Для этого, мы открываем консоль New Terminal и командой ping, определяем доступность узлов локальной сети.
Таким образом, мы видим, что оба маршрутизатора, не смотря на территориальную разницу, находятся в одной локальной сети.
Далее, в зависимости от ваших потребностей, вы можете настроить NAT, Routing и т.д. на ваше усмотрение.
Источник http://lanmarket.ua/stats/nastroyka-zashchishchennogo-OpenVPN-tunnelya-mejdu-dvumya-marshrutizatorami-Mikrotik-