Ubuntu 7.10 (Gutsy Gibbon) Server Installation: LAMP, Email, DNS, FTP, ISPConfig

Version 1.0
Author: Falko Timme

Diese Anleitung veranschaulicht, wie man einen Ubuntu Gutsy Gibbon (Ubuntu 7.10) basierten Server einrichtet, der alle Dienste bietet, die von ISPs und Hosters benötigt werden: Apache Web Server (SSL-capable), Postfix Mail Server mit SMTP-AUTH und TLS, BIND DNS Server, Proftpd FTP Server, MySQL Server, Courier POP3/IMAP, Quota, Firewall, etc. Diese Anleitung wurde für die 32-bit Version von Ubuntu Gutsy Gibbon geschrieben, sollte aber auch für die 64-bit Version (mit nur wenigen kleinen Modifikationen) gelten.

Folgende Software werde ich verwenden:
  • Web Server: Apache 2.2
  • Database Server: MySQL 5.0
  • Mail Server: Postfix
  • DNS Server: BIND9
  • FTP Server: proftpd
  • POP3/IMAP: Ich werde das Maildir Format verwenden und daher Courier-POP3/Courier-IMAP installieren.
  • Webalizer für Web Site Statistiken
Dein System sollte am Ende zuverlässig arbeiten. Wenn Du möchtest, kannst Du die kostenlose Webhosting Management Software ISPConfig installieren (z.B. läuft ISPConfig dann ohne weitere Konfigurationen).

Allerdings möchte ich an dieser Stelle darauf hinweisen, dass dies hier nicht der einzige Weg ist, ein solches System zu installieren. Es gibt viele Möglichkeiten - ich selbst habe mich für diese entschieden. Ich kann aber nicht garantieren, dass diese Lösung bei jedem funktioniert bzw. für jeden die richtige ist!

1 Voraussetzungen

Um ein solches System installieren zu können, brauchst Du Folgendes:

2 Vorbemerkung

In dieser Anleitung werde ich den Hostnamen server1.example.com mit der IP Adresse 192.168.0.100 und dem Gateway 192.168.0.1 verwenden. Diese Einstellungen werden bei Dir anders sein, also musst Du sie an entsprechender Stelle mit Deinen eigenen Einstellungen ersetzen.

3 Das Basissystem

Lege die Ubuntu Installations CD ein und starte das System von ihr. Wähle Install to the hard disk:


Die Installation beginnt. Wähle zunächst die Sprache:


Wähle dann Deinen Standort:



Wähle Dein Tastaturlayout (Du wirst gebeten ein paar Tasten zu drücken, der Installer versucht dann daraufhin Dein Layout zu bestimmen):




Der Installer überprüft die Installations CD, Deine Festplatte und konfiguriert das Netzwerk mit DHCP falls ein DHCP Server im Netzwerk vorhanden ist:






Gib den Hostnamen ein. In dieser Anleitung heißt mein System server1.example.com, also gebe ich server1 ein:


Nun musst Du Deine Festplatte partitionieren. Der Einfachheit halber werde ich eine große Partition (mit dem Mount Point /) und eine kleine Swap Partition erstellen, daher wähle ich Guided - use entire disk (natürlich ist die Partition ganz Dir überlassen - wenn Du magst kannst Du mehr als eine große Partition erstellen, Du kannst auch LVM verwenden):


Wähle die Festplatte aus, die Du partitionieren möchtest:


Wenn Du damit fertig bist, drücke Yes bei der Frage Write the changes to disks?:


Danach werden Deine neuen Partitionen erstellt und formatiert:


Stelle die Systemuhr ein. Normalerweise ist UTC eine gute Wahl:


Erstelle einen Nutzer, zum Beispiel den Nutzer Administrator mit dem Nutzernamen administrator (verwende nicht den Nutzernamen admin da dieser auf Gutsy Gibbon belegt ist):






Nun wird das Basissystem installiert:




Wir benötigen einen DNS, Mail, und LAMP Server, doch nichtsdestotrotz wähle ich jetzt nichts aus, da ich genaue Kontrolle darüber haben möchte, was auf meinem System installiert wird. Wir werden die benötigten Pakete später manuell installieren. Das einzige, was ich hier auwähle, ist der OpenSSH server sodass ich mich, nachdem die Installation abgeschlossen ist, sofort mit einem SSH Klienten wie PuTTY mit dem System verknüpfen kann:


Die Installation geht weiter:




Der GRUB boot loader wird installiert:


Die Installation des Basissystems ist nun abgeschlossen. Entferne die Installations CD und drücke Continue um das System neu zu starten:


Weiter im nächsten Schritt...

4 Das Root Konto aktivieren

Nach dem Neustart kannst Du Dich mit Deinem vorher eingerichteten Nutzenamen einloggen (z.B. administrator). Da wir alle Schritte dieser Anleitung als Root Benutzer durchgehen müssen, müssen wir das Root Konto nun aktivieren.

Führe den folgenden Befehl aus

sudo passwd root

und gib root ein Passwort. Danach werden wir Root Benutzer indem wir Folgenden Befehl ausführen

su


5 Installation des SSH Servers (Optional)

Falls Du während der vorherigen Installation den OpenSSH Server nicht installiert haben solltest, kannst Du dies nun nachholen:

apt-get install ssh openssh-server

Von nun an kannst Du einen SSH Client wie PuTTY verwenden und Deinen Arbeitsplatz mit dem Ubuntu Gutsy Gibbon Server verbinden und den verbleibenden Schritten dieses Tutorials folgen.

6 Installation von vim-full (Optional)

Ich werde in dieser Anleitung vi als Text Editor verwenden. Das Standardprogramm von vi zeigt ein merkwürdiges Verhalten auf Ubuntu und Debian; um dies zu beheben, installieren wir vim-full:

apt-get install vim-full

(Wenn Du einen anderen Text Editor verwendest, wie joe oder nano, kannst Du diesen Schritt auslassen.)

7 Das Netzwerk konfigurieren

Da der Ubuntu Installer unser Netzwerk so konfiguriert hat, dass es seine Netzwerkeinstellungen via DHCP bezieht, müssen wir dies nun ändern, da ein Server eine statische IP Adresse haben sollte. Bearbeite /etc/network/interfaces und gleiche es an Deine Wünsche an (in diesem Beispiel verwende ich die IP Adresse 192.168.0.100):

vi /etc/network/interfaces


# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.0.100 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1
Starte Dein Netzwerk dann neu:

/etc/init.d/networking restart

Bearbeite dann /etc/hosts. So muss es aussehen:

vi /etc/hosts


127.0.0.1       localhost.localdomain   localhost
192.168.0.100 server1.example.com server1 # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
Nun führe folgendes Kommando aus:

echo server1.example.com > /etc/hostname
/etc/init.d/hostname.sh start

Danach dies

hostname
hostname -f

Beide Befehle sollten nun server1.example.com ausgeben.

8 Bearbeite /etc/apt/sources.list Und aktualisiere Deine Linux Installation

Bearbeite /etc/apt/sources.list. Entferne die Installations CD aus der Datei oder kommentiere sie aus und vergewissere Dich, dass die universe und multiverse Paketdatenbanken aktiviert sind. So sollte es aussehen:

vi /etc/apt/sources.list


#
# deb cdrom:[Ubuntu-Server 7.10 _Gutsy Gibbon_ - Release i386 (20071016)]/ gutsy main restricted #deb cdrom:[Ubuntu-Server 7.10 _Gutsy Gibbon_ - Release i386 (20071016)]/ gutsy main restricted # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to # newer versions of the distribution. deb http://de.archive.ubuntu.com/ubuntu/ gutsy main restricted deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy main restricted ## Major bug fix updates produced after the final release of the ## distribution. deb http://de.archive.ubuntu.com/ubuntu/ gutsy-updates main restricted deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy-updates main restricted ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team, and may not be under a free licence. Please satisfy yourself as to ## your rights to use the software. Also, please note that software in ## universe WILL NOT receive any review or updates from the Ubuntu security ## team. deb http://de.archive.ubuntu.com/ubuntu/ gutsy universe deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy universe deb http://de.archive.ubuntu.com/ubuntu/ gutsy-updates universe deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy-updates universe ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team, and may not be under a free licence. Please satisfy yourself as to ## your rights to use the software. Also, please note that software in ## multiverse WILL NOT receive any review or updates from the Ubuntu ## security team. deb http://de.archive.ubuntu.com/ubuntu/ gutsy multiverse deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy multiverse deb http://de.archive.ubuntu.com/ubuntu/ gutsy-updates multiverse deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy-updates multiverse ## Uncomment the following two lines to add software from the 'backports' ## repository. ## N.B. software from this repository may not have been tested as ## extensively as that contained in the main release, although it includes ## newer versions of some applications which may provide useful features. ## Also, please note that software in backports WILL NOT receive any review ## or updates from the Ubuntu security team. # deb http://de.archive.ubuntu.com/ubuntu/ gutsy-backports main restricted universe multiverse # deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy-backports main restricted universe multiverse ## Uncomment the following two lines to add software from Canonical's ## 'partner' repository. This software is not part of Ubuntu, but is ## offered by Canonical and the respective vendors as a service to Ubuntu ## users. # deb http://archive.canonical.com/ubuntu gutsy partner # deb-src http://archive.canonical.com/ubuntu gutsy partner deb http://security.ubuntu.com/ubuntu gutsy-security main restricted deb-src http://security.ubuntu.com/ubuntu gutsy-security main restricted deb http://security.ubuntu.com/ubuntu gutsy-security universe deb-src http://security.ubuntu.com/ubuntu gutsy-security universe deb http://security.ubuntu.com/ubuntu gutsy-security multiverse deb-src http://security.ubuntu.com/ubuntu gutsy-security multiverse
Dann führe aus:

apt-get update

um die apt Paketdatenbank zu aktualisieren und

apt-get upgrade

um die neusten Updates zu installieren (wenn es welche gibt).

9 Ändere die Standard-Kommandozeile

/bin/sh ist ein Symlink auf /bin/dash, allerdings brauchen wir /bin/bash, nicht /bin/dash. Daher führen wir Folgendes aus:

ln -sf /bin/bash /bin/sh

Wenn Du dies nicht ausführst, wird die ISPConfig Installation fehlschlagen.

10 Installation von Software

Nun installieren wir einige Pakete, die wir später noch brauchen werden. Lass dies laufen

apt-get install binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libdb4.3-dev libpcre3 libpopt-dev lynx m4 make ncftp nmap openssl perl perl-modules unzip zip zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ build-essential

(Dieser Befehl muss in ein Zeile!)

11 Quota

(Wenn Du eine andere Partitionsmethode gewählt hast als ich, musst Du die Quota-Einstellungen an Dein Partitionierungsschema anpassen. )

Um Quota zu installieren, lassführe aus:

apt-get install quota

Bearbeite /etc/fstab. Meine Zeile sieht wie folgt aus (Ich habe ,usrquota,grpquota der Partition mit dem Mount Point / hinzugefügt):

vi /etc/fstab


# /etc/fstab: static file system information.
# # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 # /dev/sda1 UUID=9fc157ff-975c-4f20-9fef-6a70085abdbd / ext3 defaults,errors=remount-ro,usrquota,grpquota 0 1 # /dev/sda5 UUID=48fb7dd8-f099-4d63-ac1b-30e886ac7436 none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto,exec 0 0
Um Quota zu aktivieren, lass folgende Befehle laufen:

touch /quota.user /quota.group
chmod 600 /quota.*
mount -o remount /

quotacheck -avugm
quotaon -avug

12 Der DNS Server

Führe dies aus

apt-get install bind9

Aus Sicherheitsgründen wollen wir BIND in einer chroot Umgebung ausführen:

/etc/init.d/bind9 stop

Bearbeite die Datei /etc/default/bind9 so, dass der daemon als unpriviligierter Nutzer bind im Verzeichnis /var/lib/named läuft. Bearbeite die Zeile: OPTIONS="-u bind" so OPTIONS="-u bind -t /var/lib/named":

vi /etc/default/bind9


OPTIONS="-u bind -t /var/lib/named"
# Set RESOLVCONF=no to not run resolvconf RESOLVCONF=yes
Erstelle die notwendigen Verzeichnisse unter /var/lib:

mkdir -p /var/lib/named/etc
mkdir /var/lib/named/dev
mkdir -p /var/lib/named/var/cache/bind
mkdir -p /var/lib/named/var/run/bind/run

Verschiebe dann das Konfigurationsverzeichnis von /etc zu /var/lib/named/etc:

mv /etc/bind /var/lib/named/etc

Erstelle einen Symlink auf das neue Konfigurationsverzeichnis (um Problemen aus dem Weg zu gehen, wenn bind in Zukunft aktualisiert wird):

ln -s /var/lib/named/etc/bind /etc/bind

Erzeuge Null und random Devices und korrigiere die Berechtigung der Verzeichnisse:

mknod /var/lib/named/dev/null c 1 3
mknod /var/lib/named/dev/random c 1 8
chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random
chown -R bind:bind /var/lib/named/var/*
chown -R bind:bind /var/lib/named/etc/bind

Wir müssen /etc/default/syslogd so bearbeiten, dass weiterhin Systemmeldungen im Sytemlog gespeicher werden. Bearbeite die Zeile: SYSLOGD="" wie folgt: SYSLOGD="-a /var/lib/named/dev/log":

vi /etc/default/syslogd


#
# Top configuration file for syslogd # # # Full documentation of possible arguments are found in the manpage # syslogd(8). # # # For remote UDP logging use SYSLOGD="-r" # SYSLOGD="-a /var/lib/named/dev/log"
Starte den logging daemon neu:

/etc/init.d/sysklogd restart

Starte BIND und überprüfe /var/log/syslog nach Fehlern:

/etc/init.d/bind9 start


13 MySQL

Um MySQL zu installieren, führen wir Folgendes aus

apt-get install mysql-server mysql-client libmysqlclient15-dev

Du wirst gebeten ein Passwort für den MySQL root Benutzer anzulegen - dieses Passwort sowohl für den Nutzer root@localhost gültig als auch für root@server1.example.com, also müssen wir das MySQL root Passwort später nicht manuell festlegen (wie das der Fall bei vorherigen Ubuntu Versionen war):

New password for the MySQL "root" user: <-- Dein Root SQL Passwort

Wir möchten, dass MySQL auf allen Netzwerkkarten hört, nicht nur auf dem lokalen Host, daher bearbeiten wir /etc/mysql/my.cnf und kommentieren die Zeile bind-address = 127.0.0.1 aus:

vi /etc/mysql/my.cnf


[...]
# Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. #bind-address = 127.0.0.1 # [...]
Dann starten wir MySQL neu:

/etc/init.d/mysql restart

Überprüfe nun dass die Vernetzung aktiviert ist. Führe Folgendes aus

netstat -tap | grep mysql

Die Ausgabe sollte wie folgt aussehen:

root@server1:~# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 5286/mysqld
root@server1:~#

14 Postfix mit SMTP-AUTH und TLS

Um Postfix mit SMTP-AUTH und TLS zu installieren, führe folgende Schritte aus:

apt-get install postfix libsasl2-2 sasl2-bin libsasl2-modules libdb3-util procmail

Zwei Fragen werden Dir dann gestellt. Antworte wie folgt:

General type of mail configuration: <-- Internet Site
System mail name: <-- server1.example.com

Dann führe aus

dpkg-reconfigure postfix

Erneut werden Dir Fragen gestellt:

General type of mail configuration: <-- Internet Site
System mail name: <-- server1.example.com
Root and postmaster mail recipient: <-- [blank]
Other destinations to accept mail for (blank for none): <-- server1.example.com, localhost.example.com, localhost.localdomain, localhost
Force synchronous updates on mail queue? <-- No
Local networks: <-- 127.0.0.0/8
Use procmail for local delivery? <-- Yes
Mailbox size limit: <-- 0
Local address extension character: <-- +
Internet protocols to use: <-- all

Als Nächstes führe Folgendes aus:

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_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
postconf -e 'inet_interfaces = all'
echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf
echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf

Danach erstellen wir die TLS Zertifikate:

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

Nun konfigurieren wir Postfix für TLS (vergewissere Dich, dass Du den richtigen Hostnamen für myhostname verwendest):

postconf -e 'myhostname = server1.example.com'
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'

Die Datei /etc/postfix/main.cf sollte nun so aussehen:

cat /etc/postfix/main.cf


# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific: Specifying a file name will cause the first # line of that file to be used as the name. The Debian default # is /etc/mailname. #myorigin = /etc/mailname smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) biff = no # appending .domain is the MUA's job. append_dot_mydomain = no # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h # TLS parameters smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key smtpd_use_tls = yes smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for # information on enabling SSL in the smtp client. myhostname = server1.example.com alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = server1.example.com, localhost.example.com, localhost.localdomain, localhost relayhost = mynetworks = 127.0.0.0/8 mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all inet_protocols = all smtpd_sasl_local_domain = smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination smtpd_tls_auth_only = no smtp_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom
Starte Postfix neu:

/etc/init.d/postfix restart

Die Authentisierung erfolgt durch saslauthd. Wir müssen ein paar kleine Sachen ändern, damit es gut funktioniert. Da Postfix im Verzeichnis /var/spool/postfix chrooted läuft, müssen wir Folgendes ausführen:

mkdir -p /var/spool/postfix/var/run/saslauthd

Nun müssen wir /etc/default/saslauthd bearbeiten um saslauthd zu aktivieren. Setze START to yes und ändere die Zeile OPTIONS="-c" to OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r":

vi /etc/default/saslauthd


#
# Settings for saslauthd daemon # # Should saslauthd run automatically on startup? (default: no) START=yes # Which authentication mechanisms should saslauthd use? (default: pam) # # Available options in this Debian package: # getpwent -- use the getpwent() library function # kerberos5 -- use Kerberos 5 # pam -- use PAM # rimap -- use a remote IMAP server # shadow -- use the local shadow password file # sasldb -- use the local sasldb database file # ldap -- use LDAP (configuration is in /etc/saslauthd.conf) # # Only one option may be used at a time. See the saslauthd man page # for more information. # # Example: MECHANISMS="pam" MECHANISMS="pam" # Additional options for this mechanism. (default: none) # See the saslauthd man page for information about mech-specific options. MECH_OPTIONS="" # How many saslauthd processes should we run? (default: 5) # A value of 0 will fork a new process for each connection. THREADS=5 # Other options (default: -c) # See the saslauthd man page for information about these options. # # Example for postfix users: "-c -m /var/spool/postfix/var/run/saslauthd" # Note: See /usr/share/doc/sasl2-bin/README.Debian OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"
Starte nun saslauthd:

/etc/init.d/saslauthd start

Um festzustellen, ob SMTP-AUTH und TLS gut funktionieren, lass folgenden Befehl laufen:

telnet localhost 25

Nachdem Du eine Verbindung zu Deinem Postfix Mail Server aufgebaut hast, gib Folgendes ein

ehlo localhost

Wenn Du die Zeile

250-STARTTLS

und die Zeile

250-AUTH PLAIN LOGIN

siehst, ist alles in Ordnung.

Die Ausgabe meines Systems sieht wie folgt aus:

root@server1:/etc/postfix/ssl# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
220 server1.example.com ESMTP Postfix (Ubuntu)
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:/etc/postfix/ssl#

Gib ein

quit

um zur Kommandozeile des Systems zurückzukehren.

15 Courier-IMAP/Courier-POP3

Lass Folgendes laufen um Courier-IMAP/Courier-IMAP-SSL (for IMAPs on port 993) und Courier-POP3/Courier-POP3-SSL (for POP3s on port 995) zu installieren:

apt-get install courier-authdaemon courier-base courier-imap courier-imap-ssl courier-pop courier-pop-ssl courier-ssl gamin libgamin0 libglib2.0-0

Es werden zwei Fragen gestellt:

Create directories for web-based administration ? <-- No
SSL certificate required <-- Ok

Wenn Du ISPConfig nicht verwenden möchtest, konfiguriere Postfix so, dass es E-Mails an eine Maildir* des Benutzers liefert:

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

*Bitte Merke: Diesen Schritt brauchst Du nicht, wenn Du ISPConfig verwenden möchtest. ISPConfig unternimmt die notwendige Konfigurations mit Hilfe von Procmail Rezepte. Aber bitte vergewissere Dich, dass Du Maildir unter Management -> Server -> Settings -> EMail im ISPConfig Web Interface aktivierst.

16 Apache/PHP5

Nun installieren wir:

apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert

Als Nächstes installieren wir PHP5:

apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Folgende Fragen kommen auf:

Continue installing libc-client without Maildir support? <-- Yes

Wir bearbeiten nun /etc/apache2/mods-available/dir.conf:

vi /etc/apache2/mods-available/dir.conf

und ändern die DirectoryIndex Zeile:
<IfModule mod_dir.c>
#DirectoryIndex index.html index.cgi index.pl index.php index.xhtml DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl index.xhtml </IfModule>
Nun müssen wir einige Apache Module aktivieren (SSL, rewrite, suexec, und include):

a2enmod ssl
a2enmod rewrite
a2enmod suexec
a2enmod include

Lade die Apache Konfiguration neu:

/etc/init.d/apache2 force-reload


16.1 PHP Global Deaktivieren

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

In ISPConfig kannst Du PHP für jede Web Site einzeln konfigurieren. Das ist nur möglich, wenn PHP global deaktiviert ist.

Um PHP gloabl zu deaktivieren, bearbeiten wir /etc/mime.types und kommentieren die application/x-httpd-php Zeilen aus:

vi /etc/mime.types


[...]
#application/x-httpd-php phtml pht php #application/x-httpd-php-source phps #application/x-httpd-php3 php3 #application/x-httpd-php3-preprocessed php3p #application/x-httpd-php4 php4 [...]
Bearbeite /etc/apache2/mods-enabled/php5.conf und kommentiere folgende Zeilen aus:

vi /etc/apache2/mods-enabled/php5.conf


<IfModule mod_php5.c>
#AddType application/x-httpd-php .php .phtml .php3 #AddType application/x-httpd-php-source .phps </IfModule>
Starte dann Apache neu:

/etc/init.d/apache2 restart


17 Proftpd

Um Proftpd zu installieren, führe Folgendes aus

apt-get install proftpd ucf

Eine Frage wird Dir gestellt:

Run proftpd from inetd or standalone? <-- standalone

Öffne dann die Datei /etc/proftpd/proftpd.conf und ändere UseIPv6 von an auf aus; sonst bekommst Du eine Warunung wie folgt wenn Du Proftpd startest:

Wenn Du solch eine Nachricht erhältst:

- IPv6 getaddrinfo 'server1.example.com' error: Name or service not known

kannst Du entweder /etc/hosts bearbeiten und server1.example.com der Zeile ::1 hinzufügen:

vi /etc/hosts


127.0.0.1       localhost.localdomain   localhost
192.168.0.100 server1.example.com server1 # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback server1.example.com fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
... oder Du kannst die Datei /etc/proftpd/proftpd.conf öffnen und UseIPv6 von an auf aus ändern

vi /etc/proftpd/proftpd.conf


[...]
UseIPv6 off [...]
Aus Sicherheitsgründen kannst Du auch die folgenden Zeilen der Datei /etc/proftpd/proftpd.conf hinzufügen (Dank Reinaldo Carvalho; mehr Informationen findest Du hier: http://proftpd.org/localsite/Userguide/linked/userguide.html):

vi /etc/proftpd/proftpd.conf


[...]
DefaultRoot ~ IdentLookups off ServerIdent on "FTP Server ready." [...]
ISPConfig erwartet, dass die Konfiguration in der Datei /etc/proftpd.conf anstatt in der Datei /etc/proftpd/proftpd.conf ist, daher ersteleln wir einen symlink (Du kannst diesen Befehl überspringen, wenn Du ISPConfig nicht installieren möchtetst):

ln -s /etc/proftpd/proftpd.conf /etc/proftpd.conf

Starte Proftpd dann neu:

/etc/init.d/proftpd restart


18 Webalizer

Um Webalizer zu installieren, lass einfach Folgendes laufen

apt-get install webalizer


19 Die Systemuhr anpassen

Es ist immer gut die Systemuhr mit einem NTP (network time protocol) Server via Internet anzupassen. Führe einfach dies aus

apt-get install ntp ntpdate

und deine Systemuhr wird immer synchron sein.

20 Installation einiger Perl Module die von SpamAssassin (unter ISPConfig) benötigt werden

Führe aus:

apt-get install libhtml-parser-perl libdb-file-lock-perl libnet-dns-perl


21 ISPConfig

Die Konfiguration des Servers ist nun abgeschlossen. Wenn Du möchtest, kannst Du nun ISPConfig installieren. Bitte überprüfe das ISPConfig Installationshandbuch: http://www.ispconfig.org/manual_installation.htm

21.1 A Vermerk für SuExec

Wenn Du CGI Skripte unter suExec ausführen möchtest, dann solltest Du /var/www als Home Verzeichnis auswählen. Starte den folgendes Befehl

/usr/lib/apache2/suexec -V

und die Ausgabe sollte wie folgt aussehen:

root@server1:~# /usr/lib/apache2/suexec -V
-D AP_DOC_ROOT="/var/www"
-D AP_GID_MIN=100
-D AP_HTTPD_USER="www-data"
-D AP_LOG_EXEC="/var/log/apache2/suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-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 wirst Du auf jeden Fall in der Lage sein suExec zu verwenden).

Der folgende Screenshot stammt von einer ISPConfig Installation im Expertenmodus. Wenn Du ISPConfig verwenden möchtest, dann ändere nicht den Standard Web Root:

22 Links