Kuinka hallita järjestelmälokeja (määrittää, kiertää ja tuoda tietokantaan) RHEL 7:ssä - Osa 5


Jotta voit pitää RHEL 7 -järjestelmäsi turvassa, sinun on tiedettävä, kuinka voit seurata kaikkia tällaisissa järjestelmissä tapahtuvia toimintoja tutkimalla lokitiedostoja. Siten pystyt havaitsemaan epätavallisen tai mahdollisesti haitallisen toiminnan ja suorittamaan järjestelmän vianmäärityksen tai ryhtymään muihin asianmukaisiin toimiin.

RHEL 7:ssä rsyslogd-daemon vastaa järjestelmän lokiin kirjaamisesta ja lukee kokoonpanonsa tiedostosta /etc/rsyslog.conf (tämä tiedosto määrittää kaikkien järjestelmälokien oletussijainnin) ja tiedostoista, jotka ovat osoitteessa /etc/rsyslog.d, jos sellaisia on.

Rsyslogd-asetukset

Nopea rsyslog.conf-tarkistus auttaa aloittamaan. Tämä tiedosto on jaettu kolmeen pääosioon: Moduulit (koska rsyslog noudattaa modulaarista rakennetta), Global-ohjeet (käytetään rsyslogd-daemonin yleisten ominaisuuksien asettamiseen) ja >Säännöt. Kuten luultavasti arvaat, tämä viimeinen osio osoittaa, mitä kirjataan tai näytetään (tunnetaan myös valitsimena) ja missä, ja keskitymme tähän artikkeliin.

Tyypillinen rivi tiedostossa rsyslog.conf on seuraava:

Yllä olevassa kuvassa voimme nähdä, että valitsin koostuu yhdestä tai useammasta puolipisteillä erotetusta parista Facility:Priority, jossa Facility kuvaa viestin tyyppiä (katso RFC 3164:n osio 4.1.1). täydellinen luettelo rsyslogin käytettävissä olevista palveluista) ja Priority osoittaa sen vakavuuden, joka voi olla jokin seuraavista itsestään selvistä sanoista:

  1. debug
  2. tiedot
  3. ilmoitus
  4. Varoitus
  5. err
  6. krit
  7. hälytys
  8. esiin

Vaikka avainsana ei mikään ei itsessään ole prioriteetti, se tarkoittaa, että annetussa toiminnossa ei ole prioriteettia ollenkaan.

Huomaa: annettu prioriteetti tarkoittaa, että kaikki tämän prioriteetin tai sitä korkeammat viestit tulee kirjata lokiin. Siten yllä olevan esimerkin rivi käskee rsyslogd-demonia kirjaamaan lokiin kaikki prioriteettitiedon tai korkeamman tiedon viestit (toiminteesta riippumatta), paitsi ne, jotka kuuluvat postiin, authpriv- ja cron-palvelut (tältä palvelulta tulevia viestejä ei oteta huomioon) osoitteeseen /var/log/messages.

Voit myös ryhmitellä useita tiloja kaksoispisteen avulla soveltaaksesi samaa prioriteettia kaikille. Eli rivi:

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

Voidaan kirjoittaa uudelleen muotoon

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

Toisin sanoen tilat mail, authpriv ja cron ryhmitellään ja avainsanaa ei mitään käytetään kolme niistä.

Mukautetun lokitiedoston luominen

Jotta voimme kirjata kaikki demoniviestit tiedostoon /var/log/tecmint.log, meidän on lisättävä seuraava rivi joko tiedostoon rsyslog.conf tai erilliseen tiedostoon (helppo hallita). ) sisällä /etc/rsyslog.d:

daemon.*    /var/log/tecmint.log

Aloitetaan demoni uudelleen (huomaa, että palvelun nimi ei pääty d-kirjaimeen):

systemctl restart rsyslog

Ja tarkista mukautetun lokimme sisältö ennen kahden satunnaisen demonin uudelleenkäynnistämistä ja sen jälkeen:

Itseopiskeluna suosittelen, että leikit tilojen ja prioriteettien kanssa ja joko kirjaat lisäviestejä olemassa oleviin lokitiedostoihin tai luot uusia kuten edellisessä esimerkissä.

Lokien kiertäminen Logrotatella

Lokitiedostojen loputtoman kasvun estämiseksi logrotate -apuohjelmaa käytetään lokien kiertämiseen, pakkaamiseen, poistamiseen ja vaihtoehtoisesti lähettämiseen, mikä helpottaa suuria lokitiedostoja luovien järjestelmien hallintaa.

Suositeltu luku: Lokin kierron määrittäminen ja hallinta Logrotatella Linuxissa

Logrotate suoritetaan päivittäin cron-työnä (/etc/cron.daily/logrotate) ja lukee määrityksensä osoitteesta /etc/logrotate .conf ja tiedostoista, jotka sijaitsevat osoitteessa /etc/logrotate.d, jos sellaisia on.

Kuten rsyslogin tapauksessa, vaikka voit sisällyttää tiettyjen palvelujen asetukset päätiedostoon, erillisten määritystiedostojen luominen kullekin auttaa järjestämään asetuksiasi paremmin.

Katsotaanpa tyypillistä logrotate.conf-tiedostoa:

Yllä olevassa esimerkissä logrotate suorittaa seuraavat toiminnot kohteelle /var/loh/wtmp: yrittää kiertää vain kerran kuukaudessa, mutta vain, jos tiedosto on vähintään < kooltaan1 Mt ja luo sitten upouusi lokitiedosto, jonka käyttöoikeudet on asetettu arvoon 0664 ja omistusoikeus käyttäjän pääkäyttäjälle ja ryhmälle utmp. Säilytä seuraavaksi vain yksi arkistoitu loki rotate-käskyn mukaisesti:

Tarkastellaan nyt toista esimerkkiä, joka löytyy osoitteesta /etc/logrotate.d/httpd:

Voit lukea lisää logrotate:n asetuksista sen man-sivuilta (man logrotate ja man logrotate.conf). Molemmat tiedostot toimitetaan tämän artikkelin mukana PDF-muodossa lukemisen helpottamiseksi.

Järjestelmäsuunnittelijana on pitkälti sinun päätettävissäsi, kuinka kauan lokit säilytetään ja missä muodossa sen mukaan, onko sinulla /var erillisessä osiossa /< looginen tilavuus. Muussa tapauksessa kannattaa harkita vanhojen lokien poistamista tallennustilan säästämiseksi. Toisaalta saatat joutua pitämään useita lokeja tulevaa tietoturvatarkastusta varten yrityksesi tai asiakkaasi sisäisten käytäntöjen mukaisesti.

Lokien tallentaminen tietokantaan

Tietysti lokien tutkiminen (jopa työkalujen, kuten grep ja säännöllisten lausekkeiden avulla) voi olla melko ikävä tehtävä. Tästä syystä rsyslogin avulla voimme viedä ne tietokantaan (OTB-tuettuja RDBMS-järjestelmiä ovat MySQL, MariaDB, PostgreSQL ja Oracle.

Tässä opetusohjelman osassa oletetaan, että olet jo asentanut MariaDB-palvelimen ja asiakkaan samaan RHEL 7 -laatikkoon, jossa lokeja hallitaan:

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

Aseta sitten pääkäyttäjän salasana ja muut turvallisuusnäkökohdat mysql_secure_installation-apuohjelmalla:

Huomaa: jos et halua käyttää MariaDB-juurikäyttäjää lokiviestien lisäämiseen tietokantaan, voit määrittää toisen käyttäjätilin tehdä niin. Sen tekeminen ei kuulu tämän opetusohjelman soveltamisalaan, mutta se selitetään yksityiskohtaisesti MariaDB-tietokannassa. Tässä opetusohjelmassa käytämme juuritiliä yksinkertaisuuden vuoksi.

Lataa seuraavaksi createDB.sql-skripti GitHubista ja tuo se tietokantapalvelimellesi:

mysql -u root -p < createDB.sql

Lisää lopuksi seuraavat rivit tiedostoon /etc/rsyslog.conf:

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

Käynnistä rsyslog ja tietokantapalvelin uudelleen:

systemctl restart rsyslog 
systemctl restart mariadb

Lokien kysely SQL-syntaksin avulla

Suorita nyt joitain tehtäviä, jotka muokkaavat lokeja (kuten palveluiden pysäyttäminen ja käynnistäminen), kirjaudu sitten DB-palvelimellesi ja käytä tavallisia SQL-komentoja lokien näyttämiseen ja etsimiseen:

USE Syslog;
SELECT ReceivedAt, Message FROM SystemEvents;

Yhteenveto

Tässä artikkelissa olemme selittäneet, kuinka järjestelmän kirjaaminen määritetään, kuinka lokeja kierrätetään ja kuinka viestit ohjataan tietokantaan haun helpottamiseksi. Toivomme, että näistä taidoista on apua valmistautuessasi RHCE-kokeeseen ja myös päivittäisissä velvollisuuksissasi.

Kuten aina, palautteesi on enemmän kuin tervetullutta. Voit ottaa meihin yhteyttä alla olevalla lomakkeella.