A rendszernaplókkal kapcsolatos műveletek egyaránt fontosak a biztonság és a karbantartás szempontjából. Ha közepes vagy nagyobb méretű, esetleg különböző típusú hálózatokban adminisztrálunk több gépet, akkor könnyen átláthatatlanná válhat a naplók rendszeres felügyelete. Ilyen helyzetekben a távoli naplózás beállításával az egész folyamatot sokkal kényelmesebbé tehetjük.
Némileg képesek vagyunk enyhíteni a
naplóállományok kezelésének
terhét, ha egyetlen központi szerverre
küldjük át az adatokat. Ekkor a FreeBSD
alaprendszerében megtalálható
alapeszközökkel, mint például a
syslogd(8) vagy a newsyslog(8)
felhasználásával egyetlen helyen be tudjuk
állítani a naplók
összegyűjtését,
összefésülését és
cseréjét. A most következő példa
konfigurációban az A
gép, a
naploszerver.minta.com
fogja
gyűjteni a helyi hálózatról
érkező naplóinformációkat. A
B
gép, a naplokliens.minta.com
pedig a szervernek
küldi a naplózandó adatokat. Éles
környezetben mind a két gépnek rendelkeznie
kell megfelelő DNS bejegyzésekkel,
vagy legalább szerepelniük kell egymás
/etc/hosts
állományaiban. Ha
ezt elmulasztjuk, a szerver nem lesz hajlandó adatokat
fogadni.
A naplószerverek olyan gépek, amelyeket úgy állítottunk be, hogy naplózási információkat tudjanak fogadni távoli számítógépekről. A legtöbb esetben így egyszerűsíteni tudunk a konfiguráción, vagy olykor egyszerűen csak hasznos, ha ezt a megoldást alkalmazzuk. Függetlenül attól, hogy miért használjuk, a továbblépés előtt néhány előkészületet meg kell tennünk.
Egy rendesen beállított naplószervernek legalább a következő követelményeknek kell eleget tennie:
az 514-es UDP portot engedélyezni kell mind a kliensen, mind pedig a szerveren futó tűzfal szabályrendszerében;
a syslogd(8) képes legyen a távoli kliens gépekről érkező üzeneteket fogadni;
a syslogd(8) szervernek és az összes
kliensnek rendelkeznie kell érvényes
DNS (közvetlen és inverz)
bejegyzésekkel vagy szerepelnie kell az
/etc/hosts
állományban.
A naplószerver
beállításához mindegyik klienst fel
kell vennünk az /etc/syslog.conf
állományba, valamint meg kell adnunk a
megfelelő funkciót (facility):
+naplokliens.minta.com *.* /var/log/naplokliens.log
A syslog.conf(5) man oldalán megtalálhatjuk a különböző támogatott és elérhető funkciókat.
Miután beállítottuk, az összes
adott funkcióhoz tartozó üzenet az előbb
megadott állományba
(/var/log/naplokliens.log
) fog
kerülni.
A szerveren továbbá meg kell adnunk a
következő sort az /etc/rc.conf
állományban:
syslogd_enable="YES" syslogd_flags="-a naplokliens.minta.com -vv"
Az első sorral engedélyezzük a
syslogd
elindítását a
rendszerindítás során, majd a
második sorral engedélyezzük, hogy a kliens
naplózni tudjon a szerverre. Itt még
látható a -vv
opció,
amellyel a naplózott üzenetek
részletességét tudjuk növelni. Ennek
nagyon fontos a szerepe a naplózási
funkciók behangolásakor, mivel így a
rendszergazdák pontosan láthatják milyen
típusú üzenetek milyen funkcióval
kerültek rögzítésre a
naplóban.
Befejezésképpen hozzuk létre a naplóállományt. Teljesen mindegy, hogy erre milyen megoldást alkalmazunk, például a touch(1) remekül megfelel:
#
touch /var/log/naplokliens.log
Ezután indítsuk újra és
ellenőrizzük a syslogd
démont:
#
/etc/rc.d/syslogd restart
#
pgrep syslog
Ha válaszul megkapjuk a futó démon
azonosítóját, akkor sikerült
újraindítanunk, elkezdhetjük a kliens
beállítását. Ha valamiért
nem indult volna újra a szerver, az
/var/log/messages
állományból próbáljuk meg
kideríteni az okát.
A naplókliens az a gép, amely egy helyi naplópéldány karbantartása mellett továbbküldni a naplózandó információkat egy naplószervernek.
Hasonlóan a naplószerverekhez, a klienseknek is teljesítenie bizonyos alapvető elvárásokat:
a syslogd(8) démon küldjön bizonyos típusú üzeneteket a naplószervernek, amely ezeket pedig képes legyen fogadni;
a hozzá tartozó tűzfal engedje át a forgalmat az 514-es UDP porton;
rendelkezzen mind közvetlen, mind pedig inverz
DNS bejegyzéssel, vagy
szerepeljenek az /etc/hosts
állományban.
A kliens beállítása sokkal
egyszerűbb a szerverhez képest. A kliensen adjuk
hozzá a következő sorokat az
/etc/rc.conf
állományhoz:
syslogd_enabled="YES" syslogd_flags="-s -vv"
A szerver beállításaihoz
hasonlóan itt is engedélyezzük a
syslogd
démont és
megnöveljük a naplózott üzenetek
részletességét. A -s
kapcsolóval pedig megakadályozzuk, hogy a kliens
más gépekről is hajlandó legyen
naplóüzeneteket elfogadni.
A funkciók a rendszernek azon részét
írják le, amelyhez létrejön az adott
üzenet. Tehát például az
ftp
és ipfw
egyaránt ilyen funkciók. Amikor keletkezik egy
naplóüzenet valamelyikükhöz,
általában megjelenik a nevük. A
funkciókhoz tartozik még egy prioritás vagy
szint is, amellyel az adott üzenet
fontosságát jelzik. Ezek közül a
leggyakoribb a warning
(mint
"figyelmeztetés") és
info
(mint
"információ"). A
használható funkciók és a
hozzájuk tartozó prioritások teljes
listáját a syslog(3) man oldalán
olvashatjuk.
A naplószervert meg kell adnunk a kliens
/etc/syslog.conf
állományában. Itt a @
szimbólummal jelezzük, hogy az adatokat egy
távoli szerverre szeretnénk
továbbküldeni, valahogy így:
*.* @naploszerver.minta.com
Ezután a beállítás
érvényesítéséhez újra
kell indítanunk a syslogd
démont:
#
/etc/rc.d/syslogd restart
A logger(1) használatával
próbáljuk ki a kliensről a
aplóüzenetek hálózaton keresztüli
küldését, és küldjünk
valamit a syslogd
démonnak:
#
logger "Udvozlet a naplokliensrol"
A parancs kiadása után az üzenetnek mind
a kliens, mind pedig a szerver
/var/log/messages
állományában meg kell jelennie.
Előfordulhat, hogy a naplószerver
valamiért nem kapja meg rendesen az üzeneteket,
ezért valamilyen módon meg kell keresnünk a
hiba okát. Ez több minden lehet, de
általában két leggyakoribb ok valamilyen
hálózati kapcsolódási vagy
DNS beállítási hiba.
Ezek teszteléséhez gondoskodjunk róla, hogy
a gépek kölcsönösen elérhetőek
egymásról az /etc/rc.conf
állományban megadott hálózati
nevük szerint. Ha ezzel látszólag minden
rendben van, akkor próbáljuk meg
módosítani a syslogd_flags
értékét az
/etc/rc.conf
állományban.
A most következő példában a
/var/log/naplokliens.log
teljesen
üres, illetve a /var/log/messages
állomány semmilyen hibára utaló okot
nem tartalmaz. A hibakereséshez még több
információt a syslogd_flags
átírásával tudunk
kérni:
syslogd_flags="-d -a naploklien.minta.com -vv"
Természetesen ne felejtsük el újraindítani a szervert:
#
/etc/rc.d/syslogd restart
A démon újraindítása után közvetlenül az alábbiakhoz hasonló üzenetek árasztják el a képernyőt:
logmsg: pri 56, flags 4, from naploszerver.minta.com, msg syslogd: restart syslogd: restarted logmsg: pri 6, flags 4, from naploszerver.minta.com, msg syslogd: kernel boot file is /boot/kernel/kernel Logging to FILE /var/log/messages syslogd: kernel boot file is /boot/kernel/kernel cvthname(192.168.1.10) validate: dgram from IP 192.168.1.10, port 514, name naplokliens.minta.com; rejected in rule 0 due to name mismatch.
A diagnosztikai üzeneteket végigolvasva
nyilvánvaló válik, hogy azért dobja el
az üzeneteket a szerver, mert nem megfelelő a
gép neve. Miután átnézzük a
beállításainkat, felfedezhetünk az
/etc/rc.conf
állományban egy
apró hibát:
syslogd_flags="-d -a naploklien.minta.com -vv"
Láthatjuk, hogy ebben a sorban a
naplokliens
névnek kellene szerepelni,
nem pedig a naploklien
névnek.
Miután elvégeztük a szükséges
javításokat, indítsuk újra a
szervert és vizsgáljuk meg az
eredményt:
#
/etc/rc.d/syslogd restart
logmsg: pri 56, flags 4, from naploszerver.minta.com, msg syslogd: restart syslogd: restarted logmsg: pri 6, flags 4, from naploszerver.minta.com, msg syslogd: kernel boot file is /boot/kernel/kernel syslogd: kernel boot file is /boot/kernel/kernel logmsg: pri 166, flags 17, from naploszerver.minta.com, msg Dec 10 20:55:02 <syslog.err> naploszerver.minta.com syslogd: exiting on signal 2 cvthname(192.168.1.10) validate: dgram from IP 192.168.1.10, port 514, name naplokliens.minta.com; accepted in rule 0. logmsg: pri 15, flags 0, from naplokliens.minta.com, msg Dec 11 02:01:28 pgj: Masodik teszt uzenet Logging to FILE /var/log/naplokliens.log Logging to FILE /var/log/messages
Itt már minden üzenet rendben megérkezett
és a megfelelő állományokba
került (a /var/log/messages
a
kliensen, és a
/var/log/naplokliens.log
a
szerveren)).
Mint minden hálózati szolgáltatás esetén, ilyenkor is figyelembe kell vennünk bizonyos biztonsági megfontolásokat a tényleges konfiguráció kiépítése előtt. Olykor előfordulhat, hogy a naplók különböző kényes információkat tartalmaznak, mint például a helyi rendszeren futó szolgáltatások nevei, felhasználói nevek vagy egyéb konfigurációs adatok. A kliens és a szerver között hálózaton utazó adatok viszont se nem titkosítottak, se nem jelszóval védettek. Ha titkosítást szeretnénk használni, akkor javasoljuk például a security/stunnel portot, amellyel egy titkosított tunnelen keresztül tudunk adatokat küldeni a hálózaton.
A helyi rendszer biztonságának
szavatolása is fontos lehet. A naplók sem a
használat során, sem pedig a
lecserélésük után nem kerülnek
titkosításra. Emiatt a helyi rendszerhez
hozzáférő felhasználók
kedvükre nyerhetnek ki belőlük a
rendszerünket érintő
konfigurációs információkat.
Ezért ilyenkor nagyon fontos, hogy mindig a
megfelelő engedélyeket állítsuk be a
naplókra. A newsyslog(8) segédprogrammal be
tudjuk állítani a frissen létrehozott
és a lecserélt naplók engedélyeit.
Tehát könnyen megakadályozhatjuk a helyi
felhasználók
kíváncsiskodását, ha itt a
naplók engedélyeit például a
600
kóddal adjuk meg.
Ha kérdése van a FreeBSD-vel kapcsolatban, a
következő címre írhat (angolul):
<questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon:
<gabor@FreeBSD.org>.