Ami nem győz le, az erőssé tesz

Ha nem számolom a csikó korabeli nekilendüléseket, életem legelőkészítettlenebb munkáját tudom magam mögött. Minimális helyismeret és ezzel összemérhető mennyiségű előkészítés után kellett egy nehéz ügyfélnél lábon upgradelni egy ISA2000 szervert 2004-re. Az hagyján, hogy ilyet eddig még tesztként sem csináltam, de a VPN-ek sem tartoznak igazán az erősségeim közé.
Azért megpróbáltam begyűjteni információkat arról, hogy mekkorára kell nyitnom a számat. Nos, azt hiszem a New York – Tel Aviv tengely(1) mellett találtam még egy globális összeesküvést: arról szól, hogyan tüntessünk el minden nyomot, mely esetleg eligazíthatná a szegény tévelygő rendszermérnököt. Első körben megnéztem Shinder 1400 oldalas könyvében. Mindösszesen fél(!) oldal foglalkozott a témával. Azt írta a pacák, hogy ez egy igen bonyolult téma, helyhiány(!!) miatt nem foglalkozik vele. Nézzem meg az ISA2004 helpjében. Ezzel beállította az IT konteszt ‘cédén szállított cédé driver’ baromsági világrekordját.
Még jó, hogy van másik ügyfelünk. Beléptem hozzájuk és a szerzői és szomszédos jogok mély és eltökélt ignorálásával egyenként vágólapra küldtem a teljes upgrade fejezetet.
A biztonság kedvéért átfutottam a netet és egy teljesen más című fejezetben a KB-ben is megtaláltam ezt a szöveget. (Meg egy chm-ben is.) De sehol sem volt semmi más anyag! Belefutottam ugyan egy hasznosnak tűnő német nyelvű leírásba, ezt azért elraktam. (És bíztam benne, hogy nem múlt el nyomtalanul a Duden korszak.)
Ennyi volt az előkészület. Terv – az nem volt, hacsak azt a folyosói kérdést nem tekintem annak, hogy ‘mit saccolsz, mennyi ideig fog ez tartani?’.

Reggel kilenckor kezdtünk. Mivel GT-től egy nagyon plasztikus hasonlatot kaptam(2) a beépített kuruzsló működésével kapcsolatban, ezért az ügyfélnél úgy döntöttem, hogy kiegészítem a beépített mentési módokat: kiírtam az összes elemet, beállítást és infót egy spirálfüzetbe. Ezzel kettős célom volt: egyrészt védőhálót szereltem a mutatvány alá, másrészt írás közben már próbáltam kialakítani a 2000 meglehetősen kusza rendszeréből a 2004 szabályait.
Itt követtem el két súlyos hibát:
– Volt négy content rule, ahol egyfajta blacklist alapú tiltást valósítottak meg. Hülye fejjel _nem_ húztam le a csúszkát megnézni, hogy milyen hosszú a lista – úgy gondoltam, ezzel úgyis simán meg fog birkózni a kuruzsló.
– Találtam az interneten egy vbscriptet – de nem bíztam benne. Ez állítólag emberi formátumba képes kiexportálni a konfigot. Lefutattam, megnéztem az első pár oldalt, aztán lehúztam a csúszkát a végéig, az is tetszett, megnyugodtam, kész. És nem tűnt fel, milyen bazi nagy lett az állomány.
Indulás előtt volt egy konfig mentés, aztán hagy szóljon. A migration file legyártása kerek három óráig tartott. Még itt is gyanút foghattam volna.
Aztán törölte a régi alkalmazást, felrakta az újat és már csak be kellett importálni az átkonvertált konfigot. Ja. Másfél óra gyötrődés után elszállt az import. Annyit mondott, hogy talált egy IP címett, amivel nem tudott mit kezdeni. Mi meg csak álltunk ott, bambán. Semmi olyan opció nem volt, hogy lépjük át aztán folytassuk.
És ekkor közölte az ügyfél is, hogy ‘ja, megtaláltátok azt a kétszázezres tiltólistát?’. Két perc néma csend után hangzott el a bűvös szó: rollback. Konfig mentés van, visszaállítás után majd töröljük a 4 content rule-t és újrakezdjük az egészet.
Itt léptünk be a Pofonok Völgyébe.
Ott kezdődött, hogy hiába raktunk fel egy szűz ISA2000 alkalmazást, Windows2003-on nem indult el. Azt mondta az a hígagyú idióta, hogy mivel nincs digitálisan aláírva a packetfilter.dll (nem ez volt a neve, de ez volt a dolga), ezért biztonsági okokból kibassza az egész ISA2000 cuccot a rétre legelni. Többször is próbáltuk lebeszélni erről a gusztustalan viselkedéséről, de rohadt makacs volt. Nyilván utána lehetett volna járni a jelenségnek, csak éppen nem volt internet. Végül a tűzfalat állítottam be, hogy direktben nyomuljon… de nem voltam boldog.
A megoldás persze triviális volt: azt írta a KB, hogy ISA2000 SP1 nélkül ne is számítsunk arra, hogy működni fog Windows2003 alatt. (Máskor békés kollégám itt már igen furcsán kezdett viselkedni. Pedig hol voltunk még a végétől…)
Oké, Sp2 felugrott. (Sehová sem megyek nélküle.:) Konfig visszatöltés elindult, leállt, kiírta, hogy kicsi a registry mérete, legalább 24 MB kell. Oké, Gizi. Bementem a System/szokásos marhaságok panelbe – és döbbenten vettem tudomásul, hogy _nincs_ registry méret beállító ablak.
Próbáld elképzelni a szituációt: az ügyfél informatikusai épp átjöttek a szobánkba, ugyanis ekkor telt le az az idő, amíg elfogadható volt számukra a szolgáltatáskiesés. Mit találtak? Két, az őrület határán eszelősen hörgő/röhögő informatikust, akik minden szaktudásukat bevetve túrták a netet (google, KB, miatyánkkivagyamennyekben…) azért, hogy megtudják, hol lehet egy szerveren beállítani a registry méretét. Ha volt is valami respektünk eddig, az most kipukkant lufiként tottyadt össze.
Nagyon sokára találtuk meg ezt: miszerint Windows2003-ban (és az XP-ben) _nincs_ lehetőség átállítani a registry méretét, ugyanis nem a paged pool-hoz rendelték, hanem a computer cache address space-hez, bármi is legyen az – és úgy döntöttek, hogy – apám totóstílusához hasonlóan – fixre veszik. Nesze, kabbe.
Igaz, találtunk olyat is, hogy Windows2000-ben hol lehetett beállítani a limitet a registryben. Ekkor már marhára ráértünk, ugyanis az ügyfél sztoikusan előszedte a szekrényből a linuxos vésztartalékot – mi szépen átírtuk az IP címeinket, ők meg beindították a B tervet. És az internetelérést.
Kipróbáltuk a registry hekket, mit ád az ég, bejött. Azaz: annak a szájbanyomott konfigvisszatöltésnek nincs igazából szüksége a nagy registry határértékre – de nem indul el, amíg nem érzi úgy, hogy elég helye lesz. Ha behazudod neki, hogy van (ugyanis Windows2003 alatt ez a beállítás egyébként hatástalan a registry tényleges határértékére), akkor elindul.
Persze így se futott le: megkaptuk a rettegett ‘configuration mismatch’ üzenetet. Első körben nem volt nehéz továbblépni, nyilván az IP címek voltak rosszak. Kértünk egy HUB-ot, beledugtuk mindkét hálókártyát és sziget módban visszaállítottuk az IP címeket. De Mismatch kisasszony nem állt tovább.
Oké, nyomjuk fel a patch-eket. (Itt jött jól az elején az IsaInfoval elmentett információ.) Lófütty és ráadásul az utolsó patch újraindítást kért. Ekkor végleg megborultunk, mert immáron be sem tudtunk lépni a gépbe.
Hosszas diplomáciai tárgyalás után kiebrudaltuk a linux gépet és visszakaptuk élesben az IP címeinket, persze az újabb kísérlet után is mismatch vigyorgott ránk. Hogy azért-e, mert az elején egyből az Sp2-t tettük fel, vagy azért, mert nem a megfelelő sorrendben raktuk fel a patch-eket, vagy azért, mert nem tetszett neki a pofánk – már soha nem fogjuk megtudni, ugyanis feladtuk a rollback-et. Ott álltunk használható migrációs fájl nélkül, a rollback lehetősége nélkül, körülbelül éjfélkor. Az ügyfél informatikusai leszaladtak az éjjelnappaliba és hevesen nekiálltak sörözni.
Választhattunk: vagy csinálunk egy szűz 2004 installt és a spirálfüzetből beverjük a szabályokat – de ekkor elveszik az L2TP kapcsolathoz szükséges tanúsítvány; vagy berúgunk az ügyféllel együtt.
Meglehetősen reménytelenül belevágtam egy harmadik elképzelésbe: a migrációs fájl tulajdonképpen egy xml fájl; talán meg lehetne próbálni kézzel kiszedni belőle azt a kétszázezer objektumot. Ne kérdezd meg, hogyan sikerült. Az se érdekeljen, hogyan tudtam megcsinálni hajnalban, hogy egy tag-et se hibáztam el. Ne kérdezd meg… mert én se tudom. De sikerült – annak ellenére, hogy ekkor az összenyitott szomszéd szobában már igen magasra hágott a hangulat… no meg a bagófüst. (Csak érdekességképpen: az előtte 51 MB méretű xml fájl 260 KB-re szottyadt össze.)
Gyorsan felraktam egy szűz ISA2004-et, beimportáltam az új fájlt – és kb 40 másodperc alatt készen is voltunk. Szokásomhoz híven elvonultam egy kicsit ajtófélfát rugdosni – de már volt egy alapunk.
Persze, hiú remény lett volna azt hinni, hogy innentől minden simán ment.
Néhány példa a torkosborz minősített eseteire:
– Firewall kliensről nem ment az internet elérés, miközben a log tele volt 1745-ös port rohamozással. Azt mondta az ISA, hogy számára ez ismeretlen protokoll. Az a négykerekű anyád: ez ugyanis pont saját kliensei, a winsock kliensek elfogadott protokollja (remote-winsock). De akkor miért nem ismeri fel? Nos, azért, mert a sokadik objektum sokadik fülén valahol be volt kattintva, hogy csak secure firewall kliens kommunikációt értelmezzen. Kolléga tekintete ekkor váltott üvegesre és a továbbiakban már nem is kapta vissza az eredeti fényét.
– Egy idő után lehalt minden kommunikáció az ISA és a DC-k között. De abszolút, még az időszinkron sem ment. Annak ellenére, hogy a kapcsolatfigyeléseknél az LDAP tökéletesnek látszott.
Megint logelemzés: most meg tele volt tiltott 1025-ös port elérésekkel. Ez olyan kliens port szagú, de azért utánanéztem – és lepadlóztam, mert kiderült, hogy ez tulajdonképpen RPC.
Hát már a 135-ös portban sem bízhat az ember?
Mivel nem találtam meg, hogy hol lehet visszaállni erre az értékre, kínomban csináltam rá egy szabályt. Kicsi is, savanyú is, de a miénk. És helyreállt az ISA-DC kapcsolat.
– Persze a legszebb az volt, hogy a linuxos csereberével teljesen megborítottuk a hálózatot. Egyébként sem volt egy robusztus cucc, ehhez képest jól belengettük a DHCP-t és a DNS-t. A group policy is igen megroggyant – hasonlóan, mint hajnalban az adminok.
És itt futottam bele – megint – egy tipikus ISA2004 szívásba.
A mostani mellett nemrég frissítettem egy másik cégnél Proxy2.0-át ISA2004-re. Mindkét helyen belefutottam abba, hogy voltak hálózati anomáliák, melyeket a korábbi szoftver azért lekezelt. Rendszeresen kapott ugyanis olyan csomagokat, melyekhez tulajdonképpen semmi köze sem volt, de elég volt betenni egy statikus route bejegyzést – vagy még ennyit sem, elég volt a LAT – és ment minden a maga módján. Csakhogy az ISA2004 ezen változtatott: mohón behabzsol minden hozzá érkező csomagot és a szabályok alapján dönti el, mit csináljon vele. De egy dolgot biztosan nem fog csinálni: nem küldi vissza arra a hálókártyára, amelyiken bejött. Ebből következőleg mindegyik ügyfélnél hatalmas veszekedésekbe bonyolódtam: én azt mondtam, hogy szar a hálózatuk, ők meg azt, hogy az upgrade előtt jó volt, ha most rossz, akkor nyilván én csesztem el.
Természetesen a tuti megoldás mindenhol az volt, hogy group policyval le kellett küldeni, hogy mi számít helyi hálózatnak – és ilyetén módon proxy kivételnek. Feltéve, hogy működött a group policy.
Itt ez utóbbi esetbe futottunk bele, megspékelve azzal, hogy az ügyfél aktív desktopot használt, ahol a háttér egy linuxos webszerverről érkező, rendszeresen aktualizált weblap (php script) volt. Kösse fel a gatyáját, aki ebben a felállásban egyből megmondja, hogy az aktív desktop tkp. milyen kliens: firewall vagy webproxy? És miért néz ki úgy a desktop, hogy először betöltődik a weblap teljes képernyősen, majd utána rögtön még három ablakba? (Persze, a régi ISÁ-val nem volt ilyen baj. Oldjuk meg…)
Határozottan komoly fegyverténynek éreztem, hogy hajnali fél ötkor el tudtunk jönni úgy, hogy egy alapszinten működő rendszert hagytunk magunk mögött.

Rám maradt, hogy egy nappal később visszamenjek és elrendezzek mindent. Aludtam öt és fél órát és ezzel valószínűleg bajnok is voltam, mert az ügyfél embereinek talán 3-3 óra jutott. Sok minden már nem volt hátra, kipihenten gyorsan rendberaktam a maradékot.
Egy dolog zavart nagyon. Az egész migrációs cirkuszt amiatt a nyomorult tanúsítvány miatt csináltuk. Ha az nem lett volna, akkor legyalultam volna mindent a francba és egy szűz installba tömtem volna bele a füzetemből a szabályokat. De biztos, hogy átjött ez a cert? És egyáltalán, hol tudom ezt megnézni?
Felhívtam minden információk kútfőjét, GT-t. Nem akarom dramatizálni a helyzetet, kiderült, hogy a tanúsítvány egy olyan tárolóban volt, melyet teljesen hidegen hagyott az, hogy háromszor-négyszer kirántották alóla az ISA szervert. (Csak azt nem értem, hogy akkor a migrációs fájl készítésekor miért kérdezte meg, hogy akarom-e a cert-et is menteni?)
Ha nem jött volna le egyből a tanulság: azért szívtunk ilyen hatalmasat, mert olyan információt akartunk ezerrel védeni, mely egyébként simán képes volt önmagát megvédeni.
Na, mindegy, ami nem győz le, az erőssé tesz.
A jó pap meg bekaphatja.
Lassan érik egy PKI tanfolyam.

(1) Nehogy komolyan vedd! Vicc. Irónia…

(2) Olyan, mint a tököm -11 fokban.

Leave a Reply

Your email address will not be published. Required fields are marked *