Der Perfekte Server - Mandriva 2008 Spring Free (Mandriva 2008.1)

Version 1.0
Author: Falko Timme


Diese Anleitung veranschaulicht Schritt für Schritt wie man einen Mandriva 2008 Spring Free (Mandriva 2008.1) Server aufsetzt, der alle Dienste bereitstellt, die von ISPs und Hostern benötigt werden: Apache Web Server (SSL-fähig), Postfix Mail Server mit SMTP-AUTH und TLS, BIND DNS Server, Proftpd FTP Server, MySQL Server, Dovecot POP3/IMAP, Quota, Firewall, etc. Diese Anleitung ist für die 32-bit Version von Mandriva 2008.1 verfasst worden, sollte aber mit geringfügigen Änderungen auch auf die 64-bit Version passen.

Folgende Software werde ich verwenden:
  • Web Server: Apache 2 (mit PHP5 und Ruby)
  • Mail Server: Postfix
  • DNS Server: BIND9
  • FTP Server: proftpd
  • POP3/IMAP Server: Dovecot
  • Webalizer für Webseiten Statistiken
Am Ende erähltst Du ein System, das verlässlich arbeitet und für die Installation des kostenlosen Webhosting Control Panels ISPConfig bereit ist.

Ich möchte an dieser Stelle darauf hinweisen, dass dies nicht der einzige Weg ist, ein solches System einzurichten. Es gibt viele Möglichkeiten dieses Ziel zu erreichen - dies ist der Weg, den ich gewählt habe. Ich übernehme keine Garantie, dass dies auch bei Dir funktioniert!

1 Vorbemerkung

In diesem Beispiel verwende ich folgende Einstellungen für mein System:
  • IP Adresse: 192.168.0.100, Gateway: 192.168.0.1
  • Hostname: server1.example.com
Deine Einstellungen werden höchstwahrscheinlich von den meinigen abweichen. Du musst die Instruktionen dieser Anleitung also wahrscheinlich anpassen.

2 Voraussetzungen

Um ein solches System zu installieren, wirst Du Folgendes benötigen:
  • Lade das Mandriva 2008.1 DVD Iso Image oder die drei Mandriva 2008.1 CD Iso Images von einem Spiegel in Deiner Nähe (hier findest Du den Download: http://www.mandriva.com/en/download); ich habe die drei Mandriva 2008.1 CDs für diese Anleitung verwendet.
  • eine schnelle Internetverbindung...

3 Das Basissystem

Starte von Deiner Mandriva 2008.1 DVD oder CD (der ersten) aus. Wähle Install Mandriva Linux 2008 Spring und drücke Enter:


Wähle als Nächstes Deine Sprache:


Akzeptiere die Lizenzbestimmung und klicke auf Next:


Wähle Dein Tastaturlayout:


Nun müssen wir unsere Festplatte partitionieren. Du kannst die Partitionierung entweder dem Mandriva Installer überlassen oder Du sie selbst vornehmen. Ich möchte eine kleine /boot Partition (ungefähr 150 MB) mit dem Dateisystem ext3, eine swap Partition und eine große /Ppartition (wieder mit ext3) haben:









Danach werden die neuen Partitionen formatiert:


Klicke auf dem folgenden Screen auf Next:


Wir haben kein anderes Installationsmedium, also wählen wir None und klicken auf Next:


Wir möchten auf dem Server System keinen Desktop haben, daher wählen wir auf diesem Screen Custom install:


Nun wählen wir die Paketgruppen aus, die wir installieren möchten. Wähle Internet station, Network Computer (client), Configuration, Console Tools, Development, Web/FTP, Mail, Database, Firewall/Router und Network Computer server. Entferne die Markierungen aller anderen Paketgruppen und klicke auf Next:



Die Paketinstallation beginnt:


Richte danach ein root Passwort ein und erstelle einen anderen Benutzer (z.B. administrator) und klicke auf Next:


Nun präsentiert uns der Installer eine Zusammenfassung der Installation und bietet uns die Möglichkeit, Einstellungen zu ändern, indem wir auf das entsprechende Configure Feld klicken. Zunächst konfigurieren wir die Zeitzone, in der wir uns befinden:


Wähle Deine Zeitzone aus:


Wähle auf dem nächsten Screen hardware clock set to UTC, Automatic time synchronization (using NTP) und für den NTP Server wähle All servers:


Als Nächstes ändern wir das Security Level:



Wähle Standard als das Security level (alle anderen Security Levels sind zu restriktiv) und lass das Feld Security Administrator frei:


Als Nächstes modifizieren wir die Firewall Einstellungen:


ISPConfig hat seine eigene Firewall. Wenn Du also ISPConfig installieren möchtest, wähle Everything (no firewall) um die Firewall zu deaktivieren. Anderenfalls konfiguriere die Firewall Deinen Wünschen entsprechend:


Letztlich ändern wir unsere Netzwerkeinstellunen. Klicke auf das Configure Feld neben Network - ethernet:


Wähle Ethernet sofern Du nicht etwas anderes verwendest:


Wähle das Netzwerk Interface, das Du konfigurieren möchtest:


Wir möchten unserem Netzwerk Interface eine statische IP Adresse zuweisen (denke daran, wir installieren einen Server...), also möchten wir eine IP Adresse nicht via BOOTP oder DHCP beziehen. Daher wählen wir Manual configuration:


Gib nun IP Adresse, Netmaske und Gateway ein. Gib außerdem den Hostnamen (z.B. server1.example.com) und bis zu zwei DNS Server (z.B. 213.191.92.86 und 145.253.2.75) ein:


Benutzer sollen die Verbindung nicht starten können. Es handelt sich um einen Server und server sind immer online (zumindest sollten sie das sein...). Wähle also Start the connection at boot:


Du möchtest die Netzwerkverbindung jetzt starten:



Nun haben wir die notwendige Konfiguration vorgenommen und können den Zusammenfassungs-Screen verlassen indem wir auf Next klicken:



Nun kannst Du die neusten Updates runter laden. Bitte beachte: das ist optional. Wir werden einen Cron Job anlegen, der unser System automatisch aktualisiert. Du kannst hier also No wählen:


Die Grundinstallation ist nun abgeschlossen. Du kannst die CD oder DVD jetzt entfernen und das System neu starten:


Weiter mit der Systemkonfiguration...

4 /etc/hosts anpassen

Als Nächstes bearbeiten wir /etc/hosts. So soll es aussehen:

vi /etc/hosts


127.0.0.1               localhost.localdomain localhost
192.168.0.100 server1.example.com server1

5 Den Hostnamen einrichten

(Dieser Schritt ist optional.)

Dies ist nicht notwendig, wenn Du während der Installation den richtigen Hostnamen eingerichtet hast. Du kannst den derzeitigen Hostnamen mit folgenden Befehlen überprüfen

hostname
hostname -f

Beide Befehle sollten server1.example.com anzeigen.

Falls die Ausgabe einen falschen Hostnamen anzeigen sollte, kannst Du den richtigen wie folgt einrichten:

echo server1.example.com > /etc/hostname
/bin/hostname -F /etc/hostname

6 Konfiguration von urpmi

Du kannst den Wizard auf http://easyurpmi.zarb.org/ verwenden um herauszufinden, wie man urpmi konfiguriert, damit urpmi online Paketdatenbanken verwendet:




Bei mir gab der Wizard diese Befehle zurück, die ich in der Kommandozeile ausführe:

urpmi.addmedia contrib ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/contrib/release with media_info/hdlist.cz

urpmi.addmedia --update contrib_updates ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/contrib/updates with media_info/hdlist.cz

urpmi.addmedia main ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/main/release with media_info/hdlist.cz

urpmi.addmedia --update main_updates ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/MandrivaLinux/official/2008.1/i586/media/main/updates with media_info/hdlist.cz


6.1 Die Installations-CDs deaktivieren

(Das gilt nur, wenn Du die drei Mandriva 2008.1 Installations-CDs verwendest, nicht die DVD!)

Um die Mandriva 2008.1 CDs als Paketdatenbank zu deaktivieren, führen wir dies aus

urpmi.removemedia "Mandriva Linux - 2008.1 (Free) - i586 CD1"
urpmi.removemedia "Mandriva Linux - 2008.1 (Free) - i586 CD2"
urpmi.removemedia "Mandriva Linux - 2008.1 (Free) - i586 CD3"

(Das ist besonders nützlich, wenn sich Dein Server an einem entfernten Ort befinden wird, an dem Du die CDs nicht einlegen kannst.)

6.2 Die Installations-DVD deaktivieren

(Das gilt nur, wenn Du die Mandriva 2008.1 Installations-DVD verwendest, nicht die drei CDs!)

Ich habe das nicht getestet, da ich die CDs und nicht die DVD verwendet habe, jedoch sollte der Befehl für die DVD folgender sein:

urpmi.removemedia "Mandriva Linux - 2008.1 (Free) - Installer"
urpmi.removemedia "Mandriva Linux - 2008.1 (Free) - Installer (contrib)"

Die richtigen Bezeichnungen des Mediums findest Du heraus, indem Du dies ausführst:

ls -l /var/lib/urpmi/


[root@server1 ~]# ls -l /var/lib/urpmi/
total 15272
-rw-r--r-- 1 root root 7978 2008-04-09 14:57 compssUsers.flat
-rw-r--r-- 1 root root 5915550 2008-04-09 14:32 hdlist.Mandriva Linux - 2008.1 (Free) - i586 CD1.cz
-rw-r--r-- 1 root root 2620444 2008-04-09 14:32 hdlist.Mandriva Linux - 2008.1 (Free) - i586 CD2.cz
-rw-r--r-- 1 root root 4792018 2008-04-09 14:32 hdlist.Mandriva Linux - 2008.1 (Free) - i586 CD3.cz
-rw-r--r-- 1 root root 0 2008-04-09 14:57 MD5SUM
-rw-r--r-- 1 root root 248 2008-04-09 13:26 MD5SUM.contrib
-rw-r--r-- 1 root root 248 2008-04-09 13:27 MD5SUM.contrib_updates
-rw-r--r-- 1 root root 248 2008-04-09 13:28 MD5SUM.main
-rw-r--r-- 1 root root 248 2008-04-09 13:28 MD5SUM.main_updates
-rw-r--r-- 1 root root 14164 2008-04-09 14:57 names.Mandriva Linux - 2008.1 (Free) - i586 CD1
-rw-r--r-- 1 root root 4468 2008-04-09 14:57 names.Mandriva Linux - 2008.1 (Free) - i586 CD2
-rw-r--r-- 1 root root 11198 2008-04-09 14:57 names.Mandriva Linux - 2008.1 (Free) - i586 CD3
-rw-r--r-- 1 root root 1259740 2008-04-09 13:27 synthesis.hdlist.contrib.cz
-rw-r--r-- 1 root root 20 2008-04-09 13:27 synthesis.hdlist.contrib_updates.cz
-rw-r--r-- 1 root root 652572 2008-04-09 13:28 synthesis.hdlist.main.cz
-rw-r--r-- 1 root root 20 2008-04-09 13:28 synthesis.hdlist.main_updates.cz
-rw-r--r-- 1 root root 136341 2008-04-09 14:32 synthesis.hdlist.Mandriva Linux - 2008.1 (Free) - i586 CD1.cz
-rw-r--r-- 1 root root 55315 2008-04-09 14:32 synthesis.hdlist.Mandriva Linux - 2008.1 (Free) - i586 CD2.cz
-rw-r--r-- 1 root root 70082 2008-04-09 14:32 synthesis.hdlist.Mandriva Linux - 2008.1 (Free) - i586 CD3.cz
[root@server1 ~]#

Du kannst die richtigen Bezeichnungen von den names.* Einträgen nehmen.

6.3 Ein Auto-Update Skript erstellen

Nun erstellen wir ein Skript /etc/cron.daily/software_update, das automatisch jeden Tag von einem Cron ausgeführt wird und nach den neusten Software Updates sucht und diese auf Deinem Mandriva 2008.1 System installiert. Das Skript sieht wie folgt aus:

vi /etc/cron.daily/software_update


#!/bin/bash
urpmi.update updates urpmi --auto --update --auto-select
Mach das Skript ausführbar:

chmod 755 /etc/cron.daily/software_update


7 Installation einiger Pakete

Nun installieren wir einige Pakete, die später noch benötigt werden:

urpmi fetchmail wget bzip2 unzip zip nmap openssl lynx fileutils ncftp flex libxorg-x11-devel gcc gcc-c++

8 Quota

Um das Quota Paket zu installieren, führe dies aus

urpmi quota

Bearbeite /etc/fstab so dass es wie folgt aussieht (ich habe ,usrquota,grpquota der Partition mit dem Mount Point / hinzugefügt):

vi /etc/fstab


# Entry for /dev/sda6 :
UUID=8e7f6bd0-0630-11dd-bcc1-6787ae22ef91 / ext3 relatime,usrquota,grpquota 1 1 # Entry for /dev/sda1 : UUID=a0de6628-0630-11dd-91a9-5d76fb80ffee /boot ext3 relatime 1 2 /dev/cdrom /media/cdrom auto umask=0,users,iocharset=utf8,noauto,ro,exec 0 0 /dev/fd0 /media/floppy auto umask=0,users,iocharset=utf8,noauto,exec,flush 0 0 none /proc proc defaults 0 0 # Entry for /dev/sda5 : UUID=a21dfc56-0630-11dd-a951-df43bffad1b6 swap swap defaults 0 0
Führe dann dies aus:

touch /aquota.user /aquota.group
chmod 600 /aquota.*
mount -o remount /
quotacheck -avugm
quotaon -avug

9 DNS Server

Um den BIND DNS Server zu installieren, führe dies aus:

urpmi bind

Mandriva 2008.1s BIND wird standardmäßig chrooted ausgeführt, daher müssen wir einige Symlinks erstellen, damit ISPConfig (wenn Du es installieren möchtest) damit umgehen kann:

cd /var/lib/named/var
mkdir -p lib/named/var
cd lib/named/var
ln -s ../../../named/ named
ln -s ../../../run/ run
cp /var/lib/named/var/named/reverse/named.local /var/lib/named/var/named/

Als Nächstes erstellen wir die System Startup Links für BIND...

chkconfig named on

... und starten es:

/etc/init.d/named start

10 MySQL (5.0)

Um MySQL 5.0 zu installieren, führen wir einfach das aus:

urpmi MySQL MySQL-client libmysql15-devel

Der Netzwerkbetrieb ist in Mandriva 2008.1s MySQL Paket standardmäßig nicht aktiviert. ISPConfig benötigt ihn aber. Wir ändern das indem wir die Zeile skip-networking in /etc/my.cnf auskommentieren. Zusätzlich ändern wir default-character-set von utf8 zu latin1:

vi /etc/my.cnf


[...]
# Don't listen on a TCP/IP port at all. This can be a security enhancement, # if all processes that need to connect to mysqld run on the same host. # All interaction with mysqld must be made via Unix sockets or named pipes. # Note that using this option without enabling named pipes on Windows # (via the "enable-named-pipe" option) will render mysqld useless! # #skip-networking [...] default-character-set = latin1 [...]
Danach erstellen wir die System Startup Links für MySQL...

chkconfig mysqld on

... und starten es:

/etc/init.d/mysqld start

Überprüfe nun, ob der Netzwerkbetrieb aktiviert ist. Führe dies aus

netstat -tap | grep mysql

Die Ausgabe sollte wie folgt aussehen:

[root@server1 var]# netstat -tap | grep mysql
tcp 0 0 *:mysql-im *:* LISTEN 3863/mysqlmanager
tcp 0 0 *:mysql *:* LISTEN 3871/mysqld
[root@server1 var]#

Führe als Nächstes Folgendes aus

mysqladmin -u root password yourrootsqlpassword
mysqladmin -h server1.example.com -u root password yourrootsqlpassword

um ein Passwort für den Benutzer root anzulegen (sonst kann jeder auf Deine MySQL Datenbank zugreifen!).

11 Postfix mit SMTP-AUTH und TLS; Dovecot

Installiere die benötigten Pakete (Postfix, cyrus-sasl, Dovecot, etc.) wie folgt:

urpmi cyrus-sasl libsasl2 libsasl2-devel libsasl2-plug-plain libsasl2-plug-anonymous libsasl2-plug-crammd5 libsasl2-plug-digestmd5 libsasl2-plug-gssapi libsasl2-plug-login postfix dovecot

Führe dann dies aus:

postconf -e 'mydestination = /etc/postfix/local-host-names, localhost.$mydomain'
postconf -e 'smtpd_sasl_local_domain ='
postconf -e 'smtpd_sasl_auth_enable = yes'
postconf -e 'smtpd_sasl_security_options = noanonymous'
postconf -e 'broken_sasl_auth_clients = yes'
postconf -e 'smtpd_sasl_authenticated_header = yes'
postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
postconf -e 'inet_interfaces = all'
postconf -e 'mynetworks = 127.0.0.0/8'
touch /etc/postfix/local-host-names

Dann richten wir den Hostnamen in unserer Postfix installation ein (pass auf, dass Du server1 und example.com mit Deinen eigenen Einstellungen ersetzt):

postconf -e 'mydomain = example.com'
postconf -e 'myhostname = server1.$mydomain'

Bearbeite /etc/sasl2/smtpd.conf. Es sollte wie folgt aussehen:

vi /etc/sasl2/smtpd.conf


# SASL library configuration file for postfix
# all parameters are documented into: # /usr/share/doc/cyrus-sasl/options.html # The mech_list parameters list the sasl mechanisms to use, # default being all mechs found. mech_list: plain login # To authenticate using the separate saslauthd daemon, (e.g. for # system or ldap users). Also see /etc/sysconfig/saslauthd. pwcheck_method: saslauthd saslauthd_path: /var/lib/sasl2/mux # To authenticate against users stored in sasldb. #pwcheck_method: auxprop #auxprop_plugin: sasldb #sasldb_path: /var/lib/sasl2/sasl.db
Erstelle das SSL Zertifikat, das für TLS benötigt wird:

mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024

chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr

openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt

openssl rsa -in smtpd.key -out smtpd.key.unencrypted


mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

... und konfiguriere Postfix für TLS:

postconf -e 'smtpd_tls_auth_only = no'
postconf -e 'smtp_use_tls = yes'
postconf -e 'smtpd_use_tls = yes'
postconf -e 'smtp_tls_note_starttls_offer = yes'
postconf -e 'smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key'
postconf -e 'smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt'
postconf -e 'smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem'
postconf -e 'smtpd_tls_loglevel = 1'
postconf -e 'smtpd_tls_received_header = yes'
postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
postconf -e 'tls_random_source = dev:/dev/urandom'

Als Nächstes müssen wir Dovecot so konfigurieren, dass es Protocols Imap, Imaps, Pop3 und Pop3s bedient. Öffne /etc/dovecot.conf und passe folgende Werte an:

vi /etc/dovecot.conf


[...]
# Protocols we want to be serving: imap imaps pop3 pop3s # If you only want to use dovecot-auth, you can set this to "none". protocols = imap imaps pop3 pop3s [...] disable_plaintext_auth = no [...] pop3_uidl_format = %08Xu%08Xv [...]
Nun müssen wir dem System mitteilen, dass es Dovecot erst startet, nachdem ntpd gestartet ist, da Dovecot nicht sehr nachsichtig ist, wenn Deine System-Zeit rückwärts läuft während Dovecot ausgeführt wird (siehe http://wiki.dovecot.org/TimeMovedBackwards). Das kann Fehler wie diesen hier in Deinem Syslog verursachen:

Apr 9 19:29:18 server1 dovecot: Time just moved backwards by 17 seconds. This might cause a lot of problems, so I'll just kill myself now. http://wiki.dovecot.org/TimeMovedBackwards

Leider wird Dovecot auf Mandriva vor ntpd gestartet, also ändern wir das wie folgt:

cd /etc/rc3.d
mv S99ntpd S98ntpd
mv S54dovecot S99dovecot
cd /etc/rc4.d
mv S99ntpd S98ntpd
mv S54dovecot S99dovecot
cd /etc/rc5.d
mv S99ntpd S98ntpd
mv S54dovecot S99dovecot

Dann erstellen wir die System Startup Links für Postfix...

chkconfig postfix on

... und starten Postfix, saslauthd und Dovecot (neu):

/etc/init.d/postfix restart
/etc/init.d/saslauthd restart
/etc/init.d/dovecot restart

Um herauszufinden, ob SMTP-AUTH und TLS richitg funktionieren, führe nun folgenden Befehl aus:

telnet localhost 25

Nachdem Du die Verbindung zu Deinem Postfix Mail Server aufgebaut hast, tippe

ehlo localhost

Wenn Du die Zeile

250-STARTTLS

und

250-AUTH PLAIN LOGIN

siehst, ist alles in Ordnung:

[root@server1 ssl]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 server1.example.com ESMTP Postfix (2.5.1) (Mandriva Linux)
ehlo localhost
250-server1.example.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.
[root@server1 ssl]#

Tippe

quit

um zur Kommandozeile des Systems zurückzukehren.

11.1 Maildir

Dovecot verwendet ein Maildir Format (nicht mbox). Wenn Du also ISPConfig auf dem Server installierst, pass bitte auf, dass Du Maildir unter Management -> Server -> Settings -> Email aktivierst. ISPConfig wird dann die notwendige Konfiguration vornehmen.

Wenn Du ISPConfig nicht installieren möchtest, dann musst Du Postfix konfigurieren, dass es E-Mails an die Maildir des Benutzers schickt (das kannst Du auch tun, wenn Du ISPConfig verwendest - es schadet nicht ;-)):

postconf -e 'home_mailbox = Maildir/'
postconf -e 'mailbox_command ='
/etc/init.d/postfix restart

12 Apache2 mit PHP5 und Ruby

Um Apache2, PHP5 und Ruby zu installieren, führe folgenden Befehl aus (in einer Zeile):

urpmi apache-mod_suexec apache-mod_ssl apache-mod_php apache-mod_ruby libphp5_common5 php-bz2 php-calendar php-ctype php-curl php-devel php-dio php-dom php-eaccelerator php-enchant php-esmtp php-event php-exif php-fam php-ffmpeg php-fileinfo php-filepro php-ftp php-gd php-gettext php-gmp php-iconv php-id3 php-idn php-imap php-imlib2 php-mailparse php-mbstring php-mcache php-mcrypt php-mhash php-ming php-mysql php-mysqli php-ncurses php-newt php-odbc php-oggvorbis php-pcntl php-pcre php-pear-Net_IDNA php-posix php-pspell php-readline php-recode php-session php-shmop php-simplexml php-snmp php-soap php-sockets php-sqlite php-ssh2 php-suhosin php-sysvmsg php-sysvsem php-sysvshm php-tclink php-tcpwrap php-tidy php-xml php-xmlrpc php-zip php-ini curl libcurl4-devel perl-libwww-perl ImageMagick

Erstelle die System Startup Links für Apache...

chkconfig httpd on

... und starte es:

/etc/init.d/httpd restart

12.1 PHP global deaktivieren

(Wenn Du nicht vorhast, ISPConfig auf diesem Server zu installieren, überspringe bitte diesen Abschnitt!)

In ISPConfig wirst Du PHP pro Web Site konfigurieren, d.h. Du kannst festlegen, welche Web Site PHP Skripte ausführen kann und welche nicht. Das funktioniert nur, wenn PHP global deaktiviert ist, da sonst alle Web Sites in der Lage wären, PHP Skripte auszuführen, egal was Du in ISPConfig festlegst.

Bearbeite /etc/httpd/modules.d/70_mod_php.conf und kommentiere die AddType Zeilen aus:

vi /etc/httpd/modules.d/70_mod_php.conf


<IfDefine HAVE_PHP5>
<IfModule !mod_php5.c> LoadModule php5_module extramodules/mod_php5.so </IfModule> </IfDefine> <IfModule mod_mime.c> # AddType application/x-httpd-php .php # AddType application/x-httpd-php .phtml # AddType application/x-httpd-php-source .phps </IfModule> <IfModule mod_php5.c> <IfModule mod_dir.c> DirectoryIndex index.php index.phtml </IfModule> </IfModule>
Bearbeite /etc/httpd/conf/httpd.conf und füge folgende Zeile dem LoadModule Bereich hinzu:

vi /etc/httpd/conf/httpd.conf


[...]
LoadModule php5_module extramodules/mod_php5.so [...]
(Obwohl sich diese Zeile bereits in /etc/httpd/modules.d/70_mod_php.conf befindet, ist das sehr wichtig, da sonst der Befehl

httpd -t

Fehler anstelle von Syntax OK anzeigt, wenn die virtuellen Hosts, die von ISPConfig erstellt wurden, Zeilen wie php_admin_flag safe_mode On oder ähnliche beinhalten!)

Starte Apache neu:

/etc/init.d/httpd restart


12.2 Ruby global deaktivieren

(Wenn Du nicht vorhast, ISPConfig auf diesem Server zu installieren, überspringe bitte diesen Abschnitt!)

In ISPConfig wirst Du Ruby pro Web Site konfigurieren, d.h. Du kannst festlegen, welche Web Site Ruby Skripte ausführen kann und welche nicht. Das funktioniert nur, wenn Ruby global deaktiviert ist, da sonst alle Web Sites in der Lage wären, Ruby Skripte auszuführen, egal was Du in ISPConfig festlegst.

vi /etc/httpd/modules.d/20_mod_ruby.conf

Kommentiere alles aus oder lösche alles in dieser Datei, bis auf folgende Zeilen:
<IfDefine HAVE_RUBY>
<IfModule !mod_ruby.c> LoadModule ruby_module extramodules/mod_ruby.so </IfModule> </IfDefine>
Starte dann Apache neu:

/etc/init.d/httpd restart


13 Proftpd

Installiere Proftpd wie folgt:

urpmi proftpd

Aus Sicherheitsgründen kannst Du folgende Zeilen /etc/proftpd.conf hinzufügen (Dank Reinaldo Carvalho; nähere Informationen findest Du hier: http://www.proftpd.org/localsite/Userguide/linked/userguide.html):

vi /etc/proftpd.conf


[...]
DefaultRoot ~ IdentLookups off ServerIdent on "FTP Server ready." [...]
Vergewissere Dich, dass Du folgende Zeilen am Ende von /etc/proftpd.conf auskommentierst, damit Du ftp Benutzern CHMOD erlaubst:
[...]
# Bar use of SITE CHMOD by default #<Limit SITE_CHMOD> # DenyAll #</Limit>
Starte Proftpd dann neu:

/etc/init.d/proftpd restart


14 Webalizer

Mandriva 2008.1 hat kein Webalizer Paket mehr, daher installieren wir die statische Webalizer Binärdatei von der Webalizer Webseite wie folgt:

urpmi libgeoip1 geoip libgeoipupdate0 awffull

cd /tmp
wget ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.01-10-static.gz
gunzip webalizer-2.01-10-static.gz
mv webalizer-2.01-10-static /usr/bin/webalizer
chmod 755 /usr/bin/webalizer

15 Installation einiger Perl Module, die von SpamAssassin (in ISPConfig) benötigt werden

Um alle benötigten Perl Module zu installieren, können wir die entsprechenden Mandriva Pakete verwenden und sie mit urpmi installieren:

urpmi perl-HTML-Parser perl-Digest-SHA1 perl-DB_File perl-Net-DNS


16 Das Ende

Die Konfiguration des Servers ist nun abgeschlossen. Wenn Du magst, kannst Du nun ISPConfig installieren. Hier findest Du die Installationsinstruktionen: http://www.ispconfig.org/manual_installation.htm. Eine Erste-Schritte-Anleitung findest Du hier: http://www.howtoforge.com/ispconfig-2.x-first-steps

17 Eine Notiz über SuExec

Wenn Du CGI Skripte unter suExec ausführen möchtest, solltest Du /var/www als den Web Root für Webseiten festlegen, die von ISPConfig erstellt werden, da Mandriva’s suExec mit /var/www als Doc_Root erstellt wird. Führe

/usr/sbin/suexec -V

aus und die Ausgabe sollte wie folgt aussehen:

[root@server1 ~]# /usr/sbin/suexec -V
-D AP_DOC_ROOT="/var/www"
-D AP_GID_MIN=100
-D AP_HTTPD_USER="apache"
-D AP_LOG_EXEC="/var/log/httpd/suexec_log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_SUEXEC_UMASK=077
-D AP_UID_MIN=100
-D AP_USERDIR_SUFFIX="public_html"
[root@server1 ~]#

Wenn Du also suExec mit ISPconfig verwenden möchtest, ändere nicht den Standard Web Root (/var/www) wenn Du den Expertenmodus während der ISPConfig Installation verwendest (im Standardmodus kannst Du den Web Root sowieso nicht ändern, also kannst Du suExec in jedem Fall verwenden).

18 Links