KategorieWebServer

[HowTo] Mod_Security für Apache

Ein schnelles Howto, wie Ihr Euren Web-Server (Apache) mit dem mod_Security absichert.

Zuerst einmal die Pakete installieren. Diese sind bei Debian und Ubuntu in den Repositories verfügbar.

# apt-get update
# apt-get install libapache-mod-security

Mit dem Befehl könnt checken ob das Module erfolgreich geladen wurde

# apachectl -M | grep --color security

Und wieder ist Apache ein Stück sicherer.

Viel Spaß & Stay tuned!

Logs unter Debian Linux wöchentlich löschen per cronjob

Heute war es mal wieder soweit. 1 GB Logfiles im System. Was also tun? Log Dateien einfach löschen wäre fatal, da diese nicht noch einmal erzeugt werden. Das System wäre somit auf einfachste weise zerschossen. Um das zu verhindern schreiben wir den Inhalt ins nichts.

# cd /var/log
# for i in *; do test -f $i -a -s $i && > $i; done

Das ich ein fauler Mensch bin und es wieder vergessen würde, machen wir daraus noch einen wöchentlichen Cronjob

#sudo crontab -e
#Password: 

#[...]
#Am Ende der Datei einfach folgendes eintragen: 
0 0 * * 1 cd /var/log && for i in *; do test -f $i -a -s $i && > $i; done

Der Cronjob leert jetzt wöchentlich die Logs.

blog.tschoerner.eu goes IPv6

Heute habe ich die Konfiguration für meinen Blog geupdated.

blog.tschoerner.eu ist nun per IPv4 und IPv6 erreichbar.

IPv6

Ob Eure Webseite via IPv6 erreichbar ist könnt Ihr hier überprüfen:  http://ipv6-test.com/validate.php

Ob Ihr über IPv4 zugreift oder IPv6 seht ihr hier. Wenn Ihr eine “normale” Adresse ohne : seht, ist es v4 anderenfalls v6

Deine IP: [VisitorCountry-IP]

Demnächst blogge ich Euch noch, wie Ihre euren VPS mittels IPv6 Tunnel konfiguriert und es gibt auch noch die Froxlor Konfig dazu.

Stay tuned!

 

Log-Dateien leeren unter Linux

Hi, manchmal steht man vor dem Problem neue Sachen auf der Linux Kiste auszuprobieren. Natürlich funktioniert es in den wenigsten fällen direkt nach der Installation. “Was also tun?” frag man sich, wie man am schnellsten die log-Dateien leert aber nicht löscht.

# > logfile.log

Wenn noch 10 Zeilen drinnen bleiben sollen, da macht man es so

# tail -n 10 logfile.log logfile.log

 

Apache und PHP Performance Tuning in Debian [HowTo]

Heute möchte ich kurz zeigen wie Ihr Eurem Apache/PHP WebServer mehr Power gebt.

Es gibt diverse Möglichkeiten, eine Webseite zu beschleunigen. Zuvor hatte ich schon darüber gebloggt wie Ihre den Datenstrom zwischen Server und Client packt um die Transferzeiten zu minimieren. Auf dem Server müssen die Webseiten aber erst aufbereitet werden, bevor diese transferiert werden können. Ein großen Vorteil haben statische Elemente wie Bilder, Html-Seiten etc. Setzt man jedoch PHP ein, muss die Seite immer geparst und interpretiert werden. Diese Operationen benötigen Zeit, und belasten auch die Leistung des Servers.

Setzt man auf Caching Mechanismen kann man ohne Verlust der Webseitendynamik einfach “statische” Seiten erzeugen. Ein Liste der Verfügbaren PHP-Chaches findet Ihr hier. Ich persönlich habe mich für den Einsatz des APC (Alternative PHP Cache) entschieden.

apcphp

Die Installation auf Debian ist denkbar einfach durchzuführen.

# apt-get update
# apt-get install php5-pear php5-apc

Es werden nun alle notwendigen Pakete installiert. Um die neue Funktionalität nutzen zu können, muss der Apache noch einmal durch gestartet werden.

# /etc/init.d/apache2 restart

Beim Besuch Eurer Seite solltet Ihr nun einen ordentlichen Performance Zuwachs merken. Wenn Ihr Euch nicht sicher seid, ob der APC richtig läuft, dann legt einfach ein Datei (phpinfo.php) mit folgendem Inhalt an und ruft diese im Browser auf:

<?php
phpinfo();
?>

Das Ergebnis sollte in etwas so aussehen:

phpinfo

Sucht einfach nach APC auf der Seite um zu validieren ob der Cache läuft:

phpinfo_apc

DNS Ausfall

Wir Ihr vielleicht mitbekommen habt, gibt es heute bei einigen Zentralen DNS Servern Probleme.

Dazu gehört auch mein DNS-Provider ClouDNS.net. Alle DNS-Server stehen zur Zeit unter einer heftigen ddos Attacke. Aus diesem Grund sind einige Seiten nur schwer aufzulösen und es kommt zu Antwortzeiten > 1s. Dies führt dann im Browser dazu, dass die Seite nicht geöffnet wird.

 

Webseiten performance Optimieren mit gZip Kompression

Wie ihr wisst (vielleicht) läuft mein WebServer auf Debian Squeeze. Die Konfiguration und Verwaltung mache ich mit froxlor. Für alle diejenigen welche froxlor nicht kennen,  hier der Link zum Projekt.

Da auf meinem Server diverse Projekt, Shops, Seiten etc. gehostet sind, bin ich immer daran mein möglichstes für gute Performance zu tun. Zudem werden mehr als 50% der Anfragen von mobilen Geräten gesandt. Diese Anfragen werden dann wiederum zu 60% aus dem mobilen Netz gesendet.

Setzt man nun die gZip Kompression ein, wird die Antwortzeit minimiert, aufgrund der geringeren Datenmenge welche zu übertragen ist. Und das merkt man natürlich in langsamen mobilen Netzen am meisten.

Man kann die gZip Kompression auf 2 Arten bereitstellen.

  1. php.ini
  2. .htaccess

Option 1

Aktiviren der Kompression in der php.ini. Hierzu muss lediglich der folgende Code eingefügt werden.

zlib.output_compression = on

 

Option 2 (präferiert)

Die 2. Option benötigt lediglich die Veränderung der .htacces Datei. Die Datei wird von modernen PHP-System wie WordPress standard im Wurzel (root) Verzeichnis der Installation erzeugt.

<IfModule mod_deflate.c>
	<IfModule mod_filter.c>
		AddOutputFilterByType DEFLATE text/plain text/html application/x-httpd-php-source
		AddOutputFilterByType DEFLATE text/xml application/xml application/xhtml+xml application/xml-dtd
		AddOutputFilterByType DEFLATE application/rdf+xml application/rss+xml application/atom+xml image/svg+xml
		AddOutputFilterByType DEFLATE text/css text/javascript application/javascript application/x-javascript
		AddOutputFilterByType DEFLATE font/truetype application/x-font-ttf font/opentype application/x-font-otf
	</IfModule>
</IfModule>

Unterstützt der Webserver die Module deflate und filter nicht, können diese für Apache so aktiviert werden.

mod_deflate aktivieren

root@server1:/# a2enmod deflate
Enabling module deflate.
Run '/etc/init.d/apache2 restart' to activate new configuration!

mod_filter aktivieren

root@server1:/# a2enmod filter
Enabling module filter.
Run '/etc/init.d/apache2 restart' to activate new configuration!

Verlinkt habe ich noch ein Video, wie die gZip Kompression funktioniert.

Quelle: How grip compression works