Benutzung von ps und top verhindern
Benutzung von ps und top verhindern
Ich habe einen Server, auf dem mehrere Leute Shell-Zugriff haben. Jetzt würde ich gerne vermeiden, dass diese sehen können, welche Prozesse auf dem System laufen.
Gibt es eine elegante Möglichkeit, den Zugriff auf die Prozeßliste zu verhindern bzw. dafür zu sorgen, dass die User nur ihre eigenen Prozesse sehen? ps und top einfach zu löschen ist leider keine Variante, da sich ja jeder das Programm einfach wieder hochladen kann.
Servus
Maxl
Gibt es eine elegante Möglichkeit, den Zugriff auf die Prozeßliste zu verhindern bzw. dafür zu sorgen, dass die User nur ihre eigenen Prozesse sehen? ps und top einfach zu löschen ist leider keine Variante, da sich ja jeder das Programm einfach wieder hochladen kann.
Servus
Maxl
Re: Benutzung von ps und top verhindern
Hm, und selbst wenn die Programme nicht hochgeladen werden könnten: Mit ein bisschen Stöbern unter /proc und 1-2 Shellskripten kommt man auch ohne ps an die Daten ran.
Wenn ich mich recht entsinne, ist im Openwall-Kernelpatch auch enthalten, dass Otto Normaluser keine Leseberechtigung unter /proc hat. Aber das ist natürlich ein ziemlicher Eingriff.
Jochen
Wenn ich mich recht entsinne, ist im Openwall-Kernelpatch auch enthalten, dass Otto Normaluser keine Leseberechtigung unter /proc hat. Aber das ist natürlich ein ziemlicher Eingriff.
Jochen
Re: Benutzung von ps und top verhindern
Der Hinweis auf /proc war nicht schlecht. Ändert man die Rechte für dieses Verzeichnis so, dass nur noch root darauf zugreifen darf, funktionieren ps und top auch nicht mehr. Das ließe sich ja jeweils beim booten machen. Ob das noch irgend welche Nebenwirkungen hat, weiß ich allerdings noch nicht...
Maxl
Maxl
Re: Benutzung von ps und top verhindern
Hi!
Es soll spezielle Shells geben, die nur die Ausführung von bestimmten Kommandos zulassen. Ich weiß jetzt allerdings keine Namen.
Man könnte ja hergehen und bash patchen, so daß mit Ausnahme von "sudo" keine externen Programme mehr erlaubt sind. Und in sudo kann man genau festlegen, welche Programme erlaubt sind. Das dürfte die einzige wirksame Methode sein, ps zu verhindern, da ein Benutzer das Programm auch beliebig nennen kann, wenn er es in seinem Homeverzeichnis hat.
Ansonsten hilft nur Patchen des Kernels.
Gruß,
hjb
Es soll spezielle Shells geben, die nur die Ausführung von bestimmten Kommandos zulassen. Ich weiß jetzt allerdings keine Namen.
Man könnte ja hergehen und bash patchen, so daß mit Ausnahme von "sudo" keine externen Programme mehr erlaubt sind. Und in sudo kann man genau festlegen, welche Programme erlaubt sind. Das dürfte die einzige wirksame Methode sein, ps zu verhindern, da ein Benutzer das Programm auch beliebig nennen kann, wenn er es in seinem Homeverzeichnis hat.
Ansonsten hilft nur Patchen des Kernels.
Gruß,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?
Re: Benutzung von ps und top verhindern
Und wenn du deinen Anwender die Möglichkeit gibst, eine Programmiersprache zu benutzen hast du auch ein Problem:
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
#!/bin/perl
use v5.8.0;
use strict;
use warnings;
use diagnostics;
use Proc::ProcessTable;
my $FORMAT="%-6s %-5s %-10s %-8s %-24s %s
";
my $proctable = new Proc::ProcessTable;
printf($FORMAT, "PID", "UID", "TTY", "STAT", "START", "COMMAND");
foreach my $proc (@{$proctable->table}) {
printf( $FORMAT, $proc->pid, $proc->uid, $proc->ttydev, $proc->state, scalar(localtime($proc->start)), $proc->cmndline);
}
__END__
</font><hr></pre></blockquote>
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
#!/bin/perl
use v5.8.0;
use strict;
use warnings;
use diagnostics;
use Proc::ProcessTable;
my $FORMAT="%-6s %-5s %-10s %-8s %-24s %s
";
my $proctable = new Proc::ProcessTable;
printf($FORMAT, "PID", "UID", "TTY", "STAT", "START", "COMMAND");
foreach my $proc (@{$proctable->table}) {
printf( $FORMAT, $proc->pid, $proc->uid, $proc->ttydev, $proc->state, scalar(localtime($proc->start)), $proc->cmndline);
}
__END__
</font><hr></pre></blockquote>
Re: Benutzung von ps und top verhindern
Bei mir findet er Proc::ProcessTable nicht. Wo kann man das zum Testen herbekommen?
Servus
Maxl
Servus
Maxl
Re: Benutzung von ps und top verhindern
OK, ich habe es gefunden.
Das Perlskript gibt übrigens nur das hier aus, wenn /proc nur für root zugreifbar ist:
PID UID TTY STAT START COMMAND
Scheint also zu funktionieren <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">
Maxl
Das Perlskript gibt übrigens nur das hier aus, wenn /proc nur für root zugreifbar ist:
PID UID TTY STAT START COMMAND
Scheint also zu funktionieren <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">
Maxl
Re: Benutzung von ps und top verhindern
Vielleicht solltest du dich mal fuer Linux hardening bzw. haerten interessieren. Schau doch mal bei <a href="http://www.grsecurity.net/" target="_blank"><!--auto-->http://www.grsecurity.net/</a><!--auto--> vorbei.
ratte
ratte
Re: Benutzung von ps und top verhindern
Lösungen, bei denen am Kernel rumgepatcht werden muß, eignen sich für meine Zwecke leider überhaupt nicht.
Servus
Maxl
Servus
Maxl
Re: Benutzung von ps und top verhindern
Wie waere es mit einer "Restricted Shell" (siehe rbash, rkorn)
oder einer chroot jail?
ciau, stefan
oder einer chroot jail?
ciau, stefan