Размясціце VPN-шлюз побач з Windows XP, а не ўнутры яго
Пакіньце стары хост Windows XP канцавым пунктам праграмы, а тунель, яго ключы і абнаўленні перанясіце на шлюз побач.
Дзесьці ў будынку стаіць машына, якая запускае праграму, якую ніхто не можа замяніць, на аперацыйнай сістэме, якую нельга ні з чым злучаць. Рух ад сеткавага адаптара гэтага хоста вонкі — самы хуткі спосаб убачыць, дзе павінен быць тунель. У большасці праектаў ён зусім не павінен быць на хосце. Перанясіце яго на адзін крок убок, на шлюз, які абслугоўваецца, і старая праблема сціснецца да праграмы, з якой пачалася.
Пачніце з адаптара хоста, а не з VPN-кліента
Адкрыйце ўласцівасці адаптара і дайце хосну фіксаваны адрас у невялікім выдзеленым сегменце, а шлюз зрабіце яго маршрутам па змаўчанні. Тады хосну не патрэбны ні тунельны кліент, ні ўліковыя даныя тунеля, ні запісы табліцы маршрутаў да шырэйшай карпаратыўнай сеткі. Калі праграме патрэбна адна аддаленая падсетка, дадайце менавіта гэты адзін маршрут.
C:\> route add 10.20.30.0 mask 255.255.255.0 192.168.50.1 -p
Гэтая каманда прывязвае адзін пункт прызначэння да шлюза і пакідае ўсё астатняе без маршруту, а гэта і ёсць патрэбная форма. Пацвердзіце вынік з дапамогай route print, а не давярайце коду выхаду. Затым праверце, што праграма ўсё яшчэ развязавае імя сервера, бо стары хост са зламаным рэзалверам выглядае як збой сеткі, а выправіць рэзалвер — пяціхвілінная справа, тады як перабудова праграмы пасля памылковага змянення сеткі — не. Кожны пункт прызначэння, да якога хост не дастае, — гэта яшчэ адна меншая магчымасць схіліць стары сеткавы стэк да атакі.
Размясціце тунель на абсталяванні, якое можна абнаўляць
Шлюзу патрэбны два інтэрфейсы: адзін глядзіць на сегмент хоста, другі — туды, дзе жыве праграма, а тунель завяршаецца на другім. Гэтая прылада можа атрымліваць абнаўленні прашыўкі, змяняць крыптаграфічную канфігурацыю і весці журнал патокаў, не кранаючы старую машыну. Яе пастаўшчык таксама выпускае выпраўленні для рэалізацыі тунеля, якіх хост ніколі не атрымае. Дзве машыны і дэдлайн — не прычына капіяваць рэцэпт са статычным сакрэтам з допісу на форуме.
Дайце кожнаму шлюзу ўласную ідэнтычнасць суседняга вузла замест таго, каб капіяваць адну кліенцкую канфігурацыю на ўвесь парк. Калі адзінку замяняюць, адклічце старую ідэнтычнасць у той самы момант, калі ўключаеце новую, інакш у вас апынуцца дзве некантраляваныя копіі, што аўтэнтыфікуюцца на адзін канец. Захоўвайце ключы там, дзе іх чакае плоскасць кіравання шлюза, стаўцеся да рэзервовай копіі канфігурацыі як да сакрэту і правярайце, хто можа яе адпраўляць, бо цяпер гэта вырашае, да чаго стары хост мае доступ.
Дазваляйце паслугі, а не сеткі
Запішыце палітыку ў тэрмінах пратакола, порта і кірунку паміж двума далучэннямі. Адзін дазволены порт да аднаго адраса праграмы — звычайны адказ, а адміністрацыйны шлях праз прамежкавы хост пакрывае астатняе.
Аддаленае кіраванне старым хостам не павінна ісці па тым самым правіле, што і праграма, і праверка адмовы не менш важная за напісанне правіла. Адпраўце адзін запыт з хоста да пункта прызначэння, які павінен быць адхілены, і пацвердзіце, што адмова паходзіць ад палітыкі, а не ад адсутнага маршруту. Вядзіце журнал дазволеных патокаў, пакуль праект новы, каб бачыць, што праграма фактычна выкарыстоўвае, а не што сцвярджае яе дакументацыя. Аб'яднанне дзвюх падсетак таму, што мост-падручнік выглядаў карацейшым, — гэта спосаб, якім стары сегмент ціха робіцца плацдармам.
Не выстаўляйце стары слухач непасрэдна ў інтэрнэт як кароткі шлях вакол шлюза. Трымайце адміністрацыйны шлях асобна ад шляху праграмы, каб кампраміт аднаго не перадаваў другі. Правіла, якое ніколі не выконваецца, — гэта правіла, якое ніхто не правяраў, і таму адхілены пункт прызначэння належыць у прыёмачны прагон.
Аднаўленне павінна працаваць без тунеля
Вызначце, хто абнаўляе і аднаўляе шлюз, да першага збою і пераканайцеся, што гэты чалавек можа дабрацца да яго без тунеля, які той завяршае. Доступ праз кансоль, лакальны порт кіравання або пазапалосны шлях — усё гэта падыходзіць. Шлюз, які можна наладзіць толькі праз тунель, што ён прадастаўляе, — гэта пастка, якая цярпліва чакае дрэннага абнаўлення прашыўкі.
Напішыце інструкцыю для збою, які вы сапраўды сустрэнеце: тунель не працуе, шлюз мёртвы, дыск хоста знік. Захоўвайце вобраз аднаўлення хоста ў рамках любой дамоўленасці аб падтрымцы, якая яшчэ існуе, і памятайце, што аднаўленне таксама вяртае стан праграм і ўліковыя даныя ў гэтым вобразе. Спачатку аднавіце на ізаляваным сегменце, пацвердзіце, што праграма запускаецца, і толькі потым нешта падлучайце; калі шлюз змяніўся, абнавіце інструкцыю і інвентар у тым самым пасяджэнні.
Сертыфікаты, гадзіннікі і папярэджанні аб подпісе
Заканчэнне тэрміну сертыфіката ўстаноўшчыка само па сабе не прадказвае, што сёння скажа праверка подпісу. Кіраўніцтва Microsoft па часовых пазнаках Authenticode тлумачыць, што часовая пазнака можа захаваць подпіс правяральным пасля заканчэння тэрміну сертыфіката подпісу, і праверка ўсё яшчэ залежыць ад подпісу, ланцуга даверу і правяраючага. Таму дзве машыны з рознымі сховішчамі даверу могуць разыходзіцца ў меркаванні пра адзін і той жа файл. Пратэрмінаваны падпісант не з'яўляецца доказам таго, што бінарны файл шкодны, а сапраўдны подпіс не з'яўляецца доказам таго, што праграма суправаджаецца.
Не пераносьце сістэмны гадзіннік назад і не адключайце праверкі подпісу, каб запусціць стары ўстаноўшчык. Атрымайце дазволены артэфакт у таго, хто яшчэ падтрымлівае праграму, і хай яны скажуць, што платформа прымае. Стаўцеся да допісаў, якія сцвярджаюць, што пэўная зборка была апошняй для XP, як да гісторыі, а не як да мэты ўстаноўкі, бо рэальная патрэба залежыць ад праграмы; калі праца па захаванні сапраўды патрэбна, трымайце яе на ізаляваным сегменце далей ад вытворчага доступу і дакументуйце, навошта яна існуе.