Logování všech příkazů uživatelů

Logování všech příkazů uživatelů
« kdy: 18. 06. 2012, 11:56:46 »
zdravicko, chcem si urobit logovanie vsetkych prikazov, ktore kto zada na systeme. pozadovane spravanie je nasledovne:
1. prikazy (aj odpovede systemu) kazdeho usera, ktory dostane shell bude zaznamenana do suboru
2. zaznamenavat sa bude po kazdom enteri
3. ak user zada urcity retazec, tak sa nebude vytvarat takyto log (samozrejme by sa toto heslo nemalo objavit v history)
4. musi to bezat za stale (najlepsie cez daemontools) a najlepsie keby to nebolo vidiet v ps
5. logovat by to mohlo najlepsie niekde prec zo servera

radsej by som pouzil nejaky skript ako rootkit.

mam vymyslenu takuto vec:
do /etc/profile:
Kód: [Vybrat]
/usr/bin/script -q -a /var/log/user/$USER.txt 2>&1ale ma to haciky:
- zaznam session sa zapise iba po korektnom odhlaseni sa
- je to killnutelne (script)
- neda sa zadat heslo na vypnutie logovania

vdaka za nazory.
« Poslední změna: 18. 06. 2012, 13:56:57 od Petr Krčmář »


branchman2

Re:bash logging
« Odpověď #1 kdy: 18. 06. 2012, 12:39:56 »
Rootkit? To mi zavana niecim nie velmi legalnym.
Inak logging si do shellu (bashu) dopises lahko, je to opensource. Skus sa pozriet na prikaz syscall tee() - malo by to tu vyhodu / nevyhodu, ze by to logovalo stale, nie pri stlaceni enteru.
Ten urceny retazec a moznosti nelogovania okolo toho, to je len par dalsich if-ov. Vidiet v ps to bude ako je normalne vidiet bash, to znamena ziadny rozdiel. Logovanie prec zo servera je len otazka trochu inej inicializacie vystupu.

Spominane haciky:

- "je to killnutelne (script)" - kazdy program je killnutelny; ak by si aj nahodou osetril SIGTERM, stale moze niekto poslat SIGKILL
- "zaznam session sa zapise iba po korektnom odhlaseni sa" - to sa tu riesi stalym zapisom, ale ani tak to nie je uplne vyriesene - ak sa disk nesyncne a bash "spadne" (napr. mu niekto posle SIGKILL), tak moze koniec suboru od posledneho syncu chybat.
- "neda sa zadat heslo na vypnutie logovania" - to som opisoval explicitne

Re:bash logging
« Odpověď #2 kdy: 18. 06. 2012, 12:55:42 »
Hned druhý odkaz na googlu na dotaz "shell logging" je http://www.techsutram.com/2009/12/bash-shell-logging-technique.html a tam jsou zmíněné tři aplikace: rootsh, sudosh, ttyrec. Poslední z nich bude asi nevhodnější.

Aplikaci bude nejspíš potřeba nastavit uživateli jako login shell a znemožnit mu ho změnit.

Trident

Re:bash logging
« Odpověď #3 kdy: 18. 06. 2012, 18:17:45 »
Rootkit? To mi zavana niecim nie velmi legalnym.
Inak logging si do shellu (bashu) dopises lahko, je to opensource. Skus sa pozriet na prikaz syscall tee() - malo by to tu vyhodu / nevyhodu, ze by to logovalo stale, nie pri stlaceni enteru.
Ten urceny retazec a moznosti nelogovania okolo toho, to je len par dalsich if-ov. Vidiet v ps to bude ako je normalne vidiet bash, to znamena ziadny rozdiel. Logovanie prec zo servera je len otazka trochu inej inicializacie vystupu.

Spominane haciky:

- "je to killnutelne (script)" - kazdy program je killnutelny; ak by si aj nahodou osetril SIGTERM, stale moze niekto poslat SIGKILL
- "zaznam session sa zapise iba po korektnom odhlaseni sa" - to sa tu riesi stalym zapisom, ale ani tak to nie je uplne vyriesene - ak sa disk nesyncne a bash "spadne" (napr. mu niekto posle SIGKILL), tak moze koniec suboru od posledneho syncu chybat.
- "neda sa zadat heslo na vypnutie logovania" - to som opisoval explicitne
Proc si myslis ze pouziti rootkitu je nelegalni? Vadi ti snad kdyz si sperhakem oteviram svoje auto?

branchman2

Re:bash logging
« Odpověď #4 kdy: 19. 06. 2012, 23:21:08 »
Proc si myslis ze pouziti rootkitu je nelegalni? Vadi ti snad kdyz si sperhakem oteviram svoje auto?
To, ze je to nelegalne som nikde nepisal - pisal som akurat, ze to tym zavana. Nevadi mi, ked si otvarate svoje auto, ale ked budete v kukle odomykat dvere pomocou kamena miereneho na sklo, tak si budem mysliet, ze ho kradnete. Myslim si, ze existuju aj jednoduchsie cesty pre regulerneho majitela a prave preto  by som mal ten nazor, ze kradnete.


Re:Logování všech příkazů uživatelů
« Odpověď #5 kdy: 20. 06. 2012, 14:31:06 »
Nuz, nejdem si kradnut svoj server, chcem len vediet, co sa deje na systeme v pripade, ze niekto zmaze historiu.

skusal som ttyrec, ale na redhate 5 je nefunguje, je tam bug, s ktorym neviem pohnut https://bugzilla.redhat.com/show_bug.cgi?id=741706. budem vdacny za liek na toto, pretoze tento nastroj sa mi zda celkom dobry kedze vie zaznamenavat aj oknoidne shell programy.

ak nebude liek, tak by som teda skusil skript cez tee, o ktorom pisal brachman2, ale akosi neviem ani nic vyguglit. mozete ma nejako nakopnut?

zatial diky za rady.

Re:Logování všech příkazů uživatelů
« Odpověď #6 kdy: 20. 06. 2012, 14:36:12 »
budem vdacny za liek na toto
Nepouzivat operacni systemy s nesmyslne komplikovanymi balickovacimi systemy.

Re:Logování všech příkazů uživatelů
« Odpověď #7 kdy: 20. 06. 2012, 20:44:55 »
Prelozit to (na Centos 5) normalne jde: http://pastebin.com/PSM3Nw3y

Problem je v tom SRPM, ktery do CFLAGS nevimproc pridava -DHAVE_openpty

Bud muzes to SRPM predelat* nebo po vsech certech shanet balik libbsd-devel, se kterym by to snad uz prelozit melo jit (nebo se aspon posunes k nejake jine chybe :))

* nedoporucuju, kdysi jsem to delaval a doted z toho mam nocni mury

Pilgrim

Re:Logování všech příkazů uživatelů
« Odpověď #8 kdy: 20. 06. 2012, 21:11:00 »
Nevím jestli nechceš přesně toto, ale každý uživatel má ve své složce soubor .bash_history.
Stačilo by nějakým deamonem tyto soubory kontrolovat, aby jsi zachytil čas příkazu. Nebo prostě soubory jen vyčítat.

Lol Phirae

Re:Logování všech příkazů uživatelů
« Odpověď #9 kdy: 20. 06. 2012, 22:03:48 »
Nevím jestli nechceš přesně toto, ale každý uživatel má ve své složce soubor .bash_history.
Stačilo by nějakým deamonem tyto soubory kontrolovat, aby jsi zachytil čas příkazu. Nebo prostě soubory jen vyčítat.

To asi nebude to pravé ořechové, že... Viz třeba

Kód: [Vybrat]
export HISTFILE=/dev/null
 :D

ttr

Re:Logování všech příkazů uživatelů
« Odpověď #10 kdy: 20. 06. 2012, 22:17:58 »
a co tak skusit bash-bofh patch? Sice by si nevidel "vnutro" spustanych skriptov a vystup programov, no vsetko ostatne co uzivatel zada by si mal zaznamenane pomocou syslog. Pouzil som to na maly projekt, ale celkom mi to stacilo. Najprv si to vyskusaj, az potom zvaz ci je to postacujuce?
http://juzzy.com/index.php/files/4-bash
PS: neosetris zmenenie shell

Re:Logování všech příkazů uživatelů
« Odpověď #11 kdy: 21. 06. 2012, 00:36:52 »
Nevím jestli nechceš přesně toto, ale každý uživatel má ve své složce soubor .bash_history.
Stačilo by nějakým deamonem tyto soubory kontrolovat, aby jsi zachytil čas příkazu. Nebo prostě soubory jen vyčítat.

Bash umi v history logovat it timestamps , ale by default to neni zapnute.

Re:Logování všech příkazů uživatelů
« Odpověď #12 kdy: 21. 06. 2012, 00:51:17 »
zdravicko, chcem si urobit logovanie vsetkych prikazov, ktore kto zada na systeme. pozadovane spravanie je nasledovne:


Doporucuji Enterprise Audit Shell - eas.
Puvodne byl free/opensource a ke stahnuti http://download.strchr.net (viz http://www.sudo.ws/pipermail/sudo-announce/2006-March/000055.html), ale predpokladam ze autor pak zmenil nazor a kod uzavrel a je ted pravdepodobne pouzivan v nejakem komercnim reseni.

Kazdopadne kopie jsou stale jeste po internetu - jednou byly vydany, tak proste opensource jsou, jenom se nedaji sehnat opravy.
Hledejte eas-2.0.00.tar.gz
Napriklad zde http://fossies.org/unix/privat/eas-2.0.00.tar.gz/ , nebo zde balicky pro redhat
http://www6.atomicorp.com/channels/source/eas/
Michal Ambroz