Вот и сегодня, мы построим такой туннель между двумя маршрутизаторами 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 и т.д. на ваше усмотрение.
Авторизуйтесь, чтобы добавить отзыв