Webserver |
|
von Matthias Wulff erstellt 06.2007
CD1 / CD2 / CD4 / CD Netinst / CD XFCE
Ein leistungsstarker Webserver unter Linux ist meist ein LAMP- System.
Linux
Apache
MySQL
PHP
Diese Komponenten lassen sich leicht und schnell in ETCH installieren.
Alternativ gibt es auch Zusammenstellungen von diesen und weiteren Paketen die sehr einfach installiert
werden können wie
XAMPP.
Diese erhalten sehr viele Programme, die aber oft nicht benötigt werden.
Installieren eines einfachen Apache Webservers mit PHP4, MySQL
$ apt-get install apache php4 mysql-server mysql-client
PHPMyadmin ist nützlich zur Administration von MySQL-Datenbanken
$ apt-get install phpmyadmin
Ansließend wird die config-Datei ins Hauptverzeichnis verschoben und die benötigten Rechte gesetzt.
$ cd /var/www/phpmyadmin
$ mv config/config.inc.php .
$ chmod o-rw config.inc.php
Das System LAMP ist einsatzbereit, besitzt aber noch gravierende Sicherheitslücken (Scheunentore),
für die Entwicklung von Programmen geeignet, aber selbst für ein Intranet noch zu offen.
Passwortvergabe für MySQL und somit auch für PHPMyAdmin
$ /usr/bin/mysqladmin -u root password geheim
Um von einem Windowssystem aus anständig Intranetseiten basteln zu können, ist eine Freigabe auf
/var/www nötig:
Legen wir hirzu ermal einen User intranet an
adduser intranet
Lege Benutzer »intranet« an ...
Lege neue Gruppe »intranet« (1001) an ...
Lege neuen Benutzer »intranet« (1001) mit Gruppe »intranet« an ...
Erstelle Home-Verzeichnis »/home/intranet« ...
Kopiere Dateien aus »/etc/skel« ...
Enter new UNIX password: geheim
Retype new UNIX password: geheim
passwd: Kennwort erfolgreich geändert
Ändere Benutzerinformationen für intranet
Geben Sie einen neuen Wert an oder ENTER für den Standardwert
Name [intranet]: intranet
Raumnummer []: 123
Telefon geschäftlich []: 123
Telefon privat []: 123
Sonstiges []: Intranet User
Sind die Informationen korrekt? [j/N] j
SMB benötigt noch sein eigenes Passwort
cd /etc/samba
smbpasswd -a intranet
New SMB password: geheim
Retype new SMB password: geheim
Added user intranet.
Die smb.conf unter etc/samba mit dem Inhalt
[intranet]
comment = Intranet
path = /var/www
read only = No
create mask = 0777
erweitern.
Um unsere Änderungen wirksam werden zu lassen, wird Samba neu gestartet.
$ /etc/init.d/samba restart
Der Webserver kann jetzt mit http:\\IP-Adresse\ angesprochen werden.
PHPMyAdmin finden Sie unter http:\\IP-Adresse\phpmyadmin.
Um einige "alte" Programme zum laufen zu bekommen, habe ich die Variablen in der Datei
etc/php4/apache/php.ini register_globals, safe_mode_gid von Off auf On
gestellt. Sollte nur durchgeführt werden, wenn Bedarf besteht, die Sicherheit der Scripts wird stark herabgesetzt!
Sollte PHP5 gewünscht werden, kann bei der Installation auch dieses verwendet werden.
Um bei schreibenden PHP-Programmen (CMS) keine Berechtigungsprobleme zu bekommen, sollte
in /etc/apache2/apache2.conf das schreiben/lesen von User und Group auf Intranet umgestellt werden
User Intranet
Group Intranet
Sicherung der Datenbank
In unserem Beispiel sichern wir einfach alle Datenbanken auf den Webserver/mysql-sicherung.
$ mkdir /var/www/mysql-sicherung Sicherungsordner erstellen.
$ /usr/bin/mysqldump --opt --add-drop-table --user=root --password=geheim --all-databases > /var/www/mysql-sicherung/alles.sql
ACHTUNG: eine Zeile!
Wenn keine Fehlermeldung zu sehen ist, sollte nach ein paar Sekunden im Verzeichnis /var/www/mysql-sicherung eine
alles.sql zu finden sein die alle Datenbanken enthält. Eine Sicherung dieser Datei ist über Samba leicht möglich.
Dieses ist nur ein Beispiel und sollte nicht auf den Webserver zu sehen sein! Eine Automatisierung ist mit croon möglich.
$ $ crontab -e
00 20 * * * /usr/bin/mysqldump --opt ........ (der endgültig Befehl)
In diesem eingenen Editor von crontab kommen Sie schon zurecht!
Tägliche Sicherung um 20Uhr.
Eine Sicherung ist kein Selbstzweck, sondern dient zur Wiederherstellung der Daten.
Somit sollte eine Wiederherstellung auch getestet werden!
Stellen Sie sich immer vor, der gesamte Rechner ist nicht mehr vorhanden.
Erstellen Sie sich ein Sicherungskonzept.
Nützliche Zusätze zur LAMP Installation
Die bekannte PHP Erweiterung PEAR
$ apt-get install php4-pear
GD-Support für Apache zwecks Grafikverarbeitung
$ apt-get install php4-gd
Mit Webalizer gibt es eine überichtliche Auswertung.
$ apt-get install webalizer
$ webalizer
Die Webseite ist erreichbar unter http://MeineDomain.de/webalizer/
Synchronisierung der Systemuhr.
Es ist gut, die Systemuhr über das Internet mit einem NTP-Server (Network Time Protocol) abzugleichen.
$ apt-get -y install ntp ntpdate
Sun Java 2 Platform
Für manche Webanwendung wird die Sun Java 2 Platform Standard Edition 5.0 JRE (Java Runtime Environment) und der JDK (Java Developer Kit) benötigt.
Sun Java 2 ist in der “non-free” Sektion der Debian Repositories verfügbar. Damit auf diese Sektion zugegriffen werden kann, muss das non-free repository in der apt sources Datei verfügbar gemacht werden.
Die sources.list unter /etc/apt/ mit non-free erweitern:
deb http://ftp.de.debian.org/debian/ etch main non-free contrib
Nun die Quellen aktualisiere:
$ apt-get update
Java Debian Pakete installieren:
$ apt-get install sun-java5-jre
Beantworten Sie die Fragen und stimmen der Lizenzbedingung zu.
Jetzt kann auch noch das Java SDK installiert werden:
$ apt-get install sun-java5-jdk
Datenschutz mit .htaccess
.htaccess ermöglicht Zugriffschutz über Client-IP oder Passwort und weitere Einstellungen auf Appache die nur lokal wirken.
In der Datei 000-default unter /etc/apache2/sites-enabled den Wert von AllowOverride im Bereich <Directory /.... > auf All setzen:
<Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
den Appache- Server neustarten:
$ /etc/init.d/apache2 restart
IP- Sicherheit
Im zu sichernden Ordner muß als root die Datei ".htaccess" erzeugt werden mit den Inhalt:
order deny, allow
deny from all
allow from 1.2.3.4
Im Beispiel wird der Anwender reingelassen der mit der IP-Adresse 1.2.3.4 arbeitet
Passwort- Sicherheit
Die Passwortdatei ausserhalb vom Webbereich mit dem ersten User anlegen:
$ htpasswd -c /etc/apache2/users testuser
Weitere Paßwörter anlegen mit:
$ htpasswd /etc/apache2/users user´name
Im zu sichernden Ordner muß als root die Datei ".htaccess" erzeugt werden mit den Inhalt:
AuthType Basic
AuthName "Nur für registrierte Benutzer"
AuthUserFile /etc/apache2/users
require valid-user
Die Zeile AuthType Basic legt die Autorisierungsmethode fest.
In der zweiten Zeile bekommt die Passwortabfrage einen Klartext zugewiesen.
In der Zeile drei wird die Autorisierungsdatei festgelegt.
Im Beispiel wird jeder Anwender reingelassen der eine gültige Autorisierung besitzt.
Mit require user wulff mueller meier werden nur die angegebenen User
zugelassen. (Strukturierung möglich!)
Tomcat
Wenn der Tomcat benötigt wird kann dieses so erledigt werden:
$ apt-get install sun-java5-jdk
Home-Verzeichnis »/usr/share/tomcat5.5«
Installing »/var/lib/tomcat5.5/conf/tomcat-users.xml«
WebApps-Verzeichnis »/var/lib/tomcat5.5/webapps/«
Es hat sich als Sinnvoll erwiesen, die Tomcat Sicherheit im Intranet auszuschalten.
vi /etc/init.d/tomcat5.5
TOMCAT5_SECURITY=no
Die entsprechende Aplikation (PROGS.war) ins Verzeichnis /var/lib/tomcat5.5/webapps/ kopieren
Tomcat restarten mit /etc/init.d/tomcat5.5 restart
Aufruf mit http://MyIP:8180/PROGS
Dieses in Kleinschrift ist nur ein Kochrezept aus dem Kopf und noch keine Anleitung!
Wichtige Dateien und Verzeichnisse.
/etc/apache
httpd.conf
beinhaltet die Konfiguration von Apache
/var/www
Ist das Document_Root und ist als Intranet im Samba freigegeben.
/home/lug
Ist eine Freigabe die ausserhalb des Apache laufen.
Fertig
Nach ca.: einer guten Stunde haben Sie einen funktionstüchtigen Server aus einem alten Rechner gemacht, der nicht mehr in der Ecke steht, sondern wirklich gute Dienste leisten kann.
- Die Dateiablage könnte mit Samba zentral durchgeführt werden.
- Die meisten Internetprogramme könnten installiert werden.
Ein Auswahl ist nicht leicht zu treffen, Groupware, CMS, usw.. stehen zur Auswahl.
Eventuell auch nur zum erstellen und testen von eigenen Webseiten.
Ein Auswahl ist nicht leicht zu treffen, Groupware, CMS, usw.. stehen zur Auswahl.
Eventuell auch nur zum erstellen und testen von eigenen Webseiten.
