[[oktatas:linux|< Linux]]
====== Monitorozás ======
* **Szerző:** Sallai András
* Copyright (c) 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
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"
A **REPORTLEVEL** változóban állítható be a jelentési szint, 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)