Fórum Root.cz

Hlavní témata => Software => Téma založeno: siginigin 18. 06. 2012, 11:56:46

Název: Logování všech příkazů uživatelů
Přispěvatel: siginigin 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.
Název: Re:bash logging
Přispěvatel: branchman2 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
Název: Re:bash logging
Přispěvatel: Mirek Prýmek 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.
Název: Re:bash logging
Přispěvatel: Trident 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?
Název: Re:bash logging
Přispěvatel: branchman2 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.
Název: Re:Logování všech příkazů uživatelů
Přispěvatel: siginigin 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.
Název: Re:Logování všech příkazů uživatelů
Přispěvatel: Mirek Prýmek 20. 06. 2012, 14:36:12
budem vdacny za liek na toto
Nepouzivat operacni systemy s nesmyslne komplikovanymi balickovacimi systemy.
Název: Re:Logování všech příkazů uživatelů
Přispěvatel: Mirek Prýmek 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
Název: Re:Logování všech příkazů uživatelů
Přispěvatel: Pilgrim 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.
Název: Re:Logování všech příkazů uživatelů
Přispěvatel: Lol Phirae 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
Název: Re:Logování všech příkazů uživatelů
Přispěvatel: ttr 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
Název: Re:Logování všech příkazů uživatelů
Přispěvatel: Michal Ambroz 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.
Název: Re:Logování všech příkazů uživatelů
Přispěvatel: Michal Ambroz 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 (http://download.strchr.net) (viz http://www.sudo.ws/pipermail/sudo-announce/2006-March/000055.html (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/ (http://fossies.org/unix/privat/eas-2.0.00.tar.gz/) , nebo zde balicky pro redhat
http://www6.atomicorp.com/channels/source/eas/ (http://www6.atomicorp.com/channels/source/eas/)
Michal Ambroz