User Einsperren / Trafficueberwachung / CPU-Last
Aquariophile
- webserver
0 MichaelB0 Thomas Schmieder0 Bio
Hallo!
Diverse verschiedeme Sachen bereiten mir derzeit Probleme
þn der Umsetzung, und fall einer weiss wie man ein paar oder auch nur eines der nachstehenden Probleme lösen kann,
würde mir das wirklich eine grosse Freunde bereiten.
(Desto besser ausformuliert wie es nun genau geht,
desto besser kann ich es dann auch umsetzen,
denn aussegen wie "mach dich mal ueber chroot schlau" habe ich schon bekommen,
half aber nicht viel weiterzukommen. ;-(
Also dann,
Danke!
User darf weder in der Lage sein,
aus seinem Homedirectory zu wechseln,
noch das darueberliegende directory zu betreten.
Keiner seiner Scripte darf die Moeglichkeit haben,
das zu umgehen (zum beispiel ein Perlscript das ../ ausliesst
und sich dann durcharbeiet durch die verzeichnisse.
a) Laufzeit: Jeder Prozess der laenger als
40 Sekunden laeuft wird gekillt
(Das brauch ich fürs web dass keiner
nen Streaming-Chat hier einrichtet)
b) Prozessorlast: Jeder prozess der mehr als 10 Sekunden
über 50% der Prozessorlast braucht wird gekillt.
alle transferverursachenden Taetigkeiten des Users
(egal ob FTP, SSH, HTTP oder was auch immer)
und auch egal ob die Daten vom Server rausgehen oder zum Server reinkommen.
Ueber alles was Traffic macht muss ich eine Liste sehen koennen.
In einer Textdatei am besten noch in einer einer Datenbank,
dass man am Monatsende dem Kunden eine Liste schicken kann wo der ganz genau sieht,
wo und wieviel er traffic machte.
Hallo,
- User einsperren
==================
User darf weder in der Lage sein,
aus seinem Homedirectory zu wechseln,
noch das darueberliegende directory zu betreten.
Das x-Attribut für verzeichnisse regelt, welcher User/Usergruppe was wechseln darf oder nicht. Fragt sich nur in wie weit das sinnvoll ist, weil ja viele Programme möglicherweise nicht mehr erreicht werden können.
Gesetzt / gelöscht wird das Attribut mit dem chmod - Befehl
- Prozesse Ueberwachen.
========================
a) Laufzeit: Jeder Prozess der laenger als
40 Sekunden laeuft wird gekillt
(Das brauch ich fürs web dass keiner
nen Streaming-Chat hier einrichtet)
b) Prozessorlast: Jeder prozess der mehr als 10 Sekunden
über 50% der Prozessorlast braucht wird gekillt.
ulimit ist ein netter Befehl mit dem man viele Sachen beschränken kann. Den Aufruf packst Du einfach in die Datei /etc/profile und dann ist sie für jeden User gültig.
Gruss
MichaelB
Schönen Nachmittag wünsche ich,
Du fragst da ziemlich viele verschiedene Dinge und scherst sie über einen Kamm. Das klingt gefährlich.
Wenn Du
1. FTP, und
2. SSH, und
3. HTTP (natürlich) und vielleicht sogar noch
4. Telnet und
5. Remote-Login und
6. POP3 (hast Du vergessen)
7. SMTP (für den Fall das Du dich mit dem RELAY-Auth auskennst)
8. PHP (Der Deamon arbeit ja auch als "Rechte-Proxy")
erlaubst, dann hast Du
in jedem System eigene Sicherheitslücken. Die "normalen" Linux-Systeme lassen sich da bisher schwer harmonisieren. Das ist bei Novell einfacher aber auch seeehr viel teuerer.
Dein Abrechnungssysem muss sich also aus dem Traffic aller Teilsysteme zusammensetzen, den der User verursacht oder zu verantworten hat.
Wieviele User hast Du denn?
Bin nun selbst gespannt, ob es ein fertiges Werkzeug für ein LAMP/sendmail/ssh/ftp-System gibt, das nix kostet.
Grüße
Tom
Sup!
Für BSD gibt's den Befehl jail, der den User in dem Verzeichnis unausbrechbar einmauert ;-)
Für SuSE gibt's theoretisch compartment, aber das funzt noch nicht so supi, allerding gibt es für quasi alle Linux mit 2.4.16+ Kernel so ein Bundle von Tools das capset oder set_cap oder so in der Art heisst, und das quasi wie jail funktioniert, also ein chroot und ein su macht und ausserdem dem User die Rechte wegnimmt, irgendwelche Systemcalls zu machen, mit denen er aus dem chroot-Kaefig wieder rauskommen koennte (z.B. ueber noch ein su oder suexec und dann mit Hilfe von dreckigen Tricks und noch einem chroot).
Was die Abrechnung angeht bin ich etwas ratlos, wie man genau erkennen könnte, wer worauf zugreift, hoffentlich gibt es da ein fertiges und verdammt schnelles, systemnah programmiertes System... sonst müsste man am Ende mit tcpdump alle Pakete parsen und so rauszukriegen versuchen, von wem oder an wen die gehen, und das würde natürlich CPU-Last kosten.
Gruesse,
Bio