А вот и он!
А вот и он!

Привет обитателям Хабра!

Сегодня хотел бы рассмотреть вместе с вами один из модулей NGFW от UserGate для реализации удалённого доступа к ресурсам по протоколам HTTP(s), RDP, FTP и SSH через веб-браузер, выявить его сильные и слабые стороны, а та�� же порассуждать в комментах каких фич в нём действительно не хватает.

Для чего он нужен?

С помощью данного модуля можно решить ряд насущных проблем практически в каждой организации:

  • Предоставление централизованного удалённого доступа к ресурсам без использования стороннего программного обеспечения с "километровыми" инструкциями по подключению (необходим только браузер);

  • Предоставление удалённых доступов для сотрудников вне офиса (в том числе с мобильных устройств);

  • Предоставление удалённых доступов клиентам и подрядчикам;

Благодаря доступу к ресурсам через браузер (который предустановлен в большинстве пользовательских ОС) - это решение имеет преимущество по сравнению с нативными VPN-клиентами, для установки которых, зачастую, требуются права администратора, а настройка которых должна выполняться строго по инструкции (а чем сложнее она - тем больше головной боли с пользователями сервиса).

Как настроить веб-портал?

В целом настройка модуля займёт не более 30-ти минут, если ранее до этого производилась первоначальная настройка UserGate.

Шаги будут следующие:

  1. Перейти в раздел Настройки -> Веб-портал (вкладка UserGate), нажать на гиперссылку, содержащую URL для подключения к веб-порталу.
    Поставить галочку напротив параметра Включено, а далее изменить Имя хоста, Порт, Профиль аутентификации, и прочие имеющиеся в меню параметры на валидные для вашей организации и развёртывания.

  2. Перейти в раздел Зоны (вкладка Сеть), зайти в конфигурацию зон, где вы желаете, чтобы работал Веб-портал, далее закладка Контроль доступа, и поставьте галочку напротив сервиса Веб-портал.

  3. Перейти в раздел Веб-портал (вкладка Глобальный портал), и добавить через мастер настройки ресурсы, к которым планируется реализация доступа (не забудьте перед этим проверить наличие корректных маршрутов в VRF, а так же отсутствие сетевых ограничений на доступ к публикуемым на портале сервисам (портам)).

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

Какие есть подводные камни?

1) Логирование

Упс.. не баг а ф��ча?)
Упс.. не баг а фича?)

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

Тип

Категория события

Веб-портал

- Закладка веб-портала добавлена
- Закладка веб-портала изменена
- Закладка веб-портала перемещена
- Настройка веб-портала изменена
- Неуспешное добавление данных закладки веб-портала
- Неуспешное извлечение данных закладки веб-портала
- Неуспешное обновление закладки веб-портала
- Неуспешное перемещение закладки веб-портала
- Неуспешное удаление закладки веб-портала
- Ошибка аутентификации
- Ошибка аутентификации MFA
- Успешная аутентификация

Веб-портал RDP

- Внутренняя ошибка сервера RDP
- Невозможно получить шаблон сервера RDP
- Отключение от сервера RDP
- Ошибка входа на сервер RDP
- Сервер RDP не найден
- Успешное подключение к серверу RDP

Веб-портал SSH

- Внутренняя ошибка сервера SSH
- Невозможно получить шаблон сервера SSH
- Ошибка входа на сервер SSH
- Подключение к серверу SSH отклонено
- Сервер SSH не найден
- Успешная аутентификация

Ой, и здесь тоже..
Ой, и здесь тоже..

Заметили подвох?...)

Если нет - то и найти в Журнале событий информацию о переходе по закладке Веб-портала типа HTTP(s) или FTP окажется для вас непосильной задачей, так как такого типа событий в нём просто не существует.

Для того, чтобы узнать на какие веб- и ftp- ресурсы заходил пользователь через Веб-портал - необходимо переключиться на соседний Журнал веб-доступа, и только там вы сможете найти более релевантную информацию.

Неудобство пока не критичное, но почему бы, собственно, не добавить эти категории событий, для большего удобства и юзабилити продукта?

2) Выбор домена

Злополучная галочка...
Злополучная галочка...

В настройках Веб-портала присутствует, казалось бы, очень даже удобная функция - возможность выбора домена для пользователей портала.

Применяется она в сценариях, когда вы имеете несколько служб каталогов (например, отдельные для сотрудников, клиентов и подрядчиков), и у вас предполагается их совместное использование в Веб-портале.

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

В моей ситуации - я просто отключил данную функцию, предварительно изменив инструкцию по эксплуатации портала для пользователей (в поле логин необходимо вводить учётные данные через NetBIOS-имя домена, например, DOMAIN\user), но, это ещё не всё...

3) Аутентификация

Как раз при сценарии использования нескольких доменов LDAP/Active Directory, без использования галочки о возможности выбора домена (а она, как мы узнали выше, не подаёт признаков жизни) - запрос на аутентификацию будет поступать на каждый сервер аутентификации, указанный в профиле аутентификации.

4) CORS

Ой-ой..
Ой-ой..

CORS (Cross-Origin Resource Sharing) - это, простыми словами - механизм безопасности браузера, отвечающий за разрешение и ограничение доступа веб-страниц к сторонним интернет ресурсам (более полная статья на эту тему - https://habr.com/ru/companies/macloud/articles/553826/).

При использовании Веб-портала UserGate - URL-адрес (а соответственно и origin) опубликованного ресурса изменяется, что может отобразиться на функциональности множества веб-приложений, где применяется данный механизм защиты.

Пример изменения URL, для большей наглядности:

Поэтому при публикации веб-приложений с поддержкой данной функции необходимо крайне внимательно отнестись к её настройке, иначе большая часть приложения работать не будет (если вовсе не сломается).

Пример решения данной проблемы для Atlassian Confluence: https://support.atlassian.com/confluence/kb/getting-cors-errors-when-accessing-confluence-resources/

Для обратного прокси nginx:
https://enable-cors.org/server_nginx.html

5) CSRF (или же XSRF)

;(
;(

CSRF (Cross-Site Request Forgery) - это тип атаки, при которой злоумышленник с помощью вредоносного сайта или скрипта заставляет браузер пользователя выполнять на доверенном сайте действия от его имени (отправлять сообщения, менять пароли, переводить деньги и пр.).

Современные веб-приложения имеют различные методы защиты от атак данного типа (создание дополнительных заголовков для CSRF-токенов, дополнительные поля SameSite в куки-файлах, проверка заголовков Origin/Referer и т.д.).

Из-за того, что механизмы Веб-портала не поддерживают работу некоторых из механизмов защиты - вы можете столкнуться с некорректной логикой работы веб-приложений. Например, таким образом я вовсе не смог аутентифицироваться в Confluence под легитимной учётной записью. И опять таки для работы таких приложений через Веб-портал придётся жертвовать их безопасностью..

Вот, например, как можно изменить конфигурацию защиты от XSRF для Atlassian Confluence: https://confluence.atlassian.com/doc/configuring-xsrf-protection-218276695.html

6) NLA

Аргх... только не оно...
Аргх... только не оно...

NLA (Network Level Authentication) - это функция безопасности в протоколе RDP, требующая аутентификации до установления полноценного сеанса. Она защищает терминальные сервера от брутфорса, DoS-атак, а так же от разведки (скрывая имена последних залогиненных пользователей).

По опыту моих коллег по цеху при публикации терминальных серверов, на которых включена функция NLA - вполне могут возникать неудачные попытки входа на них через Веб-портал, т.к. последний может иметь иную версию, или конфигурацию fallback-механизмов аутентификации в модуле реализации работы с CredSSP.

Так же небольшое внимание уделю и способу публикации терминальных серверов - настоятельно рекомендую публиковать их через полные доменные имена (FQDN), чтобы потом не устраивать танцы с бубном пытаясь переиграть заблокированную NTLM-аутентификацию на сервере или домене Active Directory.

Что же в итоге?

Веб-портал от UserGate показал себя достаточно хорошо в сценариях с публикацией RDP, SSH и некоторых веб-приложений (стабильно работает, например, веб-публикация 1С, свежие версии Atlassian Jira, Redmine и Битрикс24), иные отказываются работать адекватно с первого раза, другие же веб-сервисы пока находятся в очереди публикацию.

Недочёты, конечно же, есть, но бывалые сетевые инженеры и системные администраторы вполне смогут их пересилить, потратив чуть (или много) больше времени чем было запланировано на конфигурацию (а другие с UserGate, собственно, и не сработаются...))

Хотелось бы услышать в комментариях ваш опыт работы как с данным модулем, так и с продуктом в целом (коммьюнити, всё же, немалое)!

Да пребудет с вами сила...