lnav - Horfa á og greina Apache logs frá Linux flugstöð


Fyrir innan við tveimur vikum síðan stefndi Wannacry lausnarhugbúnaðarárásin í hættu á þúsundum tölva, sem olli töluverðu tjóni fyrir stór fyrirtæki jafnt sem einstaklinga. Það, ásamt öðrum víðtækum veikleikum sem fundist hafa á undanförnum árum (svo sem Shellshock gallan), undirstrikar mikilvægi þess að vera á toppnum á mikilvægum kerfum þínum.

Þrátt fyrir að veikleikar beinist oft að einu tilteknu stýrikerfi eða hugbúnaðarhluta, getur það verið veruleg hjálp til að vernda þær eignir sem þú berð ábyrgð á að skoða umferðina sem fer inn og út af netkerfinu þínu.

Eins og ég er viss um að þú veist nú þegar, eru kerfisskrár fyrsti staðurinn þar sem við ættum að leita að þessum upplýsingum. Til að gera þetta verkefni auðveldara, í þessari grein munum við útskýra hvernig á að setja upp og nota lnav, háþróaðan skráarskoðara. Með lnav muntu geta horft á nokkrar gerðir af annálum samtímis, fletta í gegnum skrána með því að nota flýtilykla og búa til samantektarstúllurit yfir aðganga og villur. Svo haltu áfram að lesa!

Uppsetning og ræsing lnav í Linux

Til að setja upp lnav skaltu nota pakkastjórnunarkerfið í dreifingunni þinni.

# aptitude install lnav          [Debian and derivatives]
# yum install epel-release lnav  [CentOS 7 and similar]

Þegar uppsetningunni er lokið skaltu ræsa lnav og fylgt eftir með algeru slóðinni að möppunni þar sem annálarnir sem á að skoða eru staðsettir. Þar sem þetta mun venjulega vera /var/log, skulum við gera:

# lnav /var/log/httpd

til að skoða annála Apache vefþjónsins í CentOS 7:

Við skulum skoða stuttlega framleiðsluna sem sýnd er á fyrri mynd:

  • Efra hægra hornið sýnir skrárnar sem eru í skoðun (access_log-20170519 og access_log). Þegar þú flettir niður eða upp muntu taka eftir því að skráarnöfnin geta breyst eftir því sem þú ferð úr einu í annað.
  • 40x HTTP-svör (til dæmis Fannst ekki eða Bannað) eru feitletruð en 20x svör eru sýnd með venjulegum texta.
  • IP vistföng birtast feitletruð grænt.

Þetta lítur vissulega vel út, er það ekki? En við skulum kafa aðeins dýpra núna, og við munum sjá að lnav gefur miklu meira en fallegt litað úttak.

Ef þú ert forvitinn um hvers vegna villuskrár eru ekki sýndar muntu finna svarið síðar í þessari grein. Svo haltu áfram að lesa!

Breytir úttakinu með valkostum og flýtitökkum

Áður en lengra er haldið skulum við lista nokkra flýtilykla sem gera okkur kleift að fara auðveldara í gegnum úttak lnav og tiltækar skoðanir:

  • e eða E til að fara í næstu/fyrri villuboð.
  • w eða W til að fara í næstu/fyrri viðvörunarskilaboð.
  • b eða Backspace til að fara á fyrri síðu.
  • Pláss til að fara á næstu síðu.
  • g eða G til að fara efst/neðst á núverandi skjá.

Þegar annálum er snúið, gætu gamlar skrár verið þjappaðar (eða ekki) eftir stillingum sem tilgreindar eru í logrotate stillingarskránum. Til að innihalda þjappaðar skrár í úttakinu skaltu ræsa lnav sem hér segir:

# lnav -r /var/log/httpd

Ef þú vilt skoða nánar hvernig lnav starfar geturðu ræst forritið með -d valmöguleikanum á eftir skráarnafni þar sem villuleitarupplýsingarnar verða skrifaðar á, eins og svo:

# lnav /var/log/httpd -d lnav.txt

Í þessu dæmi verða villuleitarupplýsingarnar sem myndast þegar lnav byrjar skrifaðar í skrá sem heitir lnav.txt inni í núverandi vinnumöppu.

Fyrstu línurnar í þeirri skrá eru sýndar á eftirfarandi mynd:

Merkti textinn gefur til kynna að lnav hafi hlaðið sjálfgefna sniðskránni og nánar tiltekið access_log sniðinu til að flokka Apache aðgangsskrána. Að auki gerir lnav kleift að flokka hverja úttakslínu þannig að úttakið verði auðveldara að sjá og skilja.

Til að nota þennan eiginleika skaltu ræsa forritið og velja línuna sem þú vilt flokka. Valin lína er alltaf sú sem er efst í glugganum. Ýttu síðan á p og þú ættir að sjá eftirfarandi niðurstöðu:

Til að fara aftur í venjulega stillingu, ýttu aftur á p.

Nú, ef þú vilt sjá yfirlit yfir annálana eftir dagsetningu og tíma, ýttu á i. Til dæmis gefur auðkenndur texti til kynna að mánudaginn 10. apríl, á milli 22 og 23, voru 37 HTTP beiðnir þar sem 14 leiddu til villna.

Þegar þú hefur greint hugsanlegt vandamál byggt á súluritinu eins og sýnt er hér að ofan, geturðu ýtt á i til að fara úr skjánum til að kanna það nánar með því að nota þáttarann eins og útskýrt var áðan. Eða þú getur líka notað innbyggðu SQL eiginleikana með því að slá inn semíkommu og skrifa staðlaða fyrirspurn. Til dæmis, gerðu:

;.schema

til að skoða tiltækar töflur í gagnagrunnsskemanu. Eftir að hafa auðkennt réttu töfluna (access_log í okkar tilfelli), skulum við ýta á q og nota síðan eftirfarandi fyrirspurn til að skila öllum tiltækum upplýsingum um beiðnir sem koma frá 195.154.230.31:

;SELECT * FROM access_log WHERE c_ip='195.154.230.31'

Athugaðu að við hefðum líka getað síað niðurstöðurnar eftir log_time. Málið er að henda inn smá SQL og himininn er takmörk fyrir því hvað þú getur gert með lnav.

Apache sjálfgefin skráarsnið

Mörg annálasnið eru sjálfgefið hlaðin með lnav og eru þannig flokkuð án afskipta okkar. Þú getur skoðað listann í Log Formats hlutanum í opinberu skjölunum.

Sjálfgefin snið eru tilgreind í ~/.lnav/formats/default/default-formats.json.sample og öðrum er hægt að bæta við ~/.lnav/snið með .json viðbótinni.

Hins vegar, að breyta þessum skrám krefst vissrar þekkingar á JSON (Javascript Object Notation) og með PCRE (Perl-Compatible Regular Expressions) bókasafnið.

Svo hvers vegna sýndi lnav ekki Apache villuskrárnar? Ástæðan er sú að þessar annálar passa ekki við nein regluleg tjáning í núverandi sniðsskrám og eru því meðhöndlaðir sem venjulegar textaskrár (sem þýðir skrár án tiltekins annálasniðs).

Eins og fyrr segir geturðu búið til þín eigin snið þegar þú ert að minnsta kosti nokkuð kunnugur JSON og PCRE. Þetta getur komið sér vel, til dæmis ef þú hefur skilgreint sérsniðna Apache logs.

Þó að við notuðum Apache aðgangsskrána til að sýna hvernig á að nota lnav, hafðu í huga að það eru nokkrar aðrar gerðir af annálum sem hægt er að skoða og flokka með þessu tóli. Ef tólið þekkir ekki tiltekna annál geturðu búið til viðbótarsnið og sett þau upp eftir leiðbeiningunum sem gefnar eru upp hér.

Hefur þú einhverjar spurningar eða athugasemdir við þessa grein? Eins og alltaf, ekki hika við að láta okkur vita með því að nota formið hér að neðan. Okkur hlakkar til að heyra frá þér!