Hallo,
Dieses Tutorial soll euch zeigen, wie man mit Hilfe von IAM und einem Perlscript den Traffic an den Ports des Webservers überwacht und bei zu hohem Trafficaufkommen eine Mail an den Administrator schickt. So lassen sich beispielsweise DDoS Attaken schneller erkennen und abwehren.
Zuerst widmen wir uns der Installation von IAM:
IAM bekommt man auf dieser Webseite: http://www.intevation.de/iam
Hier laden wir uns die aktuelle Version (0.0.2) herunter und entpacken sie im /usr/src Verzeichniss:
Da IAM mit iptables arbeitet kopieren wir die Datei "iptables.server" ins /etc/init.d Verzeichniss und überschreiben die bereits vorhandene. Sollten per iptables schon Regeln im System sein: Bitte die Dateien entsprechend anpassen:
Nun bearbeiten wird die Datei /etc/init.d/iptables mit unserem favourisierten Texteditor und nehmen noch ein paar Einstellungen vor:
Diese Werte sollten so aussehen:
Nun erstellen wir noch ein Verzeichnis für die restlichen IAM-Scripts die später benötigt werden:
Nun noch das iptables-Script ausführbar machen, damit die Regeln bei einem Neustart des Servers ebenfalls übernommen werden und das iptablesscript inintalisieren:
Jetzt erstellen wir für den Benutzer 'root' noch einen Crontab:
Nun laden wir uns das zusätzlich benötigte Script von Huschi herrunter:
Nun müssen wir das Perl Script noch entsprechend anpassen:
Nun kommt der Teil der etwas "tricky" ist:
Wir finden im dem traffic_check Script folgende Werte:
Diese Werte geben an, wie groß der Wert sein darf an Traffic bei dem NICHT verwarnt wird.
Also:
Im Abschnitt 'www' , das ist der Traffic vom Apache Webserver (80), dürfte nach oben in 15 min nicht mehr als 0.1 MB Traffic entstehen, alles was größer ist lößt die Warnung an den Webmaster aus. Das ist natürlich Schwachsinn (0.1 MB), diese Werte kann man eigentlich nur durch Erfrahrung oder Ausprobieren anpassen.
Meine Chains sehen so aus:
Nun brauchen wir noch einen Cronjob um das Traffic_Check Script 15 minütlich auszuführen:
FERTIG
Fragen, Fehler, Anregungen bitte hierdrunter posten.
An dieser Stelle: Danke an Huschi für sein Script
Dieses Tutorial soll euch zeigen, wie man mit Hilfe von IAM und einem Perlscript den Traffic an den Ports des Webservers überwacht und bei zu hohem Trafficaufkommen eine Mail an den Administrator schickt. So lassen sich beispielsweise DDoS Attaken schneller erkennen und abwehren.
Zuerst widmen wir uns der Installation von IAM:
IAM bekommt man auf dieser Webseite: http://www.intevation.de/iam
Hier laden wir uns die aktuelle Version (0.0.2) herunter und entpacken sie im /usr/src Verzeichniss:
Code:
cd /usr/src
wget ftp://ftp.intevation.de/iam/iam-0.0.2.tar.gz
tar xvfz iam-0.0.2.tar.gz
cd iam-0.0.2
Code:
cp iptables.server /etc/init.d/iptables
Diese Werte sollten so aussehen:
Code:
DUMPFILE=/var/log/iamdump
extif=eth0[FONT=monospace]
[/FONT]extip=IP DEINES SERVERS[FONT=monospace]
[/FONT]intif=lo[FONT=monospace]
[/FONT]hq=127.0.0.1/29[FONT=monospace]
[/FONT]intnet=127.0.0.1/16
Code:
mkdir /usr/local/iam
cp * /usr/local/iam/
Code:
chmod +x /etc/init.d/iptables
/etc/init.d/iptables start
Code:
*/5 * * * * /etc/init.d/iptables dump >/dev/null
Code:
cd /root
wget http://www.huschi.net/download/traffic_check.tgz
tar xvfz traffic_check.tgz
Code:
$IAM = '/usr/local/iam/iam';
$DUMPFILE = '/var/log/iamdump';
$MAIL_FROM = 'root@domain.tld';
$MAIL_TO = 'DEINE@MAILADDR.DE';
Wir finden im dem traffic_check Script folgende Werte:
Code:
%CHAINS = ('outgoing (without other listed services)' => 0.1,
'www (http/https/caudium)' => 0.1,
'internet services' => 0.1
Also:
Im Abschnitt 'www' , das ist der Traffic vom Apache Webserver (80), dürfte nach oben in 15 min nicht mehr als 0.1 MB Traffic entstehen, alles was größer ist lößt die Warnung an den Webmaster aus. Das ist natürlich Schwachsinn (0.1 MB), diese Werte kann man eigentlich nur durch Erfrahrung oder Ausprobieren anpassen.
Meine Chains sehen so aus:
Für einen kleinen nicht ausgelasteten Webserver reicht das.outgoing (without other listed services)' => 10.0
'www (http/https/caudium)' => 30.0
'other traffic (unspecified)' => 50.0
'internet services' => 30.0
Nun brauchen wir noch einen Cronjob um das Traffic_Check Script 15 minütlich auszuführen:
Code:
*/15 * * * * /root/traffic_check.pl >/dev/null 2>&1
FERTIG
Fragen, Fehler, Anregungen bitte hierdrunter posten.
An dieser Stelle: Danke an Huschi für sein Script
Last edited by a moderator: