Site search Web search

powered by FreeFind
Visit my Guestbook

Privacy now! PGP

Freedom for Links

Weiter Zurück [Inhalt] Online Suche im Handbuch LITTLE-IDIOT NETWORKING

10.6 Die Überprüfung der UNIX Sicherheit

Nicht nur unter UNIX ist es völlig unmöglich, absolute Sicherheit zu fordern. Das trifft um so mehr zu, je mehr Dienste oder Dämonen auf dem Server aktiviert wurden.

Beim Einsatz eines UNIX Servers in der DMZ sollte dieser als BASTION HOST , siehe hierzu Kapitel Architektur von Firewalls besonders abgesichert werden. Hierzu kann man natürlich die LINUX Kernelfirewall mit IPFWADM, IPCHAINS oder auch SF Firewall einsetzen. Auf der Firewall laufen dann jedoch viele Anwendungen. Diese Konstruktion nennt sich BASTION HOST.

Selbstverständlich muß unbedingt ein BASTION HOST durch zwei Firewalls abgesichert werden, eine auf der Seite des Internets, die andere auf der Seite des Intranets. Diese Firewalls dürfen natürlich keine weiteren Dienste aktiviert haben. Sie dienen auf der Seite des Internets der Überwachung und auf der Seite des Intranets der Sicherheit.

Zuerst möchte ich jedoch auf ein paar Quellen im Internet verweisen, die sich als recht nützlich erwiesen haben:

http://viper.dmrt.com/tools/=Linux/Misc/unix-sec-checklist.htm

Die Datei unix-sec-checklist.htm findet man auch auf unzähligen anderen Servern, oft jedoch in einer älteren Version. Wer in Suchmaschinen nach "UNIX" und "checklist" sucht, der wird bald fündig. In dieser Checkliste ist alles Wichtige und Grundlegende für die Absicherung von UNIX allgemein enthalten. Für unsere LINUX Firewall treffen diese Info´s leider nicht zu. Es gilt hier eine besondere Regel.

Die eiserne Regel bei Firewalls: Eine Firewall hat nur eine Aufgabe, nämlich Firewalling. Jede weitere Funktion, muß unbedingt ausgeschaltet werden. Das bedeutet im einzelnen:

  • Entfernen aller Dienste aus der Datei /etc/inetd.conf. Danach ist eine Administration nur noch von der Console aus möglich.
  • Entfernen aller unnötigen Software nach der Installation der Firewall, dazu gehören im Prinzip alle Pakete, die nicht direkt zur Administration notwendig sind, darunter auch alle Compiler, Quellcodes..... Wer sich einmal die LINUX Distributionen angeschaut hat, die auf eine FLOPPY passen, der wird einsehen, daß auf der Firewall noch weniger Programme notwendig sind, als dort. Ein TIP: TOM´S RESCUE DISK - Ein komplettes LINUX mit allen wichtigen Programmen und allen Treibern auf einer Diskette ! Siehe http://www.toms.net
  • Entfernen Sie alle unnötigen User und Gruppen aus den Dateien /etc/passwd und /etc/group
  • Entfernen Sie alle SUID und GID - Programme auf der Firewall. Sie finden Sie mit dem Befehl: find / -perm -04000 , optional -print -exec rm {} ";"
  • Alle verbleibenden Dienste, z.B. der SYSLOGD sollten in einer CHROOT() Umgebung installiert sein, was bedeutet, daß ein Angreifer, wenn er ein buffer overflow Problem des Dämon ausnutzt, höchstens auf ein Unterverzeichnis der Festplatte zugreifen kann. Wer sich intensiver damit beschäftigen muß, der findet im Kapitel chroot() weitere Tips.
  • Alle verbleibenden Dienste sollten unter minimalen Userrechten laufen, z.B. nobody und nogroup
  • Die Einträge aller User außer root und userxyz in der Datei /etc/passwd sollten statt /bin/bash den Dummy- Eintrag /bin/false erhalten.
  • Entfernen alle überflüssigen Protokolle aus dem Kernel durch Neukonfiguration und Neukompilation des Kernels.
  • Entfernung aller überflüssigen Dämonen aus den Startup - Skripten /etc/inittab, /sbin/init.d/rc.?d oder /etc/rc.d/rc.?d sowie der Datei /etc/rc.local. Nachten sollte man stets auch auf die Dateien .profile, /etc/profile und .bashrc oder .cshrc
  • Enfernung des KERNELD, damit keine Treiber dynamisch nachgeladen werden können.
  • Überprüfen Sie die Authentizität aller noch verbleibenden Programme, Libraries oder Dämonen auf Quellcode-Ebene. Falls Sie nicht sicher sind, überprüfen Sie die MD5 Prüfsummen. Es könnte hierzu notwendig sein, daß viele Teile neu kompiliert werden müssen. Kompilieren Sie stets mit der Option -static in dem Makefile.
  • Damit Sie sicher sein können, daß die verbleibenden Dämonen buffer overflow sicher sind, benutzen Sie die Kompiler der o.a. SecureLINUX Distributionen.

Wie Sie sehen, gibt es gute Gründe, eine Firewall nicht mit einer fertigen LINUX Distribution, wie z.B. RedHat oder S.u.S.E. Linux aufzubauen. Es gibt viel zu viel Software und aktive Dämonen, die man alle unbedingt ausschalten muß. Eine Firewall ist und bleibt ein äußerst sensibles Stück Software, wo ein einziger Fehler schon zuviel ist. Als Systemadministrator der Firewall sollte man alle noch vorhandenen User auf der Firewall gnadenlos eliminieren. Es sollte nur noch ein Useraccount und root auf der Firewall existieren. Übrigens sollte man sich einmal Gedanken darüber machen, welche Accounts bei einer Standard-Distribution, wie z.B. S.u.S.E. LINUX standardmäßig existieren:


root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/bin/bash

daemon:x:2:2:daemon:/sbin:/bin/bash

lp:x:4:7:lp daemon:/var/spool/lpd:/bin/bash

news:x:9:13:News system:/etc/news:/bin/bash

uucp:x:10:14::/var/lib/uucp/taylor_config:/bin/bash

games:x:12:100::/tmp:/bin/bash

man:x:13:2::/var/catman:/bin/bash

at:x:25:25::/var/spool/atjobs:/bin/bash

postgres:x:26:2:Postgres Database Admin:/var/lib/pgsql:/bin/bash

lnx:x:27:27:LNX Database Admin:/usr/lib/lnx:/bin/bash

mdom:x:28:28:Mailing list agent:/usr/lib/majordomo:/bin/bash

yard:x:29:29:YARD Database Admin:/usr/lib/YARD:/bin/bash

wwwrun:x:30:65534:Daemon user for apache:/tmp:/bin/bash

squid:x:31:65534:WWW proxy squid:/var/squid:/bin/bash

fax:x:33:14:Facsimile Agent:/var/spool/fax:/bin/bash

gnats:x:34:65534:Gnats Gnu Backtracking System:/usr/lib/gnats:/bin/bash

empress:x:35:100:Empress Database Admin:/usr/empress:/bin/bash

adabas:x:36:100:Adabas-D Database Admin:/usr/lib/adabas:/bin/bash

amanda:x:37:6:Amanda Admin:/var/lib/amanda:/bin/bash

ixess:x:38:29:IXware Admin:/usr/lib/ixware:/bin/bash

irc:x:39:65534:IRC Daemon:/usr/lib/ircd:/bin/bash

ftp:x:40:2:ftp account:/usr/local/ftp:/bin/bash

firewall:x:41:31:firewall account:/tmp:/bin/false

informix:x:43:34:Informix Database Admin:/usr/lib/informix:/bin/bash

named:x:44:44:Nameserver Daemon:/var/named:/bin/bash

virtuoso:x:45:100:Virtuoso Admin:/opt/virtuoso-lite:/bin/bash

nobody:x:65534:65534:nobody:/tmp:/bin/bash

user01:x:500:100::/platte2/home/user01:/bin/bash

user02:x:501:100::/home/user02:/bin/bash

user03:x:502:100::/home/user03:/bin/bash

Die Paßworte stehen in der Datei /etc/shadow. Welche Paßworte sind bei welchen Accounts vergeben ? Warum ist in der Datei /etc/shadow bei vielen Accounts kein Paßwort eingetragen ? Wofür ist dann überhaupt der Account gut ? Die Antwort ist einfach - SUID Programme und chroot() Programm nutzen diese Accounts. Diese besitzen ein SUID Bit (Siehe chmod). So verlangen z.B. einige Dämonen, wie sendmail ein solches Bit. In diesem Falle sollte man auf Dämonen ausweichen, die eine sichere Architektur besitzen. Einige Hinweise finden sich in späteren Kapiteln. Eventuell vorhandene suid Programme sollte man entweder löschen, oder aber das Bit entfernen. Empfehlenswert ist es stets, allen Usern, die keine Shell benötigen, in der Datei /etc/passwd anstelle der Shell /bin/bash den Dummy /bin/false einzutragen. Login Versuche scheitern somit alle.


Weiter Zurück [Inhalt] Online Suche im Handbuch LITTLE-IDIOT NETWORKING