Mikrotik openvpn server: Настройка OpenVPN-сервера на роутерах Mikrotik
Настройка MikroTik в качестве OVPN-сервера с использованием клиентских сертификатов и списка отзыва
Передо мной возникла задача настроить MikroTik в качестве OVPN сервера с использованием клиентских сертификатов и возможностью их отзыва. В интернетах на данную тему чёткого How-To я не нашёл, поэтому решил изобрести свой собственный велосипед. В этой статье я опишу схему настройки данного чуда, получившуюся и работающую у меня.
Использование PKI ROS
Касательно PKI есть два варианта:
1. С использованием встроенного в ROS PKI:
- + можем выдавать и отзывать сертификаты непосредственно на микротике, иначе нам придётся после каждого отзыва вручную обновлять crl на нём
- — случайное удаление с микротика CA-сертификата, используемого для подписи и отзыва сертификатов — фатально, импорт ранее выгруженных сертификата и ключа CA не поможет, а дальнейшее использование будет возможно только с использованием openssl и ручной загрузкой crl после каждого отзыва (конечно, если у вас есть актуальный бэкап всего этого)
- + если мы бэкапим весь конфиг микротика, то вместе с ним бэкапится и CA
2. С использованием стороннего PKI — openssl, или windows server PKI (НЕ используйте доверенные CA типа StartSSL, они выдают клиентские сертификаты не только вам):
- + защищены от недостатка первого варианта
- — в случае openssl необходимо вручную загружать crl на микротик после каждого отозванного сертификата
- + в случае windows server PKI теоретически можно реализовать проверку подлинности через механизм SCEP, но пока не проверял
- — в случае windows server PKI нужен домен, без него этот самый PKI работать не будет
Я буду рассматривать только первый вариант, т.к., во-первых, он мне подходит, во-вторых, он более гибкий. Так же я не буду подробно останавливаться на параметрах сертификатов и прочих разных параметрах стандартных инструментов ROS, т.к. их исчерпывающее описание есть на официальной MikroTik Wiki.
Настраиваем OVPN-сервер на ROS
1. Настройка PKI
1.1. Сертификат CA:
/certificate add name=template-CA country="" state="" locality="" organization="" unit="" common-name="test-CA" key-size=4096 days-valid=3650 key-usage=crl-sign,key-cert-sign
/certificate sign template-CA ca-crl-host=127.0.0.1 name="test-CA"
Примечание: ca-crl-host= — обязательный параметр, иначе список отзыва не будет создан; полный путь к списку отзыва будет указан в параметрах сертификата, графа «[1]Точка распределения списка отзыва (CRL)»; в принципе, можно указать любой из ip-адресов нашего микротика, тот что укажем — и будет прописан в сертификате. Доменные имена параметром не поддерживаются, к сожалению.
1.2. Сертификат сервера:
/certificate add name=template-SRV country="" state="" locality="" organization="" unit="" common-name="test-srv-OVPN" key-size=4096 days-valid=1095 key-usage=digital-signature,key-encipherment,tls-server
/certificate sign template-SRV ca="test-CA" name="test-srv-OVPN"
Примечание: для сертификата сервера key-usage лучше не менять, почему так — описано здесь (а если очень хотим поменять — то там же написано что нужно прописать в конфиге клиента для этого).
Примечание: в отличие от SSTP — OVPN не проверяет соответствие common-name сертификата сервера fqdn’у этого сервера.
1.3. Шаблон для сертификатов клиентов:
/certificate add name=template-CL country="" state="" locality="" organization="" unit="" common-name="test-client-ovpn-template" key-size=4096 days-valid=365 key-usage=tls-client
1.3.1 Сертификат первого клиента:
/certificate add name=template-CL-to-issue copy-from="template-CL" common-name="test-client-ovpn-1"
/certificate sign template-CL-to-issue ca="test-CA" name="test-client-ovpn-1"
1.3.2. Сертификат второго и последующих клиентов:
См. п. 3.1, но меняем значение параметров.
common-name="test-client-ovpn-1"
Для первой команды, это значение должно быть уникальным в пределах одного CA.
name="test-client-ovpn-1"
Для второй команды, это значение должно быть уникальным в пределах одного микротика.
1.4 В будущем, для отзыва сертификатов используем команду:
certificate issued-revoke %cert-name%
Где %cert-name% — поле name= подписанного сертификата, то есть отображаемое PKI микротика.
2. Настройка OVPN сервера
Примечание: можно настроить в режиме tun («ip» в ROS), а можно в режиме tap («ethernet» в ROS). Режим tun — обычный туннель. Режим tap — эмуляция полноценного ethernet, в частности в режиме tap клиентов можно объединить в режим моста и они будут прекрасно друг друга видеть. В теории в режиме tap можно запустить DHCP-сервер, но в текущей версии ROS это не реализовано.
2tun. Режим tun
2tun.1. Задаём пул адресов для OVPN-клиентов (можно задать непосредственно в PPP-profile):
/ip pool add name=OVPN_srv_pool ranges=192.168.100.2-192.168.254
2tun.2. Создаём PPP-profile для OVPN-сервера:
/ppp profile add name=OVPN_server local-address=192.168.100.1 remote-address=OVPN_srv_pool
Опционально! Остальные параметры по вашему вкусу и в соответствии с вашими целями. Например: dns=192.168.100.1 use-ipv6=no
2tun.3. Настраиваем режим аутентификации пользователей:
/ppp aaa set accounting=yes
2tun.4. Добавляем пользователей:
/ppp secret add name=test-user-1 password=P@ssword1 service=ovpn profile=OVPN_server
/ppp secret add name=test-user-2 password=P@ssword2 service=ovpn profile=OVPN_server
2tun.5. Включаем OVPN-сервер:
/interface ovpn-server server set auth=sha1 cipher=blowfish228 default-profile=OVPN_server mode=ip netmask=24 require-client-certificate=yes certificate=test-srv-OVPN enabled=yes
2tap. Режим tap
2tap.1. Задаём пул адресов для OVPN-клиентов (можно задать непосредственно в PPP-profile):
/ip pool add name=OVPN_srv_pool ranges=192.168.100.2-192.168.254
2tap.1+. Создаём мост для OVPN-подключений:
/interface bridge add name=OVPN_bridge arp=enabled
Примечание: IP для моста назначать совершенно не обязательно, он и так имеется в PPP-profile (кроме того если указать адрес для моста, но не указать local-address= в PPP-profile, то клиент не подключится).
Примечание: arp должен быть включён, иначе клиенты друг-друга не увидят.
2tun.2. Создаём PPP-profile для OVPN-сервера:
/ppp profile add name=OVPN_server local-address=192.168.100.1 remote-address=OVPN_srv_pool bridge=OVPN_bridge
Опционально! Остальные параметры по вашему вкусу и в соответствии с вашими целями. Например: dns=192.168.100.1 use-ipv6=no
2tap.3. Настраиваем режим аутентификации пользователей:
/ppp aaa set accounting=yes
2tap.4. Добавляем пользователей:
/ppp secret add name=test-user-1 password=P@ssword1 service=ovpn profile=OVPN_server
/ppp secret add name=test-user-2 password=P@ssword2 service=ovpn profile=OVPN_server
2tap.5. Включаем OVPN-сервер:
/interface ovpn-server server set auth=sha1 cipher=blowfish228 default-profile=OVPN_server mode=ethernet netmask=24 require-client-certificate=yes certificate=test-srv-OVPN enabled=yes
Примечания для обоих режимов:
1. Наличие пользователя является обязательным, даже не смотря на авторизацию по сертификатам; можно создать одного пользователя на всех клиентов и прописать один и тот же логин/пароль в конфигах клиентов, но это лишает возможности отследить подключение и действия конкретного пользователя — неудобно, несколько небезопасно.
2. RADIUS-аутентификацию я не рассматриваю просто потому, что не тестировал. Могу лишь предположить, что работать она будет только для username/password, а сертификаты будут всё так же проверяться на микротике.
3. Следите за тем, что бы пул адресов соответствовал подсети, указываемой в настройках OVPN-сервера. ROS’овский OVPN-сервер не будет разбираться принадлежат ли одной сети local-address= сервера и назначаемый из пула адрес клиента, более того, если, к примеру, использовать маску 29, а в качестве пула прописать ranges=192.168.100.0/29, клиенту может быть в лёгкую назначен броадкастовый 192.168.100.7, как это было у меня. Точно такая же ситуация может возникнуть, если указанный пул больше, чем подразумевает маска — только проблема выявится не сразу, а чуть погодя.
3. Экспорт сертификатов для настройки клиентов
3.1. Экспорт сертификата CA:
/certificate export-certificate test-CA export-passphrase=""
Примечание: Нам нужен только сам сертификат, закрытый ключ НЕ нужен, поэтому параметр export-passphrase=»» должен быть пустым.
3.2. Экспорт сертификатов клиентов:
/certificate export-certificate test-client-ovpn-1 export-passphrase=private-key-password1
/certificate export-certificate test-client-ovpn-2 export-passphrase=private-key-password2
Примечание: export-passphrase= — обязательный параметр для экспорта закрытых ключей; используем для каждого клиента свой пароль; НЕ используем тот же самый пароль, который указывали в пунктах 2.4 для пользователей!
3.3. Извлекаем полученные файлы сертификатов и ключей из микротика любым удобным способом (как правило, я таскаю туда-сюда файлы прямо из винбокса).
Настройка Windows-клиента
1. Получаем OVPN-дистрибутив с openvpn.net.
2. Устанавливаем, все опции оставляем по-умолчанию, в том числе tap-интерфейс, который понадобится для любого режима настройки.
3. Идём в OpenVPN\config (по-умолчанию C:\Program Files\OpenVPN\config) и создаём там файл client.ovpn (или копируем из OpenVPN\sample-config).
4. Создаём конфигурацию клиента, или вносим правки с sample-config.Содержимое client.ovpn с небольшими комментариями# Режим, в котором работает OVPN сервисclient
# Внимание! Указываем только один параметр из двух
# Для режима tup указываем параметрdev tun
# Для режима tap указываем параметрdev tap
# Этот параметр указываем только в случае использования режима tap, а вместо MyTap подставляем имя tap интерфейса в windows (ipconfig /all, или сетевые подключения в панели управления)dev-node MyTap
# Используемый протокол. ROS’овский OVPN-сервер работает только в режиме tcpproto tcp
# Адрес сервера, к которому будем подключаться, и порт. Вместо ovpn.my.domain — dns-имя или же ip-адрес. Можно указать несколько серверов.remote ovpn.my.domain 1194
;remote my-server-2 1194
# Этот параметр нужен только в случае использования более чем одного сервера; При указании этого параметра при подключении клиент случайном образом выбирает один из указанных серверов;remote-random
# Тайм аут между попытками определить ip-адрес по указанному DNS-имени сервера, в секундах (или бесконечность — infinite)resolv-retry infinite
# Если указан этот параметр, то клиент будет использовать динамический исходящий порт для подключенияnobind
# Разрешают клиенту сохранять настройки туннеля при переподключении, а так же не перечитывать файлы ключейpersist-key
persist-tun
# Настройки прокси;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]
# Отключает сообщения о повторяющихся пакетах;mute-replay-warnings
# Пути к файлам сертификатов
# ca — сертификат CA, которым выданы сертификат клиента И сертификат сервера
# cert — сертификат клиента
# key — закрытый ключ сертификата клиентаca cert_export_test-CA.crt
cert cert_export_test-client-ovpn-1.crt
key cert_export_test-client-ovpn-1.key
# auth-user-pass сообщает клиенту, что он должен использовать имя пользователя и пароль для аутентификации (но не вместо сертификатов, а вместе с сертификатами)
# auth-user-pass говорит OVPN-клиенту использовать логин и пароль (но не вместо сертификатов, а вместе с сертификатами)
# user-pwd.txt указывает на файл, в котором хранятся логин и пароль; первая строка в файле — логин, вторая — пароль; при отсутствии этого аргумента логин и пароль будут запрашиваться каждый раз при подключении
# Примечание: В случае использования сертификата с закрытым ключом, к которому и так нужно вводить ключ при каждом подключении, я не считаю необходимым заставлять пользователя помнить ещё и логин с паролем--auth-user-pass user-pwd.txt
# Сообщает клиенту, что он должен проверять сертификат сервера на предмет правильности используемых key-usageremote-cert-tls server
# Ключ для шифрования начала процесса аутентификации (handshake), дополнительная мера безопасности. Имеет смысл при использовании только логина/пароля, без сертификатов.;tls-auth ta.key 1
# Задание особого метода шифрования, по-умолчание используется blowfish228.;cipher x
# Использование lzo-сжатия. Не поддерживается OVPN на ROS.;comp-lzo
# Уровень лога. Чем больше значение — тем подробнее.verb 3
# Блокирование повторяющихся сообщений в логе;mute 20
# Выше были приведены параметры, которые присутствуют в «родном» примере конфига для клиента + 1 необходимый нам параметр
# Ниже я приведу ещё несколько, на мой взгляд, полезных параметров.
# Маршрут, устанавливаемый при запуске подключения
# Маршрут указывает не на шлюз, а непосредственно на подключениеroute 192.168.88.0 255.255.255.0
# Пауза перед установкой маршрутов после установления подключения (в секундах)route-delay 5
# Если мы хотим задать OVPN-подключение в качестве основного шлюза
@bibliaryroute-gateway 192.168.100.1
redirect-gateway def1 //Спасибо пользователю за правку. Согласно докам этот вариант верен, но протестировать на момент редактирования не имею возможности.
Примечание: для применения параметров маршрутизации, прописанных в конфиге, сам сервис OVPN, или же OVPN GUI должны быть запущены с правами администратора.
Примечание: список большинства параметров здесь но он несколько устаревший.
Настройка MikroTik-клиента
1 Импорт сертификатов
1.1 Кладём в микротик файл сертификата CA и файл сертификата и файл ключа клиента любым удобным способом
1.2 Импортируем сертификат CA
/certificate import file-name=cert_export_test-CA.crt passphrase=""
1.3 Импортируем сертификат и ключ клиента
/certificate import file-name=cert_export_test-client-ovpn-1.crt passphrase=""
/certificate import file-name=cert_export_test-client-ovpn-1.key passphrase=private-key-password1
2. Настраиваем клиент
/interface ovpn-client add name=OVPN_client connect-to={ovpn.my.domain|xxx.xxx.xxx.xxx} port=1194 mode={ip|ethernet} user=test-user-1 password=P@ssword1 profile=default certificate=cert_32 auth=sha1 cipher=blowfish228 add-default-route={no|yes} disabled=no
Значения в {} указываете в соответствии с предыдущими настройками и вашими потребностями.
Для экспериментов использовалось следующее оборудование и ПО:RouterBoard 2011UiAS-2HnD с RouterOS 6.32.2 на борту — 2 шт., один в качестве сервера, другой в качестве клиента; оба служат пограничными шлюзами — дома и на работе.
Ноутбук с Windows 10 Pro x64 на боту — 1 шт., в качестве клиента; служит для работы и в качестве лаборатории.
Для познания использовались следующие ресурсы:
Спасибо за внимание.
Настройка VPN через MikroTik — OpenVPN
Редактируем параметры easy-rsa OpenVPN.
После установки идем в папку с программой, в каталог easy-rsa
и открываем с помощью блокнота файл vars.bat.sample, редактируем его.
Если мы создаем дубликат папки easy-rsa (а в этом есть смысл) и работаем в нем, то необходимо отредактировать строку, прописав в ней новый путь к папке:
set HOME=%ProgramFiles%\OpenVPN\easy-rsa
Значение строки set KEY_SIZE=1024 можно поменять на 2048 (как сказано в комментариях в файле — если вы параноик), но учтите, что производительность уменьшится.
Далее редактируем следующие строки, проставляя в них актуальные для себя значения (пустыми параметры оставлять нельзя):
set KEY_COUNTRY=UA
set KEY_PROVINCE=Harkiv
set KEY_CITY=Harkiv
set KEY_ORG=OpenVPN
set [email protected]
set KEY_CN=server
set KEY_NAME=server
set KEY_OU=lantorg
set PKCS11_MODULE_PATH=changeme
set PKCS11_PIN=1234
Последние два параметра можно не менять.
После чего сохраняем файл под именем vars.bat.
Если при сохранении vars.bat в этом же каталоге система выдает ошибку:
то сохраните файл вначале на рабочем столе, а потом перенесите в этот каталог.
Выполняем генерацию сертификатов для OpenVPN под MikroTik.
Работаем в командной строке Windows (cmd), запустив ее от имени администратора.
Переходим в нужный каталог: cd «C:\Program Files\OpenVPN\easy-rsa»
Набираем команду vars и жмем энтер.
Набираем команду clean-all и жмем энтер.
Если мы видим надпись, как на изображении — «Скопировано файлов — 1.», значит, все сделано правильно.
Набираем команду build-ca. Программа начинает генерацию публичного сертификата OpenVPN и запрашивает у нас значения параметров. Если на вопрос в командной строке мы просто жмем энтер, то программа подставляет значения по умолчанию, которые мы вписали в файл vars.bat. Останавливаемся, когда снова появляется строка C:\Program Files\OpenVPN\easy-rsa.
Даем команду на генерацию сертификата сервера OpenVPN для MikroTik: build-key-server имя_сертификата. В нашем случае пишем
build-key-server server, на вопрос «Sign the certificate?» отвечаем y, точно также на вопрос «1 out of 1 certificate requests certified, commit?», на остальные просто жмем энтер.
Даем команду на генерацию сертификата клиента — build-key client. Имя сертификата (Common Name) должно быть уникальным и не совпадать с другими сертификатами. Поэтому на этот вопрос отвечаем — client. Здесь также в конце появятся два вопроса, как в предыдущем пункте, и мы тоже отвечаем на них — y.
Все, теперь в папке C:\Program Files\OpenVPN\easy-rsa\keys лежат все созданные ключи и сертификаты OpenVPN.
Установка сертификатов OpenVPN и настройка сервера на MikroTik
Из созданных нами сертификатов и ключей нас интересуют 3 файла:
- ca.crt,
- server.crt,
- server.key.
Импортируем сертификаты OpenVPN в ОС MikroTik.
Заходим с помощью WinBox на роутер Микротик, на котором мы будем поднимать OpenVPN сервер. Копируем 3 вышеуказанных файла из папки, где они лежат, и вставляем с помощью меню: Files — Paste.
Далее импортируем их. Для этого используем меню WinBox: System — Certificates — выбор сертификата — кнопка Import.
Импорт производим в следующем порядке: ca.crt => server.crt => server.key.
После этого в окне Certificate List добавятся две записи: публичного сертификата CA и сертификата OpenVPN сервера. В первом столбце записи сертификата сервера должны стоять две буквы — KR. Если вы видите там что-то другое, попробуйте еще раз импортировать файл ключа (*.key).
Создаем PPP-профиль на роутере MikroTik.
Если подключение по VPN-тоннелю будет разрешено с нескольких IP-адресов, нам нужно создать их пул. Идем в IP -> Pool, создаем его и присваиваем имя.
Если подключение по тоннелю будет производиться с одного IP-адреса, то пропускаем этот момент.
Создаем PPP-профиль. Для этого идем: PPP — Profiles. Добавляем его кнопкой +.
В поля вписываем:
- имя профиля,
- Local Address — адрес роутера Микротик, к которому будут подключаться клиенты. Он должен лежать в одой подсети с Remote Address
- Remote Address- здесь пишем либо один IP-адрес клиента, либо имя ранее созданного пула адресов.
Остальные настройки не трогаем.
Настраиваем сервер OpenVPN на роутере MikroTik.
Идем в меню PPP- Interface — OVPN Server.
- Активируем его, поставив галочку в пункте Enabled.
- В поле mode оставляем IP (IP-туннелирование по умолчанию) или выставляем ethernet (режим сетевого моста), это L3 и L2 соответственно. Чаще всего используется IP.
- Default Profile — выбираем профиль, который мы создали ранее.
- Certificate — сертификат сервера.
- require-client-certificate — если ставим галку, то сервер при подключении проверяет сертификат клиента. Если нет — то не проверяет, и настройка клиента при этом упрощается.
Создаем и настраиваем пользователя.
Идем: PPP — Secrets и добавляем пользователя. Тут все просто: имя, пароль, сервис и профиль.
Необходимо также в настройках клиента предусмотреть синхронизацию времени с сервером. Вначале убеждаемся, что у нас выставлена правильная тайм-зона (меню System — Clock). Далее идем в меню System — SNTP Client и прописываем адрес NTP сервера (на скриншоте указан локальный, но можно взять любой, к примеру 85.21.78.91).
Настраиваем разрешающее правило фаерволла.
Идем IP — Firewall — Filter Rules и разрешаем трафик на порт OpenVPN:
- В поле Chain ставим input.
- Protocol — 6(tcp).
- Dst. Port — 1194.
- In. Interface — прописываем название интерфейса, на который идет входящий трафик.
Активируем правило на вкладке Action:
Напомним, что разрешающее правило в списке правил должно быть выше запрещающих, иначе оно не будет работать.
Настройка клиента OpenVPN
Если мы не используем клиентские сертификаты (в настройках сервера не отмечали галочкой пункт require-client-certificate), то настроить клиент OpenVPN будет быстрее и проще. Нам не нужно будет копировать сертификаты для клиента, только создать в меню PPP — Interfaces новую запись OVPN Client и и на вкладке Dial Out прописать:
- адрес OpenVPN сервера (поле Connect To),
- логин и пароль пользователя (поля User и Password),
- порт соединения,
- тип аутентификации и шифрования (поля Auth и Cipher).
Если мы используем сертификаты, читаем дальше.
Настройка второго роутера Микротик как клиента OpenVPN.
Так же, как и при настройке сервера, копируем из папки C:\Program Files\OpenVPN\easy-rsa\keys и вставляем в раздел Files файлы сертификатов и ключей OpenVPN. Только теперь это будут:
- ca.crt,
- client.crt,
- client.key.
После этого поочередно импортируем их, используя меню System – Certificates — выбор сертификата — кнопка Import.
После успешного импорта в строке сертификата должны появиться буквы KT
Далее настраиваем соединение, практически так же, как и в случае без сертификатов. Создаем в меню PPP — Interfaces новую запись OVPN Client и и на вкладке Dial Out прописываем:
- адрес OpenVPN сервера (поле Connect To),
- логин и пароль пользователя (поля User и Password),
- порт соединения,
- наименование сертификата,
- тип аутентификации и шифрования (поля Auth и Cipher).
Все, осталось проверить, поднялось ли соединение.
Настройка клиента OpenVPN в Windows.
Копируем ранее созданные нами файлы ca.crt, client.crt, client.key из папки C:\Program Files\OpenVPN\easy-rsa\keys в каталог C:\Program Files\OpenVPN\config.
Создаем здесь же обычный текстовый файл, который сохраняем как auth.cfg (обратите внимание, меняем и расширение тоже).
Открываем файл auth.cfg для редактирования в блокноте и вписываем в него 2 строки: первую -логин пользователя, вторую — пароль, которые мы задали на сервере. Сохраняем файл.
Создаем еще один текстовый файл, который сохраняем как client.ovpn (включая смену расширения).
Файл client.ovpn редактируем следующим образом:
- proto tcp-client
- remote 123.123.123.123 # здесь внешний адрес нашего роутера MikroTik
- dev tap
- nobindpersist-key
- tls-client
- ca ca.crt #указываем имя CA сертификата
- cert client.crt #указываем имя сертификата клиента
- key client.key # указываем имя файла-ключа для клиента
- ping 10
- verb 3 # чем выше этот параметр — тем выше уровень логирования
- ns-cert-type server
- cipher AES-256-CBC
- auth SHA1
- pull
- auth-user-pass auth.cfg # здесь имя файла с логином-паролем пользователя
- route-method exe
- route-delay 2
- route 192.168.1.0 255.255.255.0 172.21.108.1 # эта строка задает маршрут, здесь 172.21.108.1 — адрес микротика из PPP-профиля, а 192.168.1.0 255.255.255.0 — сеть и маска сети.
Файл сохраняем. Запускаем OpenVPN GUI (исполняемый файл лежит в папке C:\Program Files\OpenVPN\bin)
Запускаем обязательно от имени администратора!
Поднимаем OpenVPN сервер на Mikrotik
В некоторых случаях требуется получить доступ например из дома в локальную сеть на работе, это довольно просто можно сделать с помощью OpenVPN. Я опишу каким образом можно это реализовать с помощью микротика, хотя заранее оговорюсь, реализация OpenVPN на этой железке оставляет желать лучшего.
Во-первых: полноценного ethernet туннеля OpenVPN микротик сделать не в состоянии, потому что отсутствует напрочь возможность выдавать IP адреса OVPN клиентам по DHCP, все адреса выдаёт только сам микротик, как его не крути и с чем вокруг него не прыгай;
Во-вторых: не поддерживается сжатие заголовков;
В-третьих: работает только по tcp, в то время как предпочитаемый для OpenVPN — udp.
и если я правильно понимаю, даже на железках с аппаратным ускорением шифрования, опенвпн всё равно будет работать в софтовом режиме, т.е. возможность аппаратного ускорения не задействуется.
Всё это вместе взятое немного раздражает, но с этим, как я считаю, можно смирится, потому что такая реализация имеет ряд плюсов:
- Безопасность, опенвпн с реализацией авторизации по сертификату очень надёжный канал.
- В отличии от ipsec у нас практически нет никаких проблем с nat.
- Возможность настроить клиента для подключения по безопасному каналу практически с любого устройства.
- Относительная простота настройки, в микротике опенвпн поднимается практически в два щелчка, если сравнивать настройку через конфиг в других железках или ОС.
Итак, настройку я условно разделю на две части, это настройка сервера (на железке) и настройка клиента (windows).
Как настроить клиента для CentOS (Linux) читаем в этой статейке.
Настройка OpenVPN на Mikrotik (Сервер)
Подготовка
Пожалуй подготовительный этап следует начать с генерации сертификатов, поскольку passphrase авторизация считается менее защищённой из-за MITM уязвимости, а мы же не хотим что бы кто-то кроме нас самих мог получить доступ к нашей корпоративной сети. Подробно процесс по созданию сертификатов описан здесь. Добавлю лишь что для самого микротика надо генерировать сертификат сервера, а для клиента сертификат клиента.
После создания сертификатов нам понадобится публичные сертификаты CA и для самого микротика, а так же закрытый ключ микротика, копируем их
открываем WinBox на микротике, переходим в раздел Files и жмём на кнопку Paste
Получается примерно такая картинка
После этого сертификаты необходимо импортировать, для этого идём в раздел System — Certificates и жмём кнопку Import, я первым импортировал публичный сертификат CA
дальше импортируем публичный сертификат микротика
и закрытый ключ для него
должна получится примерно такая картинка, обращаем внимание что напротив сертификата микротика должно стоять KT
следующим шагом создаём пул 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 сервер, вы можете использовать любой публичный сервер в интернете (например ntp3.stratum2.ru и 0.europe.pool.ntp.org) или указать свой внутренний.
Осталось настроить разрешающее правило фаервола, переходим в раздел IP — Firewall вкладка Filter Rules.
Здесь надо указать In. Interface — интерфейс по которому к Вам приходит интернет, остальное как на скриншоте.
Созданное правило должно находится выше запрещающих правил.
На этом настройка сервера завершена, переходим к настройке клиента.
Настройка клиента OpenVPN Windows для микротика
×
Не все версии RouterOS нормально работают с OpenVPN. Например версия RouterOS ниже 6.36 не работает с версиями OpenVPN выше 2.3.10. Поэтому не забывайте периодически обновлять RouterOS.
×
При получении ошибки:
OpenSSL: error:14094418:SSL routines:ssl3_read_bytes:tlsv1 alert unknown ca
Обновите прошивку!
И проверьте что бы в сертификатах на микротике был импортирован ca.crt!
×
OpenSSL: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
При возникновении этой ошибки обновляем прошивку. Заново импортируем сертификаты в микротике(не надо их генерировать снова, просто удалить и снова добавить)
Конфиг файл тестировался для OpenVPN 2.4.4, последнего на момент написания статьи.
О том где загрузить и как установить OpenVPN клиент описано в статье по созданию сертификатов.
После установки нам необходимо будет переходим в каталог с установленным OpenVPN. Затем добавляем файл client.ovpn в каталог config следующего содержания:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | proto tcp-client # в этой строчке мы указываем адрес в интернете нашего микротика remote 123.123.123.123 dev tap nobind persist-key tls-client #указываем имена публичного CA сертификата ca ca.crt # публичного сертификата клиента cert client.crt # и его закрытый ключ key client.key #каждые 10 секунд проверять туннель, если нет ответа 120 секунд, переподключаться keepalive 10 120 verb 3 cipher AES-256-CBC auth SHA1 pull #проверка сертификата сервера #https://openvpn.net/index.php/open-source/documentation/howto.html#mitm remote-cert-tls server # эта строка задаёт файл с логином-паролем которые мы прописывали в 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 |
proto tcp-client
# в этой строчке мы указываем адрес в интернете нашего микротика
remote 123.123.123.123
dev tap
nobind
persist-key
tls-client
#указываем имена публичного CA сертификата
ca ca.crt
# публичного сертификата клиента
cert client.crt
# и его закрытый ключ
key client.key
#каждые 10 секунд проверять туннель, если нет ответа 120 секунд, переподключаться
keepalive 10 120
verb 3
cipher AES-256-CBC
auth SHA1
pull
#проверка сертификата сервера
#https://openvpn.net/index.php/open-source/documentation/howto.html#mitm
remote-cert-tls server
# эта строка задаёт файл с логином-паролем которые мы прописывали в 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 — пароль, которые мы задавали в PPP-Secrets на микротике
На этом настройка клиента завершена, запускаем OpenVPN GUI и он начинает подключение
×
Внимание! В Win7 с включённым UAC, а также на Win8 и Win8.1 не зависимо от того включён или выключен UAC запускаем OpenVPN GUI только в режиме Запускать от имени администратора! В противном случаем у Вас не добавятся маршруты или и вовсе не произойдёт подключения.
при успешном подключении в трее появится сообщение
Как и прежде свои вопросы и пожелания вы можете оставлять в комментариях ниже.
Настройка OpenVPN-сервера на роутерах Mikrotik
?
LiveJournal
Find more
- Communities
- RSS Reader
- Shop
- iOS & Android
- Help
Login
- Login
CREATE BLOG
Join
English
(en)
- English (en)
- Русский (ru)
- Українська (uk)
- Français (fr)
- Português (pt)
- español (es)
- Deutsch (de)
- Italiano (it)
- Беларуская (be)
Настройка OpenVPN сервера и клиента на Mikrotik
Бывают случаи, когда необходимо настроить удалённый доступ на mikrotik или даже на несколько.
Особенно это актуально, если вы обслуживаете несколько объектов и нет возможности физически постоянно присутствовать возле оборудования.
В этом статье мы разберём, как настроить OpenVPN сервер на mikrotik, а также клиенты на mikrotik и компьютере под управлением Windows.
Для работы нам понадобится Белый IP адрес (он и будет адресом сервера в наших настройках) для доступа к серверу из интернета и сертификаты безопасности.
Краткий план данной статьи:
Создание сертификатов и ключей OpenVPN
1) Скачаем программу OpenVPN с официального сайта.
2) Устанавливаем, выбрав все галочки.
EasyRSA Certificate Management Scripts нам обязательно понадобится для генерации ключей и сертификатов.
3) Указываем путь. В дальнейшем он нам понадобится. В нашем случае используем стандартный C:\Program Files\OpenVPN
4) После установки заходим в C:\Program files\OpenVPN\easy-rsa
Открываем vars.bat (если его нет, то vars.bat.sample) блокнотом или NotePad++ и редактируем его.
set KEY_COUNTRY=RU
set KEY_PROVINCE=MoscowRegion
set KEY_CITY=MOSCOW
set KEY_ORG=OpenVPN
set [email protected]
set KEY_CN=server
set KEY_NAME=server
set KEY_OU=OU
set PKCS11_MODULE_PATH=changeme
set PKCS11_PIN=1234
В строках set KEY_CN и set KEY_NAME указываем server
Последние 2 строки — параметры по умолчанию. Остальное можете редактировать под себя.
Сохраняем файл как vars.bat на рабочий стол, а затем копируем в папку C:\Program files\OpenVPN\easy-rsa
Чаще всего сохранить напрямую в исходную папку не получится — не хватает прав.
5) Отредактируем файл openssl-1.0.0.cnf
Так же открываем с помощью блокнота или notepad++
Нас интересует строка:
default_days = 3650 # how long to certify for
Она отвечает за время жизни сертификата. Если значение отличается — то указываем 3650 (10 лет).
Сохраняем.
6) Запускаем командную строку от имени администратора:
Пуск — Все программы — Стандартные
Правой кнопкой мыши на «Командная строка» и в меню — Запустить от имени администратора.
Командную строку не закрываем до конца процесса генерации сертификатов.
7) Поочередно выполняем следующие три команды:
cd C:\Program files\OpenVPN\easy-rsa
vars
clean-all
В итоге мы должны увидеть сообщение «Скопировано файлов: 1» дважды.
В папке C:\Program files\OpenVPN\easy-rsa появится папка keys с двумя файлами index.txt и serial.
8) Генерируем ключ Диффи Хельмана — команда build-dh
Генерация займёт некоторое время. Дождитесь окончания.
9) Генерируем ключ центра сертификации (CA) — build-ca
Нажимаем Enter, пока не закончатся вопросы.
Вы увидите в командной строке путь C:\Program files\OpenVPN\easy-rsa
Нет смысла менять заданные значения. Вы ранее прописали эти параметры в файле vars.bat
10) Генерируем сертификат сервера — команда build-key-server server
Нажимаем Enter (оставляем параметры по умолчанию, прописанные в vars.bat), пока не дойдём до вопросов.
Sign the certificate? (Создание сертификата на 3650 дней)
1 out of 1 certificate requests certified, commit? (Запись сертификата в базу)
На вопросы отвечаем нажатием Y
11) Генерируем сертификат клиента build-key client
Нажимаем Enter (оставляем параметры по умолчанию, прописанные в vars.bat), пока не дойдём до вопросов Common Name и Name.
На эти вопросы отвечаем client — это название создаваемого сертификата.
На вопросы Sign the certificate? и 1 out of 1 certificate requests certified, commit? отвечаем нажатием Y
12) Генерация сертификатов окончена.
В папке C:\Program files\OpenVPN\easy-rsa\keys можно увидеть следующие файлы:
Сертификаты для сервера и клиентов готовы.
Настройка OpenVPN сервера на Mikrotik
Подключимся к Mikrotik с помощью программы Winbox.
Загрузим 3 файла: ca.crt, server.crt, server.key
Для этого в меню нажмём Files и перетащим их из папки C:\Program files\OpenVPN\easy-rsa\keys
13) Далее необходимо их импортировать.
Откроем System – Certificates — Import и поочерёдно выберем сертификаты в этом порядке:
ca.crt
server.crt
server.key
После импорта появятся две записи:
14) Создадим пул адресов для VPN клиентов:
IP — Pool — add (+)
Введём название openvpn-pool
Диапазон 172.30.0.2-172.30.0.253
15) Создадим PPP профиль.
PPP — Profiles — add (+)
Введём название openvpn
Локальный адрес 172.30.0.1
Созданный Пул openvpn-pool
Остальные настройки оставляем по умолчанию.
Нажимаем ОК.
16) Создадим непосредственно сам OpenVPN сервер
PPP — Interface — OVPN Server
Включаем Enable
Указываем порт 1194
Выбираем наш профиль openvpn
Поставим галочку Require Client Certificate
Выберем наш сертификат server.crt
17) Создадим пользователя для подключения.
PPP — Secrets — add (+)
Введём имя пользователя и пароль ovpn_user1
Выбираем Сервис ovpn и профиль openvpn
Создадим 2 пользователя:
ovpn_user1 для клиента на компьютере
ovpn_mikrotik1 для клиента на Mikrotik
Рекомендуется для каждого VPN клиента создавать отдельное уникальное имя пользователя.
В дальнейшем это упростит работу и позволит отслеживать всех подключенных VPN клиентов.
18) Настроим фаервол
IP — Firewall — add(+)
Во вкладке General указываем:
Chain — input
Protocol — tcp
Порт 1194
Интерфейс — ether1 (Если интернет идёт через него)
Вкладка Action:
Action — accept
Затем ОК
Сервер настроен, теперь приступим к настройке VPN клиентов.
Настройка VPN клиента на компьютере под управлением Windows
19) Копируем в папку C:\Program files\OpenVPN\config\
из C:\Program files\OpenVPN\easy-rsa\keys следующие файлы
ca.crt, client.crt, client.key.
из C:\Program files\OpenVPN\simple-config\
client.ovpn
Создадим текстовый файл pass, где укажем логин и пароль от созданного VPN клиента на сервере.
В нашем случае это ovpn_user1
20) Откроем файл client.ovpn с помощью блокнота или notepad++
Изменяем следующие строки:
#Протокол
proto tcp
#Адрес и порт сервера
remote ваш.ip.адрес.сервера 1194
#Проверяем правильность названия ключей
ca ca.crt
cert client.crt
key client.key
И в самом конце добавим строчку
auth-user-pass «C:\\Program files\\OpenVPN\\config\\pass.txt»
В итоге у нас получатся следующие настройки в этом файле:
client
dev tun
proto tcp
remote адрес_сервера 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert user.crt
key user.key
remote-cert-tls server
cipher AES-128-CBC
verb 3
auth-user-pass «c:\\Program Files\\OpenVPN\\config\\pass.txt»
Остальные настройки закомментированы решеткой «#» или точкой с запятой «;»
21) Сохраняем файл. Если сохранить в папку не получается — сохраняем на рабочий стол, а затем копируем с заменой.
Запускаем OpenVPN и подключаемся.
После подключения можем увидеть, что нам назначен IP из диапазона, который ранее указали на сервере.
Настройка VPN клиента на Mikrotik
Имея настроенный OpenVPN сервер, можно настроить доступ на Mikrotik даже там, где нет белого IP адреса.
22) Подключимся к Mikrotik с помощью программы Winbox.
Загрузим 2 файла: client.crt, client.key
Для этого в меню нажмём Files и перетащим их из папки C:\Program files\OpenVPN\easy-rsa\keys
23) Далее необходимо их импортировать.
Откроем System – Certificates — Import и поочерёдно выберем сертификаты в этом порядке:
client.crt
client.key
24) Настроим параметры сервера:
PPP — add(+) — OVPN client
Во вкладке General указываем имя
Name — openVPN1 (любое, на ваше усмотрение)
Вкладка Dial Out:
Connect To — Адрес сервера(Внешний IP адрес главного роутера Mikrotik)
Port 1194
Указываем пользователя и пароль, который мы создали на VPN сервере
В нашем случае это пользователь ovpn_mikrotik1
Сертификат Client.crt
Нажимаем ОК
25) В терминале набираем /interface ovpn-client monitor openVPN1
Должно появиться сообщение со статусом connected
Теперь к этому mikrotik можно подключиться через VPN по адресу, который он получил от VPN сервера
Посмотреть адрес можно:
В Mikrotik-клиенте в IP-Adresses строка с нашим интерфейсом openVPN1
В Mikrotik-сервере PPP-Active Connections
Настройка OpenVPN сервера на роутере Mikrotik
10 доводов в пользу Asterisk
Распространяется бесплатно.
Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.
Безопасен в использовании.
Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.
Надежен в эксплуатации.
Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.
Гибкий в настройке.
Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.
Имеет огромный функционал.
Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.
Интегрируется с любыми системами.
То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.
Позволяет телефонизировать офис за считанные часы.
В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.
Отличная масштабируемость.
Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.
Повышает управляемость бизнеса.
Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.
Снижает расходы на связь.
Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.
Настройка OpenVPN Mikrotik
Появилась задача настройки openvpn mikrotik
Немного изучив вопрос оказалось что достаточно удобное решение
OpenVPN позволяет работать со всех видов операционных систем Windows/Linux/Os x, а так же мобильных Android/iOS
Начнем настройку
Теория
Для работы OpenVPN необходимы сертификаты
- Сертификат удостоверяющего центра CA
- Сертфикат сервера OpenVPN
- Сертфикат клиента OpenVPN
- Пул адресов для OpenVPN клиентов
- Имена и пароли пользователей
Практика
Будем делать все скриптом
Подразумевается что у нас новый чистый роутер, обновленный до последней версии.
Если это не так то работать будет тоже, только подразумевается что вы знаете что у вас настроено
Скрипт создает и экспортирует сертификаты, включает сервер OpenVPN, и создает тестового пользователя, которого после проверки желательно отключить
Подготовка
Обязательно проверьте установку времени
Если время будет не совпадать, то будут возникать ошибки подключения
Установить можно руками, или настроить NTP client
Настроим NTP
Код просто выделяет. Открываем консоль и щелкаем вставить. После последней строки нажать enter.
/system clock set time-zone-name=Europe/Moscow /system ntp client set enabled=yes server-dns-names=time.google.com,0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org,3.pool.ntp.org
Скрипт
Создается сертификат удостоверяющего центра
Создается сертификат сервера, подписывается сертификатом удостоверяющего центра
Создается сертификат пользователя, подписывается сертификатом удостоверяющего центра
Сертификаты сервера и пользователя экспортируются, сертификат клиента под паролем 12345678, иначе он не экспортируется.
Создается интерфейс 172.20.245.1 и пул 172.20.245.100-172.20.245.200 для работы OpenVPN сервера, после чего запускается сервер
Создается тестовый пользователь 001 с паролем 0102030405
Установить скрипт можно просто скопировав текст и построчно запустив в терминале
Все сразу не выйдет так как долго генерируются сертификаты
Лучше сделать это через меню скриптов
Создать новый скрип, вставить текст. Нажать Apply ( сохранить ) Нажать выполнение Run Script.
Результат выполнения можно наблюдать по логам, или добавить опцию перезагрузки в конце
# Сертификаты /certificate add name="openvpn-ca" country="ru" state="saint-petersburg" locality="saint-petersburg" organization="openvpn" unit="ou" common-name="openvpn-ca" key-size=4096 days-valid=9999 key-usage=crl-sign,key-cert-sign /certificate add name="openvpn-srv" country="ru" state="saint-petersburg" locality="saint-petersburg" organization="openvpn" unit="ou" common-name="openvpn-srv" key-size=4096 days-valid=9999 key-usage=digital-signature,key-encipherment,tls-server /certificate add name="openvpn-client-template" country="ru" state="saint-petersburg" locality="saint-petersburg" organization="openvpn" unit="ou" common-name="openvpn-client-template" key-size=4096 days-valid=9999 key-usage=tls-client /certificate add name="openvpn-client-1" copy-from="openvpn-client" common-name="openvpn-client-1" # Подписываем /certificate sign openvpn-ca ca-crl-host=127.0.0.1 /certificate sign openvpn-srv ca="openvpn-ca" /certificate sign openvpn-client-1 ca="openvpn-ca" # Экспортируем /certificate export-certificate openvpn-ca /certificate export-certificate openvpn-client-1 export-passphrase=12345678 # Сам сервер /ppp aaa set accounting=yes /interface bridge add name=openvpn-bridge arp=enabled /ip pool add name=openvpn-pool ranges=172.20.245.100-172.20.245.200 /ppp profile add name=openvpn-server local-address=172.20.245.1 remote-address=openvpn-pool /interface ovpn-server server set auth=sha1 cipher=aes256 default-profile=openvpn-server mode=ip netmask=24 require-client-certificate=yes certificate=openvpn-srv enabled=yes /ip firewall filter add action=accept chain=input comment="OpenVPN" dst-port=1194 protocol=tcp in-interface-list=WAN # Пользователь /ppp secret add name="001" password="0102030405" service=ovpn profile="openvpn-server"
Опционально
# Перезагружаемся /system reboot
Недочеты
Переместить правило OpenVPN в firewall в начало, желательно на первое место. После работы скрипта правило создается в конце, после всех блокировок
Настройка клиента
Путей много
Часто используют несколько файлов, а именно файл конфигурации, файл учетной записи пользователя, и файлы сертификатов. Самый простой все эти файлы объединить в один файл конфигурации, и использовать на всех клиентах, как на мобильных, так и на ПК.
Выгружаем сертификаты
Качаем 3 файла в папку
Создаем файл конфигурации
В файл конфигурации nopas_openvpn.ovpn необходимо поместить содержимое файлов сертификатов, а так же прописать маршрут до сети. В случае дефолтоной настройки сеть 192.168.88.0
Так же на мобильных клиентах возникает ошибка при запросе пароля сертификата клиента 12345678, может это поправят потом, но в данный момент это так, поэтому сбросим его
openssl rsa -in cert_export_openvpn-client-1.key -out nopas.key
Теперь содержимое сертификатов необходимо вставить в нужные секции
<ca></ca> - cert_export_openvpn-ca.crt <cert></cert> - cert_export_openvpn-client-1.crt <key></key> - cert_export_openvpn-client-1.key
remote 92.68.0.101 1194 – внешний адрес и порт роутера Mikrotik
route 192.168.88.0 255.255.255.0 172.20.245.1 – маршрут до рабочей сети
nopas_openvpn.ovpn
client dev tun proto tcp remote 92.68.0.101 1194 resolv-retry infinite nobind persist-key persist-tun cipher AES-256-CBC remote-cert-tls server auth-user-pass verb 3 route-delay 5 route 192.168.88.0 255.255.255.0 172.20.245.1 <ca> -----BEGIN CERTIFICATE----- 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 aw8Pcpl74sMOLkE= -----END CERTIFICATE----- </ca> <cert> -----BEGIN CERTIFICATE----- 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 -----END CERTIFICATE----- </cert> <key> -----BEGIN RSA PRIVATE KEY----- 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 -----END RSA PRIVATE KEY----- </key>
Рассмотрим вкратце подключение клиента
Linux
sudo -s apt install openvpn openvpn --config nopas_openvpn.ovpn
Windows
Скчать дистрибутив в зависимотсти от системы
https://openvpn.net/community-downloads/
Установить
Скачать файл настройки nopas_openvpn.ovpn
Переместить его в папку
C:\Program Files\OpenVPN\config
Запустить OpenVPN GUI. Рядом с часами появится подключение. Щелкнуть на него правой кнопкой — подключиться
Ввести имя и пароль, щелкнув галочку запомнить
OSx
https://tunnelblick.net/downloads.html
iOS
https://apps.apple.com/ru/app/openvpn-connect/id590379981
Android
https://play.google.com/store/apps/details?id=net.openvpn.openvpn&hl=ru
Мой мир
Вконтакте
Одноклассники
Сервер OpenVPN
на Mikrotik RouterOS
В этой статье не обсуждается, почему вам следует использовать VPN или, в частности, OpenVPN — только то, как реализовать сервер OpenVPN на Mikrotik RouterOS.
Измените их в соответствии с вашими настройками:
- Локальный адрес этого маршрутизатора: 10.0.0.1
- Имя локального центра сертификации: myCa
- Имя VPN-сервера в сертификате: server
- Имя VPN-клиента в сертификате: client1
- Кодовая фраза для ключевого файла клиента: mysecret
- Имя пула IP-адресов для предоставления VPN-клиентам: ovpn-pool
- IP-адресов для предоставления клиентам VPN: 10.0,0.80-10.0.0.85
- Номер порта: 1194. Вы можете изменить его на другое.
- Имя пользователя OpenVPN: vpnuser
- Пароль OpenVPN: mypassword
Добавить центр сертификации в RouterOS:
/ сертификат добавить name = myCa common-name = myCa key-usage = key-cert-sign, crl-sign подписать myCa ca-crl-host = 10.0.0.1 name = myCa
Экспорт центра сертификации:
/ сертификат экспорт-сертификат myCa
Теперь у нас есть файл центра сертификации в / file print.Мы можем скопировать его разными способами: SFTP, Winbox, FTP и другими.
Создание сертификатов для сервера и клиента:
/ сертификат добавить name = server common-name = server добавить имя = client1 common-name = client1 подписать сервер ca = myCa name = server подписать client1 ca = myCa name = client1
Экспорт сертификата для клиента (экспорт сертификата сервера не требуется):
/ сертификат экспорт-сертификат экспорт-пароль = mysecret client1
Затем мы можем передать оба файла.key и файлы .crt разными способами. Затем создайте пул, профиль PPP и учетные данные для входа:
/ ip pool add name = ovpn-pool range = 10.0.0.80-10.0.0.85 / ppp profile add name = ovpn local-address = 10.0.0.1 remote-address = ovpn-pool dns-server = 10.0.0.1 / ppp secret add name = vpnuser password = mypassword profile = ovpn
Включите сервер OpenVPN, выберите сертификат сервера и используйте этот новый профиль PPP:
/ interface ovpn-server набор серверов включен = да сертификат = сервер auth = sha1 cipher = aes128 po
.
Простой сервер OpenVPN на Mikrotik — домашняя страница Medo
Наличие сервера OpenVPN на вашем маршрутизаторе — отличная функция. Однако, как это часто бывает с Mirotik, не все так просто.
В этом руководстве предполагается, что вы должны вводить команды в окне нового терминала из WinBox. Таким образом, я буду просто повторять нужные команды вместо того, чтобы просматривать экраны. Команды на самом деле довольно информативны и их легко «перевести» в действия с графическим интерфейсом пользователя, если вы так предпочитаете.
Необходимым условием для любого VPN-сервера является сортировка сертификатов.Для OpenVPN нам понадобится главный центр сертификации, сервер и сертификат клиента. Да, строго говоря, сертификат клиента не обязателен, но не будем экономить на безопасности.
Сначала создадим все шаблоны сертификатов (срок действия 10 лет), которые нам понадобятся:
/ сертификат
add name = ca-template common-name = example.com days-valid = 3650 key-size = 2048 key-usage = crl-sign, key-cert-sign
add name = server-template common- name = *. example.com days-valid = 3650 размер ключа = 2048 использование ключа = цифровая подпись, шифрование ключа, tls-сервер
добавить имя = шаблон-клиента общее-имя = клиент.example.com days-valid = 3650 key-size = 2048 key-usage = tls-client
Для целей OpenVPN-сервера общее имя действительно может быть любым. Однако некоторые другие VPN не столь снисходительны (да, SSTP, я смотрю на вас), поэтому лучше всего использовать внешний IP-адрес или имя хоста в качестве текста общего имени. Любое да, если у вас динамический IP и вы не используете свой собственный домен, вы можете поместить туда * .dyndns.org — не беспокойтесь.
Созданные сертификаты потребуют подписи:
/ сертификат
подписать ca-template name = ca-certificate
подписать server-template name = server-certificate ca = ca-certificate
подписать client-template name = client-certificate ca = ca-certificate
В зависимости от скорости вашего маршрутизатора эта команда sign может истечь по тайм-ауту — не о чем беспокоиться — просто подождите, пока ЦП упадет ниже 100%.Или, как вариант, проверьте имя сертификата — часть шаблона исчезнет после завершения подписания.
При этом нам нужно экспортировать несколько файлов:
/ сертификат
экспорт-сертификат ca-certificate export-passphrase = ""
экспорт-сертификат клиент-сертификат экспорт-пароль = 12345678
Это должно дать вам три файла: cert_export_ca-certificate.crt
, cert_export_client-certificate.crt
и cert_export_client-certificate.ключ
. После того, как я скопировал это на компьютер на потом, мне нравится переименовывать их в ca.crt
, client.crt
и client.key
соответственно.
Далее нам нужен отдельный пул IP-адресов для клиентов. Я предполагаю, что у вас есть клиенты в другой сети (например, 192.168.1.x), и эта новая сеть предназначена только для VPN:
/ ip
pool add name = "vpn-pool" диапазоны = 192.168.8.10-192.168.8.99
Вместо редактирования зашифрованного профиля по умолчанию мы можем создать новый.Предполагается, что ваш Mikrotik также будет DNS-сервером. И при этом вы можете создать немного более изобретательного пользователя / пароля:
/ ppp
profile add name = "vpn-profile" use-encryption = yes local-address = 192.168.8.250 dns-server = 192.168.8.250 remote-address = vpn-pool
secret add name = user profile = vpn- пароль профиля = пароль
Наконец, мы можем включить интерфейс сервера OpenVPN:
/ interface ovpn-server server
set default-profile = vpn-profile certificate = server-certificate require-client-certificate = yes auth = sha1 cipher = aes128, aes192, aes256 enabled = yes
Теперь, наконец, мы можем скопировать как ca.crt
и client.crt с
по C: \ Program Files \ OpenVPN \ config \
вместе с client.ovpn
.
У вас нет client.ovpn
? Ну, один находится в каталоге sample-config
, и нам просто нужно изменить / добавить выделенные элементы:
client
dev tun
proto tcp
remote example.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.ключ
remote-cert-tls server
cipher AES-128-CBC
auth SHA1
auth-user-pass
redirect-gateway def1
verb 3
Немного раздражающий шаг — запрос парольной фразы закрытого ключа (в дополнение к имени пользователя / паролю). Mikrotik не поддерживает экспорт без него, но, к счастью, мы можем использовать OpenSSL, чтобы изменить это:
> openssl.exe rsa -in client.key -out client.key
Введите парольную фразу для client.key: 12345678
запись ключа RSA
Благодаря этому ваше VPN-соединение должно работать как шарм.
PS: Не забудьте при необходимости настроить firewall (порт TCP 1194).
/ ip firewall filter
add chain = input protocol = tcp dst-port = 1194 action = accept place-before = 0 comment = "Разрешить OpenVPN"
PPS: Проверьте также руководство SSTP.
[2017-01-26: Скорректировано создание сертификата для работы на RouterOS 6.38 и более поздних версиях]
[2017-01-26: Изменен размер ключа на 2048 (вместо 4096), поэтому создание сертификатов не займет много времени .:)]
[25.02.2017: изменен пример для использования AES-128 для снижения загрузки ЦП на маршрутизаторе.]
.
MikroTik OpenVPN Setup с клиентом Windows
VPN ( V irtual P rivate N etwork) технология обеспечивает безопасный и зашифрованный туннель через общедоступную сеть. Таким образом, пользователь частной сети может отправлять и получать данные в любую удаленную частную сеть через VPN-туннель, как если бы его / ее сетевое устройство было напрямую подключено к этой частной сети.
MikroTik OpenVPN Server обеспечивает безопасный и зашифрованный туннель через общедоступную сеть для транспортировки IP-трафика с использованием PPP.OpenVPN использует сертификаты SSL. Итак, OpenVPN Tunnel — это надежный туннель для отправки и получения данных в общедоступной сети. MikroTik OpenVPN Server можно использовать двумя способами.
- Подключение удаленной рабочей станции / клиента: В этом методе клиентское программное обеспечение OpenVPN, устанавливающее любую операционную систему, например Windows, может связываться с сервером MikroTik OpenVPN через туннель OpenVPN, когда это необходимо, и может получить доступ к удаленной частной сети, как если бы оно было напрямую подключено к удаленная частная сеть.
- Site to Site OpenVPN: Этот метод также известен как VPN между маршрутизаторами. В этом методе поддерживаемый клиентом OpenVPN маршрутизатор всегда устанавливает туннель OpenVPN с сервером MikroTik OpenVPN. Таким образом, частные сети этих маршрутизаторов могут взаимодействовать друг с другом, как если бы они были напрямую подключены к одному и тому же маршрутизатору.
Целью данной статьи является подключение удаленного клиента с помощью туннеля OpenVPN через общедоступную сеть. Итак, в этой статье я покажу только, как настроить MikroTik OpenVPN Server для подключения удаленной рабочей станции / клиента (Windows Client).
Сетевая диаграмма
Чтобы настроить MikroTik OpenVPN Tunnel для подключения удаленной рабочей станции / клиента, я следую сетевой схеме, как показано на рисунке ниже.
OpenVPN Remote Office Network
В этой сети MikroTik Router ( RouterOS v6.38.1 ) подключен к Интернету через интерфейс ether1 с IP-адресом 192.168.30.2/30. В вашей реальной сети этот IP-адрес следует заменить общедоступным IP-адресом.Интерфейс ether2 MikroTik Router подключен к локальной сети с IP-сетью 10.10.11.0/24. Мы настроим сервер OpenVPN в этом маршрутизаторе, и после настройки OpenVPN маршрутизатор создаст виртуальный интерфейс (туннель OpenVPN) в общедоступной сети, IP-адрес которого будет 10.10.11.1. С другой стороны, удаленный ноутбук (рабочая станция / клиент) подключен к Интернету и хочет подключиться к нашему серверу OpenVPN для доступа к ресурсам локальной сети. Мы настроим клиент OpenVPN на этом ноутбуке, и после создания туннеля OpenVPN в общедоступной сети этот ноутбук получит локальный IP 10 маршрутизатора MikroTik.10.11.10 и получит доступ к частной сети MikroTik Router.
MikroTik OpenVPN Server Configuration
Теперь мы приступим к настройке OpenVPN Server. Полную настройку OpenVPN можно разделить на две части.
- Часть 1: Конфигурация сервера OpenVPN в маршрутизаторе MikroTik
- Часть 2: Конфигурация клиента OpenVPN в ОС Windows
Часть 1: Конфигурация сервера OpenVPN в маршрутизаторе MikroTik
Согласно нашей сетевой диаграмме, маршрутизатор MikroTik является нашим сервером OpenVPN.Итак, мы настроим и настроим OpenVPN Server в MikroTik Router. Полную настройку MikroTik RouterOS для OpenVPN Server можно разделить на пять шагов.
- Шаг 1: Базовая конфигурация MikroTik Router
- Шаг 2: Создание сертификата SSL для сервера и клиента OpenVPN
- Шаг 3: Конфигурация сервера OpenVPN
- Шаг 4: Создание секрета PPP для клиента OpenVPN
- Шаг 5: Включение прокси-ARP на интерфейсе LAN
Шаг 1: Базовая конфигурация MikroTik Router
В базовой конфигурации MikroTik Router мы назначим WAN, LAN и DNS IP и выполним настройку NAT и Route.Следующие шаги покажут, как сделать эти темы в вашей RouterOS.
- Войдите в MikroTik RouterOS с помощью winbox и перейдите в IP> Адреса. В окне списка адресов нажмите ЗНАК ПЛЮС (+). В окне «Новый адрес» введите IP-адрес WAN (192.168.30.2/30) в поле ввода адреса, выберите «Интерфейс WAN (ether1)» в раскрывающемся меню «Интерфейс» и нажмите кнопку «Применить» и «ОК». Снова нажмите «PLUS SIGN» и введите IP-адрес LAN (10.10.11.1/24) в поле ввода адреса, выберите «Интерфейс LAN (ether2)» в раскрывающемся меню «Интерфейс» и нажмите кнопку «Применить» и «ОК».
- Перейдите в IP> DNS и введите IP-адрес DNS-серверов (8.8.8.8 или 8.8.4.4) в поле ввода «Серверы» и нажмите кнопку «Применить» и «ОК».
- Перейдите в IP> Брандмауэр и щелкните вкладку NAT, а затем щелкните ЗНАК ПЛЮС (+). На вкладке «Общие» выберите srcnat в раскрывающемся меню «Цепочка», щелкните вкладку «Действие» и затем выберите masquerade в раскрывающемся меню «Действие». Нажмите кнопку Применить и ОК.
- Перейдите в IP> Маршруты и нажмите ЗНАК ПЛЮС (+). В окне New Route щелкните поле ввода Gateway и введите адрес WAN Gateway (192.168.30.1) в поле ввода шлюза и нажмите кнопку Применить и ОК.
Базовая настройка RouterOS завершена. Теперь мы создадим SSL-сертификат для сервера и клиента OpenVPN.
Шаг 2: Создание сертификата SSL для сервера и клиента OpenVPN
.