[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Sicherheit von NFS-v3 im Netz (was: Re: Anmeldung an Squid)



Hallo Hans-Diedrich

Hans-Dietrich Kirmse wrote on Sun, 19 Sep 2010 21:30:48 +0200:
> Am 19.09.2010 19:29, schrieb Axel Freyn:
> >> an meiner Schule werden derzeit keine eigentlichen Linux-Clients
> >> eingesetzt. NFS ist derzeit auf unseren Server noch nicht
> >> installiert, kommt aber noch. Aber dann ist/wird doch
> >> standardmäßig eine Option gesetzt, dass root keinen Zugriff
> >> erhält. oder irre ich mich da?
> > Naja, was ich meinte: Wenn du NICHT nfs Version 4 + Kerberos und
> > aktivierte Signatur/Verschlüsselung des Datenverkehrs verwendest
> > (das ist die schönste Lösung;-)) muss dir folgendes klar sein:
> > Beim "normalem" NFS (also: Version 3, oder Version 4 Ohne
> > Kerberos): der SERVER identifiziert die User anhand der
> > Linux-User-ID -- und das ist eine 4-stellige Nummer, die NICHT
> > geheim ist. Angenommen, du hast die ID 1234 und
> > Home-Verzeichnis /home/kirmse.
> 
> das ist mir schon bewußt, dass NFSv3 nur in vertrauenswürdigen 
> Netzwerken eingesetzt werden sollte.

Vertrauenswürdig heißt bei NFS v3: Kein Rechner im Netz kann von
einer nicht authorisierten Person als root genutzt werden!

> > Wenn ich jetzt von einem beliebigen Rechner aus eine Anfrage an
> > den Server schicke "Ich bin User 1234. Lösche alle Dateien im
> > Verzeichnis /home/kirmse" --  dann TUT DAS DER SERVER -- ich muss
> > dafür KEINERLEI Passwort an den Server schicken (vorausgesetzt
> > natürlich, du (kirmse) darfst das;-))!
> 
> wie geht das? dann muss man auf diesen Client root-Rechte haben. 
> ansonsten muss ich zumindest das Passwort des Accounts mit der UID
> auf dem Client kennen. => wie gerade angegeben: vertrauenwürdige
> Umgebung.

In der Datei /etc/exports steht, welche Clientrechner (IPs) welche
Verzeichnisse mounten dürfen. 

Wenn jetzt ein Schüler mit seinem eigenen Notebook in das Netz geht
(auf dem er problemlos root werden kann - geht übrigens genau so gut
auf jedem PC im Netz, den man von USB oder von der CD booten kann)
und sich eine erlaubte IP-Adresse verpasst (die herauszufinden dürfte
kein Problem sein), dann darf dieser Schüler von diesem Rechner aus
die freigegebenen Verzeichnisse mounten. OK, er hat mit der
entfernten UID 0 (root auf seinem Rechner) keine Rechte auf diesen
gemounteten Verzeichnissen, aber sie sind mit den auf dem
Server angegebenen Userrechten in das Dateisystem des
Schülernotebooks eingebunden. Und diese Rechte stützen sich auf die
UIDs und GIDs. Der Schüler muss also nur noch systematisch alle UIDs
durchrpobieren - was er cleverer Weise einen Bash-Dreizeiler oder so
machen lässt ;) Er braucht kein User-Passwort.

> > Ebenso wenn ich sage "Ich bin User 1234. Gib mir den Inhalt von
> > /home/kirmse/Latein-Schulaufgabe.pdf" -- kriege ich sofort,
> > keinerlei Passwortabfrage
> 
> wieder: nur wenn man auf dem Client root ist. Zumindest sehe ich
> das so.

Genau, wenn man auf dem Client root ist. Ich kenne mehrere
Möglichkeiten, mit einem Client, auf dem ich root-Rechte habe, in
ein Netz zu gehen. Interessierte Schüler finden garantiert auch eine.
 
> > Ja, es gibt eine Ausnahme: Der Schüler kann sich NICHT als "root"
> > ausgeben -- das kannst du verbieten :-)
> 
> das meinte ich mit "Aber dann ist/wird doch standardmäßig eine
> Option gesetzt, dass root keinen Zugriff erhält."

Ja, ein Angreifer kann dann auf die gemounteten Verzeichnisse nicht
mit root-Rechten zugreifen, sondern nur mit User-Rechten. Aber das
reicht, um alle Home-Verzeichnisse zu durchstöbern und einen
Großteil der Konfiguration anzusehen (alles, was freigegeben ist).
 
> > Das Windows-Netzwerkdateisystem ist eine Stufe sicherer -- bei
> > Samba braucht man zum Öffnen einer Verbindung erst mal das
> > Passwort.
> 
> genau: ohne Passwort geht da nichts.

Nein, wenn die Verbindung geöffnet ist, braucht man auch kein
Passwort mehr. Wenn man sich als Angreifer in diese Verbindung
einklinkt, kann man alles tun, was der angemeldete User auch kann -
z.B. auch sein Passwort ändern. Der angemeldete User merkt es unter
Umständen erst am nächsten Tag, wenn er sich mit seinem Passwort
nicht mehr anmelden kann. Bis dahin kann aber der Angreifer mit dem
jetzt nur ihm bekannten Passwort jede Menge Blödsinn treiben.

> > Ich würde Schüler da lieber nicht unterschätzen... (Die
> > Gebrauchsanweisungen dazu kann man im Internet finden...)

ACK.

Deshalb gehören in einer Schule in meinen Augen auch Lehrernetz und
Schülernetz physisch getrennt. In einigen Bundesländern wird das
meines Wissens sogar so gefordert.

> > Bringt dir gar nichts, wenn das Homeverzeichnis unverschlüsselt
> > übers Netz übertragen wird.
> 
> nochmal: wann wird das Homeverzeichnis übers Netz übertragen? Der
> User fordert doch bestimmte Dateien an und ob das gerade die sind,
> die den Angreifer interessieren - da muss er u.U. lange warten.

Es wird übers Netz gemountet (Siehe oben)
Man muss nicht mit einem Sniffer die Pakete mitschneiden und daraus
die übertragenen Dateien zusammensetzen (gibt es auch fertige Tools
für).
 
> > Nachdem du im Moment nur Samba aktiv hast:
> > Mit lokalem root-Account an einem beliebigen Client (z.B. meinem
> > privaten Notebook) kann ich den ganzen Netzwerkverkehr zwischen
> > Dir und dem Server abhören&  alle Dateien mitkopieren (die
> > Software dafür gibts im Internet -- komfortabel mit grafischer
> > Oberfläche;-))
> 
> bis dahin gehe ich mit. Aber mit solchen Programmen kann ich nichts 
> anfangen. Die Schüler können das?

Ja. Die Anleitungen dazu gibt es nämlich dazu. Und da die Motivation
u.U. eine ganz andere ist als im Unterricht ... ;)

Man sollte nie aus dem Verhalten im Unterricht auf die Fähigkeiten
eines Schülers folgern *gg*
 
> > Ebenso kann ich "gefälschte" Kontrollpakete einfügen, so dass ich
> > (während du an deinem Client angemeldet bist) von meinem Client
> > aus neue Befehle an den Server schicken kann (in DEINEM Namen),
> > z.B.: "Lösch alle Dateien von kirmse" -- auch das geht ohne dass
> > ich dein Passwort wissen müsste :-)
> 
> ganz realistisch: das soll man als Schüler bringen?

Ja, ich bin erstaunt, welche Kenntnisse und auch Fertigkeiten manche
Schüler da haben (von meinem Sohn ganz abgesehen, der hätte sowas
schon in der 10. Klasse als Aufwachübung gemacht - aber er hat Ehre
im Leib und daher die Schule eher auf Sicherheitslücken hingewiesen
als sie auszunutzen - aber nicht alle haben so eine Hackerehre.
 
> > OK, dann würde ich auch zu einer ntlm-Anmeldung raten -- so wie
> > in Uwe's Mail genannt.
> 
> und genau dazu bin ich noch nicht fündig geworden.

ntlm-auth ist standardmäßig in Squid enthalten und auch gut
dokumentiert. Ansonsten mal nach ntlm-auth googlen. 

-- 
Maxx <linux@houdek.de>


Reply to: