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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.
In a previous tutorial, we discussed the configuration of an OpenVPN Server on a Mikrotik hAP ac³ router and successfully tested the OpenVPN client configuration on Debian. Building on that, we will explore the process of installing and configuring the OpenVPN client on Windows 10.
Configuring the OpenVPN client on Windows 10 is a relatively simple process that involves installing the client software, modifying the configuration file, and initiating a connection to the OpenVPN server. With this tutorial, we hope to have provided a clear understanding of the process involved in setting up the OpenVPN client on Windows 10.
Our OpenVPN server is currently running on Mikrotik RouterOS version 7.7. It is important to note that since RouterOS version 7.1, Mikrotik has started supporting UDP for OpenVPN servers. As a result, we will switch from TCP to UDP in the OpenVPN config file, and make other changes necessary to configure the OpenVPN client on Windows.
1. Download OpenVPN and Install OpenVPN Client for Windows
The OpenVPN client software for Windows is available for download from the official OpenVPN website. Once the client software is downloaded, we can proceed with the installation process, which is straightforward.
Figure 1 — OpenVPN-2.6.0-1005-amd64 Installed
After OpenVPN Client installation, make sure that TAP Virtual Ethernet Adapter has been installed. If it is installed successfully, you will find a new Network Adapter named as TAP-Windows Adapter in Network Connections window.
Select Win — X-> Network Connection -> and click «Change adapter options«
Figure 2 — TAP-Windows Adapter Presented After OpenVPN Client Installation
2. OpenVPN Client Configuration
Once the installation is complete, we can proceed with configuring the OpenVPN client. Edit the server and port in configuration file and copy the following files to C:\Program Files\OpenVPN\config:
- ca.crt
- client.crt
- client.key
- client.ovpn
Figure 3 — OpenVPN Client Config Directory
I have created a configuration client.ovpn that can be modified according to your specific needs. After modifying the configuration file, we can proceed to start the OpenVPN client software and import the modified configuration file. Once the configuration is imported, we can initiate a secure connection to the OpenVPN server.
To initiate the connection, we right-click on the OpenVPN Server GUI icon in the panel and select «Connect.» This will prompt us to enter our login and password details (as shown in Figure 4).
Figure 4 — Connecting to OpenVPN Server from Windows
Once we have entered the login and password details, the OpenVPN client will establish a connection to the OpenVPN server. During this process, we will be prompted to enter the Private key password for client.crt. It is a security measure to ensure that only authorized users can access the OpenVPN server.
2.1 TLS handshake Error
it’s important to note that we must use the line «data-ciphers AES-256-CBC» to ensure that we don’t encounter any issues when connecting to the OpenVPN server on Mikrotik.
data-ciphers AES-256-CBC
During my testing, I found that this parameter is required specifically for the OpenVPN client on Windows. The OpenVPN client on Linux does not require this parameter to connect to the OpenVPN server on Mikrotik.
By ensuring that the configuration file includes the «data-ciphers AES-256-CBC» line, we can prevent the occurrence of the «TLS key negotiation failed — TLS handshake failed».
2.2 Credentials
If you would like to avoid the inconvenience of typing in your username and password every time you start up the OpenVPN client, you can create a file called «secret.cfg» and place it in the directory C:\Program Files\OpenVPN\config. Then, you can add the following line to the client.ovpn configuration file:
auth-user-pass secret.cfg
By doing this, the OpenVPN client will read your login credentials from the secret.cfg file and automatically enter them when you initiate a connection to the OpenVPN server. This can save time and hassle, especially if you need to connect to the OpenVPN server frequently.
2.3 Routing
Once we establish a tunnel, the OpenVPN server assigns an IP address from the subnet 192.168.100.0/24 to the interface OpenVPN TAP-Windows6 on the Windows client (Figure 5). However, to access the clients and Mikrotik IP 192.168.88.1 on the LAN subnet 192.168.88.0/24, we need to set up a route. There are two ways to achieve this.
Figure 5 — IP Address for OpenVPN TAP-Windows6 Interface Assigned from OpenVPN Server
2.3.1 Default Route 0.0.0.0 128.0.0
The first method involves using the «redirect-gateway def1» option in the OpenVPN config file, which pushes the default route 0.0.0.0 128.0.0.0 via 192.168.100.1 to the client. This allows all Windows traffic to be routed through Mikrotik, enabling access to hosts on the LAN subnet 192.168.88.0/24. However, this also means that the client’s Internet traffic is also routed through Mikrotik (as shown in Figure 6).
To view the current routing table on Windows, we can use the command «route PRINT».
> route PRINT
Figure 6 — Windows Routing Table with a Default Route Received from OpenVPN Server
Note: OpenVPN default route 0.0.0.0 128.0.0.0 is more specific than a standard default route. It gets used in preference, so we do not have to either delete the existing default route, nor do we have to play games with routing metrics to get our OpenVPN route preferred [1].
2.3.2 Specific route 192.168.88.0/24
Alternatively, if we want to reach clients on the LAN subnet 192.168.88.0/24 without routing Internet traffic through Mikrotik, we need to comment out the «redirect-gateway def1» line in the OpenVPN config. Use the either «;» or «#» character to do so. We also need to add a specific route for the LAN subnet by including the following line in the config file:
route 192.168.88.0 255.255.255.0 192.168.100.1
This ensures that the route 192.168.88.0/24 is pushed to the client (as shown in Figure 7), allowing access to clients on the LAN subnet while still preserving the default Internet route.
> route PRINT
Figure 7 — Windows Routing Table with a Default Route Received from OpenVPN Server
Conclusion
In conclusion, configuring an OpenVPN client on Windows 10 to connect to an OpenVPN server running on a MikroTik router can be a useful way to remotely access resources on a local network. With the modifications to the configuration file discussed in this tutorial, users can establish a secure connection and access resources on the network without compromising their privacy or security.
The ability to set up specific routes depending on the user’s needs also allows for greater flexibility and control over the network traffic. Overall, by following the steps outlined in this tutorial, users can successfully set up and use an OpenVPN client on Windows 10 to connect to an OpenVPN server on a MikroTik router.
Бывают случаи, когда необходимо настроить удалённый доступ на mikrotik, или даже на несколько.
Особенно это актуально, если вы обслуживаете несколько объектов и нет возможности физически постоянно присутствовать возле оборудования.
В этом статье мы разберём, как настроить OpenVPN сервер на mikrotik, а также клиенты на mikrotik и компьютере под управлением Windows.
Для работы нам понадобиться Белый IP адрес (он и будет адресом сервера в наших настройках), для доступа к серверу из интернета и сертификаты безопасности.
Краткий план данной статьи:
- Создание сертификатов и ключей OpenVPN
- Создание сервера OpenVPN на Mikrotik
- Создание клиента OpenVPN на ПК
- Создание клиента OpenVPN на Mikrotik
1) Скачаем программу OpenVPN с официального сайта
2) Устанавливаем программу, выбрав все галочки.
EasyRSA Certificate Management Scripts (специально созданная программа по созданию ключей и сертификатов,которая использует openssl для выполнения действий с ключами и сертификатами) нам обязательно понадобится для генерации ключей и сертификатов.
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 KEY_EMAIL=mail@mail.com
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
Генерируем ключ Диффи Хельмана — команда 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 адрес главного hjenthf 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
Настройка Open VPN между двумя роутерами MikroTik (site to site).
Настройка роутера-сервера.
В роли сервера VPN использован роутер RB3011 с ROSv7.16.1. В роутере оставлена базовая конфигурация, чтоб не настраивать Firewall, NAT DNS, DHCP-server. Для роутера должен быть обеспечен внешний постоянный IP-адрес.
Освоить MikroTik Вы можете с помощью онлайн-куса
«Настройка оборудования MikroTik». Курс содержит все темы, которые изучаются на официальном курсе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.
Open VPN начинается с создания сертификатов, потому что активировать сервер без сертификата не позволяет система.
До создания сертификатов нужно обязательно актуализировать дату и время.
/system ntp client set enabled=yes /system ntp client servers add address=3.by.pool.ntp.org |
/system clock set time—zone—name=Europe/Minsk |
Подписываем название роутера.
/system identity set name=OVPN—SERVER |
Создание сертификатов.
Создание CA.
CA – это корневой удостоверяющий сертификат с помощью которого подписываются и подтверждается подлинность других сертификатов.
Name – любое понятное название.
Country, State, Locality, Organization, Unit – страна, область, район, организация, подразделение у каждого свои.
Common Name – указано доменное имя. Обычно тут указывается общедоступное имя, но для OpenVPN это не принципиально и по этому тут можно записать любое уникальное имя, например CA.
Key Size: 2048 – размер ключа шифрования, оставлен без изменений. Чем больше размер ключа, тем надежнее шифрование, но при этом возрастает нагрузка на процессор и замедляется скорость обработки данных.
Days Valid: 3650 дней (10лет) – срок действия сертификата.
На вкладке Key Usage указываем назначение использования сертификата.
ctr sign – возможность подписывать другие сертификаты.
key cert. sign – возможность подписывать ключи.
Вводим параметры и нажимаем кнопку «Apply».
/certificate add name=CA country=BY state=MINSK locality=MINSK organization=PC360 unit=T34 common—name=PC360.RU key—size=2048 days—valid=3650 key—usage=key—cert—sign,crl—sign |
После создания сертификата подписываем его на кнопку «Sign».
В CA CRL Host указан IP-адрес роутера в сети VPN для размещения списка отозванных сертификатов.
/certificate sign CA ca—crl—host=172.16.20.1 |
Создание сертификат для сервера.
Сертификат подтверждает подлинность сервера. Подключаясь на сервер, клиент проверяет его сертификат.
Common Name – указано доменное имя. В сертификате сервера должны присутствовать IP-адрес или доменное имя, но по факту такая проверка не выполняется.
Days Valid – срок действия сертификата 1825 дней (5лет).
digital signature – проверка цифровых подписей, отличных от подписей на сертификатах.
key encipherment – используется для шифрования при передаче приватных ключей.
tls server – tls аутентификация сервера.
Более подробно назначения использования сертификатов можно посмотреть в RFC5280.
/certificate add name=CRT—SERVER country=BY state=MINSK locality=MINSK organization=PC360 unit=T34 common—name=PC360.RU key—size=2048 days—valid=1825 key—usage=digital—signature,key—encipherment,tls—server |
Подписываем CA сертификатом.
/certificate sign CRT—SERVER ca=CA |
Создание сертификат для клиента.
Этот сертификат устанавливается в роутере-клиенте. В OVPN двухсторонняя аутентификация. Сервер проверяет подлинность клиента по его сертификату.
В разных клиентских сертификатах нужно указывать разные Common Name, иначе подписание завершится ошибкой.
Срок действия сертификата 1 год. Если это постоянный клиент, как в данном случае филиал организации, сертификат можно выпустить на 5-10 лет.
tls client – tls аутентификация клиента.
/certificate add name=CRT—CLIENT country=BY state=MINSK locality=MINSK organization=PC360 unit=F1 common—name= GW—FILIAL—1 key—size=2048 days—valid=365 key—usage=tls—client |
Подписываем.
/certificate sign CRT—CLIENT ca=CA |
В нашей организации один клиентский сертификат использован на 15 филиалов. Это наверно не самый лучший вариант, но уменьшает лишние действия админа.
Результат выпуска сертификатов.
Создание профиля.
Профиль нужен при работе с большим количеством клиентов, для настройки каких-то общих параметров, например пул IP-адресов, MPLS, таймаут сессии и тп. Если клиентов мало, профиль можно не создавать.
Пул IP-адресов для VPN.
Прежде чем в профиль добавить пул, его нужно создать.
/ip pool add name=OVPN—POOL—1 ranges=172.16.20.2—172.16.20.99 |
Профиль.
/ppp profile add local—address=172.16.20.1 name=OPEN—VPN remote—address=OVPN—POOL—1 |
Другие параметры в профиле изменяются по необходимости.
Создание пользователя.
/ppp secret add name=FILIAL—1 profile=OPEN—VPN remote—address=172.16.20.2 service=ovpn |
Вместо слова FILIAL в названии удобно указывать место расположения роутер (город, село, район).
В поле Remote Address указан IP-адрес, который должен быть у роутера-клиента всегда постоянным. Эта настройка имеет приоритет над профилем, в котором указан пул IP-адресов. Постоянный IP-адрес клиента может понадобится в случае написания маршрута в сеть за клиентским роутером.
Создание интерфейса.
Статический интерфейс может понадобится для указания в правилах файервола или при написании маршрутов.
/interface ovpn—server add name=FILIAL—1—OVPN user=FILIAL—1 |
Активация сервера OVPN.
/interface ovpn—server server set auth=sha256 certificate=CRT—SERVER cipher=aes256—cbc default—profile=OPEN—VPN enabled=yes require—client—certificate=yes tls—version=only—1.2 |
Port: 1194 – стандартный порт на котором работает OpenVPN. После того, как VPN будет настрое и заработает, стандартный порт желательно заменить на нестандартный. У нас так и сделано. Отпала половина сканер-ботов согласно логам. Можно замаскировать трафик под HTTPS указав порт 443.
Mode: ip – режим туннелирования L3, аналог tun.
(ethernet — режим туннелирования L2, аналог tap) wiki
Protocol: tcp. TCP или UDP каждый решает для себя сам. Можно экспериментально установить, что работает лучше в конкретной ситуации. TCP подтверждает доставку каждого пакета и является более надежным вариантом. Но из-за подтверждения доставки возрастает нагрузка на процессор и канал передачи, могут возникать задержки. Так как по VPN в нашем случае передается небольшой объем данных, нагрузка на оборудование и задержки в передаче не проявляются. При регулярной передаче большого объема данных по VPN или при работе с приложениями чувствительными к задержкам, предпочтительной настройкой будет протокол UDP.
Netmask: 24 – маска подсети, применяемая к клиенту.
MAC Address: мак-адрес интерфейса OVPN. Будет сгенерирован автоматически, если не указан.
Max MTU: 1500 – максимальный размер пакета, который интерфейс OVPN сможет отправить без фрагментации.
Keepalive Timeout: 60сек. Определяет период времени (в секундах), после которого маршрутизатор начинает отправлять пакеты keepalive каждую секунду. Если в течение этого периода времени (т.е. 2 * keepalive-timeout) не поступает трафика и ответов keepalive, не отвечающий клиент объявляется отключенным
Default Profile: Профиль по умолчанию для использования. Выбираем созданный ранее профиль.
Certificate: Сертификат, который будет использоваться сервером. Выбираем созданный ранее сертификат.
Require Client Certificate – Проверка сертификата клиента. Активация этой настройки требуется обязательно.
TLS Version: only v1.2 – использование TLS v1.2. Наиболее безопасный вариант.
Auth.: sha256 – метод аутентификации, который примет сервер.
SHA256 – Secure Hash Algorithm – безопасный алгоритм хеширования с размером 256 бит.
Cipher: aes 256 cbc – разрешенный стандарт шифрования.
AES: Advanced Encryption Standard – симметричный алгоритм блочного шифрования с длинной ключа 256 бит. CBC: Cipher Block Chaining mode — режим сцепления блоков шифротекста.
Выбрать шифрование не так просто, как кажется. Это поиск компромисса между надежностью шифра и производительностью.
Key Renegotiate Sec: 3600. Пересогласование ключа с клиентом каждые 60мин. Стандартный для OpenVPN cпособ защиты от некоторых видов атак.
Redirect Gateway: Эта настройка указывает, какие маршруты клиент OpenVPN должен добавить в таблицу маршрутизации.
(def1 заменяет 0.0.0.0/0 на 0.0.0.0/1 и 128.0.0.0/1, ipv6 для ipv6)
Push Routes – передача маршрута клиенту.
Например, нам нужно передать клиенту маршрут во внутреннюю сеть организации. Это выглядит так.
[Сеть назначения] [Маска] [Шлюз] [Метрика]
/interface ovpn—server server set push—routes=«192.168.88.0 255.255.255.0 172.16.20.1» |
В таблице маршрутизации клиента появляется динамический маршрут.
Enabled Tun IPv6, Tun Server IPv6, Server IPv6 Prefix Length – настройки для IPv6 не используются в данном случае.
Правило Firewall Filter.
Правило разрешает входящее в роутер соединение на порт 1194. Это нужно для подключения клиентов.
Можно на вкладку Action не заходить в данном случае. Разрешающее действие используется по умолчанию.
К правилу желательно добавить комментарий.
/ip firewall filter add action=accept chain=input comment=«accept Open VPN» dst—port=1194 in—interface—list=WAN protocol=tcp |
Расположение правила.
Маршрут в сеть клиента VPN.
/ip route add disabled=no distance=1 dst—address=192.168.90.0/24 gateway=172.16.20.2 routing—table=main scope=30 suppress—hw—offload=no target—scope=10 |
В маршруте можно указывать интерфейс подключения клиента вместо IP-адреса. Это применимо когда IP-адрес раздается автоматически из пула и может измениться.
Экспорт сертификата.
Переносим сертификат на роутер клиента.
/certificate export—certificate CRT—CLIENT type=pkcs12 export—passphrase=531—Pass file—name=CRT—CLIENT—1 |
Перетягиваем сертификат к себе на компьютер.
Доступ в Интернет.
Настраиваем доступ в Интернет любым возможным способом (DHCP-client, static-IP, PPPoE). Необходимо чтоб присвоился внешний IP-адрес на который будут подключатся все клиенты.
Настройка роутера клиента.
Клиентом в данном случае является филиал организации. Для него не нужен постоянный внешний IP-адрес. В разных филиалах использованы разные роутеры, в большинстве это hEX (RB750GR3) с ROSv7.16.1 на данный момент. Интернет-соединение выполняется через adsl-модем в режиме моста (Bridge-mode).
Подключаемся в роутер через WinBox. Переименовываем, если это организация нового филиала.
В названии удобно использовать место расположения филиала.
Синхронизируем время.
/system ntp client set enabled=yes /system ntp client servers add address=3.by.pool.ntp.org |
Импорт сертификата.
Перетягиваем сертификат в папку с файлами на роутере.
Импортируем.
/certificate import file—name=CRT—CLIENT—1.p12 passphrase=Pass—135 name= CRT—CLIENT—1 trusted=yes |
Создание интерфейса.
Название любое понятное.
На вкладке Dial Out вводим параметры для подключения к серверу.
/interface ovpn—client add auth=sha256 certificate=CRT—CLIENT—1 cipher=aes256—cbc connect—to=85.51.148.195 mac—address=02:7F:6C:D7:D1:46 name=OVPN—TO—MAIN—OFFICE password=Pass—135 tls—version=only—1.2 user=FILIAL—1 verify—server—certificate=yes |
Connect To – внешний IP-адрес роутера-сервера. У каждого свой.
Port: 1194 – порт, который настроен на сервере для Open VPN.
Mode: ip – режим туннелирования L3, такой же как на сервере.
Protocol: tcp – протокол такой же как на сервере.
User – имя пользователя, используемое для аутентификации.
Password – пароль пользователя.
Profile – профиль не настраивался, по этому используется default.
Certificate – выбираем импортированный сертификат.
Verify Server Certificate: активируем. Проверка сертификата сервера. В сертификате должно присутствовать такое же значение как в поле Connect To интерфейса клиента (IP-адрес или доменное имя). Но по факту, подключение и верификация происходят даже если в сертификате IP или доменное имя не соответствуют полю Connect To.
TLS Version: only v1.2 – указание версии TLS.
Auth.: sha256 — разрешенный метод аутентификации. Такой же как на сервере.
Cipher: aes 256 cbc – используемое шифрование. Такое же как на сервере.
Use Peer DNS – возможность добавить DNS сервер от сервера Open VPN.
Add Default Route: создание маршрута по умолчанию 0.0.0.0\0 с IP-адресом VPN сервера в роли шлюза.
Весь Интернет-трафик пойдет через главный роутер организации. Такая настройка используется, если согласно политикам ИБ в организации должен быть единый шлюз (и для филиалов в том числе). Логично, что в данном случае возрастает нагрузка на канал передачи данных.
Don’t Add Pushed Routes (route—nopull) – запрет на добавление маршрутов от сервера.
Далее нужно выполнить настройку подключения к Интернету если это еще не было сделано ранее. Это может быть DHCP-client, PPPoE, или статический IP, маска, шлюз, переданные провайдером. У каждого свой способ подключения.
После активации Интернет-соединения, роутер-клиент подключится к роутеру-серверу. Об этом сообщает флаг R на интерфейсе.
В роутере-сервере подключение происходит на созданный статический интерфейс.
В таблице Active Connections появится новое подключение. В его свойствах можно посмотреть IP-адрес клиента и тип шифрования.
Если соединение не произошло, то нужно открывать лог и смотреть причину.
Маршрут в сеть за VPN.
Маршрут во внутреннюю сеть главного офиса из сети клиента.
/ip route add disabled=no dst—address=192.168.88.0/24 gateway=172.16.20.1 routing—table=main suppress—hw—offload=no |
Альтернативный вариант этой настройки можно выполнить на сервере в поле Push Routes.
Выполняем трассировку из ПК главного офиса в ПК филиала.
Выполняем трассировку из филиала в главный офис.
Трафик проходит через VPN. Что и требовалось. Если трафик проходит через внешние IP-адреса, то нужно искать ошибку настройки. Где-то неверно расставлены IP-адреса.
При выполнении трассировки на обоих компьютерах был отключен антивирус. С включенным антивирусом пинг и трассировка не работают без дополнительных разрешающих правил в антивирусах компьютеров.
Более подробное описание Open VPN для RouterOS можно посмотреть в mikrotik.help.
Open VPN для ПК с ОС Windows.
В данном примере рассмотрено подключение компьютера с ОС Windows к сети организации через OpenVPN клиент.
Настройка в роутере-сервере.
Каждому клиенту создаем сертификат.
В сертификате у нас указывается фамилия и через нижнее подчеркивание имя, потому что попадаются однофамильцы.
/certificate add name=Bunsha_I_V country=BY state=MINSK locality=MINSK organization=PC360 unit=T34 common—name=Bunsha_I_V key—size=2048 days—valid=365 key—usage=tls—client |
Подписываем.
/certificate sign Bunsha_I_V ca=CA |
Каждому клиенту создаем учетные данные.
/ppp secret add name=Bunsha_I_V profile=OPEN—VPN service=ovpn |
Статический IP-адрес или интерфейс можно не назначать.
Экспортируем сертификат в формате PKCS12 и переносим на ПК клиента.
/certificate export—certificate Bunsha_I_V type=pkcs12 export—passphrase=531—Pass file—name=Bunsha_I_V |
Настройка на ПК клиента.
Скачиваем клиент для Windows с официального сайта.
Чтоб не возникало лишних проблем на первоначальном этапе, используется версия 2.4.12. После того, как VPN запустится, можно подумать об обновлении клиента.
Далее, далее, готово. Пути установки не изменялись.
На рабочем столе появится ярлык. Запускаем его. После этого на панели задач или в трее появится значок компьютера, немного похожий на сетевое подключение. В нем можно выполнить настройки.
Переходим в папку с установленной программой.
Файл базовой конфигурации находится в папке sample-config. Копируем его в папку config, переименовываем и редактируем.
Так же в папку config добавляем сертификат и файлы с учетными данными.
Содержание файла config.
client – указание на клиентское подключение.
dev tun – виртуальный сетевой драйвер работающий на уровне L3.
proto tcp – протокол для передачи данных.
remote 85.51.148.195 1194 – адрес и порт VPN-сервера.
persist—key – сохранение состояния ключей при перезапуске.
persist—tun – сохранение сетевого состояния при перезапуске.
pkcs12 Bunsha_I_V.p12 – сертификат клиента.
auth—user—pass credentials.cfg – данные для аутентификации клиента, которые созданы в меню Secrets на сервере.
askpass export-passphrase.cfg – файл с паролем, который вводился при экспорте сертификата из сервера.
remote—cert—tls server – верификация сертификата сервера.
route 192.168.88.0 255.255.255.0 172.16.20.1 – маршрут во внутреннюю сеть главного офиса.
auth SHA256 – способ аутентификации, такой же как на сервере.
cipher AES-256-CBC – метод шифрования, такой же как указан на сервере.
verb 3 – детализация файла лога уровня 3 (возможно 0-9).
Содержание файла credentials.cfg – логин и пароль пользователя OpenVPN. Файл создается в текстовом редакторе, затем у него меняется расширение.
Если не создавать этот файл и не указывать его в конфигурации, то у клиента каждый раз при подключении будет появляться окно для ввода логина и пароля.
Содержание файла export-passphrase.cfg. Пароль, который вводился при экспорте сертификата из сервера.
Сохраняем отредактированную конфигурацию. Подключаемся к серверу VPN.
Появится окно с ходом выполнения конфигурации, которое потом пропадает при успешном соединении с сервером.
Если соединение не происходит, нажимаем «Показать журнал», определяем причины, устраняем и повторяем подключение.
За работу OpenVPN отвечают следующие службы.
Для применения конфигурации может понадобиться их перезапуск.
После подключения компьютеру раздастся IP-адреса из пула. У пользователя есть доступ во внутреннюю сеть организации.
Освоить MikroTik Вы можете с помощью онлайн-куса
«Настройка оборудования MikroTik». Курс содержит все темы, которые изучаются на официальном курсе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.
Настройка сервера OpenVPN Mikrotik
Сертификат CA
/certificate add name=template-CA country="" state="" locality="" organization="" unit="" common-name="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="CA"
Сертификат сервера
/certificate add name=template-SRV country="" state="" locality="" organization="" unit="" common-name="srv-OVPN" key-size=4096 days-valid=3650 key-usage=digital-signature,key-encipherment,tls-server
/certificate sign template-SRV ca="CA" name="srv-OVPN"
Шаблон для создания сертификатов клиентов
/certificate add name=template-CL country="" state="" locality="" organization="" unit="" common-name="client-ovpn-template" key-size=4096 days-valid=3650 key-usage=tls-client
Режим TUN (рабочая протестированная конфигурация!)
Открываем порт 1194/tcp (или другой выставленный в настройках ovpn сервера) на INPUT внешнего интерфейса на микротике
Задаём пул адресов для OVPN-клиентов (можно задать непосредственно в PPP-profile):
/ip pool add name=OVPN_srv_pool ranges=172.23.100.160/27
Создаём PPP-profile для OVPN-сервера
/ppp profile add name=OVPN_server local-address=172.23.100.1 remote-address=OVPN_srv_pool
Настраиваем режим аутентификации пользователей
/ppp aaa set accounting=yes
Добавляем пользователя
/ppp secret add name=ovpn-user-1 password=P@ssword1 service=ovpn profile=OVPN_server
Вариант 1. Не использовать сертификаты клиентов
Включаем OVPN-сервер
/interface ovpn-server server set certificate=srv-OVPN cipher=blowfish128,aes128,aes192,aes256 enabled=yes port=1101 require-client-certificate=no
Экспорт сертификата CA:
/certificate export-certificate CA export-passphrase=""
Получается файл export_CA.crt на микроте
Извлекаем полученный файл сертификата export_CA.crt из микротика любым удобным способом
Вариант 2. Использовать сертификаты клиентов
Экспорт сертификата CA:
/certificate export-certificate CA export-passphrase=""
Сертификат первого клиента
/certificate add name=template-CL-to-issue copy-from="template-CL" common-name="client-ovpn-1"
/certificate sign template-CL-to-issue ca="CA" name="client-ovpn-1"
В будущем, для отзыва сертификатов используем команду:
/certificate issued-revoke %cert-name%
Экспорт сертификата и ключа клиента
/certificate export-certificate client-ovpn-1 export-passphrase=<private-key-password1>
Будет создано 2 файла: cert_export_client-ovpn-1.crt, cert_export_client-ovpn-1.key
Копируем их на машину клиента
Настройка клиентов OpenVPN
Клиент OpenVPN Windows
OpenVPN установочный
Скачиваем OpenVPN 2.4.6
С другими версиями может быть проблема с неподписанными драйверами TAP
https://openvpn.net/community-downloads/
Устанавливаем тыкая галку Установить как сервис
Создаем и копируем client.ovpn, auth.txt в C:\Program Files\OpenVPN\config\
client.ovpn
client dev tun proto tcp remote domain123.ru 1101 resolv-retry infinite nobind persist-key persist-tun mute-replay-warnings ;comp-lzo verb 3 ;mute 20 ;route 192.168.111.0 255.255.255.0 remote-cert-tls server auth-user-pass auth.txt auth-retry nointeract cipher AES-256-CBC # default gw over ovpn server ;redirect-gateway autolocal <ca> <СЮДА КОПИРУЕМ СОДЕРЖИМОЕ export_CA.crt, ЭКСПОРТИРОВАННОГО ИЗ MIKROTIK-OVPN-SERVER> </ca>
auth.txt
user01 Pa$$Word
В настройках программы добавляем запуск OpenVPN вместе с Windows
Подключаемся вручную тыкая на иконку в трее
OpenVPN портативный
Вариант 1. Не использовать сертификаты клиентов
Используем приложение OpenVPNPortable в комплекте с мануалом
в OpenVPNPortable\data\config\client.ovpn изменяем содержимое <ca> … </ca> на содержимое файла export_CA.crt
в auth.txt записываем лог/пас клиента
Вариант 1.Использовать сертификаты клиентов
в OpenVPNPortable\data\config\client.ovpn:
— изменяем содержимое <ca> … </ca> на содержимое файла export_CA.crt
— изменяем содержимое <cert> … </cert> на содержимое файла cert_export_client-ovpn-1.crt
— изменяем содержимое <key> … </key> на содержимое файла cert_export_client-ovpn-1.key
— в auth.txt записываем лог/пас клиента
— при подключении необходимо будет ввести пароль, который задали при экспорте сертификата и ключа на микротике
ПРИМЕЧАНИЕ:
— для первого запуска клиента необходимо запустить программу от имени Администратора (это необходимо для установки драйвера интерфейса туннеля)
— для применения параметров маршрутизации, прописанных в конфиге (в том числе и дефолтного шлюза через openvpn сервер), сам сервис OVPN, или же OVPN GUI должны быть запущены от имени Администратора
— если пользователь входит в группу Администраторы, то при запуске от имени Администратора пароль Администратора не требуется
— если пользователь НЕ входит в группу Администраторы, то при запуске от имени Администратора требуется пароль Администратора
Клиент OpenVPN Linux (Centos 7)
yum install openvpn
nano /etc/openvpn/client/lip-ati-10-254.auth
user01 PassW0rd
nano /etc/openvpn/client/lip-ati-10-254.conf
client dev tun proto tcp remote 793108e281c9.sn.mynetname.net 1101 resolv-retry infinite nobind persist-key persist-tun mute-replay-warnings ;comp-lzo verb 3 ;mute 20 ;route 192.168.10.0 255.255.255.0 remote-cert-tls server auth-nocache auth-user-pass /etc/openvpn/client/lip-ati-10-254.auth auth-retry nointeract cipher AES-256-CBC # default gw over ovpn server #redirect-gateway autolocal <ca> <СЮДА КОПИРУЕМ СОДЕРЖИМОЕ export_CA.crt, ЭКСПОРТИРОВАННОГО ИЗ MIKROTIK-OVPN-SERVER> </ca>
systemctl enable openvpn-client@lip-ati-10-254
systemctl start openvpn-client@lip-ati-10-254
Клиент OpenVPN Android
— через Play Market устанавливаем «OpenVPN Connect»
— создаем и копируем client.ovpn на Android
client.ovpn
client dev tun proto tcp remote domain123.ru 1101 resolv-retry infinite nobind persist-key persist-tun mute-replay-warnings ;comp-lzo verb 3 ;mute 20 ;route 192.168.111.0 255.255.255.0 remote-cert-tls server auth-user-pass auth-retry nointeract cipher AES-256-CBC # default gw over ovpn server ;redirect-gateway autolocal <ca> <СЮДА КОПИРУЕМ СОДЕРЖИМОЕ export_CA.crt, ЭКСПОРТИРОВАННОГО ИЗ MIKROTIK-OVPN-SERVER> </ca>
— открываем «OpenVPN Connect»
— импортируем файл client.ovpn
— вводим лог/пас пользователя
— подключаемся