Archiv

Archiv für die Kategorie ‘Apache – PHP’

mod_security für einen Vhost deaktivieren

20. März 2008 Keine Kommentare

Um den mod_security Engine dessen Installation ich hier beschrieben habe, für einen Vhost zu deaktivieren bzw. abzuschalten, gibt es je nach Version zwei Varianten:

mod_security (1) benutzt folgenden Befehl (z.B. in einer .htaccess Datei):

SecFilterEngine Off

Danach ist mod_security ab diesem Ordner aufwärts deaktiviert.

Bei mod_security2 muss zwingend die apache Konfiguration bemüht werden, da eine Deaktivierung über .htaccess nicht mehr möglich ist.

// Nachtrag

Beide Varianten funktionieren auch direkt in der Apache Konfiguration und lassen sich auch im IfModule Syntax angeben:

Für mod_security Version 2:

<IfModule mod_security2.c>
SecRuleEngine Off
</IfModule>

Für mod_security Version 1:

<IfModule mod_security.c>
SecFilterEngine Off
</IfModule>

HowTo: mod_security 2.5 Debian Etch installieren

24. Februar 2008 15 Kommentare

Um mod_security in der brandneuen Version 2.5 aus den Sources zu compilien, müssen zunächst diverse Libraries und Pakete nachinstalliert werden.

Nachfolgende Step-by-Step Anleitung geht von einem bereits installierten und funktionstüchtigen Apache2 Setup aus den Distributionspackages von Debian Etch aus.

1. Nachinstallieren der benötigten Pakete

apt-get update
apt-get install apache2.2-common flex libc6-dev gcc openssl libxml2 libxml2-dev lua5.1 \
libpcre3-dev libapr1 libapr1-dev libapreq2-dev aprsd libaprutil1 libaprutil1-dev g++ \
cpp cpp-4.1 libstdc++5 libstdc++6 libstdc++6-4.1-dev

2. Einbinden der von mod_security benötigten Apache2 Module

a2enmod unique_id
 
nano /etc/apache2/apache2.conf
 
Falls noch nicht vorhandenen folgende Zeile einfügen:
LoadFile /usr/lib/libxml2.so

Danach einmal den Webserver neustarten und wenn soweit alles geklappt hat, ist die Hälfte bereits geschafft.

3. Falls nicht schon vorhanden apxs (apxs2) installieren

Dieser Step kommt auf die Version eures Webservers an.

apache2 -V
 
Zeigt euch die Version an. Sollte dort stehen:
<strong>Server MPM:     Prefork</strong>
Dann mittels apt-get die richtige apxs Version installieren und mit Step 4 fortfahren:
apt-get install apache2-prefork-dev
 
Ansonsten solltet ihr das Debian threaded Modell haben:
apt-get install apache2-threaded-dev

4. Sources von mod_security 2.5 compilieren

cd /usr/src
wget http://www.modsecurity.org/download/modsecurity-apache_2.5.0.tar.gz
tar xfz modsecurity-apache_2.5.0.tar.gz
cd modsecurity-apache_2.5.0/apache2
./configure --with-apxs=/usr/bin/apxs2
make
make test

Sollte es zu Fehlern im unter Step-4 genannten Ablauf kommen, liegt dies vermutlich an fehlenden Libraries. Ihr seid gerne eingeladen mich zu kontaktieren

5. Installation von mod_security

make install
mv ../rules /etc/apache2/modsecurity
##
mkdir /etc/apache2/logs
oder den Pfad zur Logdatei anpassen in der Datei /etc/apache2/modsecurity/modsecurity_crs_10_config.conf
##
 
Einfügen von mod_security in die Datei /etc/apache2/apache2.conf:
 
LoadModule security2_module /usr/lib/apache2/modules/mod_security2.so
Include /etc/apache2/modsecurity/*.conf

6. Starten des Apachen mit mod_security

/etc/init.d/apache2 restart

Wenn nun der Apache2 startet hat alles geklappt und euer Webserver ist gegen Angriffe über PHP etc. schon ein ganzes Stück weiter geschützt.

Es ist jedem angeraten sowohl die Rules unter /etc/apache2/modsecurity anzuschauen als auch die Apache2 error_log oft zu kontrollieren, da hier alle abgewiesenen Zugriffe protokolliert werden.

Da es zu False Positive kommen wird, ist dies also vor allem in der Anfangszeit sehr wichtig.
Natürlich können die .conf Dateien unter /etc/apache2/modsecurity mittels einem Editor geprüft und editiert werden, sodass Regeln sehr einfach zu deaktivieren sind.

Ebenso das einfügen von Costum Rules z.B. dem Rulekit von Got Root?

Wie man solche Regeln erstellt und z.B. aus anderen Quellen wie Snort einbinden kann, werde ich in einem anderen Blogeintrag dokumentieren.

PHP mit IMAP-Support – *Update* IMAP-SSL-Support

21. Februar 2008 Keine Kommentare

Wenn man versucht PHP mit IMAP-Support zu kompilieren, dann stößt man oft auf folgendes Problem.

...utf8_mime2text() has new signature, but U8T_CANONICAL is missing....

Wohl die einfachste Variante das Problem sauber und schnell zu lösen ist einfach IMAP auf dem Server zu installieren. Hierbei kommt es allerdings häufig zu Problem, weshalb ich nun ein wenig näher auf die Installation eingehen möchte.

Um IMAP zu installieren, benötigen wir erstmal die Sources, welche hier zu finden sind. Danach entpacken und Kompilieren wir das Ganze mal.

wget ftp://ftp.cac.washington.edu/imap/imap.tar.Z
tar xfvz imap.tar.Z
cd imap-2007
make slx (hier nun beispielsweise mit slx)

Sollte das Kompilieren wegen fehlendem SSL nicht gehen, dann müsst ihr schauen, dass Openssl sowie entsprechende Libs (libssl) bereits auf dem System installiert sind. Sollten diese bereits vorhanden sein, dann kann es sein, dass Ihr den Pfad im Makefile noch anpassen müsst.

Dafür öffnet ihr das passende Makefile und sucht nach der Stelle “SSLDIR”. Das Ganze könnte dann so aussehen (nach der Änderung):

SSLDIR=/usr/include/openssl
SSLCERTS=$(SSLDIR)/certs
SSLKEYS=$(SSLCERTS)
SSLINCLUDE=$(SSLDIR)
SSLLIB=/usr/lib

Wenn das Kompilieren abgeschlossen ist, muss man die Dateien noch an die richtigen Stellen im System kopieren. Ich habe hier nun “/usr/local/imap” verwendet.

# Ordner anlegen
mkdir /usr/local/imap-2007
mkdir /usr/local/imap-2007/include
mkdir /usr/local/imap-2007/lib
 
# Verzeichnis noch wechseln
cd c-client
 
# Dateien kopieren
cp *.h /usr/local/imap-2007/include
cp c-client.a /usr/local/imap-2007/lib/libc-client.a

Danach kann man die Configureanweisung von PHP 4 bzw. PHP 5 einfach um folgenden Eintrag erweitern und dann steht der späteren Verwendung von IMAP mittels PHP nichts mehr im Wege.

--with-imap=/usr/local/imap-2007

*Update*

Wer auch IMAP-SSL mittels PHP verwenden möchte sollte noch folgende Zeile beim Configure übergeben

--with-imap-ssl=/usr/include/openssl

Ein kleiner Tip noch für Leute die Debian 64bit verwenden.
Hier muss man IMAP mit dem Zusatzparamater -fPIC kompilieren. Dies kann bewerkstelligt werden, indem man den Paramter im Makefile den GCCFLAGS hinzufügt.