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:
- hibakeresés
- info
- értesítés
- Figyelem
- téved
- crit
- éber
- 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.