Со временем обрывки знаний и умений становится все труднее удержать в голове. Они расползаются по уголкам памяти заполняя все свободное место. Извлекать необходимое на свет становится все сложнее. Этот блог - рабочая записная книжка.

Sunday, October 5, 2008

Есть браузер – нет проблем. Немного теории и начальная конфигурация.

Недавно мне в руки попала достаточно интересная железяка – Juniper SA-2000, предназначенная для организации построения VPN по технологии SSL. Следующие несколько заметок будут посвящены именно этой теме. В документации производителя она так же называется IVE.  Итак, начнем.
 
Заголовок выбран неслучайно ведь основным преимуществом и отличием SSL VPN от хорошо знакомого IPSec является именно возможность подключится к шлюзу с помощью обычного браузера. Т.е. при полном отсутствии клиентской части, например из гостиницы или интернет кафе.
С технической точки зрения, Juniper, впрочем как и остальные вендоры, предоставляет два основных вида туннелей:
- чистый SSL
- network connect

Чистый SSL
Пользователь, используя обычный http, заходит на страничку удалённого доступа, вводит данные необходимые для аутентификации и попадает на SSL портал. На портале ему могут быть доступны следующие сервисы:
- web доступ, если внутри есть web сервер доступ к которому должен быть защищен это тот самый случай;
- файловый доступ, заворачивает NBT и NFS протоколы в SSL обертку;
- SAM, расшифровывается как Secure Application Manager, представляет собой Java либо ActiveX приложение поддерживающее туннель к заранее известным серверам. Сложно написал, но по-сути это тот же SSH туннель только с помощью SSL;
- Telnet/SSH, Java приложение являющееся клиентом Telnet либо SSH соответственно;
- Terminal Services, такое же Java приложение но для протоколов RDP и ICA;
- Meeting, защищенное место для проведения собраний, тема отдельной заметки по-хорошему;
- Email Client, такое же Java приложение.

Network Connect
В терминологии Juniper называется это называется Network Connect - загружаемое win32 либо Java приложение которое после аутентификации устанавливает виртуальный драйвер и поднимает полноценный VPN туннель. Опять таки двумя различными способами, полноценный IPSec либо заворачивая всё в SSL. Для первого способа необходимо открыть порт udp/4500. Также для NC (Network Connect) необходимо иметь права администратора на клиентском компьютере.

Включаем
Надеюсь я понятно описал возможные опции, теперь перейдем к конфигурации.
Первоначальная конфигурация производится с помощью стандартного консольного соединения. После пары вопросов типа, "а не новый ли это член кластера?" или "согласны ли вы с лицензионным соглашением?", железяка примерно такое меню:


Welcome to the Juniper Networks IVE Serial Console!
Current version: 6.3R1 (build 13557)
Rollback version: 6.2R2-1 (build 13525)
Reset version: 5.1R2 (build 9029)
Licensing Hardware ID: XXXXXXX
Serial Number: XXXXXXXX
Please choose from among the following options:
   1. Network Settings and Tools
   2. Create admin username and password
   3. Display log/status
   4. System Operations
   5. Toggle password protection for the console (Off)
   6. Create a Super Admin session.
   7. System Snapshot
   8. Reset allowed encryption strength for SSL
   10. Toggle SSL HW Acceleration (system will reboot when this setting is modified): off
Choice:

в котром в первую очередь нас должны интересовать два пункта, которые так и называются: первый и второй. :) Первый позволяет указать основные сетевые настройки интерфейсов, в второй создать локального пользователя с правами администратора.
Остальные пункты позволяют просмотреть некоторые локальные логи, перезагрузить, выключить IVE или откатится на предыдущую версию ПО. И еще несколько базовых возможностей.
Описывать настройку сети я не буду, она достаточно тривиальна. После конфигурации сетевых параметров web-интерфейс доступен по адресу: https://<IP_address>/admin. К сожалению в SSL устройствах Juniper не предоставляет возможности управления из командной строки.

Интерфейс
Следующий скриншот может дать определённое представление как выглядит интерфейс. Он кликабелен, можно рассмотреть подробнее.
 
Описывать интерфейс занятие муторное и бесполезное, потому делать я этого не буду. Однако расскажу о некоторых терминах и принципах конфигурирования.

Начнем с конца.

Первым делом необходимо создать и настроить серверы аутентификации (auth. servers), т.е. место откуда устройство будет черпать информацию о пользователях. Это может быть radius, LDAP, Active Directory, локальная база и еще пара менее популярных вариантов.

Каждому прошедшему аутентификацию пользователю присваивается роль или несколько (User Role). Именно на уровне роли пользователи получают доступ к различным возможностях IVE как например web, network connect или файловый доступ. Отмечу, кроме разрешения на уровне роли, должна быть создана ресурсная политика (Resource Police) разрешающая доступ к данному ресурсу.

Далее необходимо создать пользовательскую область (User Realm), подскажите лучший перевод если знаете. :) В реалме указывается несколько важных параметров: способ которым пользователи будут аутентифицироваться (указывается сервер настроенный в пункте auth. servers) и правила (Role Mapping) по которым пользователь будет оцениваться как подходящий для данной пользовательской роли. Например это может быть требование состоять в определённой группе.

Следующий шаг – страницы входа (Sign-in Page). Достаточно простая вещь позволяет создать страничку с необходимыми настройками как например: фирменный логотип, инструкция по использованию и т.д.

Страница входа назначается политике входа (Sign-in Police), также в политике входа настраивается адрес по которому будет доступна эта страница (например hostname/sign-in page) и user realm который будет использоваться для аутентификации.

Таким образом, в правильном (со стороны пользователя) порядке цепочка будет выглядеть следующим образом:

Sign-in Page -> Sign-in Police -> User Realm -> User Role

Практический пример последует в следующей части, обратите внимание на вопросы.

Вопросы
Я прекрасно понимаю, читать текстовое описание настройки достаточно скучно, не говоря уже о том, что это запутывает. В связи с этим вопрос.
Подскажите каким образом лучше описывать конфигурацию в заметке? С устройствами конфигурируемыми посредством командной строки это достаточно просто, а как быть в случае графического инсталлятора? Пичкать пол-сотни скриншотов для объяснения мне не кажется выходом, описывать по типу пункт меню 1-> Пункт меню 2 -> галочка напротив пункта номер семь тоже достаточно скучно, да и не даст совершенно никакого представления тем у кого нет доступа к железу, а почитать и разобраться всё таки хочется. Может быть делать короткий анонс в блоге, а само описание перенести в презентацию? А может лучше записывать скринкасты? Меня интересует ваше мнение, читатели. :)

4 comments:

Zak said...

Давай текстоваый конфиг, ну и пару скриншотов для наглядности, кстати сколько это железка примерно стоит?

pablo said...

Я в принципе и сам склонялся к такому варианту.
По цене, вопрос хороший - понятия не имею. :) Но гугл говорит - $1,415 to $2,301

Zak said...

А сож вообще записать процесс настрйоки во флеше, как у http://www.blindhog.net ?

pablo said...

Думаю нет, у меня пропал доступ к тестовой железяке, а показывать на продакшене как-то неправильно. Но примерный процесс опишу на примере продакшена и разбавлю скриншотами.