Как поместить процесс Open VPN в поток управления задачами SSIS

Я изучаю, как использовать SSIS для создания автоматически запланированных задач. Все шло гладко, пока политика безопасности не изменилась. Раньше всякий раз, когда я хотел подключиться к базе данных, я просто вводил IP-адрес, имя пользователя и пароль в диспетчере соединений SSIS. Теперь мне нужно сначала открыть OpenVPN, что по-прежнему выполняется вручную. Поэтому я действительно хотел бы поместить этот бит в поток задач SSIS.

У меня был поиск на Stackoverflow и на некоторых других сайтах. Вот ссылка в stackoverflow. Этот пример дает представление о том, что мы можем использовать VBA для настройки ссылки. Однако этот пример показывает, что нам нужно имя VPN-подключения и имя пользователя VPN, которых у меня на самом деле нет, и я не знаю, где их найти. Каждый раз я просто щелкаю правой кнопкой мыши файл .ovpn и выбираю запустить openvpn для этого файла конфигурации. Кроме того, когда я открываю этот файл .ovpn, нет команды, указывающей, какое у меня имя подключения или имя пользователя. Вот как это выглядит, когда я его открываю (в этом файле нет -auth-user-pass, и я могу использовать этот файл, не указывая его):

client
dev tun
proto udp
remote a website here 1111
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
verb 3

ca ca.crt
cert office.crt
key office.key
askpass login.txt

Можно ли найти мое имя подключения и имя пользователя? Если мне не нужны имя подключения и имя пользователя, могу ли я написать VBA для создания процесса автоматического подключения?

Я также заметил, что в службах SSIS есть execute process task. Возможно ли, что я могу использовать его (потому что, насколько я понимаю, я использую openvpn.exe для выполнения файла .ovpn)?

Пожалуйста, поправьте меня, если я говорю что-то не так, так как я новичок и в VPN, и в SSIS. И очень признателен тому, кто может мне в этом помочь.


person Lambo    schedule 09.03.2016    source источник
comment
ммм.. видите последнюю строку askpass login.txt? Я думаю... поищите на своем компьютере этот текстовый файл, где вы должны найти имя пользователя и пароль... я думаю... возможно ;)   -  person Ricardo C    schedule 10.03.2016
comment
@Ricardo C Раньше этой строки не было, и мне приходилось каждый раз копировать и вставлять свой пароль в черное окно подсказки. Поэтому я создал этот файл, и он содержит только пароль (узнал об этом от кого-то еще с другого сайта). Спасибо за ваш комментарий:)   -  person Lambo    schedule 10.03.2016
comment
мой пароль вы сказали? как в моем пароле windows? чувак, похоже, что твой OpenVPN использует Active Directory для аутентификации. В этом случае ваше имя пользователя и пароль не что иное, как то, которое вы используете для входа в свой компьютер, ваше имя пользователя и пароль Windows.   -  person Ricardo C    schedule 10.03.2016
comment
О, извините, это не совсем мой пароль. Это просто пароль для входа в OpenVPN и совершенно другой. Извините за вводящее в заблуждение заявление   -  person Lambo    schedule 10.03.2016
comment
Вопрос/ответ SO, на который вы ссылались, использует другой инструмент VPN (судя по коду, что-то под названием RASDIAL). Таким образом, используемые там параметры не имеют значения, если вы собираетесь использовать OpenVPN. Вы проверили документы для OpenVPN для параметров командной строки? Есть ли способ запустить его при указании файла конфигурации? Если вы сможете зайти так далеко, то будет работать оболочка этой командной строки в задаче сценария SSIS, оставив вам проблему ввода пароля. Пожалуйста, обновите вопрос с любой дополнительной информацией.   -  person SebTHU    schedule 15.03.2016
comment
@SebTHU спасибо за ваш ответ. Вот документ, который я нашел на OpenVPN dropbox.com/s/ 18x67l2atlpvi29/openvpn.8.html?dl=0 . Я не уверен, куда я должен смотреть. Можете ли вы взглянуть на это, пожалуйста? Спасибо   -  person Lambo    schedule 16.03.2016
comment
Это вторая запись в разделе «Параметры»: openvpn [путь к файлу конфигурации]. Это должно запустить OpenVPN с вашим файлом конфигурации. Чтобы понять, как работает безопасность, вам нужно прочитать документ, чтобы узнать, как настройки в вашем конкретном файле конфигурации влияют на вещи.   -  person SebTHU    schedule 16.03.2016


Ответы (2)


Я ничего не знаю об OpenVPN, но некоторое время назад я столкнулся с аналогичной проблемой с сервером, который настаивал на туннеле SSH с использованием PuTTY в качестве единственного разрешенного метода подключения.

Люди, внедряющие эти политики, никогда не задумываются о влиянии на службы SSIS, особенно на автоматическую обработку.

Решение, которое я нашел, было:

  1. Найдите эквивалент командной строки для клиента PuTTy (который называется plink)
  2. Имейте под рукой подробную документацию, потому что это действительно сложно.
  3. Пакет SSIS запускает plink.exe, передавая различные параметры (Примечание: не используйте задачу «Выполнение процесса», так как она ожидает завершения процесса: запустите процесс в задаче «Сценарий» и получите дескриптор идентификатора процесса plink.exe). ).
  4. After a wait, have another Script task in SSIS connect to the plink process' InputBuffer, "typing in" a password. Yes, insecure and clunky, though you can store SSIS project parameters encrypted (this obviously requires SSIS 2012 or later)
    1. The SSIS package can now connect to the server and do data stuff, as if it was a normal server without stupid access requirements.
    2. В конце пакета завершите процесс plink.exe.

Имейте также в виду, что при автоматическом выполнении (например, при запланированном задании) ваш пакет будет работать в контексте безопасности, отличном от того, в котором вы работали при разработке пакета (в зависимости от настройки службы SSIS). Если ваш доступ к OpenVPN зависит от ActiveDirectory, возможно, вам придется настроить другую учетную запись OpenVPN для пользователя входа в систему службы SSIS.

Если это звучит ужасно, кошмарно сложно и нестабильно, это потому, что так оно и есть. На самом деле версия TL; DR такова: скажите всем, кто управляет сервером, что если они действительно хотят, чтобы вы получили к нему доступ с помощью SSIS, они должны установить более разумную политику доступа.

person SebTHU    schedule 10.03.2016

Поработав с моим коллегой по ИТ, я думаю, что решил проблему. Вот мой ответ и мнение на этот вопрос, и, пожалуйста, поправьте меня, если я ошибаюсь.

Я думаю, что автоматическое открытие VPN — это индивидуальная проблема. В этом случае я все еще использую Execute Process Task в SSIS. В редакторе задач мы выполняем не openVPN.exe, а пакетный файл. В пакетном файле (файл .bat) содержится команда открытия файла .ovpn с помощью OpenVPN.exe.

Процесс ниже дает вам более подробную информацию.

Командная строка — это то, что я использую в пакетном файле:

@echo off
CD /D "C:\Program Files\OpenVPN\config"
start openvpn client.ovpn
TIMEOUT /T 10
exit

В SSIS выполнить задачу процесса введите здесь описание изображения

Надеюсь, это полезно

person Lambo    schedule 29.04.2016