URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 85698
[ Назад ]

Исходное сообщение
"Раздел полезных советов: Подключение к VPN Juniper Network C..."

Отправлено auto_tips , 23-Июл-12 03:23 
Для доступа к некоторым рабочим ресурсам мне необходимо использовать VPN. К сожалению, он организован на решении Juniper Network Connect, которое использует клиенты с закрытым исходным кодом для Windows (Windows Secure Manager) и Linux/Mac (Network Connect). Линукс клиент - ущербный монстрик, требующий для своей работы browser с устанвленной JVM, причем исключительно i386 (32 бит) архитектуры (используется JNI). Искренне надеюсь, что дурацкая модель security by obscurity подохнет вместе с компаниями, которые её поддерживают. В данной заметке речь пойдет речь о том, как получить доступ к ВПН без Java и Firefox.

Итак, когда мне надоело запускать бразуер для установления впн соединения, я решил разобраться как же это убожество работает. Схема примерно такая:

1) С помощью браузера вводим имя пользователя и пароль (в моём случае rsa secure id из токена).
2) Происходит перенаправление на страничку с Host Checker (Java applet), который проверяет соответствует ли наша система требованиям, в моём случае его можно пропустить, видимо правила не жёсткие.  На этом этапе выдаётся специальная кука DSID.
3) Запускается applet , который скачивает клиента для Linux (Java + JNI).
4) Клиентский applet проверяет, установлен ли клиент, если нет - запускает его установку.
5) Если клиент установлен - через JNI запускается процесс ncsvc, который в свою очередь и поднимает впн. Кроме того - запускается Java GUI (Java + JNI) которое показывает статистику.

Оставив за скобками кривизну архитектуры (особенно использование JNI там, где оно никому не нужно) я стал думать как обойтись без Java. У ncsvc есть аргументы командной строки, но в моём случае они не работали - виноват включенный host checker, данный случай описан в [[http://kb.juniper.net/InfoCenter/index?page=content&id=KB204... Juniper KB20490]]. Отладка показала, что взаимодействие с ncsvc происходит по протоколу tcp (демон слушает на 127.0.0.1:4242). Формат обмена - закрытый, но пакеты небольшие и после нескольких экспериментов я смог управлять демоном и без Java.

В итоге получился perl-скрипт, который позволяет скачивать Linux клиента, устанавливать соединение, отображать статистику и работать в консоли. Скачать скрипт и посмотреть скриншоты можно в [[http://smallhacks.wordpress.com/2012/07/15/jvpn-perl-script-.../ моём блоге]] (http://samm.kiev.ua/jvpn/jvpn-0.4.0.tar.bz2). Скрипт проверялся на RHEL5/6 и Ubuntu 12.04. Буду рад замечаниям или сообщениям об ошибках.

URL: http://smallhacks.wordpress.com/2012/07/15/jvpn-perl-script-.../
Обсуждается: http://www.opennet.dev/tips/info/2700.shtml


Содержание

Сообщения в этом обсуждении
"Подключение к VPN Juniper Network Connect используя perl-скрипт"
Отправлено Аноним , 23-Июл-12 03:23 
OpenVPN никак нет? Всегда считал, что есть некие эталонные реализации VPN и вендорам нет смысла делать свои...

"Подключение к VPN Juniper Network Connect используя perl-скрипт"
Отправлено Andrey Mitrofanov , 23-Июл-12 09:39 
> OpenVPN никак нет? Всегда считал, что есть некие эталонные реализации VPN и
> вендорам нет смысла делать свои...

Вот примерно то же думают вендоры про openvpn. Причём "эталонность" их для них лежит в плоскости бизнес-моделей, бухгалтерий и пр. "странных" мер и весов.


"Подключение к VPN Juniper Network Connect используя perl-скрипт"
Отправлено samm , 23-Июл-12 11:02 
Аноним не умеет читать? "Для доступа к некоторым рабочим ресурсам мне необходимо использовать VPN. К сожалению, он организован на решении Juniper Network Connect".

Как можно догадаться - впн решение выбирал не я. И да, ресурсы в компании с 10000+ сотрудников и при этом сам впн сервис географически разнесён (там около 10 впн серверов). Для доступа к своим домашним ресурсам я использую OpenVPN и вполне им доволен. Заметка несколько не о том.


"Подключение к VPN Juniper Network Connect используя perl-скрипт"
Отправлено vg , 31-Июл-12 14:50 
Спасибо.

"Подключение к VPN Juniper Network Connect используя perl-скрипт"
Отправлено Аноним , 04-Фев-16 21:56 
Как этот скрипт переделать для аутентификации на сайте по двум паролям?