Клієнт-банк СБ Україна вічне - початок відправки файлу - або NAT, FTP та іншічудеса, Бетке Сергій iT
Клієнт-банк СБ РФ: вічне "початок відправки файлу" або NAT, FTP та інші дива
І знову - проблеми з клієнт-банком РБ РФ. Зависаємо на "початку відправки файлу", і висимо вічно. Розберемося з цією проблемою та вирішимо її.
Клієнт СБ Україна та мережеві з'єднання
Про варіанти налаштування Амікон ФПСУ IP/Клієнта вже не раз писав. Найбільш симпатичний мені останній реалізований варіант – з виділеними ФПСУ-маршрутизаторами (рішення сервер-центристське, і дає нам можливість мати кілька одночасно піднятих каналів до кількох ФПСУ).
У цій статті торкатися Амікону ФПСУ не буду, мова піде про одну з проблем самого клієнтаwCLNT.exe.
wCLNT, FTP та NAT
Не раніше, ніж сьогодні з ранку почалися дива - всі клієнт-банки СБ Україна (у нас кілька організацій) при спробі з'єднання з сервером банку зависали на стадії "Початок відправки файлу" (картина маслом справа).
З клієнт-банком СБ Україна не перший рік маю справу, тому знаю, що “файли” він відправляє на ftp сервер банку. Запускаємо Network Monitor, виставляємо capture filter:FTP. (так, просто FTP. Будемо контролювати весь FTP трафік). І запускаємо наш монітор. P.S. Нагадаю, у моєму випадку Амікон клієнт встановлений на іншому хості, тому ніхто і ніщо мені не заважає контролювати реальний трафік самого клієнта, який ще не обернутий в UDP-87.
Бачу наступну сесію ftp:
Клієнт отримав "відлуп" від сервера банку, але при цьому продовжує "висіти" і ще чогось чекати.
Втім, красиво. Клієнт, розроблений в першу чергу для корпоративних середовищ, в яких NAT (а то – і не один) у порядку речей, намагається встановити активне ftp з'єднання! Цей варіант буде працювати в корпоративному середовищі через свисток (USB-модем) або будь-який інший модем збілим ip. Використовуй клієнт пасивний ftp режим (далі наведу приклад успішної сесії вже пасивному режимі) – і жодних проблем взагалі ні для кого!
Отже, проблему локалізовано. Потрібно змусити wCLNT.exe використовувати пасивний ftp (PASV замість PORT). P.S. Досі не натрапив на цю проблему через особливості реалізації ФПСУ каналу – використав варіант із встановленням на ISA хост. На ISA працює успішно ftp-фільтр, який і забезпечував працездатність активного ftp через NAT, а без цього фільтра проблема спливла.
Вже традиційно консультації з техпідтримкою банку до вирішення проблеми не призвели. Фахівці техпідтримки побачили "файли нульової довжини", з чого зробили висновок, що ми маємо проблеми з файрволом або антивірусом. Насправді файл на ftp сервері банку створюється за командою APPE, а з'єднання (у відповідь на PORT) з сервера банку на сервер клієнта ще не встановлено, і не буде встановлено. В результаті - файл є, контенту в ньому немає.А причина – в активному режимі ftp з'єднання на клієнті.
Пошуки в інтернеті наштовхнули на хитрі записи у реєстрі клієнта:
Вище наведено вже "правильне" значення, при встановленні в реєстрі буде 00000000. Саме цей параметр відповідає за режим ftp з'єднання клієнта wCLNT. Лихо лише в тому, що вказаний параметрPassive доведеться змінювати / створювати для кожного користувача (він не в HKLM, а в HKCU), кожного клієнт-банку (для кожного clientXXXX), і для кожного облікового запису в клієнт -банк (оператор XXXXX, адміністратор і так далі). І GPO тут не надто допоможуть, на жаль…
Ложка дьогтю – цей параметр має силу далеко не на всіх версіях клієнта! Ми використали рекомендовану нашим відділенням СБ Україна7.12.5.2225.саме в цій версії цей параметр не впливає на поведінку клієнта! Виправлена проблема починаючи з версії 7.12.7, я ж оновив клієнта одразу до версії7.15.2.2240. І у вказаній версії зміна значення параметраPassive у реєстрі вже має силу. В результаті маємо сесію:
ЗамістьPORT бачимоPASV, тобто маємо пасивний режим FTP, який буде сумісний з будь-яким NAT. Разом проблема вирішена.
Отже, описана проблема виникне:
- якщо у Вас сірі IP та NAT без ftp фільтра;
- навіть якщо у Вас NAT з ftp фільтром (скажімо – ISA/TMG), але з'єднання з банком – через Амікон ФПСУ IP/клієнт (бо ftp фільтр на NAT у цьому випадку безсилий);
- і навіть якщо у Вас “свисток” чи інший модем, але із сірим IP.
І вирішується проблема:
- або винятком NAT (білий ip, налаштування файрвола під ftp);
- або ftp фільтром на NAT (але до ФПСУ ip клієнта! );
- або встановленням параметраPassive у реєстрі, як показано вище, та оновленням версії клієнта.
Величезне прохання до розробників клієнт-банку РБ РФ:
- повністю виключіть можливість використання активного ftp з'єднання (пасивний ftp ні в кого проблем не створить);
- ну або в крайньому випадку забезпечте підтримку та пріоритетність параметра Passive у ключіHKLM\Policies \Software\SBRF\WCLNT (саме в цьому ключі, а не "глибше", у крайньому випадку - HKCU\Policies \Software\SBRF\WCLNT) над іншими параметрами Passive в HKCU (у цьому випадку хоча б буде можливість через GPO встановити даний параметр для всіх інстанцій клієнт-банку, зараз же - доведеться працювати руками).