Loggfiler

I Linux loggades förut det mesta med hjälp av syslog. Många program använde syslog för att hantera loggningen. Syslog brukar spara sina loggfiler i /var/log. Titta i filen /etc/syslog.conf för att ta reda på hur din syslog är konfigurerad.

Idag används systemd i de flesta system och loggningen sköts av systemd. För att titta på loggarna används journald.

Observera att loggfiler är bland attackerarens första mål. Se till att säkerställa loggarnas integritet.

systemd/journald

Med systemd loggas allt med hjälp av systemd. I stort sett alla servertjänster i moderna system loggar via systemd. Det gör att man kan studera loggarna för alla dessa servertjänster med ett och samma program; journald.

Om du endast vill se loggar från senaste start/boot så kan du lägga på flaggan -b till journald.
journald -b
Om du vill se endast loggar från linuxkärnan kan du lägga på flaggan -k till journald. Den går också att kombinera med t.ex. flaggan -b för att få se alla kärnmeddelanden sedan senaste start/boot.
journald -k
journald -b -k

För att se loggarna för en servertjänst lägg på flaggan -u SERVER.service till journald. Exempel för att att se loggarna för nginx:
journalctl -u nginx.service

Syslog

Syslog används i få moderna Linuxsystem. För syslog används facilitet och prioritet. Facilitet talar om vilken typ av program som skickar meddelandet och prioritet talar om hur viktigt meddelandet är. De faciliteter som finns är: auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, security (samma som auth), syslog, user, uucp och local0 till local7. Security ska inte användas längre och mark ska ej användas av applikationer. De prioriteter som finns är: debug, info, notice, warning, warn (samma som warning), err, error (samma som err), crit, alert, emerg, panic (samma som emerg). Prioriteterna error, warn och panic ska ej användas längre.

Filen /etc/syslog.conf är uppbygd så att först på varje rad står facilitet och prioritet därefter vart meddelandet ska skickas. Sökväg till filer ska alltid ges som en fullständig sökväg. Exempel på en rad i /etc/syslog.conf:

news.notice 		/var/log/news/news.notice
För facilitet news skickas alla meddelanden med prioritet notice och högre till filen /var/log/news/news.notice. För att endast logga för en viss prioritet och inte alla med högre prioritet skriv = före prioritet.
news.=err 		/var/log/news/news.err
Prioritet kan även skrivas som * vilken tolkas som alla prioriteter.
mail.*							/var/log/maillog
Alla e-postloggar oavsett prioritet skickas till filen /var/log/maillog.

Det går även att ange flera par med facilitet och prioritet som ska skickas till ett och samma ställe. Ex:

*.info;mail.none;news.none;authpriv.none	/var/log/messages
Alla meddelanden för alla faciliteter (*) av prioritet info och högre skickas till /var/log/messages förutom för mail, news, authpriv där loggningar för inga faciliteter ( .none) ska skickas till filen.

Det går även att skicka till en named pipe (|/sökväg-till-filen/filnamn), till en devicefil (/dev/ttyS0) eller till en annan dator ( @annandator). Att skicka loggar till en serie eller parallellport och ha en skrivare ansluten är ofta en vettig sak för större organisationer. Likaså att skicka loggarna till en annan dator.

*.info;mail.none;news.none;authpriv.none	/var/log/messages
*.info;mail.none;news.none;authpriv.none	/dev/ttyS0
*.info;mail.none;news.none;authpriv.none	@annandator
Ovan skickas loggarna till filen /var/log/messages, till första serieporten och till en annan dator.

Logga även till en separat dator som endast har till uppgift att ta hand om loggar. Se till att alla servertjänster förutom syslog är avsängda på loggservern och se till att den endast accepterar loggar från de lokala systemen, dvs spärra med en extern brandvägg och sätt upp brandväggsregler på loggservern. Om flera datorer loggar till en och samma loggserver är det lättare att se attackmönster i loggarna.

Det kan även vara bra att skriva ut loggarna på papper.

Ett litet extra skydd är att kompilera om syslogservern till att använda en annan konfigurationsfil än den vanliga och att spara den vanliga så att systemet ser normalt ut. Observera dock att detta ger väldigt lite och kan lätt invagga en i falsk trygghet. Det är enkelt att titta på binären och ta reda på vilken konfigurationsfil den använder. Det här skyddar mest mot slarviga crackers.

Titta regelbundet i loggfilerna. Om du använder iptables med loggning påslagen använder iptables syslog för att hantera loggningen till fil. Studera loggarna och titta efter onormal aktivitet. Exempel på onormal aktivitet kan vara:

Feb  8 20:03:52 dator wu.ftpd[17246]: refused connect from dator.domän
Feb  2 13:24:44 tekla kernel: IP fw-in deny eth0 TCP 10.10.15.60:20833 172.22.249.42:143 L=44 S=0x00 I=4671 F=0x0000 T=48

Titta framförallt efter rader med error, deny, denied, refuse, failure, failed, flooding, SYN, ftp, unknown, REPEATED LOGIN FAILURES, password, invalid, su och liknande. Gör t.ex. grep -i deny logfil.

Om du i loggfilerna hittar en massa skräptecken följt av /bin/sh är du utsatt för intrångsförsök.

Ett utmärkt verktyg för att hjälpa till med att analysera loggfilerna och därmed slippa läsa igenom hela loggfilerna är perlprogrammet swatch.

Ta gärna en titt på den förbättrade syslog, syslog-ng, se http://freshmeat.net/projects/syslog-ng/.

Copyright © 2010-2024 Kjell Enblom.
This document is covered by the GNU Free Documentation License, Version 1.3

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".