Недавно мне в руки попала достаточно интересная железяка – 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:
Давай текстоваый конфиг, ну и пару скриншотов для наглядности, кстати сколько это железка примерно стоит?
Я в принципе и сам склонялся к такому варианту.
По цене, вопрос хороший - понятия не имею. :) Но гугл говорит - $1,415 to $2,301
А сож вообще записать процесс настрйоки во флеше, как у http://www.blindhog.net ?
Думаю нет, у меня пропал доступ к тестовой железяке, а показывать на продакшене как-то неправильно. Но примерный процесс опишу на примере продакшена и разбавлю скриншотами.
Post a Comment