[debian linux] system wide shell history *alle* users

Pagina: 1
Acties:

  • usr-local-dick
  • Registratie: September 2001
  • Niet online
Hoi

Normaal heb je een shell history file in linux (bv .bash_history). Nou wil ik dat de shell commando's van alle users (ja ook root) gelogd worden, inclusief de tijd dat het commando uitgevoerd werd.
Wie weet of dit mogelijk is?

  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

Standaard is die optie er niet voor zover ik weet, maar aangezien je de sourcecode van bash vast wel kunt vinden, lijkt het me niet zo moeilijk om dat aan te passen ?

Alhoewel, je zit er dan wel mee dat je waarschijnlijk niet wilt dat user X kan zien wat user Y doet, dus dan zul je er weer een daemon voor moeten maken, die ervoor zorgt dat het op een zodanige manier wordt bewaard dat het secure is..

[ Voor 42% gewijzigd door moto-moi op 02-11-2003 16:42 ]

God, root, what is difference? | Talga Vassternich | IBM zuigt


  • odysseus
  • Registratie: Augustus 2000
  • Laatst online: 20:24

odysseus

Debian GNU/Linux Sid

Het loggen op zich is niet zo'n groot probleem - dat lukt met wat moeite vast wel. Je zit alleen met het probleem dat je bestandssysteem geen mogelijkheid biedt om aan een bestand wel append-mogelijkheden te geven, maar geen verwijder- of aanpasmogelijkheden. Als jouw commando's dus ergens gelogd worden, dan kan je net zo goed het logbestand weer verwijderen - dit geldt zeker voor root. De enige echt veilige manier lijkt me om het naar een ander systeem te sturen en het daar op te slaan - of je print het geheel automatisch uit via een printer, dat helpt ook :). Overigens kan zelfs daar nog wel wat tegen worden gedaan als root, bijvoorbeeld door de printerdriver te verwijderen, door de netwerkinterface naar beneden te halen of door nog een hele stapel andere dingen te doen. Root kan je nu eenmaal niet tegenhouden :).


Als je het simpel wilt houden dan kan je met 'bash | tee bestand' al een heel eind komen overigens - geef dat als shell aan de gebruikers en je vangt al een hoop situaties af. Wel zie ik dat de prompt dan niet goed wordt getoond, maar daar is vast wel iets op te verzinnen.

Leven is het meervoud van lef | In order to make an apple pie from scratch, you must first create the universe.


  • u_nix_we_all
  • Registratie: Augustus 2002
  • Niet online
Je kunt ook eens kijken naar process accounting dmv de grsecurity
kernel patches. Daarmee kun je bijv alle execve calls loggen.

[edit]

check:
http://www.google.nl/sear...=UTF-8&oe=UTF-8&hl=nl&lr=

meteen eerste linkje, die hele thread geeft diverse mogelijkheden,
incl een patch voor bash , grsecurity, etc. 8)

Zoekt en gij zult vinden :+

[ Voor 50% gewijzigd door u_nix_we_all op 02-11-2003 17:10 ]

You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.


  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 19:42

deadinspace

The what goes where now?

Mja, en als iemand dan een andere shell gebruikt zoals zsh of tcsh of zelfs sh, dan zie je plotseling niet meer wat hij doet. De shell is niet de juiste plek om dergelijke logging te doen.

u_nix_we_all zit beter in de richting voor een goede oplossing ;)

  • usr-local-dick
  • Registratie: September 2001
  • Niet online
Nou ik heb het gevonden hoor :)
Het programma snoopy (apt-get install snoopy ;)) zorgt ervoor dat van alle users de zooi gelogd wordt naar /var/log/auth.log.
Stukje logfile hier:

code:
1
2
3
Nov  2 17:28:34 huge snoopy[20538]: [dick, uid:1000 sid:20534]: cat /etc/passwd
Nov  2 17:28:57 huge snoopy[20539]: [dick, uid:1000 sid:20534]: vim /etc/inetd.conf
Nov  2 17:29:17 huge snoopy[20540]: [dick, uid:1000 sid:20534]: less sshd_config


Precies wat ik zocht _/-\o_ _/-\o_ _/-\o_

Iedereen heeft wel eens van die users die bij hoog en laag volhouden dat ze iets op een bepaalde tijd ingetypt hebben (of juist niet), en ik kon dat dus nooit achterhalen. Maar nu dus wel })

Uit de description van het programma:

" Snoopy is designed to aid the taks of a sysadmin by providing a log of
commands executed. Snoopy is completely transparent to the user and
applications it hooks in as a library providing a wrapper around calls
to execve() calls. Logging is done via syslogd and written to authpriv
allowing secure offsite logging of activity, generally the authpriv is
stored as /var/log/auth.log."

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 19:42

deadinspace

The what goes where now?

Da's al beter dan in de shell loggen, maar merk op dat je er wel omheen kunt komen als je echt wil.

  • fetcher
  • Registratie: Juni 2002
  • Laatst online: 24-01-2024
Toch vind ik het wel een erg handige tool :D

  • usr-local-dick
  • Registratie: September 2001
  • Niet online
Da's al beter dan in de shell loggen, maar merk op dat je er wel omheen kunt komen als je echt wil.
Ja OK, maar als je dit combineert met loggen naar een remote syslog server, dan heb je alle activiteiten totdat iemand syslog om zeep helpt.
Ik ben overigens nu op zoek naar een recept om een syslog server op te zetten die geen IP heeft. Iemand al zoiets gedaan op debian?

  • MikeN
  • Registratie: April 2001
  • Laatst online: 22-02 19:44
offtopic:
[quote]odysseus schreef op 02 november 2003 @ 16:53:
Je zit alleen met het probleem dat je bestandssysteem geen mogelijkheid biedt om aan een bestand wel append-mogelijkheden te geven, maar geen verwijder- of aanpasmogelijkheden. [/quote]

Daar is chattr +a toch voor? Of werkt dat tegenwoordig niet meer?

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 19:42

deadinspace

The what goes where now?

usr-local-dick schreef op 02 november 2003 @ 18:51:
Ja OK, maar als je dit combineert met loggen naar een remote syslog server, dan heb je alle activiteiten totdat iemand syslog om zeep helpt.
Nee, dat is mijn punt juist: dat heb je niet noodzakelijk.

Iemand die er voldoende van af weet (dat ruled scriptkiddies wel uit :P ) kan om dat loggen heen. Dat komt omdat het loggen in een extra library gebeurt. Als je ervoor zorgt dat die library niet gebruikt wordt voor jouw shell, dan wordt er ook niet gelogd.

  • igmar
  • Registratie: April 2000
  • Laatst online: 20:52

igmar

ISO20022

odysseus schreef op 02 november 2003 @ 16:53:
Het loggen op zich is niet zo'n groot probleem - dat lukt met wat moeite vast wel. Je zit alleen met het probleem dat je bestandssysteem geen mogelijkheid biedt om aan een bestand wel append-mogelijkheden te geven, maar geen verwijder- of aanpasmogelijkheden.
Uit de manpage van chattr :

A file with the `a' attribute set can only be open in
append mode for writing. Only the superuser can set or
clear this attribute.

  • igmar
  • Registratie: April 2000
  • Laatst online: 20:52

igmar

ISO20022

usr-local-dick schreef op 02 november 2003 @ 16:30:
Normaal heb je een shell history file in linux (bv .bash_history). Nou wil ik dat de shell commando's van alle users (ja ook root) gelogd worden, inclusief de tijd dat het commando uitgevoerd werd.
Wie weet of dit mogelijk is?
Is processacounting niet een optie ? Je shell's internal commando's worden dan niet gelogd, maar het overige wel. De logging gebeurd door de kernel, dus users kunnen d'r ook niet mee kloten.

Verwijderd

usr-local-dick schreef op 02 november 2003 @ 18:51:

Ik ben overigens nu op zoek naar een recept om een syslog server op te zetten die geen IP heeft. Iemand al zoiets gedaan op debian?
Geen ervaring of concrete howto maar ik heb een theorie.

NIC erin, directe kabel naar box die fungeert als een bridge & syslog server.
Route voor het IPv4 instellen naar die bridge. Bridge fungeert tussen zijn eth0 en zijn dummy0 en ''snift'' port 514. Je kunt 'm ook tussen internet (?) en die server ergens neerzetten zodat je Snort/Hogwash kunt gebruiken.

Schematies gezien:

Netwerk
|
''Lekke'' bak 10.0.0.1 @ eth1 met route voor 10.0.0.2 naar eth1 <-> eth0 ''logger'' bridge bak ''snift'' al het verkeer met bestemming 10.0.0.2 udp 514 <-> dumm0 / nix

Tis wel erg para. Over het algemeen zou een veilige syslogd die enkel op port 514/udp luistert en verder geen netwerk services open heeft staan ook volstaan...

.bash_history werkt alleen met Bash en wekt argwaan op. Aan de andere kant lijkt mij het inlichten van gebruikers over het feit dat zij gelogt worden wel zo aardig. Dit ook ivm privacy. Is dit verplicht? Weet iemand hoe dat zit met de Nederlandse wet?

  • usr-local-dick
  • Registratie: September 2001
  • Niet online
Nee, dat is mijn punt juist: dat heb je niet noodzakelijk.

Iemand die er voldoende van af weet (dat ruled scriptkiddies wel uit :P ) kan om dat loggen heen. Dat komt omdat het loggen in een extra library gebeurt. Als je ervoor zorgt dat die library niet gebruikt wordt voor jouw shell, dan wordt er ook niet gelogd.
Ja OK maar stel dat je alleen lokaal logt met syslogd. Als je die server echt goed hackt dan kan je de logfiles zo aanpassen dat er niets verdachts in staat.
Op mijn manier met snoopy+remote loggen (op ip-loze logserver) dan kan dat dus niet. Op een gegeven moment gebeurt er toch iets dat logt en als het remote is kun je daar dus niet meer bij.
Het gaat er niet om dat het perfect is, het is alleen *beter* ;)

  • usr-local-dick
  • Registratie: September 2001
  • Niet online
''Lekke'' bak 10.0.0.1 @ eth1 met route voor 10.0.0.2 naar eth1 <-> eth0 ''logger'' bridge bak ''snift'' al het verkeer met bestemming 10.0.0.2 udp 514 <-> dumm0 / nix

Tis wel erg para. Over het algemeen zou een veilige syslogd die enkel op port 514/udp luistert en verder geen netwerk services open heeft staan ook volstaan...
Als ik toch zo'n server ga opzetten dan kan ik net zogoed dat ding in ip-loze mode laten draaien toch?
Evt. een dual homed geval zodat je er wel van een andere interface bij kan misschien (wat de uber-para's weer niet zouden doen natuurlijk :))
Pagina: 1