next up previous contents
Next: Restricted Shell Up: Belső támadások elleni védelem Previous: Az /etc/security/pam_env.conf   Contents

Események naplózása

A gépen történő események (belépés, kilépés, különböző kiszolgáló programokhoz intézett kérések) naplózása a rendszerbiztonság kritikus eleme.

A számunkra fontos log file-okat általában a /var/log/ könyvtár alatt találjuk. Ezek közül a messages, a secure és a maillog létezik alapértelmezésben. Tartalmuk általában a syslog() függvényhívás segítségével keletkezik, tehát a /etc/syslog.conf-ban beállítható, mit és hova szeretnénk logolni.

A ,,mit'' nagyrészt csak attól függ, mennyi információt akarunk kapni a rendszer működéséről. A ,,hova'' azért fontos, mert a betörő megváltoztathatja a logot, ha azt a host-on tároljuk. Ha biztonságban szereténk tudni, irányítsuk át egy másik gépre, ahol nincsenek helyi felhasználók és nem fut olyan szolgáltatás (mail, http, telnet, ftp, bind, pop, imap, stb.), amit felhasználva a gép feltörhető vagy ellene DoS támadás indítható. Az átirányításra a syslogd is kínál lehetőséget, de fogadó gépen az 514/UDP port elérését le kell korlátozni, nehogy jogosulatlanul logolhassanak a gépre, DoS támadást valósítva meg ezzel. Szűrni kell a spoof-olt címről érkező csomagokat is.

Az átirányításhoz a küldő gépen -h, a fogadó gépen pedig -r paraméterrel kell a syslogd-t indítani, illetve a küldő gép /etc/syslog.conf-jának a következőképp kell kinéznie:

*.*		@tavoli_host

Ezzel minden log-ot a tavoli_host-ra irányítottunk. Még jobb megoldás, ha a kapcsolatot ssh-val forwardoljuk, így egy sniffer elől is biztonságban van. Mivel nem UDP alapú a kapcsolat, megnehezíti az address spoofing-ot, amely ellen az ssh is védelmet nyújt. Kódolt transzferre a syslog-ng[43] is ad lehetőséget, több más hasznos tulajdonsága mellett, amelyek miatt érdemes kipróbálni.

A log átvitelére az egyik legbiztonságosabb megoldás, ha valamilyen link kábelt (soros vagy párhuzamos) használunk a szerver és a logot tároló gép összekötésére, de küldhetjük nyomtatóra is. Utóbbi hártányai közé tartozik, hogy a papír elfogyhat, esetleg elakadhat nyomtatás közben, így e technika kizárólagos alkalmazása nem javasolt. Ha a log a szerveren (is) megtalálható, elérési jogosultságait úgy kell beállítani, hogy nem privilégizált felhasználók ne olvashassák és főleg ne módosíthassák.

Van néhány program, amely elemzi a logot és figyelmeztet a rendkívüli eseményekre. Ezek közül az Swatch[44]-ot emelném ki, amely képes riasztást is küldeni (pl. pagerre).

Ha tényleg paranoiásak vagyunk, logolhatjuk a felhasználók általi programindításokat is egy kernel modul[45] segítségével.


Sajnos a syslog protokoll jelenlegi implementációi nem tökéletesek, nem védettek például DoS támadás, illetve a helyi felhasználók ellen. Egy 'logger "Szia mami!"' utasítás után érdemes belepillantani a /var/log/messages-be. Ugyanez még bosszantóbb, ha a 'logger -p 0 -t kernel "Szia mami!"' módon használják, mivel így a felhasználó neve sem kerül a logba, illetve a konzolon is megjelenik az üzenet. Erre szerencsére van megoldás (Michal Zalewski javaslata):

groupadd log
chmod 660 /dev/log
chown root.log /dev/log

Ezek után már csak a log group tagjait kell megválogatni.


next up previous contents
Next: Restricted Shell Up: Belső támadások elleni védelem Previous: Az /etc/security/pam_env.conf   Contents

1999-12-21