Итак, дело минувших дней, но всё-таки. Решил привести летопись тех военных действий. Задача: заставить работать клиент-банк СБ РФ с рабочей станции пользователя, при этом не открывая с машины клиента VPN соединения. Избавимся также от принудительной блокировки TCP и UDP соединений. В этой статье опишу решение с установкой фильтра на ISA хост, в отдельной статье опишу процесс установки на отдельный специализированный сервер-маршрутизатор. Читайте дальше, и станет понятна логика.

Сразу оговорюсь – если ищите информацию о том, как избавиться от принудительной блокировки TCP и UDP соединений – читайте сюда, особенно комментарии после статьи. Здесь речь пойдёт об установке и ФПСУ IP/Клиента.

Поясню подход. С моей точки зрения, за обеспечение сеансового, и тем более транспортного уровня (с точки зрения OSI) должен отвечать не клиент, а маршрутизатор. В нашем случае – ISA Server (да, у нас всё ещё MS ISA). Для клиента всё должно быть просто и прозрачно – открываем сеанс и используем тот протокол сервера, который нам необходим. Что при этом происходит на сеансовом и транспортном уровне – не проблема клиента. Кто, где и что будет перехватывать, “заворачивать”, кодировать, подписывать – не должно волновать ни клиента, ни даже сервер. Другими словами, ни о каких VPN на рабочих станциях и задумываться не следует  — и не безопасно, да и софт ставить, ключи выдавать сотрудниками, а в случае падения workstation – всё это долго переставлять… Я  постараюсь привести решение с минимальными проблемами для администраторов.

Что нам говорит FAQ (мы так делать не будем :-)):

6) Возможна ли совместная работа Microsoft ISA Client и ФПСУ-IP/Клиент?
В связи с тем , что Microsoft ISA Client использует инкапсуляцию пользовательских пакетов для отправки их через Microsoft ISA Server, для работы Приложений через ФПСУ-IP/Клиент необходимо проделать следующее:
1. Установить на рабочую станцию Microsoft ISA Client и ФПСУ-IP/Клиент (версия 142 и выше), при помощи специальной утилиты деинсталлировать LSP-драйвер ФПСУ-IP/Клиента
2. Настроить на Microsoft ISA Server прохождение во внешний сегмент UDP 87 (прописать отдельное правило в Protocol Rules (предварительно создав описание в Protocol Definitions «UDP 87 , SEND RECEIVE»))
3. На Microsoft ISA Server в настройках Microsoft ISA Client необходимо указать имя Приложения (имя исполняемого файла без расширения) , для которого Microsoft ISA Client действовать не будет (например, указать имя «opera» или «explorer»). (Возможно, в настройках Microsoft ISA Client потребуется
нажать кнопку «Update now» для активизации сделанных на Microsoft ISA Server изменений).
4. Из-за деинсталлированного LSP-драйвера могут возникнуть проблемы с передачей файлов по FTP при использовании NAT-трансляции на ФПСУ. В этом случае, поля собственного IP- адреса рабочей станции должны быть больше (или равны) полям NAT-адреса (Пример : 1. Собственный IP : 10.10.10.10 , NAT-адрес: 10..9.10.10 — работать не будет. Пример : 2. Собственный IP : 100.100.200.10 , NAT-адрес: 200.200.100.99 — работать будет).

СБ РФ от нас требует организовать защищённый канал до их сервера посредством ФПСУ-IP/Клиента и МСЭ (межсетевого экрана) на их стороне, что логично. Другими словами, ни клиент-банк, ни сервер не задумываются о том, кто, что, и как (и где) их защищает, что и логично. Но ставить при этом ФПСУ-IP/Клиента на рабочие станции – это не для нас.

Схема взаимодействия представлена на сайте Амикона:Клиент банк Сбербанка (СБ РФ), ФПСУ IP/Клиент Амикон и ISA Server – как заставить “это” работать, не трогая клиентские workstation хотя и не сильно прозрачная.

Автоматическое определение MTU через ICMP ФПСУ-IP/Клиент явно выполнить не в состоянии. За MTU в нашем случае ответит операционная система с поддержкой автоматического определения “чёрных дыр” (на них наткнулся при организации VPN канала с другим банком – ISA не умеет заворачивать ICMP трафик в созданный RRAS исходящий VNP канал, но это тема другой статьи).

Проверю сразу версию на сайте http://amicon.ru/forum/viewtopic.php?t=615. На момент написания статьи на сайте версия 3.1.2, и в этой статье речь пойдёт именно об этой версии. (Сейчас ссылка на новую версию доступна со страницы http://amicon.ru).

Судя по описанию, следует "бояться" следующего: Клиент устанавливает фильтрацию TCP UDP соединений (точнее – может устанавливать). Но, так как он реализован как фильтр, блокировать соединения он будет только на тех интерфейсах, к которым привязан (bindings). Об этом следует помнить в случае сетевых проблем.

Для шифрования используется решение СКЗИ "Туннель/клиент", оно встроено в ФПСУ IP клиент. Итак,

Устанавливаем ФПСУ-IP/Клиент

Устанавливаем клиента на ISA Server.

Однако, из терминальной сессии ставиться клиент отказался напрочь. Так что будем пробовать ставить, сидя за консолью. А не хотел так ставиться по одной причине — RDP отваливается во время установки, так как устанавливается драйвер сетевого уровня.

Локальная установка прошла штатно. После этого, естественно, потребовалось на ISA Server описать IP packet filter, разрешающий UDP (dynamic) -> UDP (87) send receive.

После установки поднимается сервис: “Amicon FPSU-IP/Client service” (Amicon FPSU-IP/Client service for Amicon FPSU-IP) ("C:\Program Files\Amicon\Client FPSU-IP\ip-client.exe" RunAsService). Запуск — автоматический. Именно этот сервис отслеживает "появление" ключа в USB, и пытается сразу установить соединение.

Клиент банк Сбербанка (СБ РФ), ФПСУ IP/Клиент Амикон и ISA Server – как заставить “это” работать, не трогая клиентские workstation

Может ли «ФПСУ-IP/Клиент» восстанавливать соединение при использовании Dial-Up? Да, начиная с версии 1.42. И речь не только о dial-up. При переподключении сетевого интерфейса тоже всё в ажуре.
Начиная с версии 1.42 доступна возможность соединиться и рассоединиться при помощи командной строки: ip-client connect и ip-client disconnect (программа уже должна быть запущена).

Видим новый сетевой фильтр в стеке протоколов (справа). Напоминаю, на внешнем интерфейсе этот фильтр должен быть привязан (на картинке видно, что галка стоит), и TCP/IP также. Всё остальное – отвязываем. А на внутренних интерфейсах фильтр Amicon NDIS IM Filter Driver отвязываем. P.S. Позднее мы вообще отвяжем фильтр от всех интерфейсов, которые нам необходимы для функционирования нашей сетевой инфраструктуры и оставим его привязанным только к специально созданному ради Амикона интерфейсу, но об этом позднее.

Клиент банк Сбербанка (СБ РФ), ФПСУ IP/Клиент Амикон и ISA Server – как заставить “это” работать, не трогая клиентские workstationКлиент банк Сбербанка (СБ РФ), ФПСУ IP/Клиент Амикон и ISA Server – как заставить “это” работать, не трогая клиентские workstationЗапускаем службу, затем ПО (через меню Амикон). Получаем в результате нечто в system tray. Активируем приложение.

Подробно на настройке останавливаться не буду, в документации подробно. Только на особенностях.

Клиент банк Сбербанка (СБ РФ), ФПСУ IP/Клиент Амикон и ISA Server – как заставить “это” работать, не трогая клиентские workstationКлиент банк Сбербанка (СБ РФ), ФПСУ IP/Клиент Амикон и ISA Server – как заставить “это” работать, не трогая клиентские workstation Итак, в локальных настройках обязательно ставим галку “Помнить введённый PIN код, пока VNP-key не отсоединён”. Мы же не собираемся постоянно руками “поднимать” канал, воткнули ключ и забыли про сервер.

Далее нам потребуется Ip адрес ФПСУ-IP экрана (со стороны СБ) (должен быть указан на пакете ключа)  (в нашем случае — 213.148.164.72) и Ip адрес сервера за экраном (со стороны СБ) — 213.148.164.75. Клиент банк Сбербанка (СБ РФ), ФПСУ IP/Клиент Амикон и ISA Server – как заставить “это” работать, не трогая клиентские workstation Вводим PIN код пользователя (PIN, не PIN2, последний потребуется, если Вы выберите Расширенные настройки) и получаем окно параметров клиента.

Клиент банк Сбербанка (СБ РФ), ФПСУ IP/Клиент Амикон и ISA Server – как заставить “это” работать, не трогая клиентские workstation Нас будут интересовать две страницы: ФПСУ и хосты.Клиент банк Сбербанка (СБ РФ), ФПСУ IP/Клиент Амикон и ISA Server – как заставить “это” работать, не трогая клиентские workstation Именно в этом диалоге и прописываем (если они уже не прописаны) полученные адреса межсетевого экрана (ФПСУ) и серверов за ним (хосты). Физический смысл данных настроек следующий. Фильтр Amicon NDIS IM Filter Driver “ловит” все пакеты, направленные в адреса, прописанные на странице “хосты”. Именно “хосты”, а не “ФПСУ”. То есть наш клиент-банк с рабочей станции открывает ftp соединение напрямую с сервером (хостом), не задумываясь о межсетевом экране. А фильтр Amicon NDIS IM Filter Driver на ISA Server перехватывает пакеты этого соединения. О том, что он (фильтр) с ними делает – позднее.

IP packet rule для ISA можно и ужесточить- разрешим UDP (dynamic) -> UDP (87) send receive только на 213.148.164.72 (адрес МСЭ, “ФПСУ”).

Разъединились и соединились успешно. Пробуем пинговать "хост" 213.148.164.75 – всё в порядке.

Настраиваем ISA Server

Как уже писал выше, требуется для начала IP packet rule для ISA — разрешим UDP (dynamic) -> UDP (87) send receive только на адрес “ФПСУ”.

Но это не всё. Судя по логам firewall, клиент СБ РФ пытается использовать ftp на 20+21 портах, а также порт 1024. Итак, мы должны также прописать разрешающие правила на протоколы клиента в том числе! Одна из прелестей предлагаемого решения в том, что всё взаимодействие клиент-банка с банком в логах ISA будет! 
При написании правил на протоколы клиента следует учесть, что fwc для этого трафика у нас будет отключен. Поэтому правила на протоколы клиента должны быть либо без авторизации, либо с авторизацией по ip адресам. Авторизация по учётным записям здесь недопустима!

Что ещё интересно:

tracert -d 213.148.164.75 

  1     1 ms     1 ms    10 ms  213.148.164.197
  2     1 ms     4 ms     4 ms  78.81.1.253
  3    10 ms    10 ms    10 ms  213.148.164.72
  4     1 ms    10 ms     1 ms  213.148.164.75 

tracert -d 213.148.164.75 

  1     *        *        *     Request timed out.
  2     *        *        *     Request timed out.
  3     1 ms     1 ms    10 ms  213.148.164.75

Сверху — клиент отключен, снизу — включен. Отсюда видно, что ICMP трафик, в том числе и с локальной машины при ФПСУ клиенте, установленном на isa, замечательно заворачивается в туннель (маршрут становится короче, ведь трафик “пролетает” ряд маршрутизаторов сети по туннелю, для него этот туннель – один hop).

Итого, результаты:

Icmp трафик, судя по всему, успешно заворачивается в туннель.

Сам клиент связывается успешно (ФПСУ ip клиент), то есть с 87udp проблем нет.

Видимо, проблемы с tcp трафиком. Причём — после упаковки fwc клиентом. Отсюда: нужно экспериментировать с fwc клиентом, ftp командлетой  и разрешающими правилами на isa.

Настраиваем FWC

Пожалуй, именно здесь и есть ключевой момент для понимания того, что происходит. IP пакеты должны идти напрямую от workstation в адрес сервера (хоста). То есть, если они и проходят по пути какие-либо туннели, то они должны выйти из этих туннелей до фильтра Amicon NDIS IM Filter Driver, иначе последний их просто “не поймает”.

Что же нам может помешать? А помешать нам может FWC – firewall client for ISA. Вспомним, как он себя ведёт. Для того, чтобы обеспечить авторизацию трафика на ISA firewall service, он также “заворачивает” пакеты клиента, отправляемые за пределы LAT. Если мы не исключим FWC в нашем случае, ISA firewall service безусловно “развернёт” туннель FWC, и пакеты “уйдут” через внешний интерфейс ISA, однако при этом они минуют фильтр Amicon NDIS IM Filter Driver (возможно, связано с порядком применения фильтров, ведь firewall client тоже не просто так сбоку стоит). И, соответственно, не пройдут межсетевой экран банка. Итак, FWC нам необходимо исключить для трафика клиент-банка.

P.S. Можно было бы и не избегать, если бы мы поставили ФПСУ-IP/Клиент на маршрутизатор за ISA сервером (скажем – на внешний ISA firewall, уже за DMZ), при этом на внутреннем (до DMZ) никакого ФПСУ-IP/Клиента. В этой конфигурации и FWC можно было бы в покое оставить.

Смотрим настройки FWC (application.ini) и дописываем исключение для клиент-банка:

[Common]
...
[Servers Ip Addresses]
...
[Master Config]
...
[winppr32]
Disable=1
[dllhost]
Disable=1
...
[wCLNT]
Disable=1

Обращаю внимание. Настройки могут быть как глобальными (через mspclnt) так и специфичными для приложения (wspcfg.ini в каталоге программы). Порядок и приоритеты:

The Firewall Client software looks for a Wspcfg.ini file in the folder in which the client WinSock program is installed. If this file is found, Firewall Client looks for a [WSP_Client_App] section, where WSP_Client_App is the name of the WinSock program without the .exe file name extension. If this section does not exist, Firewall Client looks for the [Common Configuration] section. If this section also does not exist, Firewall Client looks for the same sections in the Mspclnt.ini file. Firewall Client uses only the first section that it finds during this search to apply the program-specific configuration settings.

Подробности http://support.microsoft.com/kb/323457

Сейчас создал файл wspcfg.ini с указанным выше содержимым в каталоге клиент-банка рядом с исполняемым файлом. Перезапустил клиент-банк. Пробуем связь. Неуспешно. Потому как “клиент” в данном случае – в system32. Поэтому такой вариант конфигурации использовать не будем. Будем пробовать глобальную конфигурацию.

Клиент банк Сбербанка (СБ РФ), ФПСУ IP/Клиент Амикон и ISA Server – как заставить “это” работать, не трогая клиентские workstation Внёс изменения непосредственно в консоли ISA. После этого перезапустил клиент файрвола (FWC) на машине, сеанс связи клиент-банка — и всё идёт.

Но при этом абсолютно все пакеты (и tcp1024, и tcp21) я вижу в логах Firewall service на ISA.

Дополнительные материалы

Резюме

Итак, мы обеспечили функционирование клиент-банка СБ РФ через ФПСУ-IP/Клиента Амикон и ISA Server, при этом не устанавливая VPN соединения с машины, а возложив все сетевые тонкости на ISA хост, что и требовалось.

Послесловие

История на этом не закончилась… Об очередных кознях СБ РФ читаем здесь.

Отзывы » (6)

  1. Только что завершилось достаточно длинное обсуждение на technet проблемы с Амикон ФПСУ IP/Клиентом. Участником обсуждения rus_admin предложение решение в том случае, когда ни маршрутизаторы, ни маршруты править либо нет возможности, либо не целесообразно по другим соображениям:
    Убираем fwc / либо настраиваем для него исключения (как в статье Выше написано), настраиваем VPN соединение до isa хоста (таким образом гарантируя маршрут, придётся ещё и таблицу маршрутизации поправить, либо поставить галку — использовать удалённый шлюз в качестве шлюза по умолчанию) и прописываем правила на ISA.

  2. Наткнулся на анонс «железного» варианта ФПСУ IP/клиента на базе Linux — http://www.nixp.ru. Такой девайс можно разместить уже и за ISA, тогда клиента FWC вообще трогать не надо.

  3. На днях пришлось вернуться к проблеме со Сбербанком и ФПСУ IP/Клиентом. Сбербанк разослал через клиент-банк письмо «Об усилении политики безопасности«, где мило предупреждает нас о том, что теперь при подключении к сети банка ФПСУ IP/Клиент будет блокировать все новые TCP и UDP подключения. И якобы — это ради нашего же блага. Наверное, особенно учитывая тот факт, что все продукты на машине операциониста — сетевые (начиная с 1С и кончая всякими клиент-банками, спринтерами и прочими чудесами).

    На самом то деле СБ РФ в очередной раз больше озаботился собственной безопасностью, потом как предложение решение никоим образом не усложняет жизни троянам, которые функционируют уже с машины операциониста.

    Естественно, звонок в техподдержку сразу ничего не дал. Читаем продолжение истории.

  4. ФПСУ клиент отказывается нормально работать и _переустанавливаться_, если машина заражена новым вирусом (с июня 2011), который подменяет msgina.dll в Winlogon на свою (типа xtgina.dll) и дает удаленный доступ к машине.

    Чуть голову не сломал — пока разобрался!

Опубликовать комментарий

XHTML: Вы можете использовать следующие HTML теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Tags Связь с комментариями статьи:
RSS комментарии
Обратная ссылка