FreeBSD kézikönyv
Előző | Fejezet 29. Hálózati szerverek | Következő

# 29.11. Távoli gépek naplózása `syslogd` használatával

Készítette: Tom Rhodes.

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.

## 29.11.1. A naplószerver beállítása

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

> Megjegyzés: 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.

## 29.11.2. A naplókliens beállítása

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.

## 29.11.3. Hibakeresés

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)).

## 29.11.4. Biztonsági megfontolások

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.

Előző | Tartalom | Következő
Az órák egyeztetése az NTP használatával | Fel | Tűzfalak

Ha kérdése van a FreeBSD-vel kapcsolatban, a következő címre írhat (angolul): <freebsd-questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon: <gabor@FreeBSD.org>.