Gentoo Logo

[ << ] [ < ] [ Hauptseite ] [ > ] [ >> ]


6. Dateibereichtigungen

Inhalt:

6.a. Welt-lesbar

Normale Benutzer sollten zu Konfigurationsdateien oder Passwörtern keinen Zugang haben. Ein Angreifer kann Passwörter aus einer Datenbank oder von einer Webseite stehlen und verunstalten oder noch schlimmer: Daten löschen. Deswegen ist es notwendig, dass die Berechtigungen korrekt gesetzt sind. Wenn Sie sicher sind, dass eine Datei nur von root benutzt wird, geben Sie dieser die Berechtigung 0600 und ordnen Sie diese mit chown dem richtigen Benutzer zu.

6.b. Welt/Gruppen-schreibbar

Befehlsauflistung 2.1: Auffinden von Dateien und Verzeichnissen, die Welt-schreibbar sind

# find / -type f \( -perm -2 -o -perm -20 \) -exec ls -lg {} \; 2>/dev/null >writable.txt
# find / -type d \( -perm -2 -o -perm -20 \) -exec ls -ldg {} \; 2>/dev/null >>writable.txt

Dies schafft eine riesige Datei mit Berechtigungen von allen Dateien, die entweder Schreibberechtigungen für alle oder eine Gruppe haben. Überprüfen Sie die Berechtigungen und eliminieren Sie die für alle schreibbaren Dateien durch das Ausführen von /bin/chmod o-w für die Dateien.

6.c. SUID/SGID Dateien

Dateien bei denen das SUID oder SGID Bit gesetzt ist, werden mit den Rechten des Benutzers bzw. der Gruppe ausgeführt, der diese Datei gehört. Normalerweise werden diese Bits bei Dateien verwendet, die als root ausgeführt werden müssen um ihren Zweck zu erfüllen. Diese Dateien können zu lokalen root Einbrüchen führen (falls Sie Sicherheitslücken enthalten). Dieses ist gefährlich, daher sollten Dateien mit gesetztem SUID/SGID Bit auf jeden Fall vermieden werden. Sollten Sie diese Dateien nicht verwenden, dann wenden Sie chmod 0 auf diese an oder unmergen das Paket welches diese Dateien mitgebracht hat (das zugehörige Paket können Sie mit equery finden; sollte es noch nicht installiert sein, dann geben Sie einfach emerge gentoolkit ein). Ansonsten schalten Sie das SUID Bit einfach mit chmod -s aus.

Befehlsauflistung 3.1: Auffinden von setuid Dateien

# find / -type f \( -perm -004000 -o -perm -002000 \) -exec ls -lg {} \; 2>/dev/null >suidfiles.txt

Dies erzeugt eine Datei mit einer Liste aller SUID/SGID Dateien.

Befehlsauflistung 3.2: Liste der setuid binären Dateien

/bin/su
/bin/ping
/bin/mount
/bin/umount
/var/qmail/bin/qmail-queue
/usr/bin/chfn
/usr/bin/chsh
/usr/bin/crontab
/usr/bin/chage
/usr/bin/expiry
/usr/bin/sperl5.6.1
/usr/bin/newgrp
/usr/bin/passwd
/usr/bin/gpasswd
/usr/bin/procmail
/usr/bin/suidperl
/usr/lib/misc/pt_chown
/usr/sbin/unix_chkpwd
/usr/sbin/traceroute
/usr/sbin/pwdb_chkpwd

Standardmäßig hat Gentoo Linux nicht viele SUID Dateien (allerdings hängt es davon ab, was Sie installiert haben), aber Sie könnten eine Liste wie die obige erhalten. Viele dieser Befehle sollten nicht von normalen Benutzern benutzt werden, sondern nur von root. Schalten Sie das suid bit bei ping, mount, umount, umount, chfn, chsh, newgrp, suidperl, pt_chown und traceroute aus. Sie tun dies mit dem Befehl chmod -s bei jeder einzelnen Datei. Entfernen Sie das Bit nicht von su, qmail-queue oder unix_chkpwd. Dies würde dazu führen, dass Sie nicht mehr su benutzen könnten und keine Mail empfangen würden. Durch Entfernen des Bits (wenn es sicher ist, dies zu tun) beseitigen Sie die Möglichkeit, dass ein normaler User (oder Angreifer) root-Zugriff durch eine dieser Dateien erlangen kann.

Die einzigen SUID Dateien die ich auf meinem System habe sind su, passwd, gpasswd, qmail-queue, unix_chkpwd und pwdb_chkpwd. Aber wenn Sie X benutzen, könnten Sie einige mehr haben, denn X benötigt diesen erweiterten Zugriff via SUID.

6.d. SUID/SGID Binärdateien und Hardlinks

Eine Datei wird nur als gelöscht angesehen, falls keine Links mehr auf sie zeigen. Dies mag nach einem merkwürdigen Konzept klingen, aber bedenken Sie, dass ein Dateiname wie /usr/bin/perl eigentlich nur ein Link auf einen Inode ist, wo die Daten gespeichert sind. Eine beliebige Zahl von Links kann auf eine Datei verweisen und solange noch einer existiert, existiert auch die Datei.

Wenn Ihre Benutzer Zugang zu einer Partition haben, die nicht mit nosuid oder noexec eingebunden sind (z. B. falls /tmp, /home, oder /var/tmp nicht auf unterschiedlichen Partitionen liegen), sollten Sie darauf achten, dass Benutzer keine Hardlinks auf SUID oder SGID Binaries erstellen, so dass Sie nach einem Update durch Portage immer noch Zugang zu alten Versionen haben.

Warnung: Wenn Portage eine Warnung über verbliebene Hardlinks ausgegeben hat und Benutzer Schreibrechte auf einer Partition haben, welche die Ausführung von SUID/SGID Dateien erlaubt, dann sollten Sie diesen Abschnitt aufmerksam lesen. Einer der Benutzer könnte versuchen das Update zu umgehen indem er eine alte Version eines Programmes behält. Falls Benutzer keine eigenen SUID Dateien erstellen können oder falls Sie Programme nur über den dynamischen Loader ausführen können (Partitionen mit noexec eingebunden), dann brauchen Sie sich keine Sorgen zu machen.

Notiz: Benutzer brauchen keinen Lesezugriff auf eine Datei um einen Link zu ihr zu erstellen; es werden lediglich Leserechte für das Verzeichnis benötigt in dem diese sich befindet.

Um herauszufinden wie viele Links eine Datei hat, kann der stat Befehl verwendet werden.

Befehlsauflistung 4.1: Stat Befehl

$ stat /bin/su
  File: `/bin/su'
  Size: 29350           Blocks: 64         IO Block: 131072 regular file
Device: 900h/2304d      Inode: 2057419     Links: 1
Access: (4711/-rws--x--x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2005-02-07 01:59:35.000000000 +0000
Modify: 2004-11-04 01:46:17.000000000 +0000
Change: 2004-11-04 01:46:17.000000000 +0000

Um SUID und GUID Dateien mit mehreren Links zu finden, kann find verwendet werden.

Befehlsauflistung 4.2: Finden von mehrfach verlinkten SUID/SGID Binärdateien

$ find / -type f \( -perm -004000 -o -perm -002000 \) -links +1 -ls

[ << ] [ < ] [ Hauptseite ] [ > ] [ >> ]


Drucken

Alles ansehen

Seite aktualisiert 2. April 2010

Zusammenfassung: Sicheren Sie Ihre Dateien ab.

Kim Nielsen
Autor

John P. Davis
Bearbeiter

Eric R. Stockbridge
Bearbeiter

Carl Anderson
Bearbeiter

Jorge Paulo
Bearbeiter

Sven Vermeulen
Bearbeiter

Benny Chuang
Bearbeiter

Sune Jeppesen
Bearbeiter

Tiemo Kieft
Bearbeiter

Zack Gilburd
Bearbeiter

Dan Margolis
Bearbeiter

Joshua Saddler
Bearbeiter

Jan Hendrik Grahl
Übersetzer

Tobias Scherbaum
Übersetzer

Matthias Geerdsen
Übersetzer

Tobias Heinlein
Übersetzer

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.