Låt säga att du vill skapa en lista med vilka ip-adresser som kopplat upp sig mot vilka servrar. Vi börjar med att filtrera ut ip-adresser och dns-förfrågningar i två kolumner. I Linux så kan du göra det på nästan lika många olika sätt som det finns systemadministratörer. Vi kommer att använda oss av två av grundbultarna för att få exakt det resultat vi är ute efter – sed och awk.


Så här ser dina data ut efter att du har aktiverat tidsstämplarna, men innan du har filtrerat dem.

Håll i dig nu. Raden som vi skriver för att filtrera ut ip-adress och servernamn vid förfrågan ser ut så här:
cat named.queries | awk ’{ print $4 ” ” $5; }’ | sed ’s/\(.*\)\(#[0-9]* \)\((\)\(.*\)\():\)/\1, \4/’

Vi ekar ut filinnehållet på skärmen och med hjälp av awk sorterar vi ut fjärde och femte fältet. Sedan skickar vi resultatet till sed som städar upp strängen med hjälp av reguljära uttryck och petar in ett komma om du skulle vilja skapa en csv-fil för vidare analys i Excel, LibreOffice Calc, eller i något mer avancerat språk som Python.
Oroa dig inte om du inte har hundraprocentig koll på vad sed-uttrycket gör för något. Ofta får du prova dig fram när du sätter dig ner och skapar ett regelverk i reguljära uttryck.

Resultatet som du får är en osorterad lista över alla namnförfrågningar som dina klienter ställt över tidsperioden. Skickar du listan vidare till kommandot
sort –u
… där -u betyder ”unique” så plockar du bort alla dubbletter. Hela kommandot blir då alltså:
cat named.queries | awk ’{ print $4 ” ” $5; }’ | sed ’s/\(.*\)\(#[0-9]* \)\((\)\(.*\)\():\)/\1, \4/’ | sort -u

Du kommer garanterat att få ut mycket data. Troligtvis alldeles för mycket, så du kan behöva filtrera bort en del. Ett tips är att du kan använda kommandot sed tillsammans med ett egenhändigt skapat filter för att radera bort vissa sajter.

Ett exempel på sajter som du vill filtrera bort är allt från Akamai, ett annan kan vara Google-domänen gstatic som samlar statistik. Skapa en fil du kallar för filter.txt med följande två rader:
/akamai/d
/gstatic/d

Nu kan du skicka vidare den sorterade listan till ”sed -f filter.txt”, och du slipper se alla rader med akamai och gstatic.
Du kan också använda tekniken för att filtrera bort vissa ip-adresser. Vårt exempel fungerar precis som sökkommandot grep, fast med den skillnaden att genom att använda en fil kan vi lägga in en obegränsad mängd filter i stället för bara ett.

Mycket kan automatiseras

Nätverksövervakning med dns på det viset vi beskrivet här är alltså inte alls svårt och kan automatiseras till en väldigt hög grad. Du kan säkert hitta på massor av fler tillämpningar än de vi har nämnt här.
Skulle nu de anställda råka vara en it-bevandrad skara som vet om att deras aktiviteter på nätet loggas kan de givetvis försöka ta sig runt problemet. Ett sätt skulle vara att helt enkelt sätta en statisk ip-adress som dns och använda de servrarna för namnuppslagning. Google har två sådana publika servrar, de har ip-adresserna 8.8.8.8 och 8.8.4.4.


Nu har vi applicerat vårt något komplexa kommando, plockat ut och sorterat på unika ip-adresser och uppslagna namn. Den här filen kan du plocka in för vidare analys i vilket program som helst som kan läsa kommaseparerade filer, så kallade csv-filer.

Det här problemet kan du komma runt genom att sätta upp brandväggsreglerna så att ingen trafik från det lokala nätverk där klienterna finns får använda destinationsporten 53. Varken tcp eller udp-trafik ska tillåtas. Stryper du den möjligheten blir det genast betydligt svårare att komma runt övervakningen.

Fakta

Det mellanstora företaget har ingen övervakning av nätverket i dag. Ingen har någon koll på exakt hur många klienter som finns i nätverket, och misstankar finns om att vissa anställda lägger ner alldeles för mycket tid på surf som inte är arbetsrelaterat. Det ligger på it-avdelningens bord att plocka fram fakta, och givetvis får det inte kosta något.