[[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)