Weboldal keresés

Rendszernaplók kezelése (konfigurálás, elforgatás és adatbázisba importálás) az RHEL 7-ben – 5. rész


Az RHEL 7 rendszerei biztonságának megőrzése érdekében tudnia kell, hogyan lehet a naplófájlok vizsgálatával nyomon követni az ilyen rendszereken zajló összes tevékenységet. Így képes lesz észlelni minden szokatlan vagy potenciálisan rosszindulatú tevékenységet, és elvégezni a rendszer hibaelhárítását vagy más megfelelő műveletet.

Az RHEL 7-ben az rsyslogd démon felelős a rendszernaplózásért, és beolvassa a konfigurációját az /etc/rsyslog.conf fájlból (ez a fájl határozza meg az összes rendszernapló alapértelmezett helyét), és az /etc/rsyslog.d fájlból, ha van ilyen.

Rsyslogd konfiguráció

Az rsyslog.conf gyors ellenőrzése hasznos lesz az induláshoz. Ez a fájl 3 fő részre oszlik: Modulok (mivel az rsyslog moduláris felépítést követ), Globális direktívák (az rsyslogd démon globális tulajdonságainak beállítására szolgál) és >Szabályok. Amint valószínűleg sejti, ez az utolsó szakasz jelzi, hogy mi kerül naplózásra vagy megjelenítésre (más néven választó), és hol, és ebben a cikkben ez lesz a fókuszunk.

Az rsyslog.conf tipikus sora a következő:

A fenti képen láthatjuk, hogy a szelektor egy vagy több Létesítmény:Prioritás párból áll, pontosvesszővel elválasztva, ahol a Facility leírja az üzenet típusát (lásd az RFC 3164 4.1.1 szakaszát, az rsysloghoz elérhető szolgáltatások teljes listája) és a Priority jelzi annak súlyosságát, amely a következő magától értetődő szavak egyike lehet:

  1. hibakeresés
  2. info
  3. értesítés
  4. Figyelem
  5. téved
  6. crit
  7. éber
  8. emerg

Bár maga nem prioritás, a nincs kulcsszó azt jelenti, hogy az adott létesítményben egyáltalán nincs prioritás.

Megjegyzés: Egy adott prioritás azt jelzi, hogy minden ilyen vagy magasabb prioritású üzenetet naplózni kell. Így a fenti példa sora arra utasítja az rsyslogd démont, hogy naplózza az összes prioritási információs vagy annál magasabb üzenetet (a szolgáltatástól függetlenül), kivéve azokat, amelyek a mail, üzenetekhez tartoznak. authpriv és cron szolgáltatások (az ebből a létesítményből érkező üzeneteket nem vesszük figyelembe) a /var/log/messages címre.

Több létesítményt is csoportosíthat a kettőspont segítségével, hogy mindegyikre ugyanazt a prioritást alkalmazza. Tehát a sor:

*.info;mail.none;authpriv.none;cron.none                /var/log/messages

Át lehetne írni mint

*.info;mail,authpriv,cron.none                /var/log/messages

Más szavakkal, a mail, authpriv és cron szolgáltatások csoportosítva vannak, és a none kulcsszót alkalmazza a hárman közülük.

Egyéni naplófájl létrehozása

Az összes démonüzenet naplózásához a /var/log/tecmint.log fájlba, a következő sort kell hozzáadnunk az rsyslog.conf fájlhoz vagy egy külön fájlhoz (könnyebben kezelhető). ) az /etc/rsyslog.d fájlban:

daemon.*    /var/log/tecmint.log

Indítsuk újra a démont (vegye figyelembe, hogy a szolgáltatás neve nem végződik d-re):

systemctl restart rsyslog

És ellenőrizze egyéni naplónk tartalmát két véletlenszerű démon újraindítása előtt és után:

Önálló tanulási gyakorlatként azt javaslom, hogy játsszon a lehetőségekkel és a prioritásokkal, és vagy naplózza a további üzeneteket a meglévő naplófájlokba, vagy hozzon létre újakat, mint az előző példában.

Naplók forgatása a Logrotate segítségével

A naplófájlok végtelen növekedésének megakadályozása érdekében a logrotate segédprogram a naplók forgatására, tömörítésére, eltávolítására és másodlagos elküldésére szolgál, így megkönnyítve a nagyszámú naplófájlt előállító rendszerek adminisztrációját.

Javasolt olvasmány: A naplóforgatás beállítása és kezelése a Logrotate használatával Linux alatt

A Logrotate naponta cron feladatként fut (/etc/cron.daily/logrotate), és beolvassa a konfigurációját a /etc/logrotate fájlból. .conf és az /etc/logrotate.d fájlból, ha vannak ilyenek.

Akárcsak az rsyslog esetében, még akkor is, ha bizonyos szolgáltatások beállításait belefoglalhatja a főfájlba, külön konfigurációs fájlok létrehozása mindegyikhez segít a beállítások jobb rendszerezésében.

Vessünk egy pillantást egy tipikus logrotate.conf fájlra:

A fenti példában a logrotate a következő műveleteket hajtja végre a /var/loh/wtmp esetén: próbálja meg csak havonta egyszer elforgatni, de csak akkor, ha a fájl legalább 1 MB méretű, majd hozzon létre egy vadonatúj naplófájlt 0664-re beállított jogosultságokkal, valamint az utmp felhasználói gyökér és csoport tulajdonjogával. Ezután csak egy archivált naplót tartson meg a rotate direktíva szerint:

Nézzünk most egy másik példát, amely az /etc/logrotate.d/httpd fájlban található:

A logrotate beállításairól bővebben a kézikönyv oldalain olvashat (man logrotate és man logrotate.conf). Mindkét fájlt a cikkhez mellékeljük PDF formátumban az olvasás kényelme érdekében.

Rendszermérnökként nagyjából Ön dönti el, mennyi ideig és milyen formátumban tárolja a naplókat, attól függően, hogy a /var külön partícióban van-e /< logikai kötet. Ellenkező esetben érdemes megfontolni a régi naplók eltávolítását a tárhely megtakarítása érdekében. Másrészt előfordulhat, hogy több naplót kell vezetnie a jövőbeni biztonsági ellenőrzésekhez a vállalat vagy az ügyfél belső szabályzata szerint.

Naplók mentése adatbázisba

Természetesen a naplók vizsgálata (még olyan eszközök segítségével is, mint a grep és a reguláris kifejezések) meglehetősen fárasztó feladat lehet. Emiatt az rsyslog lehetővé teszi számunkra, hogy adatbázisba exportáljuk őket (az OTB által támogatott RDBMS-ek közé tartozik a MySQL, a MariaDB, a PostgreSQL és az Oracle.

Az oktatóanyag ezen része feltételezi, hogy már telepítette a MariaDB szervert és az ügyfelet ugyanabba az RHEL 7 mezőbe, ahol a naplókat kezeli:

yum update && yum install mariadb mariadb-server mariadb-client rsyslog-mysql
systemctl enable mariadb && systemctl start mariadb

Ezután a mysql_secure_installation segédprogrammal állítsa be a root felhasználó jelszavát és egyéb biztonsági szempontokat:

Megjegyzés: Ha nem szeretné a MariaDB root felhasználót használni naplóüzenetek beszúrására az adatbázisba, konfigurálhat másik felhasználói fiókot hogy ezt tegye. Ennek elmagyarázása nem tartozik ennek az oktatóanyagnak a körébe, de a MariaDB tudásbázisban részletesen ismertetjük. Ebben az oktatóanyagban a root fiókot fogjuk használni az egyszerűség kedvéért.

Ezután töltse le a createDB.sql szkriptet a GitHubról, és importálja az adatbázis-kiszolgálóra:

mysql -u root -p < createDB.sql

Végül adja hozzá a következő sorokat az /etc/rsyslog.conf fájlhoz:

$ModLoad ommysql
$ActionOmmysqlServerPort 3306
*.* :ommysql:localhost,Syslog,root,YourPasswordHere

Indítsa újra az rsyslogot és az adatbázis-kiszolgálót:

systemctl restart rsyslog 
systemctl restart mariadb

A naplók lekérdezése SQL szintaxis használatával

Most hajtson végre néhány olyan feladatot, amelyek módosítják a naplókat (például a szolgáltatások leállítása és elindítása), majd jelentkezzen be a DB-kiszolgálóra, és használjon szabványos SQL-parancsokat a naplók megjelenítéséhez és kereséséhez:

USE Syslog;
SELECT ReceivedAt, Message FROM SystemEvents;

Összegzés

Ebben a cikkben elmagyaráztuk, hogyan állíthatja be a rendszernaplózást, hogyan forgathatja el a naplókat, és hogyan irányíthatja át az üzeneteket egy adatbázisba a könnyebb keresés érdekében. Reméljük, hogy ezek a készségek hasznosak lesznek az RHCE vizsgára való felkészülés során és a mindennapi feladatai során is.

Mint mindig, most is szívesen fogadjuk visszajelzését. Nyugodtan használja az alábbi űrlapot, hogy elérjen minket.