Bezpečnosť počítačových systémov / Procesy DB, FIIT STU BA, 2009 1
Procesy a programy
● Základné pojmy● Zoznam procesov● Za aženie systémuť● Ovládanie procesov, signály● Využívané prostriedky a ich limity● Činnos procesovť● Záznamy činnosti (log-y)● Aktualizovanie programov
Bezpečnosť počítačových systémov / Procesy DB, FIIT STU BA, 2009 2
Proces
● Bežiaca inštancia programu.
● Vzniká volaním fork() (resp. clone()), ako kópia volajúceho procesu.
● Je jednoznačne identifikovaný PID.
● Má priradené UID a GID používate a (ktorý ľproces spustil).
● S okolím komunikuje cez súbory (stdin, stdout, stderr) a signály.
● Spotrebováva systémové prostriedky (pamä , procesorový čas).ť
Bezpečnosť počítačových systémov / Procesy DB, FIIT STU BA, 2009 3
Zoznam procesov
● Príkaz ps zobrazuje:
– PID, PPID,
– UID,
– stav (R, T, D, S, I, Z),
– využitie pamäte, CPU,
– názov príkazu, argumenty, ...● Filtrovanie
– napr. pod a používate a.ľ ľ● Výstupný formát, zora ovanie.ď
Bezpečnosť počítačových systémov / Procesy DB, FIIT STU BA, 2009 4
Zoznam procesov
● Všetky procesy v systéme
– ps auxw
– ps e
● Procesy konkrétneho používate aľ
– ps Fu user
● Zobrazenie vz ahovť
– ps eH; ps axjf; pstree
– ps feHu root
● Informácie o vláknach
– ps eLf
Bezpečnosť počítačových systémov / Procesy DB, FIIT STU BA, 2009 5
Vyhľadanie procesov
● Pod a názvu príkazu (a alších kritérií) ľ ď vypíše zoznam zodpovedajúcich PID
– man pgrep
– pgrep l bash
– pgrep u root sendmail
– pgrep u root,user ssh
● Zadaný re azec je regulárny výrazť
– pgrep ^ba
– pgrep '\.sh$'
– pgrep sh
Bezpečnosť počítačových systémov / Procesy DB, FIIT STU BA, 2009 6
Zaťaženie systému
● Celkový preh adľ
– uptime
● aktuálny čas, čas od “nabootovania”,● počet prihlásených používate ov,ľ● load averages (1, 5, 15 minút).
● Periodické (interaktívne) sledovanie procesov
– top
● procesy, (vlákna), pamä (swap),ť● zoradenie pod a podielu CPU, podielu ľ
pamäte, PID, spotrebovaného času, ...
Bezpečnosť počítačových systémov / Procesy DB, FIIT STU BA, 2009 7
Zaťaženie systému
● Príkaz top
– f, vo ba zobrazovaných parametrovľ
– H, informácie o vláknach
– u, filtrovanie pod a používate aľ ľ
– M, zora ovanie pod a zabranej pamäte (%)ď ľ
– P, zora ovanie pod a času CPU (%)ď ľ
– O, výber kritérií zora ovaniaď● Vo ná pamäľ ť
– free, vmstat
Bezpečnosť počítačových systémov / Procesy DB, FIIT STU BA, 2009 8
Signály – zrušenie procesu
● Zaslanie signálu procesom s daným PID
– man kill
– kill 9 1234 234 9876
– kill l, vypíše zoznam signálov
● Zaslanie signálu procesom pod a názvuľ
– pkill, ako pgrep (pozná regulárne výrazy)
– killall (zadaný názov musí zodpoveda )ť
– killall TERM telnet
● Zrušenie procesu (prestane existova )ť
– SIGTERM, SIGKILL
Bezpečnosť počítačových systémov / Procesy DB, FIIT STU BA, 2009 9
Signály – zastavenie procesu
● Zastavený proces nie je plánovaný, teda nevykonáva sa a nespotrebováva CPU čas.
● Môže by spustený od miesta, kde bol ťzastavený.
● Zastavenie a spustenie procesu:
– SIGSTOP, SIGCONT
– pkill STOP u user bash
– pkill CONT u user bash
Bezpečnosť počítačových systémov / Procesy DB, FIIT STU BA, 2009 10
Ďalšie signály
● Znovunačítanie konfiguračného súboru
– SIGHUP
● Niektoré démony reagujú na tento signál znovunačítaním konfigurácie, bez nutnosti zastavenia
– killall HUP sshd
– pkill HUP named
● Príkaz dd – zobrazenie I/O štatistík
– po zaslaní signálu USR1 vypíše štatistiky na stderr
– killall USR1 u user dd
Bezpečnosť počítačových systémov / Procesy DB, FIIT STU BA, 2009 11
Otvorené súbory
● Zoznam všetkých otvorených súborov
– man lsof
● príkaz, PID, používate , ve kos , ...ľ ľ ť● filtrovanie,● h adá a vypisuje otvorené súbory.ľ
– lsof c ba, lsof c /^ba/
● procesy s názvom začínajúcim na “ba”– lsof +D /tmp/
● procesy majúce otvorené súbory z /tmp/ a podadresárov
– lsof p 1
● súbory procesu s PID rovné 1
Bezpečnosť počítačových systémov / Procesy DB, FIIT STU BA, 2009 12
Otvorené súbory
● Zoznam procesov, ktoré majú otvorený daný súbor
– man fuser
● Vypisuje len zoznam PID a spôsob využitia (cefFrm)
– fuser /bin/*sh
– fuser u ~
● S prepínačom 'v' udáva aj meno používate a a príkazuľ
– fuser v /tmp/
Bezpečnosť počítačových systémov / Procesy DB, FIIT STU BA, 2009 13
Otvorené sieťové spojenia
● Príkaz netstat zobrazí zoznam všetkých soketov v systéme.
● S prepínačom p vypíše aj názov príkazu a PID procesu, ktorý je na konci spojenia.
– man netstat
– netstat nap
– netstat –protocol=ip nlp
Bezpečnosť počítačových systémov / Procesy DB, FIIT STU BA, 2009 14
Limity zdrojov procesu
● Limity pre systémové prostriedky procesu
– man ulimit (interný príkaz shell-u)
– ulimit a, vypíše aktuálne nastavenia
– core súbor, dátový segment, virt. pamä , ťpočet súborov, ve kos súboru, počet zámkov, ľ ťCPU čas, počet procesov, ...
– bežný používate ich môže len znižova ,ľ ť
– nastavenia pre používate ov:ľ● /etc/security/limits.conf
– globálne nastavenia:● /etc/rc.local
Bezpečnosť počítačových systémov / Procesy DB, FIIT STU BA, 2009 15
Priorita plánovania procesu
● Prioritu plánovania procesu je možné meni ťzmenou hodnoty nice:
– rozsah: +19 najnižšia priorita, –20 najvyššia.● Spustenie procesu so zmenenou prioritou
– man nice
– nice n 10 csh
● Zmena priority bežiacich procesov
– man renice
– renice 10 234
– zvýši prioritu môže len ť root.
Bezpečnosť počítačových systémov / Procesy DB, FIIT STU BA, 2009 16
Sledovanie činnosti procesu
● Výpis sytémových volaní, ktoré proces robí
– man strace
– strace p 123 f o output.txt
● Sledovanie knižničných volaní
– man ltrace
– ltrace p 234 s 255 e read
● Na cudzí proces iba root.
Bezpečnosť počítačových systémov / Procesy DB, FIIT STU BA, 2009 17
Štandardné procesy
● Niektoré procesy zabezpečujú úlohy potreb-né pre správny beh systému, alebo zabezpe-čujú rôzne služby
– chkconfig –list
– chkconfig kudzu off
– service rsyslog status
– service cups stop
– service sendmail restart
● Napríklad:
– init, crond, rsyslogd, sendmail, sshd, ...
Bezpečnosť počítačových systémov / Procesy DB, FIIT STU BA, 2009 18
Logy
● Súbory so záznamami o činnosti procesov sa nachádzajú v adresári /var/log
– ls ltr /var/log
● Rotácia log-ov
– pod a ve kosti, pod a času, ...ľ ľ ľ– /etc/logrotate.conf
● Formát; dátum, uzol, proces/kernel: správa
● Správy jadra: dmesg
● Systémové správy:
– rsyslogd, /etc/rsyslog.conf
– /var/log/{messages,secure,debug,cron}
Bezpečnosť počítačových systémov / Procesy DB, FIIT STU BA, 2009 19
Aplikačné logy
● Služba sendmail (elektronická pošta)
– záznamy o spustení a fungovaní služby
– o spracovaní alias-ov
– o každom e-maile– /var/log/maillog
● Služba httpd (apache, web server)
– záznamy servera sú v messages,
– záznamy o každom prístupe:● /var/log/httpd/access_log● /var/log/httpd/error_log● /var/log/httpd/ssl_request_log
Bezpečnosť počítačových systémov / Procesy DB, FIIT STU BA, 2009 20
Kontrola programov
● Správa programových balíkov
– man rpm
– rpm qi kernel
– rpm qf `which top`
– rpm ql opensshserver
● Overenie integrity programov
– rpm V sendmail
– typ súboru:● cdglr
– výsledky testov:● SM5DLUGT.
Bezpečnosť počítačových systémov / Procesy DB, FIIT STU BA, 2009 21
Aktualizácia programov
● Aktualizácia programových balíkov
– man yum
● Automatická aktualizácia
– service yumupdatesd status
– chkconfig yumupdatesd on
– vi /etc/yum/yumupdates
– service yumupdatesd start
● “Ručná” aktualizácia
– yum update
● Urobi vždy po inštalácii nového systému!ť
Bezpečnosť počítačových systémov / Procesy DB, FIIT STU BA, 2009 22
Súvisiace témy
● zmena root adresára pre proces– chroot
● bezpečnostné rozšírenia SELinux– getenforce, man selinux
● process accounting– accton
● boot-ovací proces– telinit, runlevel
● správa programových balíkov– rpm, yum
Bezpečnosť počítačových systémov / Procesy DB, FIIT STU BA, 2009 23
Literatúra a zdroje
● Manuálové stránky– http://www.manpages.info
● The Linux System Administrator's Guide– http://tldp.org/LDP/sag/html/
● Linux Administrator's Security Guide– http://www.seifried.org/lasg/
● Enabling Process Accounting on Linux HOWTO– http://www.faqs.org/docs/Linux-mini/Process-Accounting.html
● Securing & Optimizing Linux: The Ultimate Solution
– http://tldp.org/LDP/solrhe/Securing-Optimizing-Linux-The-Ultimate-Solution-v2.0.pdf