Debian szerver logolás (Squeeze)
A naplózást a syslog-ng-vel végeztetjük (azt hisszük, hogy "okosabb", mint a Debian alapértelmezett rsyslog-ja), és a logokat a logcheck-kel figyeljük.
Tartalomjegyzék
Telepítés
A szokásos módon:
apt-get install syslog-ng logcheck logcheck-database # + dependens könyvtárak
A fenti parancs eltávolítja az alapértelmezett rsyslog-ot.
Logrotate módosítások
A rotáláskor a logrotate megkísérel lefuttatni egy scriptet a /tmp-ben. Mivel a security policy-nk szerint a /tmp nem futtatható, ez hibát okoz. Ezért a root nevében lefutó logrotate számára a /root alatt létrehozunk egy tmp könyvtárat:
mkdir /root/tmp
és a logrotate számára előírjuk ennek használatát:
-rwxr-xr-x root root /etc/cron.daily/logrotate [...] export TMPDIR=/root/tmp [...]
Logcheck
A logcheck lényegében egy cron-ból futtatott script, amely az utolsó futtatása óta készült logrészleteket összehasonlítja megadott reguláris kifejezésekkel, és az egyezéseket kigyűjtve (az előírtak figyelmen kívül hagyásával), email-ben elküldi. Telepítés után a következő állományokat kell megszerkeszteni. A logcheck.conf-ot teljesen cseréljük le:
-rw-r----- root logcheck /etc/logcheck/logcheck.conf # Logcheck beallitasok # Az ignore.d.server szabalyokat alkalmazza REPORTLEVEL="server" # A root-nak kuldje a levelet SENDMAILTO="root" # Fully qualified domain nev legyen a subjectben FQDN=1 # Adja hozza a [logcheck] prefixet a subjecthez ADDTAG="yes"
Az alapértelmezetteken kívül figyelje a kern.log-ot és a messages-t is (két új sor):
-rw-r----- root logcheck /etc/logcheck/logcheck.logfiles # these files will be checked by logcheck # This has been tuned towards a default syslog install /var/log/syslog /var/log/messages /var/log/kern.log /var/log/auth.log
Reboot-kor, és normális üzemben 5 percenként fusson le (idő módosítása):
-rw-r--r-- root root /etc/cron.d/logcheck # /etc/cron.d/logcheck: crontab entries for the logcheck package PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root @reboot logcheck if [ -x /usr/sbin/logcheck ]; then nice -n10 /usr/sbin/logcheck -R; fi 0-59/5 * * * * logcheck if [ -x /usr/sbin/logcheck ]; then nice -n10 /usr/sbin/logcheck; fi # EOFMegjegyzés: a maintainer óránként, vagy még ritkábban futtatja a logcheck-et. Ha az erőforrások megengedik, talán érdemes ezt gyakoribbra venni egy esetleges illegális távoli bejelentkezés vagy más biztonsági esemény korai jelzése érdekében. Ez kevesebb időt hagy a behatolónak arra is, hogy root jogot szerezve leállítsa a riasztást.
Végül szigorítsuk meg a jelenleg eléggé liberális jogosultságokat a beállítások könyvtárában:
chmod -R o-rwx /etc/logcheck
Figyelmen kívül hagyandók beállítása
Néhány logbejegyzést érdemes figyelmen kívül hagyatni, az ezekre passzoló reguláris kifejezéseket a /etc/logcheck/ignore.d.server alatt egy-egy kivétel állományba kell felvenni.
- syslog-ng log statisztika
touch /etc/logcheck/ignore.d.server/syslog-ng-fix chown root:logcheck /etc/logcheck/ignore.d.server/syslog-ng-fix chmod 640 /etc/logcheck/ignore.d.server/syslog-ng-fix mcedit /etc/logcheck/ignore.d.server/syslog-ng-fix
-rw-r----- root logcheck /etc/logcheck/syslog-ng-fix ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ syslog-ng\[[[:digit:]]{1,5}\]: Log statistics
Speciális esetek
Az alábbi javításokra csak speciális esetekben van szükség, de rutinszerű felvételük sem hiba.
- csak osztott hálózaton lévő gép esetén "marslakó" (martian source/destination) broadcast-ok
touch /etc/logcheck/ignore.d.server/kernel-martians chown root:logcheck /etc/logcheck/ignore.d.server/kernel-martians chmod 640 /etc/logcheck/ignore.d.server/kernel-martians mcedit /etc/logcheck/ignore.d.server/kernel-martians
-rw-r----- root logcheck /etc/logcheck/ignore.d.server/kernel-martians ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ kernel:( \[ *[[:digit:]]+\.[[:digit:]]+\])? martian source 255.255.255.255 ^\w{3} [ :[:digit:]]{11} [._[:alnum:]-]+ kernel:( \[ *[[:digit:]]+\.[[:digit:]]+\])? martian destination 0.0.0.0
- csak DHCP szerver esetén nem IP-vel hanem hostnévvel hivatkozás
touch /etc/logcheck/ignore.d.server/dhcp-fix chown root:logcheck /etc/logcheck/ignore.d.server/dhcp-fix chmod 640 /etc/logcheck/ignore.d.server/dhcp-fix mcedit /etc/logcheck/ignore.d.server/dhcp-fix
-rw-r----- root logcheck /etc/logcheck/dhcp-fix ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ dhcpd: uid lease [.0-9]{7,15} for client [:[:xdigit:]]+ is duplicate on [._[:alnum:]-]+$
Mindenképpen jelentendők beállítása
Azokat a bejegyzéseket, amelyeket a logcheck alapértelmezésben figyelmen kívül hagy, de mi szeretnénk, ha jelentené, a /etc/logcheck/cracking.d vagy /etc/logcheck/violations.d alatt felvett, a bejegyzésre passzoló reguláris kifejezést tartalmazó állományba kell beírni.
- belépés SSH-val és jelszavas authentikációval (házirend szerint a kulccsal történő authentikáció az elfogadott):
touch /etc/logcheck/violations.d/ssh chown root:logcheck /etc/logcheck/violations.d/ssh; chmod 640 /etc/logcheck/violations.d/ssh mcedit /etc/logcheck/violations.d/ssh
-rw-r----- root logcheck /etc/logcheck/violations.d/ssh ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ sshd\[[0-9]+\]: Accepted password for