Der Perfekte Server - Debian Squeeze (Debian 6.0) mit BIND & Dovecot [ISPConfig 3]

Version 1.0

Author: Falko Timme , Christian Schmalfeld <c [dot] schmalfeld [at] projektfarm [dot] de>

Follow me on Twitter


Dieses Tutorial zeigt Ihnen, wie Sie einen Debian Squeeze (Debian 6.0) Server auf die Installation von ISPConfig 3 vorbereiten und diese anschließend durchführen. ISPConfig 3 ist eine Webhosting Kontrolloberfläche, welche Sie folgende Dienste mit einem Internetbrowser konfigurieren lässt: Apache Web server, Postfix Mail server, MySQL, BIND Nameserver, PureFTPd, SpamAssassin, ClamAV und viele mehr.

Beachten Sie bitte, dass dieses Setup nicht mit ISPConfig 2 kompatibel ist! Es ist nur für ISPConfig 3 gültig!
Für den Inhalt des Tutorials gebe ich keinerlei Garantie!

1 Voraussetzungen

Um ein solches System zu installieren, brauchen Sie folgendes:

2 Vorbemerkung

In diesem Tutorial benutze ich den Hostnamen server1.example.com mit der IP-Adresse 192.168.0.100 und dem Gateway 192.168.0.1. Diese Einstellungen werden sich von Ihren unterscheiden, Sie werden sie also an den entsprechenden Stellen ersetzen müssen.

3 Das Basissystem

Legen Sie die Debian Squeeze Network-Installation CD ein und starten Ihr System von ihr. Wählen Sie im Installationsmenü Install (so starten Sie den Textinstaller - ist Ihnen eine graphische Umgebung lieber, wählen Sie Graphical install):


Wählen Sie Ihre Sprache aus:


Wählen Sie dann Ihr Land:




Haben Sie eine ungewöhnliche Kombination aus Land und Sprache gewählt (wie Englisch als Sprache und Deutschland als Land, wie in meinem Fall), wird Ihnen der Installer sagen, dass es keine Lokaleinstellungen für Ihre Kombination gibt; wählen Sie in diesem Fall die Lokaleinstellungen manuell aus. Ich werde en_US.UTF-8 benutzen:


Wählen Sie das Tastaturlayout:


Der Installer überprüft nun Ihre Installations CD und Ihre Hardware und konfiguriert Ihr Netzwerk mit DHCP, wenn es einen DHCP Server in Ihrem Netzwerk gibt:



Geben Sie einen Hostnamen ein. In meinem Beispiel heißt das System server1.example.com, also wähle ich server1:


Wählen Sie Ihren Domainnamen. In diesem Beispiel nehme ich example.com:


Geben Sie dann dem root-Benutzer ein Passwort:


Bestätigen Sie das Passwort durch erneute Eingabe:



Erstellen Sie ein normales Benutzerkonto, zum Beispiel den Benutzer Administrator mit dem Benutzernamen administrator (wählen Sie nicht den Namen admin, dies ist unter Debian Squeeze ein reservierter Name):





Nun müssen Sie Ihre Festplatte partitionieren. Der Einfachheit wegen werde ich eine große Partition (mit dem Mountpoint /) und eine kleine Swappartition erstellen, also wähle ich Guided - use entire disk (natürlich ist die Einteilung der Partitionen ganz Ihnen überlassen - wenn Sie möchten können Sie mehrals eine große partition erstellen, Sie können auch LVM benutzen):


Wählen Sie die Festplatte, welche Sie partitionieren wollen:


Wählen Sie dann das Partitionsschema. Wie zuvor erwähnt wähle ich All files in one partition (recommended for new users) der Einfachheit wegen - es hängt von Ihren Vorlieben ab was Sie hier wählen:


Wenn Sie zufrieden sind, wählen Sie Finish partitioning and write changes to disk:


Wählen Sie Yes wenn Sie folgendes gefragt werden: Write changes to disks?:


Danach werden Ihre neuen Partitionen erstellt und formatiert:


Das Basissystem ist nun installiert:


Als nächstes müssen Sie apt konfigurieren. Da Sie die Debian Squeeze Netinstall CD benutzen, welche nur ein kleines Set von Paketen enthält, müssen Sie einen Network Mirror benutzen. Wählen Sie das Land, in dem sich der Network Mirror, welchen Sie benutzen möchten, befindet (normalerweise ist dies das Land in dem sich Ihr Debian Squeeze System befindet):


Wählen Sie den Mirror, den Sie benutzen möchten: (z.B. ftp.de.debian.org):


Benutzen Sie keinen HTTP Proxy, lassen Sie das nächste Feld leer und wählen Continue:


Apt aktualisiert nun seine Paketdatenbank:



Sie können die Studie zur Paketbenutzung überspringen indem Sie No wählen:


Wir brauchen einen Webserver, einen DNS Server, einen Mailserver und eine MySQL Datenbank, aber ich werde hier noch keine dieser Optionen auswählen, da ich gerne die volle Kontrolle darüber habe, was auf dem System installiert wird. Wir werden die benötigten Pakete später mauell installieren. Wählen Sie stattdessen Standard system utilities und SSH server (sodass man nach der Installation sofort eine Verbindung zu einem SSH Client wie PuTTY aufbauen kann) und benutzen dann Continue:


Die benötigten Pakete werden nun heruntergeladen und auf dem System Installiert:



Werden Sie folgendes gefragt: Install the GRUB boot loader to the master boot record?, wählen Sie Yes:


Die Basissysteminstallation ist nun fertiggestellt. Entfernen Sie Die Debian Squeeze Netinstall CD aus dem CD-Laufwerk und benutzen Sie Continue um das System neu zu starten:


Auf zum nächsten Schritt...

4 Installation des SSH Servers

Haben Sie den SSH Server nicht während der Basissysteminstallation installiert, können Sie dies nun nachholen:

apt-get install ssh openssh-server

Von nun an können Sie einen SSH Client wie PuTTY benutzen um von Ihrer Workstation auf Ihren Debian Squeeze Server zuzugreifen um die restlichen Schritte des Tutorials zu verfolgen.

5 Installation von vim-nox (Optional)

Ich werde als Texteditor in diesem Tutorial vi benutzen. Das standart vi Programm zeigt allerdings ein merkwürdiges Verhalten auf Debian und Ubuntu; um dieses zu umgehen, installiere ich vim-nox:

apt-get install vim-nox

(Dies brauchen Sie nicht zu tun, sollten Sie sich für einen anderen Editor wie zum Beispiel Joe oder Nano entscheiden.)

6 Das Netzwerk konfigurieren

Da der Debian Squeeze Installer das System so konfiguriert hat, dass es die Netzwerkeinstellungen über DHCP bekommt, ändern wir dies nun, da ein Server eine statische IP-Adresse haben sollte. Editieren Sie /etc/network/interfaces und passen Sie es Ihren
Bedürfnissen an (in diesem Beispiel werde ich die IP-Adresse 192.168.0.100 benutzen) (beachten Sie bitte, dass ich allow-hotplug eth0 durch auto eth0 ersetze; ansonsten müsste man das ganze System neu starten um das Netzwerk neu zu starten):

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 #allow-hotplug eth0 #iface eth0 inet dhcp 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
Starten Sie dann Ihr Netzwerk neu:

/etc/init.d/networking restart

Editieren Sie dann /etc/hosts. Lassen Sie es wie folgt 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
Benutzen Sie nun:

echo server1.example.com > /etc/hostname

/etc/init.d/hostname.sh start

Danach, benutzen Sie:

hostname

hostname -f

Es ist wichtig, dass nun beide server1.example.com anzeigen!

7 Aktualisieren Sie Ihre Debian Installation

Stellen Sie als erstes sicher, dass Ihre /etc/apt/sources.list Datei die squeeze-updates Repository enthält (dies garantiert, dass Sie immer die neusten Updates für den ClamAV Virus Scanner erhalten - das Projekt bringt häufig neue Versionen heraus und manchmal funktionieren ältere nicht mehr).

vi /etc/apt/sources.list


[...]
deb http://ftp.de.debian.org/debian/ squeeze-updates main [...]
Benutzen Sie

apt-get update

um die apt Paketdatenbank zu aktualisieren und

apt-get upgrade

um die neuen Pakete zu installieren, sollten welche vorhanden sein.

8 Die Standartshell ändern

/bin/sh ist ein Symlink zu /bin/dash, wir brauchen jedoch /bin/bash, nicht /bin/dash. Deshalb tun wir folgendes:

dpkg-reconfigure dash

Use dash as the default system shell (/bin/sh)? <-- No

9 Systemuhrzeit synchronisieren

Es ist immer eine gute Idee die Systemuhrzeit mit einem NTP Server (network time protocol) über das Internet zu synchronisieren. Benutzen Sie einfach

apt-get install ntp ntpdate

und Ihre  Systemuhrzeit wird immer synchronisiert sein.

10 Installation von Postfix, Dovecot, Saslauthd, MySQL, phpMyAdmin, rkhunter, binutils

Sie können Postfix, Dovecot, Saslauthd, MySQL, phpMyAdmin, rkhunter und binutils mit einem einzigen Befehl installieren:

apt-get install postfix postfix-mysql postfix-doc
mysql-client mysql-server openssl getmail4 rkhunter binutils
dovecot-imapd dovecot-pop3d sudo

You will be asked the following questions:

General type of mail configuration: <-- Internet Site
System mail name: <-- server1.example.com
New password for the MySQL "root" user: <-- IhrrootsqlPasswort
Repeat password for the MySQL "root" user: <-- IhrrootsqlPasswort
Wir wollen, dass MySQL, dass MySQL alle Netzwerkoberflächen benutzt, nicht nur localhost, deshalb editieren wir die /etc/mysql/my.cnf Datei und kommentieren die folgende Zeile aus bind-address = 127.0.0.1:

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 [...]
Starten Sie dann MySQL neu:

/etc/init.d/mysql restart

Überprüfen Sie nun, ob das Networking aktiviert ist:

netstat -tap | grep mysql

Die Ausgabe sollte etwa so aussehen:

root@server1:~# netstat -tap | grep mysql

tcp        0      0 *:mysql                 *:*                     LISTEN      10617/mysqld

root@server1:~#

11 Installation von Amavisd-new, SpamAssassin, And Clamav

Zur Installation von amavisd-new, SpamAssassin und ClamAV benutzen Sie

apt-get install amavisd-new spamassassin clamav
clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract
apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon
libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip
libnet-dns-perl

Das ISPConfig 3 Setup benutzt amavisd, welcher die SpamAssassin Filter Library intern lädt, sodass Sie SpamAssassin stoppen können um Arbeitsspeicher zu sparen:

/etc/init.d/spamassassin stop

update-rc.d -f spamassassin remove

12 Installation von Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear und mcrypt

Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear und mcrypt können wie folgt installiert werden:

apt-get install apache2 apache2.2-common apache2-doc
apache2-mpm-prefork apache2-utils libexpat1 ssl-cert
libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap
phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec
php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick
libapache2-mod-suphp libruby libapache2-mod-ruby

Ihnen werden die folgenden Fragen gestellt werden:

Web server to reconfigure automatically: <-- apache2
Configure database for phpmyadmin with dbconfig-common? <-- No
Führen Sie dann folgenden Befehl aus, um die Apache Module suexec, rewrite, ssl, actions, and include (plus dav, dav_fs, und auth_digest wenn Sie WebDAV benutzen wollen) zu erlauben:

a2enmod suexec rewrite ssl actions include

a2enmod dav_fs dav auth_digest

Starten Sie danach Apache neu:

/etc/init.d/apache2 restart


13 Installation von PureFTPd und Quota

PureFTPd und quota können mit folgendem Befehl installiert werden:

apt-get install pure-ftpd-common pure-ftpd-mysql
quota quotatool

Editieren Sie die Datei /etc/default/pure-ftpd-common...

vi /etc/default/pure-ftpd-common

..., stellen Sie sicher, dass der Startmodus auf standalone gesetzt ist und setzen Sie VIRTUALCHROOT=true:
[...]
STANDALONE_OR_INETD=standalone [...] VIRTUALCHROOT=true [...]
Editieren Sie die Datei /etc/inetd.conf um zu verhindern, dass inetd versucht ftp zu starten:

vi /etc/inetd.conf

Gibt es eine Zeile beginnend mit ftp stream tcp, kommentieren Sie diese aus (gibt es diese nicht, ist alles in Ordnung. Dann brauchen Sie die Datei nicht zu verändern ):
[...]
#:STANDARD: These are standard services. #ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/pure-ftpd-wrapper [...]
Sollten Sie die Datei /etc/inetd.conf geändert haben, starten Sie inetd nun neu:

/etc/init.d/openbsd-inetd restart

Nun bringen Sie PureFTPd dazu, FTP und TLS Sitzungen zu erlauben. FTP ist ein sehr unsicheres Protokoll, weil alle Passwörter in reinem Text übertragen werden. Durch Benutzung von TLS kann die gesamte Kommunikation verschlüsselt werden, dadurch wird FTP sehr viel sicherer gemacht.

Wollen Sie FTP und TLS Sitzungen erlauben, benutzen Sie

echo 1 > /etc/pure-ftpd/conf/TLS

Um TLS verwenden zu können, müssen SIe zuerst ein SSL Zerifikat erstellen. Ich werde es im /etc/ssl/private/ Verzeichnis erstellen, deshalb muss ich dieses Verzeichnis ersteinmal erstellen:

mkdir -p /etc/ssl/private/

Danach generieren Sie das SSL Zertifikat wie folgt:

openssl req -x509 -nodes -days 7300 -newkey rsa:2048
-keyout /etc/ssl/private/pure-ftpd.pem -out
/etc/ssl/private/pure-ftpd.pem

Country Name (2 letter code) [AU]: <-- Geben Sie Ihr Land an (z.B., "DE").
State or Province Name (full name) [Some-State]: <-- Geben Sie Ihren Bundesstaat oder Ihre Provinz an.
Locality Name (eg, city) []: <-- Geben Sie Ihre Stadt an.
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Geben Sie Ihren Organisationsnamen an (z.B. den Namen Ihrer Firma).
Organizational Unit Name (eg, section) []: <-- Geben Sie die Bezeichnung Ihrer Abteilung an (z.B. "IT Department").
Common Name (eg, YOUR name) []: <--
Geben Sie den vollen Domainnamen Ihres Systems an (z.B. "server1.example.com").

Email Address []: <-- Geben Sie Ihre E-Mail Adresse an.
Ändern Sie die Zugriffsberechtigungen auf das SSL Zertifikat:

chmod 600 /etc/ssl/private/pure-ftpd.pem

Starten Sie dann PureFTPd neu:

/etc/init.d/pure-ftpd-mysql restart

Editieren Sie /etc/fstab. Meine Datei sieht so aus (ich habe ,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 zur Partition mit dem Mount Point / hinzugefügt):

vi /etc/fstab


# /etc/fstab: static file system information.
# # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 # / was on /dev/sda1 during installation UUID=92bceda2-5ae4-4e3a-8748-b14da48fb297 / ext3 errors=remount-ro,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0 1 # swap was on /dev/sda5 during installation UUID=e24b3e9e-095c-4b49-af27-6363a4b7d094 none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
Um Quota zu aktivieren, benutzen Sie folgende Befehle:

mount -o remount /

quotacheck -avugm

quotaon -avug

14 Installation des BIND DNS Servers

BIND kann wie folgt installiert werden:

apt-get install bind9 dnsutils


15 Installation von Vlogger, Webalizer und AWstats

Vlogger, webalizer und AWstats können wie folgt installiert werden:

apt-get install vlogger webalizer awstats

Öffnen Sie danach /etc/cron.d/awstats ...

vi /etc/cron.d/awstats

... und kommentieren Sie beide Cron Jobs in der Datei aus:
#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh
# Generate static reports: #10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh

16 Installation von Jailkit

Jailkit wird nur gebraucht, wenn Sie SSH Benutzer chrooten möchten. Es wird wie folgt installiert (wichtig: Jailkit muss vor ISPConfig installiert werden - es kann nicht im Nachhinein getan werden!):

apt-get install build-essential autoconf automake1.9
libtool flex bison debhelper

cd /tmp

wget http://olivier.sessink.nl/jailkit/jailkit-2.14.tar.gz

tar xvfz jailkit-2.14.tar.gz

cd jailkit-2.14

./debian/rules binary

cd ..

dpkg -i jailkit_2.14-1_*.deb

rm -rf jailkit-2.14*

17 Installation von fail2ban

Diese ist optional aber empfohlen, da der ISPConfig Monitor versucht, den Log anzuzeigen:

apt-get install fail2ban

Um fail2ban PureFTPd und Dovecot anzeigen zu lassen, erstellen Sie die Datei /etc/fail2ban/jail.local:

vi /etc/fail2ban/jail.local


[pureftpd]
enabled = true port = ftp filter = pureftpd logpath = /var/log/syslog maxretry = 3 [dovecot-pop3imap] enabled = true filter = dovecot-pop3imap action = iptables-multiport[name=dovecot-pop3imap, port="pop3,pop3s,imap,imaps", protocol=tcp] logpath = /var/log/mail.log maxretry = 5
Erstellen Sie dann die folgenden beiden Filterdateien:

vi /etc/fail2ban/filter.d/pureftpd.conf


[Definition]
failregex = .*pure-ftpd: (.*@<HOST>) [WARNING] Authentication failed for user.* ignoreregex =

vi /etc/fail2ban/filter.d/dovecot-pop3imap.conf


[Definition]
failregex = (?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login (auth failed|Aborted login (tried to use disabled|Disconnected (auth failed|Aborted login (d+ authentication attempts).*rip=(?P<host>S*),.* ignoreregex =
Starten Sie fail2ban dann neu:

/etc/init.d/fail2ban restart


18 Installation von SquirrelMail

Um den SquirrelMail Webmal Client zu installieren, benutzen Sie

apt-get install squirrelmail

Erstellen Sie dann folgenden Symlink...

ln -s /usr/share/squirrelmail/ /var/www/webmail

... und konfigurieren SquirrelMail:

squirrelmail-configure

We must tell SquirrelMail that we are using Dovecot-IMAP/-POP3:

SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------

Main Menu --

1.  Organization Preferences

2.  Server Settings

3.  Folder Defaults

4.  General Options

5.  Themes

6.  Address Books

7.  Message of the Day (MOTD)

8.  Plugins

9.  Database

10. Languages

D.  Set pre-defined settings for specific IMAP servers

C   Turn color on

S   Save data

Q   Quit

Command >> <-- D
SquirrelMail Configuration : Read: config.php
---------------------------------------------------------

While we have been building SquirrelMail, we have discovered some

preferences that work better with some servers that don't work so

well with others.  If you select your IMAP server, this option will

set some pre-defined settings for that server.

Please note that you will still need to go through and make sure

everything is correct.  This does not change everything.  There are

only a few settings that this will change.

Please select your IMAP server:

bincimap    = Binc IMAP server

courier     = Courier IMAP server

cyrus       = Cyrus IMAP server

dovecot     = Dovecot Secure IMAP server

exchange    = Microsoft Exchange IMAP server

hmailserver = hMailServer

macosx      = Mac OS X Mailserver

mercury32   = Mercury/32

uw          = University of Washington's IMAP server

gmail       = IMAP access to Google mail (Gmail) accounts

quit        = Do not change anything

Command >> <-- dovecot
SquirrelMail Configuration : Read: config.php
---------------------------------------------------------

While we have been building SquirrelMail, we have discovered some

preferences that work better with some servers that don't work so

well with others.  If you select your IMAP server, this option will

set some pre-defined settings for that server.

Please note that you will still need to go through and make sure

everything is correct.  This does not change everything.  There are

only a few settings that this will change.

Please select your IMAP server:

bincimap    = Binc IMAP server

courier     = Courier IMAP server

cyrus       = Cyrus IMAP server

dovecot     = Dovecot Secure IMAP server

exchange    = Microsoft Exchange IMAP server

hmailserver = hMailServer

macosx      = Mac OS X Mailserver

mercury32   = Mercury/32

uw          = University of Washington's IMAP server

gmail       = IMAP access to Google mail (Gmail) accounts

quit        = Do not change anything

Command >> dovecot

imap_server_type = dovecot

default_folder_prefix = <none>

trash_folder = Trash

sent_folder = Sent

draft_folder = Drafts

show_prefix_option = false

default_sub_of_inbox = false

show_contain_subfolders_option = false

optional_delimiter = detect

delete_folder = false

Press any key to continue... <-- press a key
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------

Main Menu --

1.  Organization Preferences

2.  Server Settings

3.  Folder Defaults

4.  General Options

5.  Themes

6.  Address Books

7.  Message of the Day (MOTD)

8.  Plugins

9.  Database

10. Languages

D.  Set pre-defined settings for specific IMAP servers

C   Turn color on

S   Save data

Q   Quit

Command >> <-- S
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------

Main Menu --

1.  Organization Preferences

2.  Server Settings

3.  Folder Defaults

4.  General Options

5.  Themes

6.  Address Books

7.  Message of the Day (MOTD)

8.  Plugins

9.  Database

10. Languages

D.  Set pre-defined settings for specific IMAP servers

C   Turn color on

S   Save data

Q   Quit

Command >> <-- Q
Hiernach können Sie SquirrelMail über einen Internetbrowser unter http://server1.example.com/webmail oder http://192.168.0.100/webmail erreichen:

19 Installation von ISPConfig 3

Um die aktuellste Version von ISPConfig 3 zu installieren, führen Sie folgendes aus:

cd /tmp

wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz

tar xfz ISPConfig-3-stable.tar.gz

cd ispconfig3_install/install/

Benutzen Sie danach:

php -q install.php

Dies wird den ISPConfig 3 Installer starten. Der Installer wird alle Dienste wie Postfix, Dovecot, etc. für Sie konfigurieren. Ein manuelles
Setup, wie es für ISPConfig 2 benötigt wird (siehe Perfect Setup Tutorials), wird nicht gebraucht.

root@server1:/tmp/ispconfig3_install/install# php -q install.php
--------------------------------------------------------------------------------

_____ ___________   _____              __ _         ____
|_   _/  ___| ___  /  __             / _(_)       /__
| |  `--.| |_/ / | /  / ___  _ __ | |_ _  __ _    _/ /
| |  `--.   __/  | |    / _ | '_ |  _| |/ _` |  |_ |
_| |_/__/ / |     | __/ (_) | | | | | | | (_| | ___
___/____/_|      ____/___/|_| |_|_| |_|__, | ____/
__/ |
|___/

--------------------------------------------------------------------------------

>> Initial configuration

Operating System: Debian 6.0 (Squeeze/Sid) or compatible

Following will be a few questions for primary configuration so be careful.

Default values are in [brackets] and can be accepted with <ENTER>.

Tap in "quit" (without the quotes) to stop the installer.

Select language (en,de) [en]: <-- ENTER
Installation mode (standard,expert) [standard]: <-- ENTER
Full qualified hostname (FQDN) of the server, eg server1.domain.tld  [server1.example.com]: <-- ENTER
MySQL server hostname [localhost]: <-- ENTER
MySQL root username [root]: <-- ENTER
MySQL root password []: <-- IhrrootsqlPasswort
MySQL database to create [dbispconfig]: <-- ENTER
MySQL charset [utf8]: <-- ENTER
Generating a 2048 bit RSA private key
....+++

............................+++

writing new private key to 'smtpd.key'

-----

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [AU]: <-- ENTER
State or Province Name (full name) [Some-State]: <-- ENTER
Locality Name (eg, city) []: <-- ENTER
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- ENTER
Organizational Unit Name (eg, section) []: <-- ENTER
Common Name (eg, YOUR name) []: <-- ENTER
Email Address []: <-- ENTER
Configuring Jailkit
Configuring Dovecot

Configuring Spamassassin

Configuring Amavisd

Configuring Getmail

Configuring Pureftpd

Configuring BIND

Configuring Apache

Configuring Vlogger

Configuring Apps vhost

Configuring Firewall

Installing ISPConfig

ISPConfig Port [8080]: <-- ENTER
Configuring DBServer
Installing ISPConfig crontab

no crontab for root

no crontab for getmail

Restarting services ...

Stopping MySQL database server: mysqld.

Starting MySQL database server: mysqld.

Checking for corrupt, not cleanly closed and upgrade needing tables..

Stopping Postfix Mail Transport Agent: postfix.

Starting Postfix Mail Transport Agent: postfix.

Stopping amavisd: amavisd-new.

Starting amavisd: amavisd-new.

Stopping ClamAV daemon: clamd.

Starting ClamAV daemon: clamd Bytecode: Security mode set to "TrustSigned".

.

If you have trouble with authentication failures,

enable auth_debug setting. See http://wiki.dovecot.org/WhyDoesItNotWork

This message goes away after the first successful login.

Restarting IMAP/POP3 mail server: dovecot.

Restarting web server: apache2 ... waiting ..

Restarting ftp server: Running: /usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql.conf -l pam -Y 1 -8 UTF-8 -H -D -b -O clf:/var/log/pure-ftpd/transfer.log -E -u 1000 -A -B

Installation completed.

root@server1:/tmp/ispconfig3_install/install#

Der Installer kümmert sich von selbst um die Konfiguration der unterstellten Dienste, es ist also keine manuelle Konfiguration nötig.

Hiernach können Sie ISPConfig 3 im Internetbrowser unter http://server1.example.com:8080/ oder http://192.168.0.100:8080/ erreichen. Loggen Sie sich mit dem Benutzernamen admin und dem Passwort admin ein (Sie sollten das Standartpasswort nach dem ersten Login ändern):



Das System kann nun benutzt werden.

19.1 ISPConfig 3 Handbuch

20 Zusätzliche Anmerkungen

20.1 OpenVZ

Wenn der Debian Server den Sie gerade aufgesetzt haben ein OpenVZ Container ist (eine virtuelle Maschine), sollten Sie folgendes im host system ändern (Ich nehme an dass die ID Ihres OpenVZ Containers 101 ist - ersetzen Sie diese durch die korrekte VPSID Ihres Systems):

VPSID=101

for CAP in CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE
NET_ADMIN SYS_CHROOT SYS_NICE CHOWN DAC_READ_SEARCH SETGID SETUID
NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE

do

vzctl set $VPSID --capability ${CAP}:on --save

done

20.2 SquirrelMail

Viele Leute haben von Problemen berichtet, als Sie SquirrelMail in Ihren mit ISPConfig 3 erstellten Internetseiten benutzen wollten (so wie 404 Not Found Fehler). Dieser Guide erklärt Ihnen, wie Sie SquirrelMail auf einem Debian Squeeze Server konfigurieren, sodass Sie es von Ihren mit ISPConfig erstellten Internetseiten aus benutzen können.

SquirrelMails Apache Konfiguration ist in der Datei /etc/squirrelmail/apache.conf, diese wird jedoch nicht von Apache geladen, da sie sich nicht im /etc/apache2/conf.d/ Verzeichnis befindet. Deshalb erstellen wir einen Symlink namens squirrelmail.conf im /etc/apache2/conf.d/ Verzeichnis, welcher auf /etc/squirrelmail/apache.conf zeigt und starten Apache neu:

cd /etc/apache2/conf.d/

ln -s ../../squirrelmail/apache.conf squirrelmail.conf

/etc/init.d/apache2 reload

Das war es bereits - /etc/apache2/conf.d/squirrelmail.conf definiert ein Alias namens /squirrelmail, welches zu SquirrelMails Installationsverzeichnis zeigt (/usr/share/squirrelmail).

Begeben Sie sich nun zum PHP open_basedir Feld im Options Reiter Ihrer Webseite in ISPConfig und fügen Sie die folgenden beiden Verzeichnisse /usr/share/squirrelmail und /etc/squirrelmail (dies ist das Verzeichnis, in dem die SquirrelMail Konfiguration gespeichert ist) zur Zeile hinzu, z.B. folgendermaßen:


Warten Sie zwei oder drei Minuten, bis ISPConfig die Seitenkonfiguration aktualisiert hat. Sie können SquirrelMail nun wie folgt von Ihrer Webseite aus erreichen:

http://www.example.com/squirrelmail

Sie können es auch von der ISPConfig Kontrolloberfläche vhost wie folgt erreichen (dies benötigt keine Konfiguration in ISPConfig):

http://server1.example.com:8080/squirrelmail

Würden Sie gerne das Alias /webmail anstatt /squirrelmail benutzen, öffnen Sie einfach /etc/apache2/conf.d/squirrelmail.conf...

vi /etc/apache2/conf.d/squirrelmail.conf

... und fügen Sie die Zeile Alias /webmail /usr/share/squirrelmail hinzu:
Alias /squirrelmail /usr/share/squirrelmail
Alias /webmail /usr/share/squirrelmail <Directory /usr/share/squirrelmail> Options FollowSymLinks <IfModule mod_php5.c> php_flag register_globals off </IfModule> <IfModule mod_dir.c> DirectoryIndex index.php </IfModule> # access to configtest is limited by default to prevent information leak <Files configtest.php> order deny,allow deny from all allow from 127.0.0.1 </Files> </Directory> # users will prefer a simple URL like http://webmail.example.com #<VirtualHost 1.2.3.4> # DocumentRoot /usr/share/squirrelmail # ServerName webmail.example.com #</VirtualHost> # redirect to https when available (thanks omen@descolada.dartmouth.edu) # # Note: There are multiple ways to do this, and which one is suitable for # your site's configuration depends. Consult the apache documentation if # you're unsure, as this example might not work everywhere. # #<IfModule mod_rewrite.c> # <IfModule mod_ssl.c> # <Location /squirrelmail> # RewriteEngine on # RewriteCond %{HTTPS} !^on$ [NC] # RewriteRule . https://%{HTTP_HOST}%{REQUEST_URI} [L] # </Location> # </IfModule> #</IfModule>
Starten Sie dann Apache neu:

/etc/init.d/apache2 reload

Sie können SquirrelMail nun wie folgt erreichen:

http://www.example.com/webmail

http://server1.example.com:8080/webmail

Sollten Sie einen vhost wie webmail.example.com einrichten wollen, unter dem Ihre Benutzer SquirrelMail erreichen können, müssen Sie die folgende vhost Konfiguration zu /etc/apache2/conf.d/squirrelmail.conf hinzufügen:

vi /etc/apache2/conf.d/squirrelmail.conf


[...]
<VirtualHost 1.2.3.4:80> DocumentRoot /usr/share/squirrelmail ServerName webmail.example.com </VirtualHost>
Ersetzen Sie 1.2.3.4 durch die korrekte IP Ihres Servers. Natürlich muss es einen DNS Record für webmail.example.com geben, welcher zu der IP-Adresse zeigt, die Sie in Ihrer vhost Konfiguration benutzen. Stellen Sie außerdem sicher, dass der vhost webmail.example.com nicht in ISPConfig existiert (sonst werden sich beide vhosts gegenseitig stören!).

Starten Sie nun Apache neu...

/etc/init.d/apache2 reload

... und Sie können SquirrelMail unter http://webmail.example.com erreichen!

21 Links