Драйвер фпсу ip клиента не может получить доступ к сетевому адаптеру
Итак, дело минувших дней, но всё-таки. Решил привести летопись тех военных действий. Задача: заставить работать клиент-банк СБ РФ с рабочей станции пользователя, при этом не открывая с машины клиента 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/Клиента на рабочие станции – это не для нас.
Схема взаимодействия представлена на сайте Амикона: хотя и не сильно прозрачная.
Автоматическое определение MTU через ICMP ФПСУ-IP/Клиент явно выполнить не в состоянии. За MTU в нашем случае ответит операционная система с поддержкой автоматического определения “чёрных дыр” (на них наткнулся при организации VPN канала с другим банком – ISA не умеет заворачивать ICMP трафик в созданный RRAS исходящий VNP канал, но это тема другой статьи).
Судя по описанию, следует "бояться" следующего: Клиент устанавливает фильтрацию 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/Клиент» восстанавливать соединение при использовании Dial-Up? Да, начиная с версии 1.42. И речь не только о dial-up. При переподключении сетевого интерфейса тоже всё в ажуре.
Начиная с версии 1.42 доступна возможность соединиться и рассоединиться при помощи командной строки: ip-client connect и ip-client disconnect (программа уже должна быть запущена).
Видим новый сетевой фильтр в стеке протоколов (справа). Напоминаю, на внешнем интерфейсе этот фильтр должен быть привязан (на картинке видно, что галка стоит), и TCP/IP также. Всё остальное – отвязываем. А на внутренних интерфейсах фильтр Amicon NDIS IM Filter Driver отвязываем. P.S. Позднее мы вообще отвяжем фильтр от всех интерфейсов, которые нам необходимы для функционирования нашей сетевой инфраструктуры и оставим его привязанным только к специально созданному ради Амикона интерфейсу, но об этом позднее.
Запускаем службу, затем ПО (через меню Амикон). Получаем в результате нечто в system tray. Активируем приложение.
Подробно на настройке останавливаться не буду, в документации подробно. Только на особенностях.
Итак, в локальных настройках обязательно ставим галку “Помнить введённый PIN код, пока VNP-key не отсоединён”. Мы же не собираемся постоянно руками “поднимать” канал, воткнули ключ и забыли про сервер.
Далее нам потребуется Ip адрес ФПСУ-IP экрана (со стороны СБ) (должен быть указан на пакете ключа) (в нашем случае — 213.148.164.72) и Ip адрес сервера за экраном (со стороны СБ) — 213.148.164.75. Вводим PIN код пользователя (PIN, не PIN2, последний потребуется, если Вы выберите Расширенные настройки) и получаем окно параметров клиента.
Нас будут интересовать две страницы: ФПСУ и хосты. Именно в этом диалоге и прописываем (если они уже не прописаны) полученные адреса межсетевого экрана (ФПСУ) и серверов за ним (хосты). Физический смысл данных настроек следующий. Фильтр 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 адресам. Авторизация по учётным записям здесь недопустима!
Что ещё интересно:
Сверху — клиент отключен, снизу — включен. Отсюда видно, что 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) и дописываем исключение для клиент-банка:
Обращаю внимание. Настройки могут быть как глобальными (через mspclnt) так и специфичными для приложения (wspcfg.ini в каталоге программы). Порядок и приоритеты:
Сейчас создал файл wspcfg.ini с указанным выше содержимым в каталоге клиент-банка рядом с исполняемым файлом. Перезапустил клиент-банк. Пробуем связь. Неуспешно. Потому как “клиент” в данном случае – в system32. Поэтому такой вариант конфигурации использовать не будем. Будем пробовать глобальную конфигурацию.
Внёс изменения непосредственно в консоли ISA. После этого перезапустил клиент файрвола (FWC) на машине, сеанс связи клиент-банка — и всё идёт.
Но при этом абсолютно все пакеты (и tcp1024, и tcp21) я вижу в логах Firewall service на ISA.
Дополнительные материалы
Резюме
Итак, мы обеспечили функционирование клиент-банка СБ РФ через ФПСУ-IP/Клиента Амикон и ISA Server, при этом не устанавливая VPN соединения с машины, а возложив все сетевые тонкости на ISA хост, что и требовалось.
«Отказ сетевой подсистемы»
Ошибка в сетевом адаптере/драйвере сетевого адаптера рабочей станции ФПСУ-IP/Клиента , необходимо обратиться к системному администратору.
«Широковещательный адрес запрещен»
Ошибка в настройках сетевого адаптера: адрес ФПСУ-IP трактуется как широковещательный. Необходимо обратиться к администратору сети.
Ошибка в сетевом адаптере/драйвере сетевого адаптера рабочей станции ФПСУ-IP/Клиент , необходимо обратиться к системному администратору.
«Удаленный хост недоступен»
Пакеты не доходят до ФПСУ-IP по причине отсутствия маршрута. Необходимо обратиться к администратору сети.
«Соединение отвергнуто удаленным хостом»
Удаленная рабочая станция (ФПСУ-IP) сбрасывает соединение по одной из следующих причин: хост не является ФПСУ-IP, перезагрузка ПО, внезапный сбой сетевого приложения, неполадки сетевых интерфейсов. Следует проверить, корректно ли указан IP адрес ФПСУ, после чего повторить попытку соединения и/или обратиться к администратору ФПСУ‑IP.
ФПСУ отвергает авторизацию по неизвестной причине -- Возможно ваши ключевые данные не соответствуют установленным на ФПСУ.
Необходимо обратиться к администратору ФПСУ
«Ошибка приема winsock»
Ошибочно сконфигурировано либо не сконфигурировано сетевое оборудование рабочей станции. Скорее всего не указан или указан неверно основной шлюз (Gateway) в настройках соединения по локальной сети. Необходимо обратиться к администратору локальной сети.
«Неправильный номер системы»
От ФПСУ-IP получен пакет для пользователя другой Криптосети. Необходимо обратиться к администратору ФПСУ-IP.
«Неправильный номер группы»
В полученном пакете номер группы не соответствует номеру группы пользователя Криптосети. Необходимо обратиться к администратору ФПСУ-IP.
«Неправильный номер клиента»
Полученный пакет предназначен пользователю Криптосети с другим номером. Необходимо обратиться к администратору ФПСУ‑IP.
«Неверен идентификатор туннеля»
Ошибка аутентификации. Необходимо обратиться к администратору ФПСУ-IP.
«ФПСУ отвергает код системы распределения»
Общесистемный ключ Криптосети Клиентов данного пользователя не установлен на ФПСУ-IP.
«ФПСУ отвергает доступ в запрошенную сеть»
Общесистемный ключ Криптосети Клиентов данного пользователя не установлен на ФПСУ-IP.
«ФПСУ отвергает доступ в запрошенную группу»
«ФПСУ отвергает доступ клиенту»
Администратор ФПСУ-IP не зарегистрировал пользователя Криптосети с данным номером или не активировал/установил разрешения на его работу.
«Нет памяти для инициализации»
На компьютере отсутствуют сетевые адаптеры или они некорректно установлены. Необходимо обратиться к администратору локальной сети
«Размер не соответствует типу пакета»
Несовместимая версия ПО ФПСУ-IP. Необходимо обратиться к Разработчику.
«Запрошено действие в несоответствующем состоянии фильтра»
Ошибка системы. Необходимо обратиться к Разработчику.
«Пакет игнорируется в текущем состоянии»
Время между отсылкой исходящих пакетов ФПСУ-IP/Клиентом меньше, чем время доставки ответных пакетов от ФПСУ-IP. Необходимо увеличить значение параметра HKey_LOCAL_MACHINE\SOFTWARE\Amicon\ClientFP SU-IP \CLIENTSENDTIMER в реестре WINDOWS (максимально до 20000 миллисекунд). Следует обратить внимание, что значение вводится в шестнадцатеричном виде.
«Исчерпано число попыток соединения!»
Запрет. Время работы ещё не наступило
Заданный в группах доступа период работы пользователя Криптосети на ФПСУ-IP ещё не начался. Необходимо обратиться к администратору ФПСУ-IP.
Запрет. Время работы истекло
Закончился заданный в группах доступа период работы пользователя Криптосети на ФПСУ-IP. Необходимо обратиться к администратору ФПСУ-IP.
Ранее уже писал о том, как всё-таки помирить Амикон ФПСУ IP/Клиент и ISA Server. Однако, война не закончилась на этом. 21 марта СБ РФ разослал через клиент-банк “письма счастья”, в которых сообщил, что “всвязи с участившимися случаями хакерских атак на клиентов СБ РФ программные средства СБ теперь будут блокировать новые TCP и UDP соединения при подключенном ФПСУ”. Обсудим и найдём решение…
Предыстория
Спасибо, конечно, за подобную заботу. Замечу, что подобный шаг предпринят не в соответствии с договором предоставлении услуг с использованием системы «Клиент-Сбербанк». Договором не предусматривается одностороннее изменение условий предоставления услуги, а именно это мы и имеем.
Но это же ведь СБЕРБАНК, ему ведь желание и мнение клиентов не столь важно, сколь их безопасность, хотя, если вдуматься в предлагаемые меры “по повышению безопасности”, ничем против троянов на хосте клиент-банка они помочь не смогут. Это больше защита самих сетей СБ РФ против сетевых червей, да и то, – достаточно условная.
Симптомы “заботы СБ РФ“ о нас:
- в моём случае (у меня ФПСУ IP/Клиент стоит на маршрутизаторе (ISA хост)) при подключенном канале к ФПСУ банка новые сессии к ресурсам Интернет заканчиваются отказом, почта перестаёт уходить / приходить и так далее;
- если у Вас стоит IP/Клиент на машине с клиент-банком, Ваши сетевые приложения перестанут работать при поднятом канале (то есть 1С, сам клиент-банк (если он в сетевом варианте установлен)), и, естественно, Вы удалённо с машиной ничего сделать не сможете.
Ну и первая рекомендация СБ РФ – ставьте отдельную машину, “не в сети”, и бегайте к ней (с чем? с флэшками? или ещё с чем? и это – технологии 21 века?)
Ответ на письмо счастья
Однако, после разговора с начальником отдела местного отделения выяснилось, что помочь в решение проблемы, созданной самим же Сбербанком, может письмо. То есть создают нам проблемы они без нашей воли, а вот решать их можно только по нашему письменному обращению! Ну что же, мы не гордые, пишем письмо:
Управляющему Новгородского отделения
№8629 ОАО «Сбербанк России»
Малькову М.В.
от директора …В связи с технологическими особенностями рабочих мест кассиров-операционистов нашего предприятия прошу Вас отключить блокировку входящих TCP и UDP соединений средствами ФПСУ IP/Клиента. С ответственностью в соответствии с п.3.7 договора №… о предоставлении услуг с использованием системы «Клиент-Сбербанк» согласен. О риске мошеннических действий со стороны пользователей сети Интернет, который может возникнуть при отключенных блокировках, извещён.
С целью решения указанной задачи прошу выпустить новый ключ для ФПСУ/IP клиента.С уважением,
Директор …
Написали письмо от имени директоров всех наших предприятий, отвезли VPN-key (да, их придётся поменять). Это было в четверг. И, о чудо, в пятницу звонок – новый ключ готов!
P.S. Хорошо тем, у кого несколько организаций на одной площадке. Думаю, я не открою военной тайны, сообщив Вам, что через Амикон ФПСУ IP/клиента любой из Ваших организаций могут работать все Ваши клиент-банки СБ РФ (естественно, если все они – в одном отделении СБ). Поэтому мы заменили сначала только один из ключей. И после полученного положительного результата заменим остальные.
Пробуем зелёного (VPN key, разумеется, а Вы что подумали :-)) на вкус
Итак, забираем ключ. Он уже иной, “зелёненький”. И, разумеется, работать с 3ей версией ФПСУ IP/клиента не хочет. А причина банальна – нет драйверов, ключ ведь теперь, наконец-то, нормальный smart card reader.
Посему качаем версию 4 ФПСУ IP/Клиента (я поставил себе 4.1). Напоминаю, Вам необходимо иметь непосредственный доступ к консоли того хоста, на котором ставите ФПСУ IP/клиента, удалённое подключение не поможет Вам.
Сначала сносим 3ю версию. Можно без перезагрузки. (P.S. если сразу начала ставить 4ую – не переживайте. Ставьте её, сносите (потому как не поставится), потом снова – ставьте, и всё будет нормально). Ставим 4ую. Всё проходит без проблем.
Теперь вставляем ключ (VPN key) в USB порт. И видим нераспознанное устройство. Драйвер для него – usbccid.sys. А PID его выглядит следующим образом: USB\VID_2022&PID_0008&MI_01\6 . Если в роли хоста у Вас Windows XP или старше – проблем быть не должно, драйвер будет найден. Если Windows 2000 – придётся явно его указать: %ProgramFiles%\Amicon\Client FPSU-IP\Drivers\UsbCCID.Напомню – в 3ей версии клиента Вы его не найдёте.
Итак, если драйвер указан правильно, в менеджере устройств Вы увидите smart card reader. Кроме того, ключ работает также как накопитель, но только после ввода PIN кода. Поэтому его можно использовать в качестве хранилища сертификатов для клиент-банка, если ФПСУ IP/Клиент будет у Вас стоять на машине бухгалтера.
Не забываем зайти в IP/клиента под администратором (ставим галку “Администратор”, и вводим PIN2), и установить опции “Помнить введённый PIN код, пока VNP-key не отсоединён”. По крайней мере, для меня (ФПСУ клиент на ISA хосте) этот шаг необходим.
Меняем IP packet filter на ISA
Очень хочется верить, что в ближайшее время забота СБ РФ обойдёт нас стороной. Ведь другие то банки и заботу проявляют, и желанием клиента интересуются, и предлагают выбор среди нескольких технологий.
Конец?
Конечно же нет, это пистолет (вспоминая анекдот о Штирлице). Всё-таки нашёл и реализовал и технологическое решение, решающее проблему с блокировками, и позволяющее работать одновременно с несколькими банками / ФПСУ. Будет интересно — разберёмся с серверной частью ФПСУ, насколько это возможно без доступа к консоли и без документации
Возникла необходимость обеспечить работу с несколькими разными ФПСУ банка (часть организаций “вынудил” СБ работать через СПЭД, часть – всё ещё на клиенте СБ, а ФПСУ то разные). Описанное ранее решение работало только в случае, если ключ один. Посему и пришлось искать другое решение, но на рабочие станции ставить ФПСУ IP клиент вообще никакого желания нет. Реализованное решение и опишу.
Принцип работы ФПСУ клиента уже ранее описывал, повторяться не буду. Приведу идею:
Учитывая проблемы, которые нам уже создавал Сбербанк, не будем создавать себе проблемы и пытаться решить проблему только в рамках ISA хоста. Для этих целей будем использовать “ведро” – простенькую рабочую станцию, на которой работать уже грешно, а выкидывать жалко. Назовём её “наш Амикон-маршрутизатор”, или просто — “Амикон-маршрутизатор”.
P.S. В конце статьи остановлюсь на том, как реализовать это решение на виртуальном сервере, так как в случае наличия Windows Enterprise Server реализация в рамках виртуального сервера не потребует от Вас дополнительных затрат (на лицензирование).
Готовим маршрутизатор
Всё, что нам потребуется от самодельного маршрутизатора – хотя бы один USB порт, минимальные требования совместимости с MS Windows 2000/2003 Standard Server (да, потребуется сервер, потому как потребуется RRAS ради NAT) и два сетевых интерфейса. Можно обойтись и Windows XP, но в этом случае Вам потребуется через реестр включить маршрутизацию и NAT включить через netsh.
Устанавливаем ФПСУ IP-клиент
Пришло время установить сам клиент (сразу после установки Windows Server).
Настраиваем сетевые интерфейсы маршрутизатора
- Называем его сетевые интерфейсы LAN и Amicon соответственно (картинка справа).
- Теперь же настроим наши сетевые интерфейсы:
-
От интерфейса Amicon отвязываем все службы и фильтры, кроме фильтра Amicon NDIS IM Filter Driver и протокола TCP/IP.
- Также рекомендую отключить регистрацию подключения Amicon в DNS. И после этого жмём Ok, интерфейс Amicon настроен. Да, кстати, нам потребуются фиксированные ip адреса на этих интерфейсах. Явно прописываем ip адреса в параметрах подключения.
- Теперь настроим LAN интерфейс нашего маршрутизатора. От него мы отвяжем Amicon NDIS IM Filter Driver.
- Также фиксируем IP адрес.
- В идеале, шлюз (ISA хост) и все внешние ресурсы (WAN) должны быть доступны только через Amicon интерфейс (192.168.202.201 в моём примере), локальная сеть – только через LAN интерфейс. Для этих целей самым простым решением будет следующее – интерфейсы должны быть в разных подсетях, как и предлагаю. Поэтому для интерфейса Amicon адрес — 192.168.202.201, например, маска – 255.255.255.0, шлюз – 192.168.202.9. А адрес шлюза (192.168.202.9) дописываем в качестве дополнительного на LAN интерфейсе ISA хоста. При этом, однако, следует проконтролировать метрику шлюза в Интернет для WAN интерфейса Вашего ISA хоста – она (метрика) должна быть максимальной (то есть этот маршрут должен обладать самым низким приоритетом, рисунок слева). Если Вы всё сделали правильно, то таблица маршрутизации на ISA хосте должна выглядеть приблизительно так:
- Как видно, теперь лучшим маршрутом к 192.168.202.201 будет именно маршрут через LAN интерфейс ISA хоста (7ая запись в таблице), а не через шлюз по умолчанию. Уже сейчас ping из Вашей LAN должен успешно достигать Amicon интерфейса нашего маршрутизатора (192.168.202.201).
- В результате всех выше описанных манипуляций таблица маршрутизации на нашем Амикон-маршрутизаторе (“ведре”) изменилась следующим образом: Как видно, теперь единственный маршрут в Интернет проходит через Amicon интерфейс (192.168.202.201) (для чего мы убрали шлюз по умолчанию на интерфейсе LAN, рисунок справа), и единственный маршрут в нашу сеть – через LAN интерфейс, что и требовалось. Итак, с маршрутами на нашем маршрутизаторе разобрались. Автоматизировать настройку (или сохранить её в машиночитаемом виде для целей восстановления) можно с помощью netsh, скрипт в моём случае выглядит следующим образом:
NAT, Amicon ФПСУ IP/клиент и RRAS
В процессе длительных экспериментов наблюдал следующую картину: с нашего “самопального” маршрутизатора соединение с ФПСУ банка устанавливается, сервера банка доступны (tracert показывает маршрут в один hop, что и понятно – пролетает весь путь в туннеле ФПСУ). А с других компьютеров, с которых маршрут к серверам банка ведёт через наш Амикон-маршрутизатор, сервера банка недоступны. При этом на в ФПСУ IP/Клиенте в статистике видно, что пакеты он отправляет, а обратно ничего не возвращается. Возникло предположение, что сервер ФПСУ Амикона не выполняет NAT (об этом информация пробегала здесь). Именно этим, на мой взгляд (здесь – исключительно догадки), объясняется работоспособность решения с установкой фильтра на ISA хост с привязкой к WAN интерфейсу – ISA реализует NAT на WAN интерфейсе. Поэтому и выбрал серверную ОС – ради NAT (в RRAS). Итак, нам необходим NAT на интерфейсе Amicon.
В первую очередь останавливаем службу ICS (Internet Connection Sharing), устанавливаем для неё режим запуска – Отключена (рекомендую этот шаг выполнить через созданный выше GPO), запускаем мастер настройки маршрутизации и удалённого доступа. При настройке выбираем вариант NAT маршрутизатора без файрвола. После установки RRAS настроить его можно следующим сценарием NetSh:
Но суть сценария в разделе настройки NAT: интерфейс Amicon в режиме NAT-full, LAN – в режиме NAT-private.
На этом настройка нашего Амикон-маршрутизатора закончена практически. Теперь, при установленном соединении с ФПСУ банка сервера банка будут доступны с любой рабочей станции Вашей сети (благодаря NAT и маршрутам на ISA хосте).
P.S. Кстати, мы по-прежнему можем контролировать доступ к серверам банка с наших рабочих станций. Для этих целей мы можем использовать правила фильтрации на RRAS, которые, кстати, можно установить через GPO+GPP.
Настраиваем ISA Server
Теперь мы должны написать маршруты, благодаря которым трафик, направленный в адрес ФПСУ банка и хостов банка, будет направлен на наш Амикон-маршрутизатор.
Маршрутизация
Для начала следует уточнить адрес ФПСУ банка и адреса серверов банка (хостов в терминологии ФПСУ). Для этих целей щёлкаем правой кнопкой на значке ФПСУ IP/клиента в трее, пункт – “VPN-key Settings”. После ввода PIN кода администратора (Вы должны были получить PIN коды вместе с ключом) не забудьте установить опцию — “Администратор”, после чего жмём Ok.
Окно с настройками IP клиента представлено слева. Нас интересует разделы ФПСУ (адрес межсетевого экрана банка, в моём примере – 84.204.34.245) и Хосты (адреса серверов банка, маршрут к которым возможен только через туннель ФПСУ, в моём примере – 55.251.189.1).
Идея в следующем. На ISA хосте мы должны прописать маршрут к серверам банка через наш новоявленный Амикон-маршрутизатор. Я добавил маршрут через консоль RRAS, можно – через route add, как удобнее будет. В результате таблица маршрутизации на ISA хосте будет выглядеть приблизительно так:
Видите маршрут к серверам банка (55.251.189.1) через наше “ведро” (172.31.2.200)? Важно, чтобы это маршрут имел меньшую метрику, чем шлюз по умолчанию.
Маршрут прописываем только до серверов банка (хостов), ни в коем случае не до ФПСУ банка! (иначе получим кольцо и связи не будет).
P.S. Для каждого ФПСУ нам придётся использовать своё “ведро”-маршрутизатор, и для каждого – маршрут на ISA хосте.
Забыли про LAT?
Я думаю, Вы уже получили ругань в журнале событий на ISA хосте. И правильно — мы новую локальную подсеть создали, а в LAT то её кто будет прописывать? В общем — вносим 192.168.202.0-192.168.202.255 в LAT в консоли ISA сервера, перезапускаем ISA Control.
Правила протоколов (protocol rules)
-
В первую очередь добавляем описание протокола (Protocol Definition): UDP 87, Send-Receive.
- Следующим шагом создаём Client Address Set. Ограничим мы свои хосты, с которых возможно будет по UDP87 выйти в сеть. Включаем только IP адрес Amicon интерфейса нашего “маршрутизатора” (192.168.202.201 в моём примере).
- А теперь, собственно говоря, переходим к созданию Protocol Rule (картинки ниже).
ISA готова к эксперименту. Не забываем перезапустить службу Microsoft Firewall.
Эксперименты
Теперь пришло время подключить VPN. На нашем “маршрутизаторе”, в меню клиента ФПСУ – Подключить. Если на предыдущем шаге всё сделано правильно, то с нашего маршрутизатора tracert выдаст следующий результат:
Ну а благодаря NAT аналогичный результат (как минимум – на один hop длиннее) мы получим с любой рабочей станции Вашей сети.
MTU + ФПСУ IP клиент = проблемы
Однако, без без потенциальных проблем и здесь не обошлось. Очевидно, что фильтру Амикона требуется увеличить размер пакета, чтобы дописать свой заголовок. По результатам экспериментов – 28 байт требуется. В моём случае до ФПСУ банка допустим MTU 1500. Из-за дополнительного заголовка ФПСУ – 1472 байта. Первое, что приходит в голову – установить на интерфейсе Amicon MTU 1472.
Но не тут то было. Запускаем тест с рабочей станции Вашей сети:
Флагом –f мы запрещаем фрагментацию пакетов. Размер пакета (1470) меньше MTU (1472), поэтому ICMP ответа “требуется фрагментация” не последует. Но с заголовком размер пакета составит 1498. Меньше 1500. Но ведь размер – больше MTU, поэтому и уйти такой пакет через сетевой интерфейс не сможет. И какой бы размер MTU мы не установили в реестре, проблема размером в 28 байт сохранится.
По моему субъективному мнению, разработчикам IP клиента была допущена архитектурная ошибка. Не было бы никаких проблем, если бы клиент создавал новый виртуальный сетевой интерфейс, как и многие другие VPN решения. Тогда не возникло бы и проблем с установкой MTU для этого нового виртуального интерфейса – берём MTU сетевого интерфейса, через который поднят VPN, вычитаем 28 – и получаем MTU виртуального Amicon VPN интерфейса. Но Амикон пошёл другим путём, они создали NDIS фильтр. Хотя, судя по MSDN, фильтры не должны изменять размеры пакетов. А фильтр Амикона – меняет. Вот и результат.
Другими словами – с MTU проблема у ФПСУ IP-клиента. В любом варианте установки. При этом, если отправитель не выставит флаг “фрагментация запрещена” – проблем не будет (пакет будет фрагментирован, что подтверждается успешным выполнением ping –t 213.148.164.75 –l 2000). А если отправитель выставит этот флаг, и размер пакета будет меньше MTU сетевого интерфейса, но больше, чем (MTU-28 байт) – не будет и ICMP ответа о необходимости фрагментации, и пакет отправлен не будет.
По факту могу сказать, что ни клиент СБ РФ, ни СПЭД не выставляет флага “фрагментация запрещена”. Поэтому и проблем не возникает, хотя потенциальная проблема при этом существует.
Периодический разрыв соединения и что с этим делать
По поводу разрыва соединения через интервал keep-alive пришла в голову идея — а он и должен рваться! Он не может не рваться, я бы сказал. Ведь не стоит забывать, что на ISA работает NAT. Protocol rule — send-receive. Время жизни динамического сопоставления UDP в NAT невелико. В моём случае из огромого потока коротких UDP сессий время жизни UDP сопоставления пришлось уменьшить до 1 минуты. При установке RRAS на Windows 2003 по умолчанию время жизни UDP сопоставлению будет 60 минут. Дальше всё зависит от keep-alive интервала, установленного на ФПСУ сервере. Ответный пакет (точнее любой входящий пакет) от ФПСУ сервера к клиенту будет пропущен не позднее, чем через (время жизни UDP сопоставления) после отправки последнего пакета от клиента серверу! А keep-alive на стороне ФПСУ сервера, как я понял (опять-таки — догадки), обрабатывается просто — сервер посылает пакет клиенту. И в моём случае это время выше времени жизни UDP сопоставления. Ну так пакет клиента и не достигнет.
Предложил разработчикам контролировать keep-alive на стороне клиента ФПСУ, а не сервера. Именно клиент должен посылать запрос (пакет) через keep-alive интервал после последней активности. Если не получает ответ — канал разорван. А сервер просто ждёт чуть больше, чем keep-alive интервал на клиенте. Если нет пакетов от клиента — то и слать незачем. Можно попытки на сервер и оставить, они не помешают, но на клиенте их надо ввести. В этом случае клиент отправляет пакет, вновь создаётся (либо «обновляется» время жизни существующего) сопоставления на NAT для NAT клиентов, и ответ от сервера в течение времени жизни UDP сопоставления спокойно пройдёт обратно.
Пока же, если у Вас также имеют место быть ограничения на максимальное время жизни UDP сопоставления на NAT, предлагаю создать назначенное задание на Амикон маршрутизаторе от имени Local System: раз в пять минут запускаем
В роли ip — адрес любого из хостов, прописанных в Вашем VPN-key. Подобное простое задание лучше всего повесить через GPP, и оно будет поддерживать UDP сопоставление на ISA NAT.
А что же FWC?
По логике вещей на нашем спецмаршрутизаторе не нужен FWC вовсе. Но с другой стороны – он и не помешает, не сможет! Так что никаких специальных настроек FWC не потребуется. Однако, рекомендую отключить службу агента клиента межсетевого экрана, опять-таки – через GPO (можно даже и без GPP).
По описанным выше причинам авторизация на протокол UDP87 возможна только по IP адресам. Если требуется авторизация по учётным записям, следует запускать службу Амикона от имени специальной учётной записи, включить FWC — и авторизация возможна. Но здесь не об этом.
Да, FWC не требует настройки на Amicon-маршрутизаторе, но на клиенте-то (СПЭД, клиент СБ РФ) требует!
IP пакеты должны идти напрямую от workstation в адрес сервера (хоста). То есть, если они и проходят по пути какие-либо туннели, то они должны выйти из этих туннелей до фильтра Amicon NDIS IM Filter Driver, то есть — до нашего Amicon-маршрутизатора, иначе последний их просто “не поймает”.
Что же нам может помешать? А помешать нам может FWC. Вспомним, как он себя ведёт. Для того, чтобы обеспечить авторизацию трафика на ISA firewall service, он также “заворачивает” пакеты клиента, отправляемые за пределы LAT. Если мы не исключим FWC в нашем случае, ISA firewall service безусловно “развернёт” туннель FWC, и пакеты “уйдут” через внешний интерфейс ISA, однако при этом они не попадут на наш Amicon-маршрутизатор. И, соответственно, не пройдут межсетевой экран банка. Итак, FWC нам необходимо исключить для трафика клиент-банка (точнее — для любого трафика, который должен идти через туннели ФПСУ).
Смотрим настройки FWC (application.ini) и дописываем исключение для клиент-банка:
Важны последние две секции: для «родного» клиент-банка и для СПЭД соответственно.
Обращаю внимание. Настройки могут быть как глобальными (через mspclnt) так и специфичными для приложения (wspcfg.ini в каталоге программы). Порядок и приоритеты:
Для СПЭД можно использовать файл wspcfg.ini с указанным выше содержимым в каталоге клиент-банка рядом с исполняемым файлом, для «родного» клиент-банка — нет. Будем пробовать глобальную конфигурацию.
Внёс изменения непосредственно в консоли ISA. После этого перезапустил клиент файрвола (FWC) на машине, сеанс связи клиент-банка — и всё идёт.
ISA, DNS PTR и проблемы с подключением Амикон ФПСУ IP-Клиента
Остановлюсь на одном неочевидном моменте, не имеющим напрямую отношения к ФПСУ. Проверьте наличие PTR записи в обратной зоне DNS для IP адреса ФПСУ сервера банка. В моём случае:
Если для Вашего ФПСУ картина та же — будут проблемы. Соединение с ФПСУ банка будет устанавливаться далеко не с первого раза, и во время нагрузок ситуация вообще будет плачевная (с 100ого раза, а то и того хуже). Причину подсказал Network Monitor:
Хорошо видно, что между запросом и ответом прошло более 9 секунд!, естественно, клиент ответа не дождался. А причина такого поведения ISA (задержка именно из-за ISA, проверено с помощью сниффера провайдера) — в отсутствии PTR записи для ФПСУ сервера в обратной зоне DNS.
- либо отключаем логгирование на isa для firewall service («отключение» полей с fqdn не помогает, проверено)
- либо заставляем админов банка добавить ptr запись в обратную зону для своего сервера
- либо создаём на своих dns серверах обратную зону для адресов их сервера (да, это неправильно, но от них реакции ждать долго, а это решение можно реализовать за несколько секунд).
- возможно, есть решение с отключением rdns запросов на isa (для логгирования) через реестр, но пока его не нашёл. Буду рад подсказкам.
У себя создал обратную DNS зону на своих серверах следующего содержания:
И без перезапуска сервисов на ISA всё просто «залетало». Соединение поднимается с первого раза за доли секунды! Результаты RDNS запроса:
Вот такие вот тонкости…
Итоги
На этом и всё. Итого – мы добились работоспособности клиентов банка СБ РФ без каких-либо настроек ФПСУ на клиентах, не устанавливая при этом потенциально проблемного софта на ISA/TMG.
Можно избежать лишних затрат на технику и на лицензии, если у Вас есть лицензия на Windows Enterprise Server. Для описанных задач вполне подойдёт и виртуальный сервер. Но – нет поддержки в Hyper-V передачи USB портов в виртуальную среду. Зато есть сторонние решения типа USB-to-LAN. Я надеюсь, в ближайшее время смогу испробовать это решение в описанной задачи.
Кроме того, доступны программные решения для организации виртуальных сетевых интерфейсов, которые в контексте описанной задачи помогут исключить необходимость во втором “физическом” сетевом адаптере (безусловно, в случае виртуального сервера подобное решение смысла не имеет).
Высшее образование по специальности "Информационные системы". Опыт работы системным администратором - 5 лет.
К интернету сейчас подключаются почти все устройства, которые имеют сложные управляющие платы. Постепенно техника придет к стандарту «умный дом», в котором можно дистанционно регулировать температуру, варить кофе, включать розетки и делать все остальное.
Почему возникает ошибка
Причин появления подобной ошибки несколько. В самом простом случае, ваш компьютер получил недопустимый айпи адрес, поэтому не может выйти в интернет. Это сбой со стороны провайдера или роутера.
Также проблемы с подключением возникают, если сетевая карта не может принять нужные настройки, или они были установлены вручную и слетели. В этом случае плата ethernet не имеет возможности передавать данные по сети.
Такие же проблемы возникают и с беспроводной сетью. Причины те же самые, только здесь уже стоит грешить на роутер или сетевую плату. Такие неполадки с сетью характерны для любой версии операционной системы.
Перезагрузка устройств
В большинстве случаев сбои происходят в программном обеспечении. Такое возможно при долгой работе устройства или при большой нагрузке на него. Мелкие проблемы постепенно копятся и превращаются в серьезную ошибку. Если компьютер или роутер накопили мелких проблем, из-за которых что-то отключилось, то здесь поможет перезагрузка. Перезагрузите компьютер через меню Пуск – «Выключение» – «Перезагрузка».
На маршрутизаторе попробуйте найти кнопку выключения или перезагрузки.
Если не получится, можно вытащить кабель блока питания и подождать секунд 30. Также, если зайти в меню и перейти в системный пункт, то там можно найти опцию перезагрузки. У роутера каждой марки она прячется в своем разделе. Подробнее читайте в статье, как перезагрузить роутер.
Обновление IP
После перезагрузки обоих устройств стоит провести обновление параметров IP. Это поможет в том случае, если они передаются нормально, но компьютер их почему-то не хочет устанавливать. Обычно они слетают из-за проблем с DHCP сервером, которым является маршрутизатор. Хотя и сам провайдер передает адреса, если кабель воткнуть напрямую в компьютер.
Для обновления параметров откройте Пуск, введите в нижней строке «cmd», щелкните по «Командной строке» правой кнопкой мыши и в меню выберите «Запуск от имени администратора».
После этого откроется консоль, в которой выполняются все команды. По очереди введите:
Это поможет получить новые настройки сети от маршрутизатора или провайдера. Если вы устанавливали их вручную, то нет особо смысла в выполнении команд. С их помощью будут обновлены параметры, которые запрашиваются из удаленного источника.
Сброс сетевых настроек
Если ни один из предыдущих пунктов не помог, остается только провести полный сброс сетевых настроек на компьютере или ноутбуке. Если роутер настраивается автоматически, то все настроится самостоятельно. При ручной настройке потребуется заново ввести все данные, так что лучше заранее уточните или вспомните, какие параметры и как вы настраивали.
Через параметры Windows
Здесь будем описывать только тот способ, который подойдет для десятки. Для остальных систем проще будет применить командную строку. Для начала нажмите на Пуск, потом на шестеренку с левой стороны и выберите пункт «Параметры». Также можете просто нажать сочетание клавиш Win+I, откроется нужное окно. Здесь выберите «Сеть и интернет».
В левой части открывшегося окна нажмите на раздел «Состояние». Теперь в правой части перейдите к самому низу. Здесь появится пункт «Сброс сети».
Откроется новое окно. Здесь есть только одна кнопка «Сбросить сейчас». Нажмите на неё. Учтите, что компьютер перезагрузится, так что закройте и сохраните все важные документы.
После этого получите новые настройки автоматически или произведите ручной ввод параметров.
Через командную строку
Здесь все одинаково для любых версий операционных систем. Перейдите в Пуск и запустите там командную строку с правами администратора.
Теперь вводите следующие команды, после каждой из них жмите на enter:
- netsh int ip reset
- netsh int tcp reset
- netsh winsock reset
- ipconfig /flushdns
- route –f
Затем нужно перезагрузить компьютер. С помощью этих команд вы сможете полностью сбросить настройки tcp/ip, очистить параметры в виндовс, сбросить кэш DNS и полностью почистить таблицу маршрутизации. Фактически, по своим сетевым параметрам перед вами будет новая операционная система, как будто ей не пользовались и ничего не настраивали.
Проверка параметров tcp ip и dns, сброс кэша
Если ни один из способов не помог, остается заняться ручной настройкой. Сначала нажмите сочетание клавиш Win+r и введите команду «ncpa.cpl».
Откроется окно с сетевыми подключениями. Количество значков будет различаться в зависимости от того, сколько у вас сетевых или беспроводных карт, а также подключений к разным провайдерам. Для работы выбирайте активный адаптер , потому что именно он используется сейчас, и на него должны влиять настройки. Найдите такой, щелкните по нему правой кнопкой и выберите «Свойства».
В открывшемся небольшом окне найдите «IP версии 4(TCP/IPv4)». Щелкните по нему два раза или выделите строку и кликните по «Свойствам». В этом же окне можете снять галочку с «IP версии 6(TCP/IPv6)», потому что для домашнего роутера данный параметр не пригодится.
Здесь введите IP адрес роутера. Если не знаете, что писать, посмотрите в настройках. Обычно у него адрес 192.168.1.1. Введите его в строку с адресом шлюза, а в качестве основного адреса компьютера поставьте, например, 192.168.1.150. Главное, чтобы от адреса роутера отличалась только последняя цифра. В качестве ДНС укажите 8.8.8.8 и 8.8.4.4. Это ДНС-адреса Google и они точно являются рабочими.
Настройка антивируса
Если настройка не помогла, стоит проверить антивирус. Сейчас некоторые программы, даже бесплатные, сразу имеют встроенный анализатор трафика, чтобы предотвращать атаки. Фаервол же встроен в любой из этих антивирусов. Сложно представить, как конкретно вызывается такая ошибка, возможно, антивирус блокирует поступление данных от роутера или провайдера, но тогда должна помочь ручная настройка. Лучше всего полностью удалить антивирус, а потом перезагрузить компьютер. Если это не помогло, то проблема вряд ли в нем. Часто жалуются на антивирус Avast, так что рассмотрим, как решить проблему.
В верхнем правом углу нажмите на кнопку «Меню». Появится список из всех пунктов, нажмите по кнопке «Настройки». Перейдите на вкладку «Общие», щелкните по «Устранение неисправностей» и здесь кликните по «Вернуть настройки по умолчанию».
Перейдите снова в список адаптеров и откройте свойства активного подключения. Поищите здесь в списке пункт, который содержит название вашего антивируса в названии и снимите с него галочку. Это позволит убрать влияние антивируса на подключение.
Переустановка драйвера
Бывает, что после обновлений устанавливается другой драйвер сетевого адаптера. Это характерно для плат беспроводной сети, потому что они чувствительны к драйверам.
Для ручной установки зайдите на сайт производителя своей материнский платы (если сетевая карта встроенная), сетевой карты или ноутбука и скачайте оттуда драйвера для своей версии операционной системы. Установите их и перезапустите компьютер. Если поможет, то нужно всегда держать их при себе, а лучше заблокировать обновления драйверов для системы.
Если ничего не помогло
Есть еще несколько вещей, которые стоит проверить:
- Проверьте наличие утилиты Bonjour. Если вы устанавливали какое-то ПО от Apple (iTunes, iCloud, QuickTime), то с большой вероятностью в списке установленных программ у вас есть Bonjour. Часто именно она мешает работе сетевой карты.
- Нажмите win+r и введите msconfig. В первом окне выберите «Диагностическая загрузка». Это позволит отключить все лишние службы.
- Зайдите в Пуск, найдите там восстановление системы, откатите её к тому моменту, когда интернет работал.
- Постарайтесь вспомнить, что вы устанавливали или удаляли перед тем, как пропала связь. Верните все, как было.
Если ничего не помогает, то остается только обращаться в официальную поддержку Майкрософт или переустанавливать систему, чтобы начать с чистого образа.
Читайте также: