netzwerk-header
 
Navigation
image Home
image Bücher Shop
image Datenschutz
image Impressum
nav

Netzwerke
image Geschichte
image Grundlagen
image Komponente
image Skripte
image FAQ
image Glossar
nav

W-LAN
image Allgemeines
image Sicherheit
image Reichweite
nav

Netzwerk Praxis
image Windows
image Linux
nav

Sonstiges
image Quiz
image Downloads
image Hardware
image Specials
image Newsarchiv
image Partner
nav

nav
nav
 
 


Der Webserver Apache

Der Apache Webserver ist einer der weit verbreitetsten Webserver in der Welt. Dass solch ein Dienst unter Linux nicht fehlen darf liegt da schon auf der Hand, zumal Apache Opensource und somit frei ist. Viele Howtos und Dokus werden unter Linux im HTML-Format angeboten, da liegt es nur nahe, dass man diese am besten verwaltet, in dem man einen eigenen Webserver aufsetzt.

Noch ein Hinweis zuvor:
Manchmal ist es notwendig beim Nachvollziehen der Dateien, die runde Klammer,(, durch das kleiner-Zeichen, und ) durch das größer-Zeichen zu ersetzen. Ich werde gesondert daraufhinweisen!

Diese Anleitung gliedert sich in drei Teile:

  • Installation und Start
  • Zugriffsbeschränkungen
  • Auswertungen und Statistiken

Durchgeführt wurde die Installation mit SuSE 8.2 prof. und Apache 1.3 (gilt für SuSE ab 8.0), sollte mit anderen Distributionen aber genauso funktionieren, da alle Eingaben auf der Konsole erfolgen.


Teil 1 - Installation und Start

Da Apache bei allen größeren Distributionen dabei ist kann die Installation über YAST - Software hinzufügen/entfernen durchgeführt werden.
Benötigt werden:
  • apache
  • apache-doc
  • apache-contrib
  • mod_php
  • mod_perl

Alle benötigten Pakete werden automatisch mitinstalliert.

Ein Teil der Konfiguration wird bereits von SuSEconfig vorgenommen und in der Datei
/etc/httpd/httpd.conf gespeichert. Angepasst wird Apache in der Datei /etc/sysconfig/apache.
Jedesmal, wenn hier ein Eintrag geändert wird, muss:

tux@erde:# sbin/SuSEconfig -module apache
tux@erde:# rcapache reload

ausgeführt werden, um die Konfiguration neu einzulesen.

SuSEconfig unbedingt nach der Installation ausführen !!!

Da es sehr viele Variablen gib, die man ändern kann, sollte man sich dafür Zeit nehmen.

Mit dem Befehl:
tux@erde:# insserv apache

wird der Server in die Startkonfiguration eingetragen und startet beim nächsten Neustart automatisch.

Danach:
tux@erde:# rcapache start um den Server sofort zu starten.

Jetzt läuft der Server mit den Standardeinstellungen.
Um dies zu testen wird nun ein Browser gestartet und als Ziel-URL
http://localhost/ oder http://127.0.0.1/ eingegeben.
Ist die Konfiguration ordnungsgemäß durchgeführt worden, so sollte nun die Startseite des Webservers zu sehen sein.

Die wollen wir aber nicht sehen, sondern unsere eigene Seite.
Dafür wird im /home/user-Verzeichnis das Unterverzeichnis public_html angelegt,
wenn es nicht automatisch angelegt wird, und die Dateirechte auf execute für Sonstige gesetzt.
In dieses Verzeichnis kommt eure http://www.easy-network.del-Datei.

Ob die Endung .htm oder .html ist, kann in der Datei httpd.conf eingestellt werden.
Bei einer Änderung ist ein Neustart wie oben beschrieben allerdings erforderlich!

Dann kann man mit http://localhost/~user/ (~ ist wichtig!) die Seite aufrufen (wenn alles geklappt hat).
Alle anderen können das aber auch!!!


Teil 2 - Zugriffsbeschränkungen

Die Datei .htaccess
Diese Datei ist wichtig, wenn Benutzer eingerichtet werden, die keine Möglichkeit haben, sollen die Datei httpd.conf zu bearbeiten.
Vorteil: Die Daten können ohne Neustart des Servers geändert werden und ist für virtuelle Server zu empfehlen.
Nachteil: alle darunterliegenden Verzeichnisse sind ebenfalls gesperrt und durch das Suchen der Datei sinkt die Performance.

Zugriff auf Host-Basis
Die Zugriffskontrolle erfolgt mit IP-Adrtesse und Rechnername bzw. Domäne.
Erzeugt man eine .htaccess-Datei mit dem Inhalt Deny from all
und testet den Zugang, bekommt man die Fehlermeldung "Forbidden".
Ergänzt man sie um die Zeile Allow from 127.0.0.1, hat man vom eigenen Rechner aus wieder Zugang.
Eine Zeile Allow from abc.xyz erlaubt man den Zugriff durch eine Domäne.
Auch der umgekehrte Weg ist möglich:
Order Allow/Deny (gibt die Reihenfolge an)
Allow from all
Deny from 127.0.0.1
Was aber nicht sehr viel Sinn ergibt, oder?
Unsere erste .htaccess-Datei sollte natürlich so aussehen:

Deny from all
Allow from 127.0.0.1


Um das ganze als User testen zu können benötigt man eine Änderung in folgender Datei:
/etc/httpd/suse_public_html.conf,
mit folgendem Inhalt:

Achtung - () tauschen !!!

(IfModule mod_userdir.c)
UserDir public_html
(/IfModule)

(Directory /home/*/public_html)
AllowOverride FileInfo AuthConfig Limit
Options Mltiviews Indexes SymLinksIfOwnerMatch IncludesNoExec
(Limit GET POST OPTIONS PROPFIND)
Order Allow/Deny
Allow from all
(/Limit)
(LimitExcept GET POST OPTIONS PROPFIND)
Order Deny/Allow
Deny from all
(/LimitExcept)
(/Directory)


Diese Datei erlaubt es einem Benutzer ein public_html-Verzeichnis in seinem Verzeichnis anzulegen, es mit Authentifizierung zu versehen und Zugriffsbeschränkungen durchzuführen.
Die URL dieses Verzeichnisses ist: http://localhost/~user/.

Zugriff mit Benutzername und Passwort
Für das Beispiel: user = benutzer1, benutzer2, benutzer3, ...
passwort = zugriff1, zugriff2, zugriff3, ...

Zuerst die Datei .htaccess wieder löschen !

Um den Zugriff mit Passwörtern zu schützen muss eine Datei angelegt werden, um die Passwörter verschlüsselt zu speichern. Dies erledigt das Tool htpasswd.
Es wird zunächst die Datei .htpasswd im /home/user-Verzeichnis angelegt:

htpasswd -c ~/.htpasswd benutzer1 (nicht als root !), dabei wird zweimal nach dem Passwort für benutzer1 gefragt (also zugriff1).

Jetzt wird die Datei .htaccess im public_html-Verzeichnis angelegt (mit Editor), und sollte in etwa so aussehen:

AuthName "Anmeldung erforderlich"
AuthType Basic
AuthUserFile /home/user/.htpasswd
require user benutzer1


Es wird eine Anmeldemaske erzeugt, worin Benutzerame und Passwort abgefragt werden.
Man kann auch einer ganzen Gruppe den Zugriff erlauben:
Um z.B. die Gruppe "entwickler" mit den Usern "progr1","progr2","progr3" hinzuzufügen müssen sie in der .htpasswd eingetragen werden.

htpasswd ~/.htpasswd progr1
htpasswd ~/.htpasswd progr2
htpasswd ~/.htpasswd progr3


Jetzt wird im /home/user-Verzeichnis die Datei .htgroup angelegt, mit folgendem Inhalt:

entwickler: progr1 progr2 progr3 (einfach mit einem Editor)

Nun noch .htaccess anpassen:

AuthName "Anmeldung erforderlich"
AuthType Basic
AuthUserFile /home/user/.htpasswd
require user benutzer1
AuthGroupFile /home/user/.htgroup
require group entwick


Jetzt können sich der User benutzer1 und die Gruppenmitglieder progr1,progr2,progr3 anmelden.

Und jetzt eine Kombination von allem:

AuthName "Anmeldung erforderlich"
AuthType Basic
AuthUserFile /home/user/.htpasswd
require user benutzer1
AuthGroupFile /home/user/.htgroup
require group entwickler
Allow from 127.0.0.1
Deny from all
Satisfy any
(bewirkt, dass nur eine der Bedingungen zutreffen muss)

Zugriff mittels Datenbank
Als Alternative können die Daten in einer Datenbank gespeichert werden. Dazu benötigt man die Module:
  • mod_auth_db und/oder
  • mod_auth_dbm

Der Aufruf
dbmmanage ~/passwords adduser benutzer1 erzeugt eine Datenbank im /home-Verzeichnis, legt den User "benutzer1" an und fragt 2x nach dem Passwort.

Jetzt wieder die Datei .htaccess im public_html-Verzeichnis anpassen:

AuthName "Anmeldung erforderlich"
AuthType Basic
AuthDBUserFile /home/user/passwords
require valid-user



Teil 3 - Auswertungen und Statistik

Alias
Um auf ein beliebiges Verzeichnis im Dateibaum zu verweisen, benötigt man ein Alias.
Um über die URL http://127.0.0.1/statistik/ auf die Auswertungen zugreifen zu können, muss die Datei
/etc/httpd/myalias.conf editiert werden, und sollte so aussehen:

Achtung - () tauschen !!!

Alias /statistik /var/lib/webalizer
(Directory /var/lib/webalizer)
Order Deny/Allow
Deny from all
Allow from 127.0.0.1
(/Directory)


Damit wird gleichzeitig verhindert, dass der Inhalt von jemand anderem bertrachtet werden kann.

Natürlich muss der Server neu gestartet werden: rcapache reload

Auswertung mit webalizer
Die Konfiguration erfolgt in der Datei /etc/webalizer.conf.Hier wird festgelegt in welchem Pfad die Auswertungen abgelegt werden (/var/lib/webalizer).
Als root:
webalizer -N 0 -t "Statistik für" -n "linux.local"

-N 0 ..... deaktiviert die Namensauflösung
-t "" .... Titelname in der Statistik
-n "" .... Rechnername in der Auswertung

Jetzt sind die Statistiken als Webseiten im Verzeichnis /var/lib/webalizer vorhanden.
Dieses Verzeichnis wurde durch ein Alias freigegeben und die Statistiken können unter
http://127.0.0.1/statistik/ oder http://localhost/statistik/
betrachtet werden.

Diese Anleitung erhebt keinen Anspruch auf Vollständigkeit, es ist notwendig sich mit den Programmen und Parametern auseinanderzusetzen.


Verfasser des Artikels: BatGirl


Der Artikel wurde uns freundlicherweise von http://www.learninglinux.de zu Verfügung gestellt. Vielen Dank hierfür!!!