< Linux

Monitorozás

Szerző: Sallai András

Copyright © Sallai András, 2017, 2018, 2019, 2020

Licenc: GNU Free Documentation License 1.3

Web: http://szit.hu

Mit monitorozzunk?

Nézzünk néhány dolgot, amit érdemes monitorozni:

futnak a szolgáltatások?

memóriahasználat?

lemezhasználata?

adatbázis egy adott alkalmazásban rendben van?

zárolások

kapcsolatok

naplók monitorozása

Monitorozó eszközök

Monitorozó eszköz lehet olyan, amelyik valós időben mutatja a történéseket. Van amelyik statisztikát készít belőle. Van amelyik e-mail-t küld róla.

ss, netstat

ps, top

htop

iptraf-ng

nbtscan

nmap

nload

nmon

monit

whowatch - menüs, interaktív folyamat és felhasználó nézegető

A következő fejezetekben néhány eszköz kiemelve található.

Felmérő

A prads egy hálózati aktivitás figyelő program.

# apt install prads

Ellenőrizzük fut-e:

$ ps ax | grep prads

Weblap:

http://gamelinux.github.io/prads/

Riport:

# prads-asset-report

A futtatás lehetséges kimenete:

# prads-asset-report
prads-asset-report - PRADS Text Reporting Module
0.2 - 2010-04-14
Edward Fjellskaal <edward@redpill-linpro.com>
http://prads.projects.linpro.no/
1 ------------------------------------------------------
IP: 192.168.5.1
DNS: 192.168.5.1
OS: unknown unknown (0%) 0
Port Service UDP-Application
53 SERVER @domain
2 ------------------------------------------------------
IP: 192.168.5.103
DNS: 192.168.5.103
OS: unknown unknown (0%) 0
Port Service TCP-Application
22 SERVER @ssh
Port Service UDP-Application
53 CLIENT @domain
3 ------------------------------------------------------
IP: 192.168.5.5
DNS: 192.168.5.5
OS: unknown unknown (0%) 0
Port Service TCP-Application
22 CLIENT @ssh

Napló:

# cat /var/log/prads-asset.log

Monit

Rendszergazdaként:

# apt install monit

A webes felület beállításához az alábbiakat kell tennünk.

Szerkesszük a következő a /etc/monit/monitrc állományt:

# nano /etc/monit/monitrc

Keressük meg a következő sorokat:

# set httpd port 2812 and
# use address localhost # anly accept connection from localhost
# allow localhost # allow localhost to connect to the server and
# allow admin:monit # require user 'admin' with password 'monit'

Vegyük ki a megjegyzést két sor előtt:

set httpd port 2812 and
# use address localhost # anly accept connection from localhost
# allow localhost # allow localhost to connect to the server and
allow admin:monit # require user 'admin' with password 'monit'

Indítsuk újra a monitot:

systemctl restart monit

Ellenőrizzük a 2812-es portot:

ss -lt

A böngészőbe írjuk be:

http://192.168.10.2:2812/

A parancssorból is lekérdezhető a státusz:

monit status

Engedélyezzük a példa kedvéért az apache2 monitorozását:

ln -s /etc/monit/conf-available/apache2 /etc/monit/conf-enabled/

Indítsuk újra a monitot:

systemctl restart monit

A Pure-FTPd nem szerepel az engedélyezhető szolgáltatások között. Ezért készítsük el a hozzátartozó konfigurációs fájlt.

nano /etc/monit/conf-available/pure-ftpd

check process proftpd with pidfile /run/pure-ftpd/pure-ftpd.pid
start program = "systemctl start pure-ftpd"
stop program = "systemctl stop pure-ftpd"
if failed port 21 protocol ftp then restart

Ezek után, linkeljük az engedélyezett szolgáltatások közzé:

ln -s /etc/monit/conf-available/pure-ftpd /etc/monit/conf-enabled/

A konfigurációs fájl szintaktikai ellenőrzése:

monit -t

Indítsuk újra a monitot:

systemctl restart monit

Hasznos alparancsok:

monit summary
monit status
monit status pure-ftpd

whowatch

Telepítés:

apt install whowatch

Indítás:

whowatch

2 users: 0 local, 0 telnet, 0 ssh, 2 other load: 0.97, 0.48, 0.34
(lightdm) janos tty7 :0 -
(lxpanel) janos pts/1 :0.0 -
[ENT]proc all[t]ree [d]etails [s]ysinfo

acct

Az acct

Az acct egy folyamat és belépésfigyelő.

Telepítés

apt install acct

Használat

Az acct scriptként fut:

/etc/cron.daily/acct
/etc/cron.monthly/acct

Felhasználói kapcsolatok statisztikája:

ac

Napi bejelentkezési statisztika:

ac -d

Bejelentkezések összideje felhasználóként:

ac -p

A janos felhasználó ideje:

ac janos

A janos felhasználó összes bejelentkezési ideje, naponta:

ac -d janos

Az összes hozzáférés aktiválása:

sa

Információ egyedenként:

sa -u

Folyamatok számának kiírása:

sa -m

A teljes idő százalékos formában:

sa -c

Utoljára futtatott parancsok listája:

lastcomm janos

Parancsok keresése:

lastcomm ls

auditd

Telepítés

apt install auditd

Napló

tail -f /var/log/audit/audit.log

Vezérlés

A auditd önmagában figyeli a fontosabb eseményeket, de magunk vehetünk fel szabályokat és figyelőket:

szabályok

figyelők

Figyeljük a /data/raktar.txt állomány változásait, ehhez vegyünk fel egy szabályt:

auditctl -w /data/raktar.txt -p wa

Felvett szabályok listázása:

auditctl -l

Lehetséges kimenet:

-w /data/raktar.txt -p wa

A -w a watch szóból, vagyis figyelőt állítunk be vele. A gyökér '/' könyvtár nem adható meg. A -p a permission szóból, vagyis megmondjuk milyen jogokat kell figyelni. Figyelhető jogok:

r read

w write

x execute

a attribute - tulajdonság változása

Egy figyelő törlése:

auditctl -W /data/raktar.txt -p wa

A -D kapcsolóval törölhetjük az összes szabályt és figyelőt.

auditctl -D

logcheck

A logcheck időnként elküldi a naplóállományokat e-mialben számunkra.

Telepítés:

apt install logcheck

A konfiguráció szerkesztése:

nano /etc/logcheck/logcheck.conf

DATE="$(date +'%Y-%m-%d %H:%M')" REPORTLEVEL="server" SENDMAILTO="logcheck" MAILASATTACH=0 FQDN=1 ATTACKSUBJECT="Biztonsági figyelmeztetés" SECURITYSUBJECT="Biztonsági esemény" EVENTSSUBJECT="Rendszeresemény" TMP="/tmp"

Állítsuk be a jelentési szintet, ami lehet workstation, server vagy paranoid.

Összefoglaló:

paranoid

minimális szűrő itt: ignore.d.paranoid

például tűzfal, néhány szolgáltatással

bőbeszédű kimenet

server

több szelekció itt: ignore.d.server

tartalmazza a paranoid szűrőt is

a gépek több szolgáltatást futtatnak

workstation

komplikált szűrőhalmaz itt: ignore.d.workstation

használja a paranoid és a server szűrőt

nem kritikus gépekhez

A SENDMAILTO változóban adjuk meg ki kapja a leveleket. Beírhatunk egy komplett e-mail címet. Ha csak egy nevet adunk meg, az e-mail lokálisan kerül kézbesítésre. Alapértelmezetten lesz egy logcheck alias, a /etc/alias állományban, ami a root felhasználóra mutat. A leveleket így a root felhasználó kapja.

Külső e-mail címekhez működő e-mail szerver szükséges.

Forrás

https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-monit (2018)

https://www.tecmint.com/how-to-monitor-user-activity-with-psacct-or-acct-tools/ (2019)

https://haptik.ai/tech/audit-user-activity/ (2019)

https://www.ictforce.be/2018/linux-security-logcheck/ (2019)