FortiGate 100D reanimacija

Po rimto incidento su elektros tinklais vienoje įstaigoje tarp nukentėjusiųjų pateko ir daug metų ištikimai atitarnavęs maršrutizatorius-ugniasienė FortiGate 100D. Simptomai buvo ypatingai įdomūs: pagrindinės maršrutizavimo ir ugniasienės funkcijos veikė, tačiau nebuvo įmanoma prisijungti prie paties FortiGate valdymo: nei per HTTP/HTTPS, nei per SSH/telnet. Prisijungti neleido net ir dedikuotas valdymo prievadas. Rašydamas “neįmanoma prisijungti” turiu omenyje, jog įrenginys tiesiog nedavė visiškai jokio atsako HTTP/HTTPS/SSH/telnet protokolais — taip, lyg būtų pilnai išjungtas. Perkrovinėjimai nedavė jokio rezultato, reset mygtukas — taip pat.

Kadangi šio įrenginio garantija buvo pasibaigusi jau prieš daug metų, o ir oficialus gamintojo palaikymas baigėsi vos prieš kelis mėnesius (reiškia, jog įrenginiui nebebus tiekiami net ir kritiniai saugumo atnaujinimai) — buvo akivaizdu, jog laikas pirkti naują maršrutizatorių/ugniasienę. Komos būsenoje palikęs ištikimasis FortiGate 100D buvo nurašytas ir paruoštas utilizavimui. Čia man kilo mintis — vietoje to, kad pridavinėtų jį į EMP perdirbimą, galbūt galiu aš jį pasiimti ir pažiūrėti ar sugebėčiau bent dalinai prikelti iš komos? Įstaigos vadovybė tam neprieštaravo, tad sutarėme, viską suderinome ir parsigabenau FortiGate namo.

Parsivežęs FortiGate visų pirma dar vieną kartą patikrinau, ar tikrai neįmanoma prisibelsti į jį jokiais įprastiniais metodais — deja, jis vis dar buvo “komoje”. Sekantis žingsnis buvo bandyti prisijungti per tokiems atvejams skirtą USB konsolę — pasijungiau per USB A-B kabelį, susiinstaliavau seną, jo laikmečio FortiExplorer programą ir bandau jungtis… Sužibo viltis: FortiExplorer mato mano FortiGate, nuskaito jo firmware versiją (“firmware” = įrenginyje veikianti gamintojo programinė įranga). Bandome jungtis… Deja, nesėkmingai — FortiExplorer negali pilnai komunikuoti su FortiGate, nepavyksta atidaryti komandinės eilutės.

Kitas žingsnis: bandome perrašyti firmware per FortiExplorer. Įdomu, firmware perrašymas buvo sėkmingas, per USB nuskaitoma jau ką tik perrašyta versija. Deja, bet paties FortiGate būklė nuo to visiškai nepasikeitė: visos pagrindinės maršrutizavimo ir ugniasienės funkcijos veikia, tačiau prie paties įrenginio neįmanoma prisijungti jokiais paprastais metodais.

Kokius dar variantus turime? Logiškiausias žingsnis čia būtų jungtis per serial/RS-232 konsolę, tačiau kaip tyčia neturiu tinkamo kabelio — FortiGate naudoja ne senąjį universalų RS-232 kabelį (kurių pas mane apstu), o turi dedikuotą RJ45 prievadą, skirtą serial/RS-232 konsolei. Norint jungtis, man reiktų užsakinėti RS-232 to RJ45 kabelį, tačiau kol jis atvyks, galime išbandyti kitus variantus…

Vienas iš tų kitų variantų: pasigaminti specialią USB laikmeną, su norima FortiGate firmware versija bei konfigūraciniu failu — prijungus tokią USB laikmeną prie FortiGate ir jį perkrovus, jis automatiškai persirašys firmware ir užsikels sau tokią konfigūraciją, kokia aprašyta USB laikmenoje esančiame faile (naaa, bent jau normalus FortiGate taip darytų, ar taip elgsis ir mano “kominis”?..). Gauti firmware failą nesudėtinga — šiam modeliui skirtus firmware atvaizdus vis dar galima parsisiųsti iš oficialios Fortinet palaikymo svetainės (su sąlyga, kad turi galiojantį kliento prisijungimą…). Kaip dėl konfigūracijos failo? Laimei, šį įrenginį seniau administravau aš pats, dėl to turiu senas jo konfigūracijos atsargines kopijas — pasimodifikuoju jas, nutrindamas neaktualią informaciją ir važiuojam… Važiuojam?.. Ech, pasirodo, ta USB laikmena privalo būti suformatuota naudojant FAT16 failų sistemą. Švelniai tariant, akmens amžius. Nieko, performatuojam į FAT16, sudedam firmare ir konfigūracijos failus ir… ir nieko. Taip, komoje esantis FortiGate neatmerkia akių net ir panaudojus tiesioginį firmware ir konfigūracijos perrašymo iš USB laikmenos metodą.

Dabar jau nebeliko nieko daugiau, kaip laukti atvykstant specialaus konsolinio kabelio. O kol laukiame, pažiūrėkim kas yra FortiGate 100D viduje…

Matome šiek tiek standartinių laptopinių detalių: DDR3 RAM, SATA SSD, Intel Atom x86 CPU. Galimai, jei atgaivinsiu, ateityje pabandysiu įsidėti didesnį RAM modulį, didesnį SSD. Taip pat matome įvairius tinklo srautų valdymo bei šifravimo darbų spartinimui skirtus ASIC‘us — natūralu, kadangi centrinis, bendros paskirties tų laikų Intel Atom procesorius yra, švelniai tariant, lėtas ir tikrai nepajėgtų efektyviai tvarkytis su visomis tomis užduotimis šiame įrenginyje.

Visi komponentai yra pasyviai aušinami, tiktai korpuso šone sukasi vienas standartinis SanAce ventiliatorius. Šie ventiliatoriai yra skirti serverinės įrangos, profesionalios tinklo įrangos ir pan. aušinimui, skirti dirbti duomenų centre, dėl to tylus veikimas tikrai nėra jų prioritetų sąraše. Pridėkime dar šio ventiliatoriaus amžių, tą faktą, jog daugybę metų be pertraukos sukosi serverinėje, ir nieko keisto, jog FortiGate įjungtas skleidžia tokį garsą, jog nesinori būti viename kambaryje su juo. Šiai problemai taip pat turiu sprendimą, kurį įgyvendinsiu jei pavyks patį įrenginį atgaivinti iš numirusių.

Ir štai, ilgai lauktas konsolinis kabelis pagaliau atvyko:

Nieko nelaukdami jungiamės…

Tiems, kas yra pažįstami su Serial/RS-232 protokolu, tokius parametrus naudojau prisijungimui:

Speed: 9600
Data bits: 8
Parity: None
Stop bits: 1
Flow control: OFF

Eureka! FortiGate atidaro vartus į savo komandinę eilutę ir priima komandas! Ką čia galime padaryti… iš karto pasakysiu, kad jokie reset metodai iš komandinės eilutės irgi nepadėjo. Daug nevargdamas nusprendžiau tiesiog suformatuoti FortiGate sisteminį skirsnį — čia paminėsiu, jog FortiGate operacinė sistema / firmware yra saugoma visai ne SATA SSD, kurį matėte nuotraukoje — ne, tas SSD diskas yra skirtas “WAN optimization cache” (savotiškas “proxy”), logging (žurnalų saugojimo) funkcijoms ir pan. Iš tikro, galėčiau tą SSD išimti visai ir mažai ką teprarasčiau. FortiGate operacinė sistema/firmware yra saugoma vidinėje flash atmintyje — ją ir suformatavau.

Dabar, kai bet kokia sulūžusi programinė įranga/konfigūracija buvo pašalinta, FortiGate smegenys išvalyti, jis jau nebegali atlikti net ir bazinių maršrutizavimo ar ugniasienės funkcijų — geras ženklas, nes aš noriu pradėti visiškai nuo nulio. Norint pradėti nuo nulio reikia įrašyti firmware iš naujo — tam yra keli variantai: naudoti tą pačią USB laikmeną, suformatuotą FAT16 failų sistema, arba pasileisti TFTP serverį ir perinstaliuoti FortiGate operacinę sistemą per tinklą.

Vardan paprastumo visų pirma bandžiau USB laikmenos metodą — deja, nesuveikė. Teko eiti kiek ilgesniu keliu, parsisiųsti ir susikonfigūruoti nemokamą, atviro kodo TFTPD64 serveriuką. Paleidus TFTP serverį ir padėjus FortiGate firmware atvaizdą šakniniame kataloge reikia perkrauti FortiGate ir per Serial/RS-232 konsolę išduoti jam komandas kad parsisiųstų ir susiinstaliuotų naują operacinę sistemą iš nurodyto TFTP serverio. Šis procesas buvo sėkmingas ir…

Eureka dar kartą! FortiGate užsikrovė tvarkingai, su visiškai švaria, tuščia gamykline konfigūracija. Patikrinau, ar tikrai viskas veikia, ar nesimato kokių nors netikėtų pašalinių poveikių, kokio nors corruption (duomenų sugadinimo) visuose lygmenyse. Ne, atrodo, kad jokių problemų nebėra, įrenginys pilnai funkcionuoja! Susikonfigūravau ir pasijungiau jį naudojimui savo namų laboratorijoje, įvairiems eksperimentams ir “idėjų testavimui”. Tiktai liko dar vienas momentas…

…atsimenate, aukščiau rašiau, jog FortiGate naudoja vieną, labai garsiai dirbantį SanAce ventiliatorių aušinimui? Jis dirba taip garsiai (~30dB), jog naktį girdėti net ir kitame kambaryje — taip gyventi negalima. Kaip pakaitalą užsisakiau labai aukštos klasės, ypatingai tylius Noctua NF-A4x20 ventiliatorius. Ne vieną, bet du. Kaip matosi nuotraukose, originaliai FortiGate turi vieną SanAce ventiliatorių, tačiau korpuse yra palikta vietos antrąjam, o taip pat ant jo motininės plokštės yra viena laisva ventiliatoriaus jungtis. Dėl to mano planas buvo mesti lauk labai seną ir labai garsiai dirbantį SanAce, o vietoj jo pasijungti porą tylių Noctua ventiliatorių. Noctua ventiliatoriai nuostabūs dar ir tuo, kad komplektacijoje ateina su “low noise” adapteriais (iš esmės paprastos varžos), kurie padeda šiek tiek sumažinti jų apsukas — žemiau to, ką per PWM liepia aušinamas įrenginys. Įsivertinęs tai, kad jungsiu 2 naujus, didelio efektyvumo ventiliatorius vietoje vieno galingo, bet seno ir tai, jog šis įrenginys mano namų laboratorijoje niekada negaus maksimalių apkrovų nusprendžiau: naudoti “low noise” adapterius saugu, perkaitimas negresia.

Jungdamas naujus ventiliatorius ta pačia proga dar nuvaliau ir pakeičiau seną termo pastą ant visų komponentų, turinčių radiatorius aušinimui.

Ir štai, didžiulė sėkmė: FortiGate veikia visiškai tyliai, taip tyliai, jog uždarius korpusą žmogaus ausis visiškai nebegirdi. Taip pat buvau teisus, jog perkaitimas negresia — FortiGate jau ne vieną savaitę sėkmingai tarnauja mano serverinėje spintoje namuose, veikia visiškai stabiliai.

Ši istorija yra pavyzdys, kaip daugybę senos, nurašytos, negarantinės įrangos galima prikelti naujam gyvenimui įdėjus paknkamai laiko, pastangų ir, galima sakyti, tik simbolinį kiekį investicijų pakeisti susidėvėjusias dalis.