Logging

Innholdsfortegnelse
Ta en titt med tcpdump
Men det finnes grenser (en liten historie fra virkeligheten)

Hittil har vi ikke sagt så mye om logging. PF gir deg muligheten til å logge akkurat det du har behov for via nøkkelordet 'log' i de reglene du måtte ønske. Det kan være fornuftig å begrense datamengden noe ved å angi hvilket grensesnitt det skal logges på. Det gjør du i så fall med

set loginterface $ytre

og så i de reglene du ønsker å ha data om, noe slikt som

pass out log from <klient> to any port $epost \
         label klient-epost keep state

Trafikken blir da logget i et format som er ment som inndata for tcpdump.

label-leddet fører til at det blir opprettet egne tellere for en del statistikk akkurat for denne regelen. Slikt kan være hendig for eksempel ved viderefakturering av brukt båndbredde.

Ta en titt med tcpdump

Når du har aktivert logging i en eller flere regler, logger PF via grensesnittet pflog0, og lagrer binære loggdata i loggfilen /var/log/pflog. Denne loggfilen er nyttig som permanent registrering og for de tilfellene der du med visse mellomrom ønsker å konvertere dataene til andre formater. Hvis du på den annen side ønsker å se på trafikken i noe nær sanntid, kan du be tcpdump om å se på logg-grensesnittet pflog0 i stedet.

Her er et eksempel på hva som kan komme ut fra et par regler med logging på en ellers fredelig torsdag ettermiddag:

peter@skapet:~$ sudo tcpdump -n -e -ttt -i pflog0
tcpdump: WARNING: pflog0: no IPv4 address assigned
tcpdump: listening on pflog0, link-type PFLOG
Feb 16 16:43:20.152187 rule 0/(match) block in on xl0: 194.54.59.189.2559 > 
194.54.107.19.139: [|tcp] (DF)
Feb 16 16:48:26.073244 rule 27/(match) pass in on xl0: 61.213.167.236 > 
194.54.107.19: icmp: echo request
Feb 16 16:49:09.563448 rule 0/(match) block in on xl0: 61.152.249.148.80 > 
194.54.107.19.55609: [|tcp]
Feb 16 16:49:14.601022 rule 0/(match) block in on xl0: 194.54.59.189.3056 > 
194.54.107.19.139: [|tcp] (DF)
Feb 16 16:53:10.110110 rule 0/(match) block in on xl0: 68.194.177.173 > 
194.54.107.19: [|icmp]
Feb 16 16:55:54.818549 rule 27/(match) pass in on xl0: 61.213.167.237 > 
194.54.107.19: icmp: echo request
Feb 16 16:57:55.577782 rule 27/(match) pass in on xl0: 202.43.202.16 > 
194.54.107.19: icmp: echo request
Feb 16 17:01:27.108404 rule 0/(match) block in on xl0: 194.54.59.189.4520 > 
194.54.107.19.139: [|tcp] (DF)
Feb 16 17:11:02.137310 rule 0/(match) block in on xl0: 222.73.4.154.80 > 
194.54.107.19.55609: [|tcp]
Feb 16 17:14:05.739403 rule 0/(match) block in on xl0: 194.54.174.246.3970 > 
194.54.107.19.135: [|tcp] (DF)
Feb 16 17:14:08.715163 rule 0/(match) block in on xl0: 194.54.174.246.3970 > 
194.54.107.19.135: [|tcp] (DF)
Feb 16 17:14:09.308355 rule 0/(match) block in on xl0: 194.54.174.246.3970 > 
194.54.107.19.135: [|tcp] (DF)
Feb 16 17:19:01.853730 rule 27/(match) pass in on xl0: 203.84.214.5 > 
194.54.107.19: icmp: echo request

Brukerhåndboken for PF har en egen del som handler om logging, med mange gode råd. Med denne informasjonen og blant annet man-sidene for tcpdump skulle du være i stand til å trekke ut de loggdataene du måtte ha behov for.