“Tűzfal” mizéria

Végre, itt van. Napközbeni egésznapos küzdelem (szívás, avagy irodalmi nyelven: tanácstalan próbálgatás), hogy aztán minden sikerüljön és sok-sok tanulsággal legyünk okosabbak.
 
Úgy kezdődött, hogy reggel szlovéniából telefonáltak, még munkába menet, hogy nincs internet elérésük. Egypontos a kapcsolatunk az Internettel, ha nekik nincs, akkor nekünk sem. Persze általában nem ez a helyzet. A leggyakoribb, hogy nem cserélnek jelszót, pedig az XP belépéskor kiírja, hogy ‘Ma lejár a jelszava’, aztán a mission critical webezés közben a tűzfal könyörtelenül érvényesíti a házirendet: lejárt jelszóval nincs netezés. Ekkor jön a hívás, hogy "nincs internet". Hívtam Krisztiánt, aki viszont megerősítette a felhasználó bejelentését: tényleg nem lehet semmilyen forgalmat kezdeményezni az internet felé, méghozzá előző nap este hat óra óta. Már újraindította a tűzfalakat is, de hatástalan volt. (Krisztián nem tűzfal guru, ezt azért tudni kell, bár még így is igencsak említésreméltó tudással rendelkezik.)
 No, beérkeztem, táskámat ledobtam, aztán rajta. Az első, amit meg kellett állapítanunk az az, hogy Internet kapcsolat van, hiszen a külső tűzfalról a webböngészés vidáman megy, szintúgy a ping és a tracert, tehát nem az ISP-nél van a hiba, hanem nálunk. Már csak az a kérdés, hogy a külső, vagy a belső tűzfal rakoncátlankodik.
A külső tűzfal (Symantec Enterprise 8.0) logjaiból az is egyértelmű, hogy belülről továbbra is jönnek a kérelmek, amelyekre azután nem érkezik válasz, így a kapcsolatokra a SEF timeout-ot ad vissza, illetve ír be a logba. Ebből egyértelmű, hogy nem a belső tűzfallal van gond, kizárásos alapon marad a SEF. Nade mi lehet? Október 14. óta nem került rá firssítés, a múlt héten is csak azért léptem be, hogy kitöröljem a régi logokat, nehogy megteljen a merevlemez. Változás tehát kizárva. Vagy feltörték volna?
Úgy tűnik, hogy a SEF megkapja a csomagokat, ül rajta egy kicsit, majd azt hazudja, hogy ‘sajnos timeout’. Miért ül a csomagokon? Packetyzer! Nézzük meg mi történik.
Nos, a packetyzer egész fura dolgokat mutatott. Egyrészt csomag nem jött sehonnan. Egy 127.0.0.1-es gép küldözgetett valamit (ez, ugye, a localhost), de semmiféle csomagérkezést nem regisztrált Jó, a locahost érthető, a SEF egy teljesen proxy elven működő szoftver, ő minden TCP csatornát újrakezdeményez. Az persze már kérdés, hogy miért nem a külső láb IP címét látjuk. Jó, ez most legyen mindegy. Még egyszer ellenőriztem a SEF konfigot: szabályok a helyükön, protokollcsoportok a helyükön, a konfigurációban nincs ellentmondás (config validation). Ennek a SEF-nek működnie kell, csak éppen mégsem teszi. Nézegettem, nézegettem a logot és közben igencsak megutáltam. Egy JAVA-s környezetben fejlesztett, scrollozhatatlan, kezelhetetlen, ránézésre semmitmondó bejegyzések. A részletes eseményleírás jó, de minden eseményt egyesével kell megnyitni. Szörnyű. Ekkorra már tíz óra volt. Mit csináljunk. Két eset lehetséges:
  1. Eszkaláljuk a problémát a Symantec Platinum Support felé. Van ilyenünk, fizettünk érte, akkor használjuk.
  2. "Kidobjuk" a külső tűzfalat és építünk egy ISA 2004-et.

Végül úgy döntöttünk, hogy mindkét úton elindulunk. Gyorsan felvettük a kapcsolatot a szoftver viszonteladójával, az ottaniak pedig elmagyarázták, hogyan működik a platinum support. Ezután a Symantec mérnökével beszéltünk, ő azt javasolta, a hibabejelentő oldalon készítsünk egy hibajegyet, pár perc múlva hívni fognak minket és segítenek diagnosztizálni a problémát. Nem hangzott túlságosan jól, de legyen: az egyetlen gépen, ahol volt internet elérésünk, tehát a külső tűzfalon, bejelentkeztünk a megadott oldalra, mintegy 200 karakterben  leírtuk a hiba jellegét angolul, megadtuk a hiba súlyosságát (4-es, kritikus) és vártuk a hívást, illetve a 2-es pont szerint elkezdtük építeni az ISA-t. A 200 karakter lényege az volt, hogy a SEF nem hajlandó a hálózati csomagokat továbbítani. (Őszintén szólva nem sok reményt fűztem a supporthoz. Ha ez ilyen lassan indul, akkor órák kellenek, mire a fiúk utolérnek minket…)

No, még egyet tettem: átvizsgáltam a konfigot, hogy akad-e bármi lekapcsolható azon a gépen, illetve a tűzfal szoftveren belül. Hátha egy olyan szolgáltatásban van bug (mert bug lesz itt, gondoltam), amit mi amúgy sem használnánk. Egy tűzfalon a szolgáltatásminimalizálás örök érvényű feladat. Nosza. Csupán egy-két jelentéktelen apróságot találtam és persze az sem javított a helyzeten semmit. Viszont legalább megleltem a körkörös naplózás lehetőségét – egy apró kellemetlenséggel kevesebb.

AZ ISA építése viszonylag gyorsan ment, lévén ESX környezetben dolgozunk. Volt egy "template" virtuális lemezünk, rajta egy Windows Server 2003 Standard Edition. Készítettünk belőle másolatot, majd ehhez definiáltunk egy hardver környezetet két hálózati kártyával. A kártyákat egy dummy virtuális switch-be "kötöttük", nehogy IP cím ütközésünk legyen. Ezután SP1 telepítés, majd beállítottuk a külső tűzfalunk címeit a megfelelő adaptereken. ISA telepítés, ISA SP1 telepítés. A tűzfal csere annyiból állt, hogy a régi SEF kártyáit egy dummy2 switchbe irányítottuk, az ISA-ét pedig a megfelelő external illetve perimeter (virtual) switchbe.  Délután egy óra.

Elkezdtük felépíteni az ISA szabályokat. Először a back-to-back sablont alkalmaztuk, majd egy icmp-ping szabályt engedtünk meg a belső tűzfal számára. Itt ért minket a meglepetés: ez az új ISA 2004-es tűzfal sem működött, akárcsak a SEF. A jelenség ugyanaz: a tűzfal tud netezni, ping, tracert működik, de a mögötte lévőket nem engedi. Szabályokat még egyszer átnéztük – minden jó. Akkor mégsem a SEF-el van a baj? Két tűzfa, külön gyártótól ráadásul az egyik vadonatúj, nem téved ugyanolyanféleképpen. Nem itt a bibi.

Megint csak kizárásos alapon a belső tűzfal felé fordult a figyelmem. A log szerint minden rendben, csomagok átmennek. Hát ez nem igaz, mi van itt?

Csak nem az ESX hibbant meg? A virtuális switchek elnyelik a bájtokat? Ez már tényleg ráolvasás, de megpróbáljuk az ESX restartot. Már úgyis mindent újraindítottunk, úgyis vége a napnak, hát legyen. Lállítottuk az összes virtuális gépet, aztán ESX-restart. Lehet találgatni lett-e eredménye. Bingó! Nem lett.

Teljes tanácstalanság! Szerintem mindenünk jó, csak valahogy nem működik ez a nyamvadt rendszer. Krisztián szerint is mindenünk jó. Valamit elnéztünk? De mit?

Ilyen helyzetekben az ember kényszeresen próbálja újra a már egyszer leellenőrzött teszteket is, hátha mégis rosszul néztem valamint, biztos van egy apróság, ami elkerülte a figyelmemet. Még egy tracert a belső tűzfalról.

Hohohohóó: Nem jut el a célig, de bőven elhagyja még a külső tűzfal után routert is! Akkor most mégis van hálózat? Újabb tracert: már megint nem megy. Na ebből elég volt. Packetyzert mindenhova!! A saját gépemre, a belső tűzfal két lábára, a külső tűzfal két lábára, azután nézzük. (Pingeljük a 217.20.131.2 címet, ez éppen a www.index.hu, a külső tűzfal az ISA 2004)

Saját gépem: ping csomag elment.

Belső tűzfal belső lába: ping csomag megérkezett

Belső tűzfal külső lába: ping csomag elment

Külső tűzfal belső lába: ping csomag megérkezett

Külső tűzfal külső lába: ping csomag elment.

Ellenőrzés: ISA live log: a ping szabály alapján forgalom engedélyezve.

És nincs rá válasz. Következtetés: mindenünk jó, az ISP routere meghibbant. Na jó, akkor azt is indítsuk újra, legyen ez az újraindítások napja. És lám, újraindítás után már a külső tűzfalunkról sem működik semmilyen forgalom. Meglesz a bűnös?

Telefonáltunk az ISP-nek. Routeres szakember. Nem is egyforma IP címekről beszélünk. Aha. Megvan az első bibi: a router konfigurációja nem volt mentve, így a mi restartunk visszarepítette őt a januári állapotba. Akkor telefonon megbeszéltük, hogy milyen útvonalaknak kellene működie…

…és ekkor leesett: a külső tűzfalunk nem NAT-ol, hanem route-ol. Az ISP routere pedig engedte a saját alhálózatából érkező csomagokat, de eldobta az ugyanazon a lábon megjelenő, teljesen más alhálózatból jövő csomagokat. Vagy az is lehet, hogy azokat is továbbította, de azokra visszút már nem volt.

Ez is Bingó! Az ISP kért egy fél órát, és a ping 217.20.131.2 -t parancs futása egy idő után jelezte: igen van újra netünk. Délután 5 óra.

Események összefoglalása:

ISP félrekonfigurálta a routerünket, vagy a sajátját csütörtök este hat körül. Eredményeképp csak arról az IP címről működött a net, amely a routerrel azonos alhálózatba tartozott. Mivel a mi külső tűzfalunk nem NAT-ol, csak route-ol, ezért a belső (NAT-oló) tűzfal IP címéről származó csomagokat már nem megfelelően irányította vagy a helyi ISP-s útválasztó, vagy valamelyik másik, szintén ISP-s útválasztó. Az útvonalak helyes megadásával helyreállt a rend. Gyorsan "visszakötöttem" a SEF-et, s lám, mintha mi sem történt volna, beindult a forgalom. (elkezdett ömleni sokszáz levél)

Milyen volt ez az egy nap? A szolgáltatás-kiesés azt jelentette a számomra, hogy nincs pihenő, nincs ebéd, egy piilanatnyi megállás sem a megoldásig. Legalább egytucat telefon érkezett, amelyek ennek vagy annak (az internethez kapcsolódó) szolgáltatásnak a kiesését panaszolták. (Igen…tudunk róla…dolgozunk a megoldáson…nem nem tudjuk mikorra lesz internet; Nem…nem senkinek nincs e-mail, a vezetőknek sem…nem, nem vesznek el…nem nem tudjuk mikor…igen rögtön szólunk, amint lesz…. stb. stb.) A nap végére delirium, üveges szem, holtfáradtság, teljes kimerülés.

Nem szidom a felmenőit az ISP munkatársnak, aki a routerfélrekonfigurálással egy bolondoknapját szerzett nekünk?

Miért tenném? Segít ez rajtam? És nem tanultam ma is valamit? Van egy félig kész ISA szerverünk a jövőben amúgy is megszűnő SEF helyett. (Pontosabban: külön szoftver nem, csak appliance-al együtt vehető termék lesz a Symantec tűzfala.) Tanulságos, hogy az ISA-n a valóságnak megfelelően, és értelmezhetően működött a packetyzer, és az ISA livelog is használhatóbbnak bizonyult a SEF felületénél. Az is kiderült, hogy nem hekkelésről van szó, sem semmilyen misztikus hibáról, bugról. Egy csomó minden kiderült, világosabb lett.

Tanulságos az eset abból a szempontból is, hogy mégiscsak sikerült behatárolni a hibát, felülvizsgáltuk a legeslegelső tesztünket is, miszerint nem az ISP-vel van gond. Rámutatott a gyengénkre is: hiába értünk mindenhez, amivel ritkán foglalkozunk, az csak lassan mászik vissza a kobakunk operativ területére.

Epilógus: Este fél klienckor, miután (a feleségemmel) letettük a gyerekeket, bejelentkeztem VPN-el, hogy megnézzem távolról is: tényleg minden működik. A leveleim között ott várakozott a Symantec Platinum Support válasz e-mailje: megváltozott a státusa a hibajegyemnek, már hozzárendelték egy emberhez. A weben elolvashattam az ő első megjegyzését is: "Hát persze, hogy a SEF nem engedi át a csomagokat. Még szerencse! Azért tűzfal. Bejelentkezhetne távolról, hogy megnézze a szabályokat?"

Ez a megérzésem is bejött. Nem volt idő várni a fiúkra, megoldottuk helyettük. Mondjuk kíváncsi lettem volna, hogy mennyi idő alatt jöttek volna rá a hiba tényleges okára. Már nem fogjuk megtudni. Lezártam a hibajegyet.

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: