|
|
|
Sicherheit |
|
Ohne an dieser Stelle Panik verursachen zu wollen, sei doch auf einige grundlegende Sicherheitsaspekte im lokalen Netz hingewiesen, die im folgenden beschrieben werden.
Darüber hinaus noch ein Tip: Eine Vielzahl von Angriffen oder Sabotageakten werden aus dem lokalen Netzwerk heraus vorgenommen. Hier hilft nur ein gutes Betriebsklima, ein guter Umgang miteinander.
Ein abschliessbares Rack oder ein abschliessbarer Serverraum. helfen gegen physikalische Angriffe auf den Server und damit auf die schützenswerten Daten.
An den Arbeitsplätzen können Diskettenlaufwerke und CD-Laufwerke ausgebaut werden. Beim Anschluss von lokalen Druckern über USB besteht u.U. jedoch auch die Möglichkeit des "Datenklau" oder der Inkubation mit sog. USB-Memory-Sticks. Abhilfe schaffen hier Drucker mit Netzwerkkarte, das Abschalten von USB am Arbeitsplatz und die Sicherung des BIOS durch ein Passwort, damit die USB-Schnittstellen nicht von jedermann wieder eingeschaltet werden können.
|
|
|
|
| |
Kernel |
|
Der Betriebssystemkern kann schon wesentlich zur Systemsicherheit beitragen. Es ist zu entscheiden, ob der Kernel "hart" gemacht werden sollte.
Darunter versteht man das Konfigurieren und neu übersetzen (kompilieren) des Betriebssystem-Kern. Der wesentliche Vorteil ist ein kleinerer Kernel, dem alle unnötigen Funktionalitäten von vornherein abgeschaltet werden.
Dadurch wird das unbefugte Nutzen von zusätzlichen Geräten (Hardware) ebenso, wie auch das Starten von nicht benötigten Diensten von vorn herein ausgeschlossen.
Zunächst kann man mit dem Befehl uname -r die laufende Kernel-Version herausfinden.
Bevor es losgehen kann müssen die neuen Kernel-Sourcen heruntergeladen und installiert sein. Mit einem menü-gestützten Werkzeug, wie make menuconfig oder yast, im Verzeichnis des Quellcodes kann man den Kernel konfigurieren.
Die weiteren Schritte sind in der Dokumentation der jeweiligen Distrubution zu lesen, für RedHat 8.0 etwa unter http://www.europe.redhat.com/documentation/rhl8.0/rhl-cg-de-8.0/ch-custom-kernel.php3
Schnelldurchlauf
(als Beispiel mit Kernel Version 2.4.26)
1.) Link erstellen: Von /usr/src/linux-2.4.26 nach /usr/src/linux
2.) in das Verzeichnis /usr/src/linux wechseln
3.) make menuconfig oder make config aufrufen und den Kernel konfigurieren
4.) In Einzelschritten den Kernel backen:
make dep
make clean
make bzImage
make modules
make modules_install
oder als Einzeiler:
make dep clean bzImage modules modules_install
5.) Den neuen Kernel installieren:
make install
oder:
cp arch/i386/bzImage /boot/mylinux-1.0
6.) die Bootloader-Konfiguration (GRUB) bearbeiten:
mcedit /boot/grub/menu.lst
den Standard-Abschnitt kopieren, einfügen und bearbeiten
|
|
|
USV |
|
Bei Nutzung einer USV (aka UPS) der Firma APC lässt sich diese auch für einen Linux -Rechner so einsetzten, dass bei einem Stromausfall der Server geregelt herunter gefahren wird. Die entsprechende Software als rpm ist kostenlos unter www.apcc.com erhältlich. Der Benutzer muss sich allerdings registrieren.
Ohne Registrierung erhältlich ist Apcupsd von der Seite http://www.apcupsd.com
Hier wird sehr einfach und ausführlich beschrieben, wie die Einrichtung verläuft, und wie der Master/Slave Modus funktioniert. Darunter versteht man eine Konfiguration, bei der mehrere PCs an einer USV angeschlossen sind. Nur ein PC hat aber die (serielle) Verbindung zur USV.
Der Status der USV kann per Web-Interface abgefragt werden. Für die Konfiguration und Überwachen ist ein zusätzliches Modul für den webmin erhältlich unter http://www.bks.da.ru/webmin-modules/apcupsd-0.81-1.wbm.gz
[0.25]
|
|
|
Backup / Datensicherung |
|
Eins vorweg: Datensicherungen schützen vor absichtlichem oder versehentlichen Löschen, Feuer- oder Wasserschäden und Einbruch-Diebstahl, allerdings nur dann, wenn das Sicherungsmedium regelmässig gewechselt wird und nicht in räumlicher Nähe zum "Original" gehalten wird. Dumm, wenn der Wasserrohrbruch nicht nur den Server, sondern auch gleich alle Medien mit in den Tod reisst.
Datensicherungen gehören zum "Must have" beim Umgang mit Computern. Die gängigen Lösungen sind nicht selten sehr teuer und proprietär, denkt man an Bandlaufwerke, Wechsler und Lösungen etablierter Hersteller.
Linux zeigt sich von seiner charmantesten Seite, wenn man eine Datensicherungslösung mit Bordmitteln aufbauen kann, die allesamt schnell und flexibel sind und dabei durchaus auch grosse Datenmengen verarbeiten können.
Lokales Backup
Zunächst ist Vorsicht geboten, wenn es um den Begriff Backup im Zusammenhang mit "lokal" geht. Ein "Inplace-Backup", also die Sicherung der Daten auf dieselbe Platte oder denselben Server verdient den Namen eigentlich nicht wirklich. Think about it!
Gemacht werden kann so eine Sicherung z.B. so: Wir legen auf dem Server in /backup Symlinks der zu sichernden Ordner an und starten die Sicherung aus diesem Ordner z.B. auf eine USB-Platte mit
for f in /*; do echo && tar --create --dereference > /.tar; done
Preiswert und schnell ist eine Lösung mit 5 Festplatten für Montag - Freitag, die täglich gewechselt werden. Notebook-Platten gibt es mit 40-120GB im USB-Alu-Gehäuse und Brieftaschen-artigem Etui.
Einen etwas anderen Weg geht Joern Ott mit seiner Lösung. Er sichert Dateien und Verzeichnisse in einen Backup-Ordner und "schiebt" diese auf einen externen Server oder ein externes Medium. www.ott-service.de
Remote Backup
Das "ziehende" Sichern eines entfernten Verzeichnisses ist mit einem String möglich wie
ssh user@server.meindomain.tld "tar cf - /home/user" | cat > home_user.tar
oder allgemeiner
tar cvf - | (cd ; tar xvf -)
Dabei können Quelle und Ziel durchaus auch entfernte Rechner sein.
Eine andere Variante bietet rsync:
rsync -e ssh -abhRvxz --update --exclude "/home/user/temp" user@server.meinedomain.tld:/home/user
Dies synchronisiert die letzten Änderungen des Inhalts des entfernten user-Verzeichnis in den aktuellen Ordner.
Mit rsync ist auf einem lokalen Host ein Abbild des Remote-Host machbar. Kombiniert man dies mit einer präparierten Verzeichnisstruktur und entsprechenden Hardlinks, ergibt sich daraus eine sichere und schlanke Lösung mit geringem Bandbreitenbedarf.
Weitergehende Infos mit konkreten Scripten dazu finden sich bei
http://www.heinlein-support.de/web/support/wissen/rsync-backup
Migration
Wird es auf einer bestehenden Datenpartition oder Festplatte zu eng oder soll die Festplatte routinemässig getauscht werden um Ausfällen vorzubeugen, empfiehlt sich ein Datenumzug unter beibehaltung aller Eigentums- und Zugriffsrechte. Dies lösst sich bei bereits installierter neuer Platte durch einen Einzeiler mit doppeltem Aufruf von tar erledigen:
tar cpf - Quellverzeichnis | (cd Zielverzeichnis ; tar xpf - )
Dabei wird im Quellverzeichnis gepackt, ins Zielverzeichnis gewechselt und dort entpackt.
|
|
|
Antivirus |
|
Unter http://clamav.elektrapro.com findet sich ein frei verfügbarer Virenscanner Clam Antivirus.
Der Scanner kann Stand-alone eingesetzt werden, die Installation ist denkbar simpel, ein pdf-Manual leitet durch einige wenige Schritte.
Im Wesentlichen wird ein user und eine Gruppe angelegt und drei binaries erstellt.
Der Scanner heisst clamscan, der updater freshclam, ein Tool zum Erweitern der Signatur-Datei heisst sigtool. Nach erfolgreichem Compile-lauf liegen die Dateien in /usr/local/bin.
Mit den folgenden Einträgen als User clamav in der crontab ist der Basis-Job und ein reporting ins log und per e-Mail schon erledigt:
1.) clamscan --stdout -r -i -l /var/log/clamav-scan.log /home | mutt -s "clamav scanjob" root
2.) freshclam --stdout -l /var/log/clamav-update.log | mutt -s "clamav update" root
Das Manual beschreibt das Zusammenspiel mit AMaVis für das Scannen von Mails und openantivirus für das Scannen von Windows-Clients.
http://sourceforge.net/projects/openantivirus/
http://sourceforge.net/projects/amavis
[0.50]
|
|
|
|
|
|
|
|
|
SELinux |
|
Security enabled Linux sorgt für erhöhte Sicherheit, indem es Diensten und Dateien explizit gestattet werden muss, in die Kernel-Umgebung geladen zu werden. Standardmässig werden die am häuftigsten verwendeten Daemons unterstützt, so z.B. Mail- und Webserver.
Sollte ein Dienst nicht starten, lohnt ein Blick in /var/log/messages. Dort findet man evtl. Ausschriften des audits.
Um nun ein SELinux-Modul zu erstellen, dass die abgelehnten Dienste seit dem letzten Systemstart in einer Regel-Datei zusammenfasst, kann der folgende Befehl ausgeführt werden:
audit2allow -m local -l -i /var/log/messages > local.te
Beachten Sie, dass die Logdatei bei Nutzung des Audit-Daemons eine andere ist. Nutzen Sie den Audit-Daemon, so lautet die zu verwendenende Log-Datei /var/log/audit/audit.log anstelle von /var/log/messages.
WICHTIG: Erstellen Sie Ihr persönliches Modul nicht in der Hoffnung, ein bereits kompromittiertes System zu schützen. Durch die gutgläubige Übernahme der o.g. audit-Ablehnungen (denials) kann es passieren, dass Sie einem zu Recht abgelehnten Dienst die Ausführung auch in Zukunft gestatten.
Ist das Modul erstellt, kann es von Hand nachbearbeitet werden. Sie können Regeln, die nicht gewünscht sind einfach entfernen, dann das Modul kompilieren und neu laden. Verwenden Sie den Befehl
checkmodule -M -m -o local.mod local.te
Um die te-Datei zu kompilieren. Beachten Sie, dass der Befehl "checkmodule" Teil des rpm-Pakets "checkpolicy" ist, dass Sie selbstverständlich bereits installiert haben müssen. Führen Sie anschliessend
semodule_package -o local.pp -m local.mod
aus, um das Policy-Paket zu erstellen. Ein sbschliessendes
semodule -i local.pp
fügt die Regeln dem laufenden System hinzu. Es installiert ein Modul mit dem namen "local".
Beachten Sie jedoch, dass ein späteres Modul mit gleichem Namen unser soeben erzeugtes überschreibt. Verwenden Sei deshalb später besser einen anderen Namen, wenn Sie die Regeln erhalten wollen. Andernfalls sollten Sie neue Regeln an die Ausgangsdatei anhängen.
http://fedora.redhat.com/docs/selinux-faq-fc5/#id2960938
Manche Problemchen lassen sich aber auch trotz dieser Einstellung nicht ohne weiteres lösen. So z.B. eine Kopfnuss mit dem vsftpd, gefunden bei http://use.perl.org/~fireartist/journal/30080
"500 oops: cannot change directory" Trying to ftp in to a Fedora Core 5 box using a local username. Password is accepted, but the connection is then closed with this error message. This is because of SELinux's policies. To fix it, issue (as root): setsebool -P ftp_home_dir=1 The -P flag ensures the value is saved after reboot.
|
|
|
Dateisystem |
|
Vermutlich einer der häufigsten Fehler dürften übermässige Dateirechte, z.B. bei Webservern sein. Eine zu laxe Einstellung der Zugriffsrechte auf eine Konfigurationsdatei könnte einem Angreifer Tür und Tor öffnen um den Zugriff auf wichtige Systemeinstellungen zu erlangen.
Bei den kleinen Helfern der Befehlszeile haben wir bereits den Einsatz von find kennengelernt
In Verbindung mit unserer Kenntnis über Dateieigentümer, Dateirechte und den Befehl chmod lassen sich z.B alle Unterordner eines Verzeichnisses mit einer, alle Dateien mit einer anderen Rechtemaske versehen.
Als Standard für Ordner in einem Directory des Webservers mag gelten: Dateien sollen nicht ausführbar sein (644), Ordner jedoch schon, um geöffnet werden zu können (755). Für dieses Problem gibt es eine bequeme Lösung, ausgehend vom aktuellen Standort:
find . -type f -print0 | xargs -0 chmod 644
Setzt alle gefundenne Objekte vom Typ file (-type f) auf 644 (rw-r-r)
find . -type d -print0 | xargs -0 chmod 755
Setzt alle gefundenen Objekte vom Typ Directory (-type d) auf 755 (rwx-rx-rx)
Weitere Tipps zu diesem Thema finden sich auch auf der Homepage von Frieder Schüler
http://friederschueler.de/linux/rechte-fur-ordner-755und-files-644-rekursiv-andern
|
|
|
System-Sicherheit prüfen |
|
Das Shell-Script lynis des niederländische Programmierer Michael Boelen scannt Betriebssystem und installierte Software und sucht dabei nach sicherheitsrelevanten Schwachstellen. Das Script erhebt nicht den Anspruch ein System zu "härten". Es will lediglich auf Probleme der Installation und bestehende Gefährdungen hinweisen. Lynis wurde mit verschiedenen Linux-Distributionen getestet. http://www.rootkit.nl/projects/lynis.html
|
|
|
|