Archive for the ‘ Debian 5.0 ’ Category

Apache2: Modsecurity

Der Schutz eines Webservers hängt schon seit langem nicht mehr nur von einem funktionierenden klassischem Paketfilter ab. Auf Webservern laufen im Zeitalter des Web 2.0 immer mehr dynamische Inhalte, die doch hin und wieder den ein oder anderen Bug enthalten. Netzwerk- (OSI-Schicht 3) und Transsportschicht (OSI-Schicht 4) Firewalls helfen hier nicht mehr weiter, da diese Verbindungsspezifische Kriterien anlegen um den Zugriff auf ein System zu erlauben oder zu verweigern. Genau an dieser Stelle greif ModSecurity ein. ModSecurity ist eine Web Application Firewall (WAF) die den Datenstrom auf der HTTP Ebene (OSI-Schicht 7) analysiert und somit die Anfragen des Clients sowie die Antworten des Servers Inhaltstechnisch überwachen kann.

Somit ist es möglich ein System mittels ModSecurity vor bekannten Schwachstellen einer Webapplikation zu schützen noch bevor der Patch dafür erschienen ist. Mithilfe von ModSecurity kann ebenfalls sichergestellt werden, dass bestimmte Dateien des Betriebssystems das System niemals per HTTP (Apache2) verlassen. Hier ein Beispiel dafür.

ModSecurity wurde ursprünglich von Ivan Ristic entwickelt. Inzwischen treibt jedoch das Unternehmen Breach Security die Entwicklung vorran. Die aktuelle Version 2.5.11 ist nur noch für Apacke 2.x verfügbar.

ModSecurity unterscheidet bei einer HTTP(s) Anfrage 5 verschiedene Phasen in denen der Datenstrom untersucht werden kann.

  1. REQUEST_HEADERS
    Frühest mögliche Filterung, noch bevor der Webserver den Zugriff anhand von Zugriffskontrollen erlaubt oder geblockt hat.
  2. REQUEST_BODY
    ermöglicht die vollständige Überprüfung der Clientanfrage
  3. RESPONSE_HEADERS
    Filterung der Serverantwort
  4. RESPONSE_BODY
    Vollständige Prüfung der gesamten Serverantwort
  5. LOGGING
    Zugriff auf Logging Informationen bevor Apache diese in seinen Log-Dateien vermerkt.

Eine detallierte Beschreibung der Konfigurationsparameter von ModSecurity finden Sie hier.

Installation

Da ModSecurity leiter nicht in den stable Repositories von Debian enthalten ist gibt es nur die Möglichkeit die Version selber zu kompilieren oder auf im Internet vorhandene Pakete zurück zu greifen. Wer jedoch bereits sid einsetzt, findet die Pakete libapache-mod-security mod-security-common jedoch in seinen Repositories.

wget http://etc.inittab.org/~agi/debian/libapache-mod-security2/mod-security-common_2.5.9-1_all.deb
wget http://etc.inittab.org/~agi/debian/libapache-mod-security2/libapache-mod-security_2.5.9-1_i386.deb
dpkg -i libapache-mod-security_2.5.9-1_i386.deb mod-security-common_2.5.9-1_all.deb

Weiterlesen

Debian: Software RAID-1 einrichten

Raid Übersicht

Einrichtung eines RAID-1 während der Installation

Während der Installation werden auf zwei Festplatten RAID-Partitionen eingerichtet auf welcher dann das Root Dateisystem abgelegt wird. Die Swap Partitionen sollten auf keinen Fall über den Raid-Verbund gehändelt werden, denn es gibt zwei Situationen in denen das zu Probleme führt.

1. Situation

Ein System mit einer Swap Partition im Raid-1 Verbund fällt aufgrund eines Stromausfalls aus. Beim nächsten booten wird ein rebuild des Raids angestoßen und der Bootprozess geht weiter ohne das der rebuild Vorgang abgeschlossen wurde. In dem Moment in dem das Betriebssystem jedoch die Swap Partition mountet wird es ein nicht synchronisiertes Raid vorfinden und unter umständen stehen bleiben.

2. Situation

Haben Sie ein Raid-1 mit einer hotspare Festplatte eingerichtet, wird die hotspare Festplatte beim Ausfall einer aktiven Festplatte wie gewünscht einspringen. Das System verwendet nun auch die Swap Partition der Hotspare Festplatte. Bei einem rebuild der greift das System jedoch auf den Cache der Partitionen zu den eine Swap Partition leider nicht hat. Somit würde ein rebuild aller Daten Partition erfolgreich verlaufen, die Swap Partition wäre anschließend jedoch unbrauchbar.

Bei den genannten Probleme gehen keine Daten verloren, jedoch wären solche Probleme bei einem System auf das man keinen physikalischen Zugriff hat tödlich. Wurden jedoch auf beiden Datenträger zwei unabhängige Swap Partition angelegt, so nutz das System diese default mäßig als Raid-0 Swap Partition. Man kann die Nutzung der Swap Partition jedoch auch priorisieren. Mögliche Werste sind 0 – 32767. Je höher der Wert, desto höher die Priorität.

/dev/hda2 swap swap defaults,pri=5    0 0
/dev/hdd2 swap swap defaults,pri=1    0 0

Die Partitionierung ist im Detail in den folgenden Screenshots beschrieben. Es wurde jedoch nur eine Festplatte ausführlich Partitioniert, für die zweite sind die gleichen Schritte notwendig. Weiterlesen

Linux: Gnome 1680×1050 Auflösung

Mittlerweile erkennen die meißten Debian/Ubuntu Versionen ohne Probleme die installierten Grafikkarten. Nimmer immer sind die Treiber für die Performance die besten, aber es reicht fast immer für ein ordentliches Bild. Bei Notebooks mit WideScreen gibt es aber immer wieder das Problem, dass eine Auflösung von 1680×1050 nicht eingestellt werden kann. Um die Auflösung dennoch einzustellen, reicht es bei  Gnome oft die Auflösung manuell in in der /etc/X11/xorg.conf nachzutragen. Entscheidend sind dabei nur die rot markierten Stellen. Der Rest variiert abhängig von der Hardware.

Section "Screen"
  Identifier      "Default Screen"
  Monitor         "Configured Monitor"
  Device          "Configured Video Device"
  Option         "AllowGLXWithComposite" "True"
  Option         "AddARGBGLXVisuals" "True"
  SubSection "Display"
    Depth   24
    Modes           "1680x1050"
  EndSubSection
EndSection

Apache2: PHP Seite beschleunigen

Ich bin gerade auf einem anderen Webblog auf einen Artikel gestoßen, in dem die Installation und Verwendung des eAccelerators beschrieben ist. Meiner Meinung nach, ein nicht ganz verkehrtes Tool. Einen Blick/Test ist es auf jeden Fall wert.

Debian: start/stop Scripte verwalten

Linux arbeitet beim starten pro Runlevel verschiedene Scripte ab. Um die Startscripte zu bearbeiten gibts es für Debian verschiedene Tools

rcconf

rcconf

sysv-rc-conf

die verschiedenen Runlevel

  • 0 (Anhalten des Systems),
  • 1 (Einzelnutzer Modus),
  • 2 bis 5 (verschiedene Mehrbenutzer-Modi)
  • 6 (Neustart des Systems).

runleven erkennen

In welchem Runleven sich ein System befindet kann entweder mit

 $ who -r
         Runlevel 2   2009-06-20 14:18                   last=S

oder

$ runlevel
N 2 (N bedeutet, dass das System direkt in Runlevel 3 gebottet wurde.
     Andernfalls wird der letzte Runleven angezeigt)

prüfen.