webserver
Apache Webserver Directory Listing (Verzeichnisauflistung) deaktivieren / aktivieren
Wenn das Directory Listing im Apache Webserver aktiviert ist, stellt das ein hohes Sicherheitsrisiko dar und sollte deswegen deaktiviert werden.
Directory Listing ist eine Webserver Funktion, um im Browser bequem den Inhalt eines Ordners auflisten zu lassen ohne dafür ein entsprechendes Skript zu verwenden. Bei lokal installierten Webservern mag diese Funktion ganz praktisch erscheinen. (siehe Screenshot).
Aber man sollte sich doch Gedanken über die Verwendung der Funktion im Live Betrieb machen. Potentiellen Angreifern wird durch die Auflistung und Ausgabe der Dateien ihre Arbeit erleichtert. In der Standard Apache Konfiguration ist die Verzeichnisauflistung aktiviert und kann folgendermaßen deaktiviert werden:
Apache directory Listing in der VirtualHost Konfiguration deaktivieren:
Unter Debian und Ubuntu sieht die Directory Direktive der VirtualHost Konfiguration, nach der Apache Installation folgendermaßen aus:
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory>
Der Options Parameter “Indexes” ist hierfür für das Directory Listing verantwortlich. Wenn vor Indexes ein Minus gesetzt wird, ist die Verzeichnisauflistung deaktiviert.
<Directory /var/www/> Options -Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory>
Apache Verzeichnisauflistung in der apache2.conf global deaktivieren
Am Ende der /etc/apache2/apache2.conf folgenden Teil einfügen:
Options -Indexes
Hierbei sollte aber beachtet werden dass in der VirtualHost Konfiguration der Wert Indexes komplett entfernt wird, da er ansonsten wieder überschrieben wird. Wenn das Listing für bestimmte Webseiten verwendet werden soll, kann es so einfach über die vHosts aktiviert werden.
Apache Directory Listing für bestimmte Ordner deaktivieren oder aktivieren
Wenn die Verzeichnisauflistung nur für bestimmte Ordner deaktiviert oder aktiviert werden soll, kann einfach eine .htaccess Datei im jeweiligen Webserver Verzeichnis erstellt werden, die folgende Zeile beinhaltet:
Options -Indexes
Damit die .htaccess Datei aber auch erkannt wird muss die “AllowOverride All” in der vHost Konfiguration aktiviert sein.
HowTo: Node.js Installation unter Debian Squeeze / wheezy + Ubuntu
Step-by-Step Anleitung wie Node.js unter Debian Squeeze / Wheezy oder Ubuntu / Linux Mint installiert wird.
Da die Node.js in den Debian Repositories nur in der unstable (Sid) Version vorhanden sind, und unter Ubuntu bzw. Linux Mint nicht immer in der aktuellsten Version zur Verfügung stehen, ist es auf Linux Webservern der beste und sicherste Weg Node.js selbst zu kompilieren. Es sind nur sehr wenige Schritte dafür notwendig:
Abhängigkeiten installieren:
Folgende Pakete sind für die Installation notwendig und können bequem via apt-get installiert werden:
apt-get update apt-get install g++ curl libssl-dev
Option1: Download der Node.js Sourcen via git:
Es gibt die Möglichkeit, die node.js Sourcen direkt via git auszuchecken, oder direkt die tar.gz Datei von der Webseite downzuloaden. Bei git hat man den Vorteil auch aktuelle pre Releases zu testen, und die meisten Anwender und Admins haben ohnehin Git in Verwendung. Wer kein git verwenden möchte kann bei der nächsten Überschrift weiterlesen (Download via tar Package).
apt-get install git-core cd /usr/src git clone https://github.com/joyent/node.git cd node
Damit wir mit der stable Version und nicht mit einer Pre Entwickler Version arbeiten können, sollte zuvor die Version auf Stable umgestellt werden. (Aktuellste Stable Version kann auf http://nodejs.org/ nachgelesen werden)
git checkout v0.10.4
Option2: Download von Node.js via tar Package
Wer kein git verwenden möchte, kann auch das stable tar Package downloaden:
wget http://nodejs.org/dist/node-latest.tar.gz tar -xzvf node-latest.tar.gz cd node-v0.10.4
Installation von Node.js unter Debian und Ubuntu / Linux Mint
Der Kompilierungsvorgang kann unter Umständen einige Zeit in Anspruch nehmen, also geduldig bleiben
./configure make make install
Installierte Node.js Version ausgeben:
node -v
Ausgabe Stand 23.04.2013:
v0.10.4
Aktivierte Apache Module anzeigen / deaktivieren / aktivieren
Anleitung wie man aktivierte Apache Module auf seinem Linux Webserver anzeigen lassen kann und wie diese deaktiviert (a2dismod) bzw. aktiviert (a2enmod) werden können.
Aktivierte Apache Module anzeigen lassen
Auf allen gängigen Linux Distributionen kann man einfach folgendem Befehl in der Commanline absetzten und man erhält eine Auflistung der aktivierten Apache Module. (Bei CentOS/RHEL wird apache2ctl durch httpd ersetzt) (Falls der Pfad nicht aufgelöst werden kann, einfach ein /usr/sbin/ davor hängen):
apache2ctl -M
oder
apache2ctl -t -D DUMP_MODULES
Beispielausgabe:
Loaded Modules: core_module (static) log_config_module (static) logio_module (static) mpm_prefork_module (static) http_module (static) so_module (static) actions_module (shared) alias_module (shared) auth_basic_module (shared) authn_file_module (shared) authz_default_module (shared) authz_groupfile_module (shared) authz_host_module (shared) authz_user_module (shared) autoindex_module (shared) cgi_module (shared) deflate_module (shared) dir_module (shared) env_module (shared) expires_module (shared) headers_module (shared) mime_module (shared) negotiation_module (shared) php5_module (shared) reqtimeout_module (shared) rewrite_module (shared) setenvif_module (shared) status_module (shared) Syntax OK
Die Ausgabe zeigt die geladenen Module mit den Werten static bzw. shared an.
static: Fix kompilierte Module – können nicht deaktiviert werden ohne dass der Apache neu kompiliert werden muss, was ich auf keinen Fall raten würde.
shared: Dynamisch geladene Module – können jederzeit, deaktiviert oder aktiviert werden. Man sollte jedoch wissen wofür und vor allem ob die aktivierten Module benötigt werden bevor man sie deaktiviert. Der Apache kann sonst in einen ziemlich “labilen” Zustand versetzt werden.
Apache Module unter Debian, Ubuntu, Linux Mint deaktivieren
Um ein Apache Modul auf Debian basierten Linux Distributionen zu deaktivieren verwenden wir den Befehl “a2dismod” und geben den entsprechenden Modulnamen an:
a2dismod MODULNAME
Beispiel:
a2dismod deflate
Deaktiviert das Modul deflate, welches zB. für die Komprimierung verwendet wird. Ein Neustart des Apache Dienstes ist anschließend notwendig:
/etc/init.d/apache2 restart
Apache Module unter Debian, Ubuntu, Linux Mint aktivieren
Um ein verfügbares Apache Modul auf Debian basierten Linux Distributionen zu aktivieren wird der Befehl “a2enmod” verwendet und geben den entsprechenden Modulnamen an:
a2enmod MODULNAME
Beispiel:
a2enmod ssl
Aktiviert das Modul ssl, um die HTTPS Verschlüsselung (Port 443) für den Apache zu aktivieren. Ein Neustart des Apache Dienstes ist anschließend notwendig:
/etc/init.d/apache2 restart
CentOS, RHEL Apache (HTTPD) Module deaktivieren / aktivieren
Unter RedHat Enterprise Linux und CentOS gibt es kein entsprechendes Verwaltungssystem (a2enmod/a2dismod), weshalb die mitgelieferten Module direkt in der Apache Konfigurationsdatei (/etc/httpd/conf/httpd.conf) via LoadModule geladen werden :
... LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule auth_digest_module modules/mod_auth_digest.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule authn_alias_module modules/mod_authn_alias.so LoadModule authn_anon_module modules/mod_authn_anon.so LoadModule authn_dbm_module modules/mod_authn_dbm.so LoadModule authn_default_module modules/mod_authn_default.so LoadModule authz_host_module modules/mod_authz_host.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule authz_owner_module modules/mod_authz_owner.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_dbm_module modules/mod_authz_dbm.so LoadModule authz_default_module modules/mod_authz_default.so LoadModule ldap_module modules/mod_ldap.so ...
Nicht benötigte Module können hier mit einem # auskommentiert werden.
Zusätzliche httpd Module, welche zu einem späteren Zeitpunkt installiert werden, findet man als .conf Datei im Verzeichnis /etc/httpd/conf.d/ welches in die Apache Konfiguration eingebunden (included) wird.
Zend OPcache – PHP Beschleuniger + OpCode Cache – Installation unter Debian, Ubuntu, Linux Mint
Der PHP Zend Optimizer Plus war lange Zeit nur als kostenpflichtige Version erhältlich und ist seit Februar 2013 Open Source und umbenannt auf Zend OPcache. Der Grund für diesen Schritt ist wohl die fixe Integration in die nächste PHP Version
Der Zend OPcache steigert die Performance und optimiert PHP indem er den Code vorkompiliert und im RAM (Hauptspeicher) hält und somit Verzögerungen durch Lesezugriffe auf die langsamerer Festplatte reduziert.
Zend Optimizer+ wurde im Februar 2013 auf github umgezogen und ist so quelloffen und frei verfügbar. Mitte März wurde das Projekt in Zend OPcache umbenannt. Ich habe das Tool ausgiebig getestet und muss sagen dass die Performance wirklich beeindruckt. So funktioniert die Installation auf eurer Debian basierten Linux Distribution.
Wichtig ist hierbei immer, dass ihr auch eine entsprechende Webseiten Performance Analyse durchführt, damit man auch die Auswirkung von Zend OPcache sieht. Bei meinem Blog war mit aktivierten WP Super Cache Plugin eine Performancesteigerung von 20% möglich.
Zend OPcache unter Debian, Ubuntu und Linux Mint installieren
QuickTipp: Weiterleitung (redirect) von HTTP auf HTTPS via Apache oder Htaccess
Sensible Webseiten-Daten sollten grundsätzlich immer via SSL Verschlüsseltung ausgeliefert werden (HTTPS statt HTTP). Ich zeige in diesem QuickTipp wie die Weiterleitung von HTTP auf HTTPS eingerichtet wird sodass auch Parameter erhalten bleiben.
Eine SSL Verschlüsselung ist grundsätzlich einge gute Idee sensible Daten gegen Dritte zu schützen. Aber was bringt es wenn das SSL Zertifikat am Root Server / managed Server installiert und die Verschlüsselung aktiviert ist, aber die Webseite trotzdem noch per HTTP erreichbar ist? HTTP muss daher auf HTTP weitergeleitet werden. Je nachdem welche Bereiche man schützen will kann man die Konfiguration erweitern, sodass sie nur für gewisse Verzeichnisse oder Anfragen greift.
Voraussetzung: Apache rewrite Modul aktiviert und Webserver bereits via HTTP und HTTPS erreichbar.
HTTP auf HTTPS weiterleiten via htaccess
Die .htaccess Datei sollte direkt im Root Verzeichnis der Webseite liegen. In meinem Beispiel werden sämtliche Webseiten Aufrufe, welche per HTTP auf den Server kommen, auf HTTPS umgeschrieben. Für den User bleibt dieser Vorgang eigentlich völlig unbemerkt, da der Prozess im Hintergrund statt findet.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
Zeile 1: überprüft ob das Modul mod_rewrite aktiviert ist
Zeile 2: aktiviert die Rewrite Engine
Zeile 3: überprüft ob HTTPS eingeschaltet ist, wenn nicht führt er den Inhalt von Zeile 4 aus
Zeile 4: leitet sämtliche Anfragen via Statuscode 301 (permanent redirect) auf HTTPS um
Warum Status Code 301 und nicht 302?
Standardmäßig wird in der RewriteRule mit R (Redirect) die Weiterleitung definiert. Diese liefert den HTML Statuscode 302 (found), also eine Temporäre Weiterleitung zurück. Wir definieren aber explizit den Status Code 301 (permanent redirect) für eine Permanente Weiterleitung.
Das ist gerade für SEOs in der Suchmaschinenoptimierung sehr wichtig, wenn bereits Backlinks auf die Webseite mit HTTP existieren. Die Linkkraft wird mit einem 301 Redirect direkt und ohne Verlust auf die HTTPS Seite übertragen, ohne dabei an Ranking zu verlieren.
Matt Cutts über 301 Weiterleitungen
Weiterleitung von HTTP auf HTTPS über die Apache Konfiguration
Die Rewrite Regeln müssen nicht unbedingt in einer htacccess Datei stehen, sondern können direkt in der Apache Konfiguration eingetragen werden. zb:. wie folgt in der vHost Konfiguration:
<Virtualhost vhost.domain.com>
ServerName vhost.domain.com
DocumentRoot /var/www/website1
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
</Virtualhost>
Sämtliche Aufrufe auf die Website http://vhost.domain.com werden auf https://vhost.domain.com umgeleitet. Voraussetzung ist natürlich dass die Webseite auch für SSL konfiguriert wurde.
Weitere Informationen zu Apache Rewrite gibts in der offiziellen Dokumentation
Apache htaccess – mod_rewrite aktivieren unter Debian, Ubuntu, Mint
Anleitung wie unter Debian basierten Linux Distributionen das Apache Modul mod_rewrite aktiviert werden kann um es in htaccess Dateien zu verwenden
Viele CMS Systeme wie WordPress, Typo3, Joomla, etc… benötigen zur SEO Optimierung der Linkstruktur das Apache Modul mod_rewrite. Doch was macht mod_rewrite eigentlich? Es manipuliert Internetadressen bzw. schreibt diese auf ein geeigneteres schöneres (leserlicheres) Format um.
mod_rewrite für Apache aktivieren
Apache bringt unter Debian basierten Distributionen das Programm a2enmod mit, welches das aktivieren eines Moduls fast spielerisch einfach macht:
a2enmod rewrite
Bei Ubuntu und Linux Mint wird einfach ein sudo davor gesetzt:
sudo a2enmod rewrite
Anschließend muss der Apache Server neu gestartet werden:
/etc/init.d/apache2 force-reload oder /etc/init.d/apache2 restart
Was macht Apache a2enmod?
Apache Module (Plugins) liegen unter Debian, Ubuntu, Linux Mint und Co im Verzeichnis /etc/apache2/mods-available und müssen um aktiviert zu werden lediglich in das Verzeichnis /etc/apache2/mods-enabled kopiert gelinkt werden. Sauber gelöst wird das über Symbolische Links (Symlinks).
Um mod_rewrite nun manuell zu aktivieren wäre folgender Befehl nötig:
ln -s ../mods-available/rewrite.load /etc/apache2/mods-enabled/
mod_rewrite für Apache deaktivieren
Soll das Modul wieder deaktiviert werden, so kann dies über folgenden Befehl realisiert werden:
a2dismod rewrite
Gastbeitrag von Marco Keul zum Thema Server mieten
Der Gedanke, einen eigenen Server zu besitzen ist ziemlich verlockend. Was dabei aber abschreckend wirkt, ist, das dies ein sehr kostspieliges Unterfangen und ein sehr Zeitaufwendiges unternehmen wäre.
Um ein solchen Zeit- und Kostenaufwendiges Vorhaben zu umgehen, besteht die Möglichkeit, sich einen Server zu mieten. Sei es für den eigenen Webshop oder als Mailserver oder einfach nur um Projekte zu koordinieren.
Wo kann man so einen Server mieten?
Diese Frage ist eigentlich ganz leicht zu beantworten. Einige große Provider, wie zum Beispiel Strato oder 1&1 bieten solche Server zum mieten an. Der Mietpreis ist von Provider zu Provider, sowie von dem Speicherplatz des angemieteten Servers abhängig. Diese können zwischen 10 € und mehreren Hundert Euro im Monat betragen.
Sie bieten zudem auch verschiedene Systeme, unter anderem auch Linux Server an. Der Vorteil bei einem Provider ist, dass man dort einen meistens Kompetenten Support hat, der einen bei sämtlichen Fragen betreut. Zudem sind die Server individuell an den Kunden angepasst, was einen weiteren Vorteil hat. Server mieten bringt also einige Vorteile.
Verschiedene Systeme
Auf einen virtuellen Server, wie zum Beispiel einem Server zum Mieten, ist ein von den anderen unabhängigen Servern, also auch vom Hauptserver, aufgespieltes System. Geläufig sind Windows und Linux.
Wer schon einmal mit Windows gearbeitet hat, und dieses kennt, wird es nicht so einfach haben, sich auf einen Linux konfigurierte9s System zu Recht zu finden. Das Linuxsystem ist nicht mir ein paar Mausklicks, wie das Windows zu handhaben. Und ein paar Konsolenbefehlen reichen nicht aus, um ein Linuxserver am Leben zu erhalten.
Lieber doch mieten?
Denn hier besteht die Möglichkeit, dass der Provider, wenn man mal einen Fehler gemacht hat und die Einstellungen bereits gespeichert hat, mit einem recht schnellen Support ein Backup aufspielt, sollte man keines selbst gemacht haben.
Zudem ist noch ein Vorteil, dass man die Daten, die man auf einem Mietserver abgelegt hat, von jedem Rechner wieder abrufen kann.
Letzte Beiträge
- Icinga 1.9 Installation unter Debian squeeze + wheezy – aktuellste Version
- QuickTipp: klassischen GNOME Desktop (classic GNOME) unter Ubuntu installieren
- Debian-Ubuntu apt-get: The Following Packages Were Automatically Installed And Are No Longer Required
- Debian 7.0 Wheezy veröffentlicht – Das sind die Neuerungen
- Apache Webserver Directory Listing (Verzeichnisauflistung) deaktivieren / aktivieren


