Com gestionar els registres del sistema (configurar, girar i importar a la base de dades) a RHEL 7 - Part 5


Per tal de mantenir segurs els vostres sistemes RHEL 7, heu de saber com controlar totes les activitats que tenen lloc en aquests sistemes examinant els fitxers de registre. Així, podreu detectar qualsevol activitat inusual o potencialment maliciosa i realitzar la resolució de problemes del sistema o prendre una altra acció adequada.

A RHEL 7, el dimoni rsyslogd és responsable del registre del sistema i llegeix la seva configuració des de /etc/rsyslog.conf (aquest fitxer especifica la ubicació per defecte per a tots els registres del sistema) i dels fitxers dins de /etc/rsyslog.d, si n'hi ha.

Configuració Rsyslogd

Una inspecció ràpida del fitxer rsyslog.conf serà útil per començar. Aquest fitxer es divideix en 3 seccions principals: Mòduls (ja que rsyslog segueix un disseny modular), Directives globals (utilitzades per establir propietats globals del dimoni rsyslogd) i Regles. Com probablement endevinareu, aquesta darrera secció indica què es registra o es mostra (també conegut com a selector) i on, i ens centrarem al llarg d'aquest article.

Una línia típica a rsyslog.conf és la següent:

A la imatge de dalt, podem veure que un selector consta d'un o més parells Facilitat:Prioritat separats per punt i coma, on Facilitat descriu el tipus de missatge (consulteu la secció 4.1.1 a RFC 3164 per veure la llista completa d'instal·lacions disponibles per a rsyslog) i Prioritat indica la seva gravetat, que pot ser una de les següents paraules autoexplicatives:

  1. depurar
  2. informació
  3. avís
  4. advertència
  5. err
  6. crit
  7. alerta
  8. emergeix

Tot i que no és una prioritat en si, la paraula clau none significa que no hi ha cap prioritat de la instal·lació donada.

Nota: que una prioritat determinada indica que tots els missatges d'aquesta prioritat i superiors s'han de registrar. Així, la línia de l'exemple anterior indica al dimoni rsyslogd que registri tots els missatges d'informació de prioritat o superior (independentment de la instal·lació), excepte els que pertanyen als serveis de correu, authpriv i cron (no es tindran en compte cap missatge procedent d'aquestes instal·lacions). ) a /var/log/messages.

També podeu agrupar diverses instal·lacions utilitzant el signe de dos punts per aplicar la mateixa prioritat a totes. Així, la línia:

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

Es podria reescriure com

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

És a dir, les instal·lacions mail, authpriv i cron s'agrupen i s'aplica la paraula clau none als tres.

Per registrar tots els missatges del dimoni a /var/log/tecmint.log, hem d'afegir la línia següent a rsyslog.conf o en un fitxer separat (més fàcil de gestionar) dins de /etc/rsyslog.d:

daemon.*    /var/log/tecmint.log

Reiniciem el dimoni (tingueu en compte que el nom del servei no acaba amb una d):

# systemctl restart rsyslog

I comproveu el contingut del nostre registre personalitzat abans i després de reiniciar dos dimonis aleatoris:

Com a exercici d'autoaprenentatge, us recomanaria jugar amb les instal·lacions i les prioritats i registrar missatges addicionals als fitxers de registre existents o crear-ne de nous com a l'exemple anterior.

Rotació de registres mitjançant Logrotate

Per evitar que els fitxers de registre creixin sense parar, la utilitat logrotate s'utilitza per girar, comprimir, eliminar i, alternativament, enviar registres, facilitant així l'administració dels sistemes que generen un gran nombre de fitxers de registre.

Logrotate s'executa diàriament com a treball cron (/etc/cron.daily/logrotate) i llegeix la seva configuració des de /etc/logrotate.conf i dels fitxers situats a /etc/logrotate.d, si n'hi ha.

Com en el cas de rsyslog, fins i tot quan podeu incloure la configuració de serveis específics al fitxer principal, crear fitxers de configuració separats per a cadascun us ajudarà a organitzar millor la vostra configuració.

Fem una ullada a un típic logrotate.conf:

A l'exemple anterior, logrotate realitzarà les accions següents per a /var/loh/wtmp: intenteu girar només un cop al mes, però només si el fitxer té una mida d'almenys 1 MB i, a continuació, creeu un fitxer de registre nou amb els permisos establerts. a 0664 i la propietat es dóna a l'usuari root i al grup utmp. A continuació, només conserveu un registre arxivat, tal com especifica la directiva de rotació:

Considerem ara un altre exemple que es troba a /etc/logrotate.d/httpd:

Podeu llegir més sobre la configuració de logrotate a les seves pàgines de manual (man logrotate.conf). Ambdós fitxers es proporcionen juntament amb aquest article en format PDF per a la vostra comoditat de lectura.

Com a enginyer del sistema, depèn de vosaltres decidir quant de temps s'emmagatzemaran els registres i en quin format, depenent de si teniu /var en una partició/volum lògic separat. En cas contrari, realment voleu considerar eliminar els registres antics per estalviar espai d'emmagatzematge. D'altra banda, és possible que us oblideu a mantenir diversos registres per a futures auditories de seguretat d'acord amb les polítiques internes de la vostra empresa o client.

Per descomptat, examinar els registres (fins i tot amb l'ajuda d'eines com grep i expressions regulars) pot esdevenir una tasca força tediosa. Per aquest motiu, rsyslog ens permet exportar-los a una base de dades (els RDBMS compatibles amb OTB inclouen MySQL, MariaDB, PostgreSQL i Oracle.

Aquesta secció del tutorial suposa que ja heu instal·lat el servidor i el client MariaDB al mateix quadre RHEL 7 on s'estan gestionant els registres:

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

A continuació, utilitzeu la utilitat mysql_secure_installation per establir la contrasenya per a l'usuari root i altres consideracions de seguretat:

Nota: Si no voleu utilitzar l'usuari root de MariaDB per inserir missatges de registre a la base de dades, podeu configurar un altre compte d'usuari per fer-ho. Explicar com fer-ho està fora de l'abast d'aquest tutorial, però s'explica amb detall a la base de coneixement MariaDB. En aquest tutorial farem servir el compte root per simplificar.

A continuació, descarregueu l'script createDB.sql de GitHub i importeu-lo al vostre servidor de bases de dades:

# mysql -u root -p < createDB.sql

Finalment, afegiu les línies següents a /etc/rsyslog.conf:

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

Reinicieu rsyslog i el servidor de bases de dades:

# systemctl restart rsyslog 
# systemctl restart mariadb

Ara realitzeu algunes tasques que modificaran els registres (com ara aturar i iniciar serveis, per exemple), després iniciar sessió al vostre servidor de base de dades i utilitzar ordres SQL estàndard per mostrar i cercar als registres:

USE Syslog;
SELECT ReceivedAt, Message FROM SystemEvents;

Resum

En aquest article hem explicat com configurar el registre del sistema, com girar els registres i com redirigir els missatges a una base de dades per facilitar la cerca. Esperem que aquestes habilitats us siguin útils a l'hora de preparar-vos per a l'examen RHCE i també en les vostres responsabilitats diàries.

Com sempre, els vostres comentaris són més que benvinguts. No dubteu a utilitzar el formulari següent per posar-vos en contacte amb nosaltres.