We are in the process of migrating this forum. A new space will be available soon. We are sorry for the inconvenience.

Tutorial Debian Etch apache2 mit Mod_Security2


aymanghost
01.10.08, 00:25
@FragDieb
ich kann mir nicht vorstellen das ModSecurity generell post() oder get() unterbindet, wahrscheinlich eher wenn eine Regelverstoß bemerkt wird.

In welcher config bzw. rules dateti hasst Du was ändern müssen ?

FraggDieb
29.09.08, 10:48
mod_security2 verbietet neuerdings POST() und GET() kann das sein?! Naja habs von hand freigeschalten in der mod_security.conf aber wieso?!

aymanghost
07.09.08, 00:07
Zitat Zitat von Thunderfox
Edit:
Klappt perfekt. Achja und danke für das kleine Tutorial,
Gern geschehen

Thunderfox
09.08.08, 00:24
wenn das nur daran liegt... ich hab geschaut ob gcc usw. alles installiert ist... naja, werds um 2 Uhr ma testen. Hab grade erst fail2ban getestet, ob der die IPs wirklich Bannt, und kann in 20min. erst wieda rein,
Wenns klappt, werde ich mich nicht mehr melden, deshalb schon mal
Danke!

Edit:
Klappt perfekt. Achja und danke für das kleine Tutorial,

Enn
08.08.08, 23:26
Code:
aptitude install build-essential

Thunderfox
08.08.08, 23:24
Ich hab das Problem, dass folgende Fehlermeldung kommt:
checking for g++... no
checking for c++... no
checking for gpp... no
checking for aCC... no
checking for CC... no
checking for cxx... no
checking for cc++... no
checking for cl.exe... no
checking for FCC... no
checking for KCC... no
checking for RCC... no
checking for xlC_r... no
checking for xlC... no
checking for C++ compiler default output file name...
configure: error: C++ compiler cannot create executables
See `config.log' for more details.

Die config.log:
Code:
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by configure, which was
generated by GNU Autoconf 2.61.  Invocation command line was

  $ ./configure --with-apxs=/usr/bin/apxs

## --------- ##
## Platform. ##
## --------- ##

hostname = ns26378.ovh.net
uname -m = i686
uname -r = 2.6.24.5-grsec-xxxx-grs-ipv4-32
uname -s = Linux
uname -v = #3 SMP Wed May 28 09:09:25 CEST 2008

/usr/bin/uname -p = unknown
/bin/uname -X     = unknown

/bin/arch              = i686
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo      = unknown
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown

PATH: /usr/local/sbin
PATH: /usr/local/bin
PATH: /usr/sbin
PATH: /usr/bin
PATH: /sbin
PATH: /bin
PATH: /usr/bin/X11


## ----------- ##
## Core tests. ##
## ----------- ##

configure:1850: checking for g++
configure:1880: result: no
configure:1850: checking for c++
configure:1880: result: no
configure:1850: checking for gpp
configure:1880: result: no
configure:1850: checking for aCC
configure:1880: result: no
configure:1850: checking for CC
configure:1880: result: no
configure:1850: checking for cxx
configure:1880: result: no
configure:1850: checking for cc++
configure:1880: result: no
configure:1850: checking for cl.exe
configure:1880: result: no
configure:1850: checking for FCC
configure:1880: result: no
configure:1850: checking for KCC
configure:1880: result: no
configure:1850: checking for RCC
configure:1880: result: no
configure:1850: checking for xlC_r
configure:1880: result: no
configure:1850: checking for xlC
configure:1880: result: no
configure:1908: checking for C++ compiler version
configure:1915: g++ --version >&5
./configure: line 1916: g++: command not found
configure:1918: $? = 127
configure:1925: g++ -v >&5
./configure: line 1926: g++: command not found
configure:1928: $? = 127
configure:1935: g++ -V >&5
./configure: line 1936: g++: command not found
configure:1938: $? = 127
configure:1961: checking for C++ compiler default output file name
configure:1988: g++    conftest.cpp  >&5
./configure: line 1989: g++: command not found
configure:1991: $? = 127
configure:2029: result: 
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| 
|   ;
|   return 0;
| }
configure:2036: error: C++ compiler cannot create executables
See `config.log' for more details.

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_env_CCC_set=
ac_cv_env_CCC_value=
ac_cv_env_CC_set=
ac_cv_env_CC_value=
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_CXXFLAGS_set=
ac_cv_env_CXXFLAGS_value=
ac_cv_env_CXX_set=
ac_cv_env_CXX_value=
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=

## ----------------- ##
## Output variables. ##
## ----------------- ##

APR_CFLAGS=''
APR_LDFLAGS=''
APR_LIBS=''
APR_LINK_LD=''
APU_CFLAGS=''
APU_LDFLAGS=''
APU_LIBS=''
APU_LINK_LD=''
APXS=''
APXS_BINDIR=''
APXS_CC=''
APXS_CFLAGS=''
APXS_EXTRA_CFLAGS=''
APXS_HTTPD=''
APXS_INCLUDEDIR=''
APXS_INCLUDES=''
APXS_LDFLAGS=''
APXS_LIBDIR=''
APXS_LIBS=''
APXS_LIBTOOL=''
APXS_PROGNAME=''
APXS_SBINDIR=''
APXS_WRAPPER=''
CC=''
CFLAGS=''
CPP=''
CPPFLAGS=''
CURL_CFLAGS=''
CURL_LIBS=''
CXX='g++'
CXXFLAGS=''
DEFS=''
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP=''
EXEEXT=''
EXTRA_CFLAGS=''
GREP=''
INSTALL_DATA=''
INSTALL_PROGRAM=''
INSTALL_SCRIPT=''
LDFLAGS=''
LIBOBJS=''
LIBS=''
LIBXML_CFLAGS=''
LIBXML_LIBS=''
LN_S=''
LTLIBOBJS=''
LUA_CFLAGS=''
LUA_LIBS=''
MODSEC_APXS_EXTRA_CFLAGS=''
MODSEC_EXTRA_CFLAGS=''
MSC_BASE_DIR=''
MSC_PKGBASE_DIR=''
MSC_REGRESSION_CONF_DIR=''
MSC_REGRESSION_DIR=''
MSC_REGRESSION_DOCROOT_DIR=''
MSC_REGRESSION_LOGS_DIR=''
MSC_REGRESSION_SERVERROOT_DIR=''
MSC_TEST_DIR=''
OBJEXT=''
PACKAGE_BUGREPORT=''
PACKAGE_NAME=''
PACKAGE_STRING=''
PACKAGE_TARNAME=''
PACKAGE_VERSION=''
PATH_SEPARATOR=':'
PCRE_CFLAGS=''
PCRE_LIBS=''
PERL=''
RANLIB=''
SET_MAKE=''
SHELL='/bin/sh'
ac_ct_CC=''
ac_ct_CXX=''
bindir='${exec_prefix}/bin'
build_alias=''
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE}'
dvidir='${docdir}'
exec_prefix='NONE'
host_alias=''
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='${datarootdir}/man'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='NONE'
program_transform_name='s,x,x,'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
sysconfdir='${prefix}/etc'
target_alias=''

## ----------- ##
## confdefs.h. ##
## ----------- ##

#define PACKAGE_NAME ""
#define PACKAGE_TARNAME ""
#define PACKAGE_VERSION ""
#define PACKAGE_STRING ""
#define PACKAGE_BUGREPORT ""

configure: exit 77
Ich hab alles genau befolgt. Und das tritt auch beim echten Server, nicht nur bei meiner xVM auf. Evtl. könnt ihr mir weiterhelfen.

P.S. Ich verwende die Version 2.5.6, kann das daran liegen?

L.G. Andre

aymanghost
26.07.08, 20:54
Hier mal ein kleines Howto für Debian Etch Apache2 mit mod_security2

Ich setze voraus dass Ihr apache2-mpm-worker mit apache2-threaded-dev oder apache2-mpm-prefork apache2-prefork-dev installiert habt
Wenn nicht dann mal
Code:
apt-get install apache2-mpm-worker apache2-threaded-dev
oder
Code:
apt-get install apache2-mpm-prefork apache2-prefork-dev
ausführen.

Des weiteren setzt mod_security2 voraus das libxml2 und libxml2-dev installiert ist, wenn nicht dann
Code:
apt-get install libxml2 libxml2-dev
ausführen.
Apache server stoppen
Code:
/etc/init.d/apache2 stop
jetzt mod_security source downloaden und entpacken
Code:
cd /root
wget https://bsn.breach.com/downloads/t=09bb5ba64be915c34a31f14e6e2eb4cd/modsecurity-apache/modsecurity-apache_2.5.5.tar.gz
tar xzvf modsecurity-apache_2.5.5.tar.gz
cd /root/modsecurity-apache_2.5.5/apache2
jetzt configurieren compillieren und wenn keine Fehler installieren
Code:
./configure --with-apxs=/usr/bin/apxs
make
make install
Dann in /etc/apache2/mods-available neues die Datei security2.load mit folgendem Inhalt anlegen
Code:
touch /etc/apache2/mods-available/security2.load
echo 'LoadFile /usr/lib/libxml2.so' > /etc/apache2/mods-available/security2.load
echo 'LoadModule security2_module /usr/lib/apache2/modules/mod_security2.so' >> /etc/apache2/mods-available/security2.load
in /etc/apache2 das Verzeichnis mods-security anlegen
Code:
mkdir /etc/apache2/mods-security
in der Datei /etc/apache2/apache2.conf den Eintrag 'Include /etc/apache2/mods-security/' am Ende der Datei eintragen
Code:
echo 'Include /etc/apache2/mods-security/' >> /etc/apache2/apache2.conf
Nun aktivieren wir das neue Apache Modul udn starten den Apache mit
Code:
a2enmod security2
/etc/init.d/apache2 start
Wenn nun keine Fehler erscheinen und der Apache gestartet ist habt ihr das neue Modul erfolgreich installiert und aktiviert.
Aber mod_security übernimmt zu diesem Zeitpunkt noch keine kontrolle,
denn es fehlen janoch die Konfigurationsdateien mit den entsprechenden regeln.
Diese gillt es jetzt nach und nach zu integrieren , das erste Beispiel gebe ich jetzt ab, den rest macht Ihr dann selber.

Wir schmeissen jetzt die wichtigste Datei modsecurity_crs_10_config.conf ins zuvor angelegte Verzeichnis /etc/apache2/mods-security .
Dazu folgendes ausführen:
Code:
cd /root/modsecurity-apache_2.5.5/rules
mv modsecurity_crs_10_config.conf /etc/apache2/mods-security/modsecurity_crs_10_config.conf

Jetzt öffnen wir die Datei mit nano
Code:
nano /etc/apache2/mods-security/modsecurity_crs_10_config.conf
ändern die Zeile 191 = 'SecAuditLog logs/modsec_audit.log' um in
Code:
SecAuditLog /var/log/apache2/modsec_audit.log
die Zeile 285 = 'SecDebugLog logs/modsec_debug.log' um in
Code:
SecDebugLog             /var/log/apache2/modsec_debug.log
speichern die Datei und startne de Apache neu:
Code:
/etc/init.d/apache2 start
Wenn jetzt keine Fehler aufgetreten sind ist all super.
So importiert ihr die Regeln nach euren belangen weiter.
Immer drauf auchten was in den Logs von Mod_Security steht, die ja ins gleiche Verzeichnis wie die Apache logs geschrieben werden , in denen könnt Ihr unter anderem erkennen ob euer Web richtig läuft (den Mod_security kann unerwünschte funtionen auslösen) und ob es jemand auf es abgesehene hat.