webserver

Apache Webserver Directory Listing (Verzeichnisauflistung) deaktivieren / aktivieren

apache logo

Wenn das Directory Listing im Apache Webserver aktiviert ist, stellt das ein hohes Sicherheitsrisiko dar und sollte deswegen deaktiviert werden.

Apache directory listing deaktivierenDirectory 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.

Tags: , , , , , , , ,

Dienstag, April 30th, 2013 Apache, Linux, WebServer 5 Kommentare

HowTo: Node.js Installation unter Debian Squeeze / wheezy + Ubuntu

Node.js Logo

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
Der Download der Node.js Sourcen kann über git (Option1) oder direkt über die Webseite (Option2) realisiert werden

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

Tags: , , , , , , , ,

Dienstag, April 23rd, 2013 Linux, WebServer 3 Kommentare

Aktivierte Apache Module anzeigen / deaktivieren / aktivieren

apache logo

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:

Der a2dismod Befehl listet ohne Parameter alle Module auf, die deaktiviert werden können

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:

Der a2enmod Befehl listet ohne Parameter alle Module auf, die aktiviert werden können

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.

Liste der Apache Module

Tags: , , , , ,

Mittwoch, April 3rd, 2013 Apache, Linux, WebServer Keine Kommentare

Zend OPcache – PHP Beschleuniger + OpCode Cache – Installation unter Debian, Ubuntu, Linux Mint

PHP Logo

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

Update März 2013: Zend Optimizer Plus wurde in Zend OPcache umbenannt. Die Anleitung wurde entsprechend angepasst.

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

› Continue reading

Tags: , , , , , , , , , , , , , , ,

Montag, März 18th, 2013 Apache, Linux, WebServer 11 Kommentare

QuickTipp: Weiterleitung (redirect) von HTTP auf HTTPS via Apache oder Htaccess

apache logo

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

Tags: , , , , , , , , , , , , ,

Montag, Februar 25th, 2013 Apache, Linux, WebServer 2 Kommentare

Apache htaccess – mod_rewrite aktivieren unter Debian, Ubuntu, Mint

apache logo

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

Weitere Informationen zum Thema Apache Module

Tags: , , , , ,

Montag, Januar 28th, 2013 Apache, WebServer Keine Kommentare

Gastbeitrag von Marco Keul zum Thema Server mieten

Google R2D2 und Stormtrooper

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.

Tags: , , , ,

Donnerstag, Januar 24th, 2013 WebServer Keine Kommentare
rssfeed google+ youtube
Hosting-Lösungen (VPS, Dedicated Server, Webspace und Colocation) von Contabo

Subscribe to our mailing list

* indicates required Email Adresse *
Blogverzeichnis - Blog Verzeichnis bloggerei.de
Werbung schalten

*=Affiliatelink