MySQL Optimierung

Hallo Leute,

in diesem Artikel möchte ich das Thema MySQL Optimierung ansprechen.

Es sollte selbstverständlich sein aber ich erwähne es trotzdem: Sichert eure Datenbanken immer wenn ihr irgendwelche Änderungen macht!

mysqltuner.pl

“mysqltuner.pl” ist ein Perlscript, dass euch die Möglichkeit bietet, den Zustand eurer MySQL Datenbank einzusehen und Hilfreiche Tips zur Optmierung zu bekommen.

Zur Installation könnt ihr euch mittels wget die aktuelle Version runterladen oder mittels apt installieren.

apt-get install mysqltuner

oder

mkdir /root/mysqltuner && cd /root/mysqltuner/ && wget https://raw.github.com/rackerhacker/MySQLTuner-perl/master/mysqltuner.pl

Danach einfach starten, je nachdem welche Option ihr bei der Installation gewählt habt startet ihr mit:

mysqltuner

oder mit

perl /root/mysqltuner/mysqltuner.pl

nach einer kurzen Zeit bekommt ihr eine Übersicht und Tips zur Verbesserung.

mysqlcheck

MySQL kommt mit einem Tools Namens “mysqlcheck” dieses bietet euch einige Möglichkeiten um eure Datenbanken zu optimieren beziehungsweise zu überprüfen. Ich werde hier nur auf die Optimierung eingehen, für weitere Information dazu einfach in die man Page schauen.

Um eine einzelne Datenbank zu optmieren müsst ihr folgeden Befehl eingeben:

mysqlcheck -o NAME_EURER_DATENBANK -u root -p

Danch müsst ihr das MySQL Passwort eingeben und nach eine Weile (je nachdem wie Groß die Datenbank ist) bekommt ihr diese Information:

NAME_EURER_DATENBANK    OK

Um alle Datenbanken zu optimieren könnt ihr diesen Befehl verwenden:

mysqlcheck -o --all-databases -u root -p

Schlusswort

Dieser Artikel ist nur ein kleiner Auszug, der sich mit der Optimierung von MySQL Datenbankebeschäftigt. Jeder der eine High Performance MySQL Datenbank betreit wird aber auch wissen wie er diese betriebt, dieser Artikel richtet sich also eher an MySQL Anfänger.

pecae
LEWIS

ntop – Traffic Analyse

Hallo Leute,

falls ihr den Traffic eures Servers, beziehungsweise eures Netzwerkes überwachen und analysieren wollt kann ich euch “ntop” empfehlen.

Anders wie “iptraf” habt ihr mit “ntop” eine Weboberfläche mit Charts.

Zum installieren einfach

apt-get install ntop

eingeben und bei der Frage nach einem Passwort ein sicheres wählen. Dieses sollte ihr euch natürlich auch merken, da ihr dieses für das Webinterface braucht.

Nach der Installation ist “ntop” unter

http://localhost:3000

erreichbar.

Webinterface absichern

Um das Webinterface abzusichern, müsst ihr in der Navigation unter Admin -> Configure -> Protect URL’s klicken (siehe Screenshot)

Auf dieser Seite dann auf “Add URL” klicken und auf der folgenden Seite mit dem “Add URL” Button bestätigen. Danach braucht ihr für jede Seite die Zugangsdaten.

peace
LEWIS

Apache2 absichern

Hallo Leute,

um Apache besser gegen DDoS Attacken zu sichern, bzw. die Allgemeine Sicherheit etwas anzuheben könnt ihr folgende Einstellungen vornehmen:

Apache Version und Server Informationen verstecken

Normal werden bei Apache unten auf der Seite die Version und Serverinformationen angezeigt (auf 403 Seiten und co.), um dies zu verhindern fügen wir in die apache2.conf folgende Optionen hinzu:

vim /etc/apache2/apache2.conf
ServerSignature Off
ServerTokens Prod

Danach wird diese Information nicht mehr angezeigt.

Timeout Wert verringern

Apache kommt mit einem sehr hohen Timeout Wert, diesen kann man runtersetzten und das Risiko einer DDoS Attacke etwas zu minimieren

vim /etc/apache2/apache2.conf
Timeout 45

danach könnt ihr die Datei speichern und Apache neu laden:

service apache2 reload

Unnötige Mods deaktivieren

Um eine Übersicht aller aktivierten Mods zu bekommen könnt ihr euch diese mit

apache2ctl -M

anzeigen lassen. Unnötige Mods wie “mod_imap”, “mod_info” und “mod_status” sollten deaktiviert werden und zwar zum Beispiel mit

a2dismod status

danach muss Apache neu gestartet werden

service apache2 restart

Directory Listing deaktivieren

Dieser Punkt ist in diesem Artikel von mir genauer erklärt.

mod_evasive einrichten

Der Beste Schutz gegen DDoS Attacken ist der “evasive” Mod. Um diesen zu installieren und einzurichten geht man wie folgt vor:

apt-get install libapache2-mod-evasive

danach einen Log Ordner erstellen

mkdir /var/log/apache2/mod_evasive

und eine Konfigurationsdatei anlegen

touch /etc/apache2/conf.d/mod_evasive.conf

Danach fügen wir folgende Optionen hinzu

vim /etc/apache2/conf.d/mod_evasive.conf
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
DOSLogDir /var/log/apache2/mod_evasive
DOSWhitelist 127.0.0.1

Zur Erkärung der einzelnen Punkte:

  • DOSHashTableSize: Größe der Hash Table für die IP-Adressen Überwachung
  • DOSPageCount: Anzahl der Seiten die gleichzeitig von einer IP geladen werden dürfen bevor die IP geblockt wird
  • DOSSiteCount: Anzahl von Objekten die pro Sekunden geladen werden dürfen (css, js, Bilder usw.)
  • DOSPageInterval: Interval in Sekunden für DOSPageCount
  • DOSSiteInterval: Interval in Sekunden für DOSSiteCount
  • DOSBlockingPeriod: Interval in Sekunden wie lange eine IP geblockt wird wenn sie auffällig ist
  • DOSLogDir: Pfad zum Logverzeichnis
  • DOSWhitelist: Whitelist Option

danach aktivieren wir noch den mod und starten Apache neu:

a2enmod mod-evasive
service apache2 restart

Um die Einstellungen zu testen gibt es ein Script unter “/usr/share/doc/libapache2-mod-evasive/examples”. Einfach mit

perl test.pl

ausführen. Seht ihr “403” Antworten funktioniert alles einwandfrei.

Achtung, nicht vergessen vorher die “127.0.0.1” IP von der Whitelist zu nehmen, sonst funktioniert es natürlich nicht (:

peace
LEWIS