Der Perfekte Server - Debian Squeeze (Debian 6.0) mit BIND, Dovecot & Nginx [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: Nginx oder Apache Webserver, Postfix Mailserver, 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 die Richtigkeit der Inhalte des Tutorials gebe ich keinerlei Garantie!

1 Voraussetzungen

Sie benötigen eine phyische oder virtuelle Maschine oder ein VPS mit einer mindestens 8 GB großen Festplatte, 1 GB Arbeitsspeicher und einer angemessen schnellen Internetverbindung um die Pakete aus den Debian Repositories herunterzuladen.

Zur Zeit dieses Schreibens ist die aktuelle Debian Version 6.0.4. Sie können diese herunterladen und brennen, oder sie per GUI oder Befehlszeile mit Ihrer virtuellen Maschine mounten.

Die AMD64 ISO CD1 finden Sie hier: http://cdimage.debian.org/debian-cd/6.0.4/amd64/iso-cd/debian-6.0.4-amd64-CD-1.iso
Die meisten aktuellen Computer sind 64-bit-fähig, Sie können jedoch immer auch das i386 Abbild verwenden, welches Sie hier finden: http://cdimage.debian.org/debian-cd/6.0.4/i386/iso-cd/debian-6.0.4-i386-CD-1.iso
Sie können außerdem die Netinstall-CD benutzen, dies macht allerdings keinen großen Unterschied, bis auf dass die Pakete, die installiert werden müssen, damit während des Setups aus dem Internet heruntergeladen werden.

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 Netzwerk-Installations-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? (Änderungen auf die Festplatte schreiben?):


Danach werden Ihre neuen Partitionen erstellt und formatiert:


Das Basissystem ist nun installiert:


Als nächstes müssen Sie die Paketverwaltung, apt, konfigurieren. Da Sie Software benutzen müssen werden, welche nicht auf Ihrer Installations-CD enthalten ist, müssen Sie einen Netzwerk-Mirror benutzen. Wählen Sie das Land, in dem sich der Netzwerk-Mirror, welchen Sie benutzen möchten, befindet (normalerweise sollte dies das Land sein, in dem Ihr Server oder VPS steht):


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:


Sie 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? (den GRUB Bootloader auf dem Master Boot Record installieren?), wählen Sie Yes:


Die Basissysteminstallation ist nun fertiggestellt. Entfernen Sie die Debian Squeeze Installations-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

Anmerkung: Alle Befehle in diesem Tutorial werden als root ausgeführt. Sie sollten außerdem auch die CD-ROM Zeile in /etc/apt/sources.list entfernen:

vi /etc/apt/sources.list

Drücken Sie zwei Mal schnell hintereinander d um eine Zeile zu löschen und wenden Sie dies auf alle CD-ROM Zeilen an. Sollten Sie aus Versehen eine Zeile zu viel löschen, so geben Sie :q! ein, um das Dokument zu verlassen ohne zu speichern und versuchen es noch einmal.

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! Haben Sie den Host- und Domainnamen bereits während der Installation gesetzt, sollte dies eigentlich der Fall sein, auch wenn die IP-Adresse und der Fully Qualified Domain Name (FQDN) in die /etc/hosts Datei eingetragen werden müssen. Bei einer lokalen Installation könnten Sie .local als Top-Level Domain (TLD) benutzen, aber in diesem Szenario brauchen Sie einen DNS Server, welcher darauf konfiguriert ist, lokale IP-Adressen aufzulösen.

7 Hinzufügen der Dotdeb Repository und Aktualisieren Ihres Debian Systems

Dieser Schritt ist kritisch, damit Nginx mit ISPConfig 3 und Ihrem Debian 6 System funktioniert. Fügen Sie die Dotdeb Repository hinzu indem Sie die /etc/apt/sources.list Datei editieren und die folgenden zwei Zeilen sowie das optionale Kommentar einfügen:

vi /etc/apt/sources.list

[...]
# Dotdeb repository deb http://packages.dotdeb.org squeeze all deb-src http://packages.dotdeb.org squeeze all [...]
Laden Sie sich dann den passenden GnuPG Schlüssel:

wget http://www.dotdeb.org/dotdeb.gpg
cat dotdeb.gpg | apt-key add -

Stellen Sie außerdem sicher, dass Ihre /etc/apt/sources.list Datei die Squeeze-Updates Repository enthält (dies bewirkt, dass Sie stets die neusten Updates des ClamAV Virenscanners erhalten - das Projekt wird sehr häufig aktualisiert und manchmal hören ältere Versionen auch gänzlich auf zu funktionieren).
[...]
deb http://ftp.de.debian.org/debian/ squeeze-updates main [...]
Benutzen Sie

apt-get update

um Ihre Paketdatenbank zu aktualisieren und sollten Updates vorhanden sein, so installieren Sie diese mit

apt-get upgrade


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

Sie werden die folgenden Fragen sehen:

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 alle Netzwerkschnittstellen 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 Nginx, PHP5 (PHP-FPM) und Fcgiwrap

Nginx ist als Paket aus der Dotdeb Repository verfügbar (die Pakete aus der offiziellen Nginx Repository funktionieren zur Zeit dieses Schreibens nicht mit ISPConfig), um sie also zu installieren, benutzen Sie den folgenden Befehl:

apt-get install nginx

Apache sollte hierbei nicht installiert sein, auch wenn es später als Abhängigkeit von phpMyAdmin installiert werden wird. Entfernen Sie Apache und alle verwandten Pakete mit:

apt-get purge apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils

Danach können Sie nach Wahl auch noch

apt-get autoremove

benutzen um sicherzugehen, dass alle nicht mehr benötigten Abhängigkeiten deinstalliert werden.

Um PHP5 mit PHP-FPM (FastCGI Process Manager) als Alternative zur PHP FastCGI Implementation, mit einigen zusätzlichen Features im Hinblick auf Auslieferung von Websites aller Größen, besonders aber von größeren, häufig besuchten, in Nginx zu benutzen, installieren Sie es folgendermaßen:

apt-get install php5-fpm

PHP-FPM ist ein Daemonprozess mit dem Init-Skript /etc/init.d/php5-fpm welcher als FastCGI Server auf Port 9000 läuft.

Um MySQL Unterstützung in PHP zu bekommen installieren Sie das php5-mysql Paket. Sie könnten auch einige zusätzliche PHP5 Module für Ihre Web-Anwendungen gebrauchen; so können Sie nach diesen suchen:

apt-cache search php5

Wenn Sie sich nicht um Festplattenplatz sorgen müssen, können Sie sie alle installieren, egal, ob Sie sie derzeit brauchen oder nicht:

apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Sie können später immernoch die jenigen deinstallieren, die Sie nicht brauchen.

APC ist ein kostenloser PHP Opcode Cacher zum Optimieren von PHP Zwischencode. Es ist anderen PHP Opcode Cachern wie eAccelerator und XCache ähnlich und es wird ausdrücklich empfohlen einen von diesen zu installieren um Ihre PHP Seite zu beschleunigen.

APC kann folgendermaßen installiert werden:

apt-get install php-apc

Starten Sie PHP-FPM nun neu:

/etc/init.d/php5-fpm restart

Fcgiwrap ist ein CGI Wrapper, der auch für komplexere CGI Skripts funktionieren sollte und für Shared Hosting Umgebungen eingesetzt werden kann, da er jedem vHost erlaubt, sein eigenes cgi-bin Verzeichnis zu benutzen. Für CGI Unterstützung in Nginx müssen Sie folgendermaßen das Fcgiwrap Paket installieren:

apt-get install fcgiwrap

Nach der Installation sollte der fcgiwrap Daemon bereits gestartet werden; sein Socket ist /var/run/fcgiwrap.socket. Sollte er noch nicht laufen, benutzen Sie das /etc/init.d/fcgiwrap Skript, um ihn zu starten.

Das war's! Wenn Sie nun einen Nginx vHost erstellen, wird ISPConfig 3 automatisch die vHost Konfiguration übernehmen.

13 Installation von phpMyAdmin und Konfiguration von HTTPS für vHosts

Um phpMyAdmin zu installieren, benutzen Sie folgenden Befehl:

apt-get install phpmyadmin

Sie werden mit folgenden Fragen konfrontiert:

Web server to reconfigure automatically: <-- wählen Sie keines der beiden (da nur apache2 und lighttpd zur Auswahl stehen) Configure database for phpmyadmin with dbconfig-common? <-- No
Wählen Sie 'Yes' so werden Sie einen Fehler bekommen, über den Sie sich hier erkundigen können: http://serverfault.com/questions/341116/setting-up-phpmyadmin-got-a-mysql-syntax-error
Da Apache2 als Abhängigkeit von phpMyAdmin installiert wird, stoppen Sie es nun durch

/etc/init.d/apache2 stop

und entfernen Apaches Systemstartlinks:

insserv -r apache2

Starten Sie danach nginx:

/etc/init.d/nginx start

Sie finden phpMyAdmin nun im /usr/share/phpmyadmin/ Verzeichnis.

Nachdem Sie ISPConfig 3 installiert haben, können Sie folgendermaßen darauf zugreifen:

Der ISPConfig 3 Apps vHost auf Port 8081 unter Nginx liefert eine phpMyAdmin Konfiguration mit, Sie können also http://server1.example.com:8081/phpmyadmin oder http://server1.example.com:8081/phpMyAdmin benutzen, um auf phpmyAdmin zuzugreifen.

Wollen Sie ein /phpmyadmin oder /phpMyAdmin Alias einrichten, dass Sie von Ihren Webseiten aus benutzen können, ist dies etwas komplizierter als für Apache, da nginx keine globalen Aliase hat (also Aliase, welche für alle vhosts definiert werden können). Sie müssen Ihre Aliase deshalb für jeden vhost definieren, von dem aus Sie auf phpMyAdmin zugreifen wollen.

Um dies zu tun, fügen Sie folgendes in das nginx Directives Feld im Options Reiter der Webseite in ISPConfig ein (nachdem Sie es später in diesem Tutorial installiert haben):
 location /phpmyadmin {
root /usr/share/; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; fastcgi_buffer_size 128k; fastcgi_buffers 256 4k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; } location ~* ^/phpmyadmin/(.+.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } location /phpMyAdmin { rewrite ^/* /phpmyadmin last; }
Benutzen Sie für Ihren vhost https statt http, sollten Sie die Zeile fastcgi_param HTTPS on; zu Ihrer phpMyAdmin Konfiguration hinzufügen:
 location /phpmyadmin {
root /usr/share/; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass 127.0.0.1:9000; fastcgi_param HTTPS on; # <-- add this line fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; fastcgi_buffer_size 128k; fastcgi_buffers 256 4k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; } location ~* ^/phpmyadmin/(.+.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } location /phpMyAdmin { rewrite ^/* /phpmyadmin last; }
Benutzen Sie für Ihren vhost sowohl http als auch https, müssen Sie die folgende Sektion zur http {} Sektion in /etc/nginx/nginx.conf hinzufügen (vor jeglichen include Zeilen) welche überprüft, ob der Besucher http oder https benutzt und dementsprechend die $fastcgi_https Variable setzt (welche in der phpMyAdmin Konfiguration benutzt wird):

vi /etc/nginx/nginx.conf

[...]
http { [...] ## Detect when HTTPS is used map $scheme $fastcgi_https { default off; https on; } [...] } [...]
Laden Sie anschließend Nginx neu:

/etc/init.d/nginx reload

Gehen Sie danach wieder in das nginx Directives Feld und anstatt der Zeile fastcgi_param HTTPS on; fügen Sie nun  fastcgi_param HTTPS $fastcgi_https; hinzu, sodass Sie phpMyAdmin sowohl für http als auch für https Anfragen benutzen können:
 location /phpmyadmin {
root /usr/share/; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass 127.0.0.1:9000; fastcgi_param HTTPS $fastcgi_https; # <-- diese Zeile muss hinzugefügt werden fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; fastcgi_buffer_size 128k; fastcgi_buffers 256 4k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; } location ~* ^/phpmyadmin/(.+.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } location /phpMyAdmin { rewrite ^/* /phpmyadmin last; }

14 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


15 Installation von Mailman

Ab Version 3.0.4 unterstützt ISPConfig die Verwaltung von Mailman Mailinglisten (Erstellen/Modifizieren/Löschen). Wollen Sie von dieser Neuerung Gebrauch machen, installieren Sie Mailman wie folgt:

apt-get install mailman

Bevor Sie Mailman starten können, müssen Sie zunächst eine erste Mailingliste namens mailman erstellen:

newlist mailman

root@server1:~# newlist mailman
Enter the email of the person running the list:
<-- Admin Email Adresse, z.B. info@example.com Initial mailman password: <-- Admin Password für die Mailman Liste To finish creating your mailing list, you must edit your /etc/aliases or
an equivalent file by adding the following lines:

## mailman mailing list
mailman:              "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin:        "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces:      "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm:      "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join:         "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave:        "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner:        "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request:      "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe:    "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe:  "|/var/lib/mailman/mail/mailman unsubscribe mailman"

Hit enter to notify mailman owner... <-- ENTER
root@server1:~#
Öffnen Sie danach /etc/aliases

vi /etc/aliases

… und fügen die folgenden Zeilen hinzu:
[...]
mailman: "|/var/lib/mailman/mail/mailman post mailman" mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman" mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman" mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman" mailman-join: "|/var/lib/mailman/mail/mailman join mailman" mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman" mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman" mailman-request: "|/var/lib/mailman/mail/mailman request mailman" mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman" mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"
Benutzen Sie dann

newaliases
/etc/init.d/postfix restart

und starten Sie danach den Mailman Daemon:

/etc/init.d/mailman start

Nachdem Sie ISPConfig 3 installiert haben, können Sie folgendermaßen auf Mailman zugreifen:

The ISPConfig Apps vhost auf Port 8081 für nginx liefert eine Mailman Konfiguration, Sie können daher  http://server1.example.com:8081/cgi-bin/mailman/admin/<listname> oder http://server1.example.com:8081/cgi-bin/mailman/listinfo/<listname> benutzen, um auf Mailman zuzugreifen.

Wollen Sie Mailman von Ihren mit ISPConfig erstellten Webseiten nutzen, ist dies mit nginx etwas komplizierter als mit Apache, da nginx keine globalen Aliase hat (also Aliase, welche für alle vhosts definiert werden können). Sie müssen Ihre Aliase deshalb für jeden vhost definieren, von dem aus Sie auf phpMyAdmin zugreifen wollen.

Um dies zu tun, fügen Sie folgendes in das nginx Directives Feld im Options Reiter der Webseite in ISPConfig ein:
 location /cgi-bin/mailman {
root /usr/lib/; fastcgi_split_path_info (^/cgi-bin/mailman/[^/]*)(.*)$; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; fastcgi_intercept_errors on; fastcgi_pass unix:/var/run/fcgiwrap.socket; } location /images/mailman { alias /usr/share/images/mailman; } location /pipermail { alias /var/lib/mailman/archives/public; autoindex on; }
Dies definiert das Alias /cgi-bin/mailman/ für Ihren vhost, was bedeutet, dass Sie per http://<vhost>/cgi-bin/mailman/admin/<listname> für eine Liste auf die Mailman Administrator-Kontrolloberfläche zugreifen können; die Webseite für Benutzer einer Mailingliste kann unter http://<vhost>/cgi-bin/mailman/listinfo/<listname> gefunden werden.

Unter http://<vhost>/pipermail können Sie die Mailinglisten-Archive finden.

16 Installation des BIND DNS Servers

BIND kann wie folgt installiert werden:

apt-get install bind9 dnsutils


17 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

18 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*


19 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


20 Installation von SquirrelMail (optional)

Dieser Schritt ist optional. Wollen Sie stattdessen lieber Roundcube installieren, so schauen Sie sich dazu dieses Tutorial an: http://www.howtoforge.de/anleitung/benutzung-von-roundcube-0-7-1-mit-nginx-lemp-unter-debian-squeezeubuntu-11-10/. Sie können dies nach der ISPConfig Installation durchführen. Um Squirrelmail zu installieren, benutzen Sie einfach:

apt-get install squirrelmail

Erstellen Sie dann folgenden Symlink...

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

... und konfigurieren SquirrelMail:

squirrelmail-configure

SquirrelMail muss wissen, dass Dovecot-IMAP/-POP3 zum Einsatz kommt:

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... <-- drücken Sie einen beliebigen Knopf

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
Sie finden Squirrelmail nun im /usr/share/squirrelmail/ Verzeichnis.

Nachdem Sie ISPConfig 3 installiert haben, können Sie folgendermaßen auf Squirrelmail zugreifen:

Der ISPConfig Apps vhost auf Port 8081 für nginx liefert eine SquirrelMail Konfiguration, Sie können daher http://server1.example.com:8081/squirrelmail oder http://server1.example.com:8081/webmail benutzen, um auf SquirrelMail zuzugreifen.

Wollen Sie ein /webmail oder /squirrelmail Alias einrichten, das Sie von Ihren Webseiten aus benutzen können, so ist dies etwas komplizierter als für Apache, da nginx keine globalen Aliase hat (also Aliase, welche für alle vhosts definiert werden können). Sie müssen Ihre Aliase deshalb für jeden vhost definieren, von dem aus Sie auf phpMyAdmin zugreifen wollen.

Um dies zu tun, fügen Sie folgendes in das nginx Directives Feld im Options Reiter der Webseite in ISPConfig ein:
 location /squirrelmail {
root /usr/share/; index index.php index.html index.htm; location ~ ^/squirrelmail/(.+.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; fastcgi_buffer_size 128k; fastcgi_buffers 256 4k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; } location ~* ^/squirrelmail/(.+.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } location /webmail { rewrite ^/* /squirrelmail last; }
Benutzen Sie für Ihren vhost https statt http, sollten Sie die Zeile fastcgi_param HTTPS on; zu Ihrer SquirrelMail Konfiguration hinzufügen:
 location /squirrelmail {
root /usr/share/; index index.php index.html index.htm; location ~ ^/squirrelmail/(.+.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass 127.0.0.1:9000; fastcgi_param HTTPS on; # <-- diese Zeile muss hinzugefügt werden fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; fastcgi_buffer_size 128k; fastcgi_buffers 256 4k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; } location ~* ^/squirrelmail/(.+.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } location /webmail { rewrite ^/* /squirrelmail last; }
Benutzen Sie sowohl http und https für Ihren vHost, sollten Sie die relevante Sektion bereits früher in diesem Tutorial in /etc/nginx/nginx.conf eingesetzt haben, während Sie phpMyAdmin aufgesetzt haben.

Gehen Sie nochmal in das nginx Directives Feld und anstatt von fastcgi_param HTTPS on; fügen Sie die Zeile fastcgi_param HTTPS $fastcgi_https; ein, sodass Squirrelmail sowohl http als auch https Anfragen annimmt:
 location /squirrelmail {
root /usr/share/; index index.php index.html index.htm; location ~ ^/squirrelmail/(.+.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass 127.0.0.1:9000; fastcgi_param HTTPS $fastcgi_https; # <-- diese Zeile muss hinzugefügt werden fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; fastcgi_buffer_size 128k; fastcgi_buffers 256 4k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; } location ~* ^/squirrelmail/(.+.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } location /webmail { rewrite ^/* /squirrelmail last; }

21 Installation von ISPConfig 3

Bevor Sie ISPConfig installieren, stellen Sie bitte sicher, dass Apache gestoppt ist, da phpMyAdmin dieses als Abhängigkeit installiert hat. Sollte Apache2 auf dem System installiert sein, stoppen Sie es jetzt

/etc/init.d/apache2 stop

und entfernen seine Systemstartlinks, wenn Sie dies nicht bereits in einem vorangegangenen Schritt getan haben:

insserv -r apache2

Stellen Sie außerdem sicher, dass Nginx läuft:

/etc/init.d/nginx restart

Haben Sie sowohl Apache als auch Nginx installiert, wird Sie der Installer fragen welches der beiden Sie benutzen möchten: Apache and nginx detected. Select server to use for ISPConfig: (apache,nginx) [apache]:
Geben Sie nginx ein. Ist nur eines der beiden installiert, wird dies automatisch ermittelt und es werden keine Fragen gestellt.

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 Standardpasswort nach dem ersten Login ändern):



Das System kann nun benutzt werden.

22 Zusätzliche Anmerkungen

22.1 Wahrscheinlich können noch keine Mails empfangen oder gesendet werden, korrigieren Sie dies im folgenden Schritt

Postfix/Dovecot - warning SASL: Connect to
private/auth failed: No such file or directory

Error: Postfix/Dovecot - warning: SASL: Connect to
private/auth failed: No such file or directory

Ähnliche Fehlermeldungen werden in Ihrem Mail-Log auftauchen (cat /var/log/mail.log):

Aug 23 15:55:01 server1 postfix/smtpd[15194]:
warning: SASL: Connect to private/auth failed: No such file or directory
Aug 23 15:55:01 server1 postfix/smtpd[15194]: fatal: no SASL
authentication mechanisms
Aug 23 15:55:02 server1 postfix/master[3979]: warning: process
/usr/libexec/postfix/smtpd pid 15194 exit status 1
Aug 23 15:55:02 server1 postfix/master[3979]: warning:
/usr/libexec/postfix/smtpd: bad command startup -- throttling

Lösung (diese Konfigurationsdatei sollte nach dem Tutorial bereits existieren):

Öffnen Sie Ihre dovecot.conf /etc/dovecot/dovecot.conf und stellen Sie sicher, dass Sie die folgenden Zeilen enthält:

vi /etc/dovecot/dovecot.conf

[...]
client { path = /var/spool/postfix/private/auth mode = 0660 user = postfix group = postfix } [...]
Starten Sie Dovecot neu.

Überprüfen Sie dann, ob /var/spool/postfix/private/auth erstellt wurde:

ls -l /var/spool/postfix/private/auth

Fügen Sie außerdem die folgende Zeile zu Ihrer /etc/postfix/main.cf Datei hinzu, vernünftigerweise gleich nach der Zeile readme_directory = /usr/share/doc/postfix und starten Postfix dann neu.
[...]
queue_directory = /var/spool/postfix [...]

/etc/init.d/postfix restart


22.2 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


23 Links