Настройка OpenVPN

Генерация сертификатов
1. Идем на официальный сайт https://openvpn.net/index.php/open-source/downloads.html (community->downloads) и скачиваем ПО OpenVPN 2.3.18 (old stable) — released on 2017.09.26

2. Устанавливаем ПО

3. Открываем C:\Program Files\OpenVPN\easy-rsa\vars.bat.sample

Переименовываем vars.bat.sample в vars.bat, открываем файл и изменяем строки:

set KEY_COUNTRY=RU

set KEY_PROVINCE=Moscow

set KEY_CITY=Moscow

set KEY_ORG=UMEL

set KEY_EMAIL=admin@umel.ru

set KEY_CN=server

set KEY_NAME=server

set KEY_OU=UMEL

set PKCS11_MODULE_PATH=server

set PKCS11_PIN=1234

4. Генерируем сертификаты. Запускаем командную строку от имени администратора, переходим в каталог C:\Program Files\OpenVPN\easy-rsa\

Набираем vars, потом clean-all, читаем информативную надпись "Скопировано файлов - 1

5. Командами:

build-ca- генерируем публичный сертификат.

build-key-server server (имя может быть любым) — генерируем сертификат сервера

build-key client1 — генерируем сертификат пользователя/

На все вопросы нажимаем enter или y. Потому как мы все нужное уже прописали в vars.bat

Все созданные сертификаты будут находиться C:\Program Files\OpenVPN\easy-rsa\keys

Настройка Mikrotik
1. Копируем ca.crt, server.crt, server.key, заходим в Mikrotik — Files и жмем на иконку вставить.

2. Импортируем сертификаты в Mikrotik System - Certificates - выбор сертификата - кнопка Import.

3. Создаем пул адресов

4.Создаем PPP-профиль. (PPP - Profiles)

5.Настраиваем сервер VPN (PPP- Interface - OVPN Server)


6. добавляем пользователя (PPP - Secrets)

7. Создаем разрешающее правило в Firewall

Настройка клиента
1. Устанавливаем OpenVPN, который мы скачали ранее

2.Копируем ранее созданные файлы ca.crt, client.crt, client.key в C:\Program Files\OpenVPN\config.

3. Там же создаем файл auth.cfg. Первой строчкой прописываем имя пользователя, второй пароль.

4. В папке C:\Program Files\OpenVPN\sample-config находим файл client.ovpn копируем его в C:\Program Files\OpenVPN\config и изменяем строки:

remote XXX.XXX.XXX.XXX 1194 (XXX.XXX.XXX.XXX- внешний адрес mikrotik)

ca ca.crt

cert client1.crt

key client1.key

auth-user-pass auth.cfg

5. на клиенте прописываем обратный маршрут

route add -p 192.168.0.0 mask 255.255.255.0 192.168.5.1

Конвертация данных 2.1 Из регистра в справочник

В ЗУП в справочнике ФизЛиц нет поля даты регистрации по месту жительства. Это поле засунуто в регистр сведений ПаспортныеДанныеФизЛиц

Для того, чтобы вытащить сведения о дата регистрации нужно в ПКО ДатаРегистрации в обработчике "Перед выгрузкой" сделать запрос к регистру сведений ПаспортныеДанныеФизЛиц

Источник пустой, т.к. в ЗУП в справочнике нет такого поля. Нюанс в том, что
1. в запросе Источник- это элемент справочника ЗУП ФизЛица.
2. Данные в Дату Регистрации передаются через переменную Значение.

Теперь адреса в ЗУП они хранятся в регистре КонтактнаяИнформация, а в БП в табличной части элемента справочника.
Добавляем через синхронизацию свойств табличную часть КонтактнаяИнформация. Источник оставляем пустым. На папке КонтактнаяИнформация выставляем флажок Получить из входящих данных.

Переходим на вкладку "Правило выгрузки данных" , открываем правило ФизическиеЛица

В обработчике "Перед обработкой" способ выгрузки выбираем Произвольный запрос. И пишем запрос.

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| КонтактнаяИнформация.Объект КАК ФизическоеЛицо,
| КонтактнаяИнформация.Тип КАК Тип,
| КонтактнаяИнформация.Вид КАК Вид,
| КонтактнаяИнформация.Представление КАК Представление
|ИЗ
| РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
| ПО КонтактнаяИнформация.Объект = ФизическиеЛица.Ссылка
|ГДЕ
| КонтактнаяИнформация.Тип = &Тип
| И КонтактнаяИнформация.Вид В (&СписокВидов)";

СписокВидов = Новый СписокЗначений;
СписокВидов.Добавить(Справочники.ВидыКонтактнойИнформации.ФактАдресФизЛица);//проживание
СписокВидов.Добавить(Справочники.ВидыКонтактнойИнформации.ЮрАдресФизЛица);//прописка

Запрос.УстановитьПараметр("Тип",Перечисления.ТипыКонтактнойИнформации.Адрес);
Запрос.УстановитьПараметр("СписокВидов",СписокВидов);
РезультатЗапроса = Запрос.Выполнить().Выгрузить();

ФизЛица = РезультатЗапроса.Скопировать();
ФизЛица.Свернуть("ФизическоеЛицо");
Для Каждого СтрФз Из ФизЛица Цикл

Отбор = Новый Структура;
Отбор.Вставить("ФизическоеЛицо",СтрФз.ФизическоеЛицо);

НайденныеСтроки= РезультатЗапроса.НайтиСтроки(Отбор);
Выборка=Новый ТаблицаЗначений;
Выборка.Колонки.Добавить("Тип");
Выборка.Колонки.Добавить("Вид");
Выборка.Колонки.Добавить("Представление");

Для Каждого СтрРез Из НайденныеСтроки Цикл

НоваяСтрока= Выборка.Добавить();
НоваяСтрока.Тип=СтрРез.Тип;
НоваяСтрока.Вид=СтрРез.Вид;
НоваяСтрока.Представление=СтрРез.Представление;

КонецЦикла;
ИсходящиеДанные = Новый Структура;
ИсходящиеДанные.Вставить("КонтактнаяИнформация", Выборка);
ВыгрузитьПоПравилу(СтрФз.ФизическоеЛицо, , ИсходящиеДанные, , "ФизическиеЛица");

КонецЦикла;

Заполняем структуру ИсходящиеДанные, где "КонтактнаяИнформация" это название табличной части приемника, т.е. справочника физлица в БП
И выгружаем по правилу.

В обработчике "Перед выгрузкой" пишем, что к группам наша выгрузка не относится.

Еще в ПКО ФизическиеЛица напишем, что уволенных и удаленных выгружать не будем.

Ну и в правиле справочника ВидыКонтактнойИнформации нужно синхронизировать пару свойств.