Program til analyse af websidens access log

Download Excel regneark med makroer til analyse af hjemmesidens adgangs-logfil. Finder hotlinks, robotter, spambots og mulige slyngler.

Da jeg havde fået fjernet alle spor efter hackerne, som brød ind på min side, begyndte jeg at interessere mig for serverens logfiler, hvor alle besøg og anmodninger bliver logget.

Som jeg skrev i Uopdragne søgerobotter, spambots og hackere, gik det op for mig, at der er en trafik af den anden verden, og at der var en del, jeg ønskede at blokere for – især uopdragne robotter, som grovæder af båndbredden.

Logfiler kan imidlertid have mange tusinde poster, og så er det ret uoverskueligt at søge på må og få. Jeg skrev derfor et program (makroer/VBA) i Excel, som kan importere logfilen og udtrække de poster, jeg interesserer mig for, nemlig hotlinks til mine billeder, robotbesøg, ”hacker-følere”, mulige spambots samt lidt mere.

Altså ikke normal besøgsstatistik, men et overblik over gæster jeg måske helst slet ikke vil have ind, og som jeg kan afvise i min .htaccess-fil (mere om .htaccess i næste indlæg om dette emne).

Fx havde jeg besøg af følgende (navngivne) robotter fra ved middagstid den 7. september til næste dags morgen kl. 8:

  • Googlebot
  • Googlebot-Image/1.0
  • bingbot
  • http://www.web.nl/webmasters/spider.html
  • Corporate Spider
  • Googlebot-Mobile/2.1
  • Moreoverbot
  • http://boardreader.com/info/robots.htm)-CommentCrawler
  • R6_CommentReader(www.radian6.com/crawler)
  • http://www.proximic.com/info/spider.php
  • MJ12bot
  • AcoonBot
  • BlogSearch
  • Exabot
  • Googlebot-Mobile/2.1
  • msnbot-media/1.1
  • news bot
  • ezooms.bot
  • R6_FeedFetcher(www.radian6.com/crawler)
  • Sosospider
  • magpie-crawler/1.1
  • VoilaBot
  • Googlebot-Mobile/2.1
  • 5.1; Search

Hertil kommer nogle stykker, som jeg formener adgang, bl.a. Yandex og Baiduspider. Nogle på listen ovenover respekterer et pænt ”nej tak” og skrider, når de har læst robots.txt (fx ezooms, sosospider og magpie-crawler). Googlebot-Mobile står der tre gange, fordi den har brugt forskellige IP-adresser.

”Corporate Spider” er ny hos mig. Jeg kan se, at det er en spambot, og at min blokering af spambots virker, for den fik et ”403 Forbidden,” da den prøvede at poste en kommentar.

Regnearket til logfil-analyse

Du kan downloade regnearket her http://www.sitestory.dk/excel_vba/sheets/logfil-analyse.zip. Det er zip-komprimeret og skal derfor ”pakkes ud”. Når du har downloadet, højreklikker du på filen og lader Windows ordne den sag.

Du skal tillade eksekvering af makroer i Excel, ellers virker det ikke, og da jeg ikke har et digitalt certifikat, skal du vælge laveste sikkerhedsniveau.

Regnearket er lavet i Excel 2000, som kun har plads til 65.536 rækker, så hvis logfilen er større, får du ikke det hele med (så skal du skære den i ”bidder” i et andet program). Store logfiler fylder også en gruelig bunke, så det er bedst med kun en dag eller to, afhængigt af hvor meget trafik der er på din side.

Har du en nyere version af Excel (fx 2007 eller 2010), er der plads til flere rækker, men du skal måske gemme regnearket i det nyere format, før du starter. Programmet vil importere op til antal mulige rækker minus 1, men hvis der er mere end en million rækker, bliver det nok tungt at danse med. 😉

Hvis logfilen fra serveren er komprimeret (fx *.gz), skal den først pakkes ud. Det må du selv klare. Hvis Windows ikke kan pakke den ud, findes der gratis programmer på nettet.

Import og dataudtræk

På fanebladet ”Udtræk” klikker du på knappen ”Importer logfil,” finder den downloadede logfil og vælger den. Excel vil nu importere logfilen som en tekstfil og popper op med en dialogboks. Her skal du vælge ”Afgrænset” (for at få de forskellige felter i kolonner for sig), og som afgrænser skal du vælge ”Mellemrum”.

Jeg kan ikke garantere, at det virker for din servers logfiler. Hvis den fx bruger andre afgrænsere end mellemrum, må du prøve noget andet. Mellemrum skulle fungere for filer fra Apache-servere, men man ved aldrig.

På fanebladet ”Log” skulle du nu kunne se hele logfilen med de forskellige felter (IP-adresser, dato osv.) i kolonner for sig. Strukturen i overskriften (række 1) svarer til strukturen af mine logfiler, så tjek lige, om den også passer på din. Hvis ikke, skal du angive de rigtige kolonner på fanebladet ”Setup”.

Her kan du også skrive navnet på din egen hjemmeside, fx ”minside.dk”. Ellers kommer den med i oversigten over hotlinks. Hvis du også angiver din IP-adresse, sorteres den fra i dataudtrækket.

Der er mange sider på nettet, der kan fortælle dig din IP-adresse, men hvis den ikke er fast, risikerer din egen aktivitet alligevel at komme med i dataudtrækket.

Når det er på plads, klikker du på knappen ”Udtræk data” på fanebladet ”Udtræk,” og selvom der er tusindvis af poster i loggen, går der ikke mange sekunder, før du kan se resultatet.

Næste gang du vil importere/udtrække data, slettes den gamle log og det gamle udtræk automatisk.

Lad mig afslutningsvis sige, at det er et program, jeg har lavet til eget brug, så jeg har ikke højglanspoleret interfacet, og jeg garanterer ikke, at det virker for dig. Tag det som det er, og vil du lave om på makroerne, gør du bare det (læs dog lige om ”Ophavsret” på fanebladet ”Hjælp” før du evt. videredistribuerer).

Jeg garanterer heller ikke, at programmet finder fx alle robotter, som har besøgt dit websted, eller at de mulige spam-robotter vitterlig er spambots; men det kan være en hjælp til at indkredse de gæster, du helst er fri for eller vil holde øje med.

Hvis du bruger en nyere version af Excel, og du får en fejlmeddelelse, er det sandsynligvis fordi, Excel ikke er 100 % kompatibel bagud. Det vil jeg ikke klandres for, men jeg tror ikke, der er problemer.

Jeg overvejer at beregne, hvor meget båndbredde hver robot sluger i kb, men på den anden side går enhver tilføjelse ud over hastigheden, så jeg ved ikke rigtig.

Skulle der være spørgsmål, forslag eller uventede fejl, skal jeg nok svare, men det kan godt være, at der går et par uger – bloggen nedprioriteres for en tid pga. andre gøremål.

Andre indlæg om dette emne:

8 tanker om "Program til analyse af websidens access log"

  1. Stegemüller

    Jeg sidder netop og fornøjer mig med din logfil-analyse.xls, og det er virkelig et godt værktøj. Fra mit Webhotel kommer der desværre kun 7.100 rækker, men det er nok til, at jeg har kunne lave denne banned-liste, hvor jeg udelukker bl.a. Yandex – det ville jeg ikke have været opmærksom på ellers. Fedt at du deler.

    109.56.198.185
    188.179.73.198
    178.154.243.95
    180.76.15.22
    94.228.34.251

    Alm. forbrugeroplysning: Jeg lavede eksporten fra webhotellet ved at gå til cPanel > Logs > Raw Access Logs

    Svar
    1. Eric

      Nu er det nok forskelligt fra udbyder til udbyder, men hvis du med dit FTP-program kan tilgå katalogerne et niveau over din “rod” (“public html” “www” eller lignende), vil et af dem måske indeholde logfiler (formentlig komprimerede .tar .gz eller lignende). Hvis jeg henter via cPanel, er det også ret begrænset, hvad jeg får.

      Hvis det lykkes, og logfilen har flere linjer, end Excel har rækker, har jeg på mine VBA-sider et regneark, der kan opsplitte en tekstfil i flere mindre tekstfiler.

      Svar
  2. Christian Petersen

    Hej

    Efter din anbefaling har jeg nu BulleProof Security plugin på min WordPress hjemmeside. Jeg ønsker at blokere enkelte ip adresser for at besøge min hjemmeside.
    Kan ovennævnte plugin bruges til det?
    Jeg er f.eks gået ind under menu “Secure.htaccess”, hvor jeg gerne vil skrive -Deny from….-og så selve ip adressen. Men ovenover står der:

    Order Allow,Deny
    Deny from 46.119.35.
    Deny from 46.119.45.
    osv….men det er ikke blokering af hjemmeside besøgende. Det er vel kun hvis jeg har en blog eller hvad?
    Jeg vil gerne kunne blokere for adgang af en konkret ip-adresse til min hjemmeside.
    Håber du kan hjælpe mig med hvad jeg skal gøre?

    Venlig hilsen Christian Petersen

    Svar
    1. Eric

      Hej Christian

      Der er to muligheder, afhængigt af om WordPress ligger i roden, eller om det (som på dette website) ligger i et underkatalog til roden (her: sitestory.dk/wordpress/).

      Hvis det sidste er tilfældet, passer Bulletproof (BP) “kun” på bloggen, og derfor har jeg også en .htaccess-fil i roden, og i denne ligger nogle “Deny from xxx,” som formener nogle IP-adresser adgang til hele sitet.

      Hvis det første er tilfældet, altså at WP ligger i roden, skal du tilføje dine “Deny from xxx” til BP’s .htaccess, og jeg vil tro, at du kan gøre det fra pluginets side.

      Men du skal ikke sætte dem ind i forlængelse af de IP-adresser, du skriver. Kigger du på linjen ovenover “Order Allow,Deny” står der nemlig:
      “FilesMatch “^(wp-comments-post\.php)”
      og det er kun adgangen til at lægge kommentarer!

      Jeg tror, at du skal gå helt ned i bunden af filen og skrive dine blokeringer i linjerne under: “# Copy and paste your bad bots user agent code list directly below.”

      Hvis du selv laver en .htaccess, er det vigtigt at lave den i en “ren” teksteditor som fx NotePad (Notesblok), og bruger du FTP til at uploade, skal overførslen være som ASCII-fil og ikke binær. Formentlig vil dit FTP-program vælge rigtigt i auto, men jeg vælger nu altid ASCII for at være sikker.

      Da det var første gang, du kommenterede, skulle din kommentar godkendes. Bruger du samme navn og e-mail en anden gang, skulle du gå direkte igennem.

      Held og lykke med blokeringerne 😉

      Svar
  3. Stegemüller

    Tusind tak for regnearket, som jeg har downloaded, det er effektivt ud. Jeg har læst dine tre poster om problemerne tre gange for ikke at overse noget. Jeg er dog i tvivl om, hvordan jeg finder logfilerne, og hvordan jeg sørger for at de får de beskrevne 404 og fx 403 i hovedet? Det kan godt være at mine spørgsmål er alt for store at svare på. Jeg ville være glad for din hjælp til at få styr på alt dette her, og vil spørge om du vil hjælpe mig med det – evt. mod betaling.

    Svar
    1. Eric Bentzen

      Hvis du ikke kan finde logfilerne med FTP, så kan du sandsynligvis via din udbyders brugerinterface, hvor du kan logge ind. Ellers spørg support.

      Til din WordPress blog vil jeg anbefale det plugin, som hedder “BulletProof Security”. Hvad de øvrige sider angår kan du spærre for IP-adresser ved at editere .htaccess-filen (“portneren”), men det kan muligvis også gøres fra brugerinterfacet. Ellers kommer jeg til det i et senere indlæg – og helt gratis 😉

      Svar
  4. Donald

    Det lyder som en fornuftig løsning. Jeg kører ikke egen server for tiden, så jeg kan ikke bruge det med det samme, regnearket, men jeg kender godt nytten af at have styr på gæsterne. En overgang blokerede jeg for Microsoft søgninger, fordi det simpelthen bare tog for meget båndbredde. Google er “rarere” og sørger for at deres robotter ikke generer så meget.

    Svar
    1. Eric

      I dag bruger Microsofts bingbot og Msn kun en brøkdel af den båndbredde, Google lægger beslag på, men Google er trods alt Google og hovedleverandør af trafik til mine sider.

      Derimod har jeg udelukket den russiske søgemaskine Yandex, kinesiske Baidu og ukrainske Arefs på den hårde måde. De er alle meget forslugne og uopdragne (respekterer ikke robots.txt), og trafikken, jeg får fra de lande, er næsten udelukkende “hacker-følere”, spam-robotter og hotlinks til billeder.

      Svar

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *