GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Panels

Der perfekte Server – Debian Squeeze (Debian 6.0) mit BIND, Dovecot &Nginx [ISPConfig 3]

Der perfekte Server – Debian Squeeze (Debian 6.0) mit BIND, Dovecot &Nginx [ISPConfig 3 ]

Bearbeitet und zusammengestellt von Daniel Harbottle

Dieses Tutorial zeigt, wie man einen Debian Squeeze (Debian 6.0) Server für die Installation von ISPConfig 3 vorbereitet und wie man ISPConfig 3 installiert. ISPConfig 3 ist ein Webhosting Control Panel, mit dem Sie die folgenden Dienste über einen Webbrowser konfigurieren können:nginx or Apache-Webserver, Postfix-Mailserver, MySQL, BIND-Nameserver, PureFTPd, SpamAssassin, ClamAV und viele mehr.

Dieses Tutorial basiert auf den exzellenten Tutorials „The Perfect Server – Debian Squeeze (Debian 6.0) With BIND &Dovecot [ISPConfig 3]“ und „The Perfect Server – Ubuntu 11.10 With Nginx [ISPConfig 3]“ mit ein paar Anpassungen. Die Idee ist, den schnellen und speichereffizienten nginx-Webserver und Dovecot zu verwenden, der auch speichereffizienter sein soll. Ich biete keine Garantie dafür, dass es für Sie funktioniert, obwohl es auf einer lokalen VM und einem VPS getestet wurde. Sie müssen das Dotdeb-Repository für nginx verwenden.

Um zu lernen, wie man ISPConfig 3 verwendet, empfehle ich dringend, das ISPConfig 3-Handbuch herunterzuladen.

Auf etwa 300 Seiten behandelt es das Konzept hinter ISPConfig (Admin, Reseller, Clients), erklärt, wie ISPConfig 3 installiert und aktualisiert wird, enthält eine Referenz für alle Formulare und Formularfelder in ISPConfig zusammen mit Beispielen für gültige Eingaben und bietet Tutorials für die häufigsten Aufgaben in ISPConfig 3. Es beschreibt auch, wie Sie Ihren Server sicherer machen können, und enthält am Ende einen Abschnitt zur Fehlerbehebung.

ISPConfig Monitor-App für Android

Mit der ISPConfig Monitor App können Sie Ihren Serverstatus überprüfen und herausfinden, ob alle Dienste wie erwartet laufen. Sie können TCP- und UDP-Ports überprüfen und Ihre Server anpingen. Darüber hinaus können Sie diese App verwenden, um Details von Servern anzufordern, auf denen ISPConfig installiert ist (Bitte beachten Sie, dass die installierte Mindestversion von ISPConfig 3 mit Unterstützung für die ISPConfig Monitor App 3.0.3.3 ist! ); Diese Details umfassen alles, was Sie aus dem Monitor-Modul im ISPConfig Control Panel wissen (z. B. Dienste, Mail- und Systemprotokolle, Mail-Warteschlange, CPU- und Speicherinformationen, Festplattennutzung, Quote, Betriebssystemdetails, RKHunter-Protokoll usw.) und natürlich , da ISPConfig Multiserver-fähig ist, können Sie alle Server überprüfen, die von Ihrem ISPConfig-Masterserver gesteuert werden.

Anweisungen zum Herunterladen und zur Verwendung finden Sie unter http://www.ispconfig.org/ispconfig-3/ispconfig-monitor-app-for-android/.

Ich gebe keine Garantie dafür, dass dies bei Ihnen funktioniert!

1 Voraussetzungen

Sie benötigen eine Bare-Metal- oder virtuelle Maschine oder einen VPS mit mindestens 8 GB Festplattenspeicher, 1 GB RAM und einer einigermaßen schnellen Internetverbindung, um alle Pakete aus den Debian-Repositories zu ziehen.

Zum Zeitpunkt des Schreibens ist die neueste Version von Debian 6.0.4. Sie können ein ISO herunterladen und brennen oder es mit der Verwaltungs-GUI oder dem Befehlszeilendienstprogramm Ihrer Wahl für die Verwaltung virtueller Maschinen bereitstellen.

Das AMD64-ISO-CD1-Image finden Sie unter:http://cdimage.debian.org/debian-cd/6.0.4/amd64/iso-cd/debian-6.0.4-amd64-CD-1.iso

Die meisten Computer sind heutzutage 64-Bit-fähig, aber Sie können immer das i386-Image verwenden, das 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 auch die Netinstall-CD verwenden, es sollte keinen großen Unterschied machen, außer dass alle Pakete, die Sie installieren, während des Setups aus dem Internet heruntergeladen werden.

2 Vorbemerkung

In diesem Tutorial verwende ich den Hostnamen server1.example.com mit der IP-Adresse 192.168.0.100 und dem Gateway 192.168.0.1. Diese Einstellungen können für Sie abweichen, daher müssen Sie sie gegebenenfalls ersetzen.

3 Das Basissystem

Legen Sie Ihre Debian Squeeze-Netzwerkinstallations-CD in Ihr System ein und booten Sie davon. Wählen Sie „Installieren“ (dies startet den Text-Installer – wenn Sie einen grafischen Installer bevorzugen, wählen Sie „Grafische Installation“):

Wählen Sie Ihre Sprache:

Wählen Sie dann Ihren Standort aus:

Wenn Sie eine ungewöhnliche Kombination aus Sprache und Ort ausgewählt haben (z. B. Englisch als Sprache und Deutschland als Ort, wie in meinem Fall), teilt Ihnen das Installationsprogramm möglicherweise mit, dass für diese Kombination kein Gebietsschema definiert ist. in diesem Fall müssen Sie das Gebietsschema manuell auswählen. Ich wähle hier en_US.UTF-8 aus:

Wählen Sie ein Tastaturlayout:

Der Installer überprüft die Installations-CD, Ihre Hardware und konfiguriert das Netzwerk mit DHCP, falls sich ein DHCP-Server im Netzwerk befindet:

Geben Sie den Hostnamen ein, den Sie festlegen möchten. Dies sollte eine Kombination aus einem beliebigen Hostnamen und Domänennamen sein, z. meinserver.meinedomain.com. Dies wird auch später im Tutorial angesprochen. In diesem Beispiel heißt das System server1.example.com, also geben Sie server1.example.com ein:

Geben Sie Ihren Domänennamen ein. In diesem Beispiel ist dies example.com:

Geben Sie anschließend dem Root-Benutzer ein Passwort:

Bestätigen Sie dieses Passwort, um Tippfehler zu vermeiden:

Erstellen Sie ein normales Benutzerkonto, zum Beispiel den Benutzer Administrator mit dem Benutzernamen administrator (verwenden Sie nicht den Benutzernamen admin, da er ein reservierter Name bei Debian Squeeze ist):

Der perfekte Server – Debian Squeeze (Debian 6.0) mit BIND, Dovecot &Nginx [ISPConfig 3] – Seite 2

Jetzt müssen Sie Ihre Festplatte partitionieren. Der Einfachheit halber erstelle ich eine große Partition (mit dem Einhängepunkt /) und eine kleine Swap-Partition, also wähle ich Guided - use whole disk (natürlich liegt die Partitionierung ganz bei Ihnen - wenn Sie möchten, können Sie mehr als erstellen nur eine große Partition, und Sie können auch LVM verwenden):

Wählen Sie die Festplatte aus, die Sie partitionieren möchten:

Wählen Sie dann das Partitionierungsschema aus. Wie bereits erwähnt, wähle ich der Einfachheit halber Alle Dateien in einer Partition (empfohlen für neue Benutzer) - es bleibt Ihnen überlassen, was Sie hier wählen:

Wenn Sie fertig sind, wählen Sie Partitionierung beenden und Änderungen auf Festplatte schreiben:

Wählen Sie Ja, wenn Sie gefragt werden, ob Änderungen auf Datenträger geschrieben werden sollen:

Anschließend werden Ihre neuen Partitionen erstellt und formatiert:

Jetzt ist das Basissystem installiert:

Als nächstes müssen Sie apt konfigurieren. Da Sie möglicherweise nicht ständig Debian Squeeze CD1 (oder netinstall) verwenden möchten, das nur eine begrenzte Anzahl von Paketen enthält, sollten Sie einen Netzwerkspiegel verwenden. Wählen Sie das Land aus, in dem sich der Netzwerkspiegel befindet, den Sie verwenden möchten (normalerweise ist dies das Land, in dem sich Ihr Debian Squeeze-System oder VPS befindet):

Wählen Sie dann den Spiegel aus, den Sie verwenden möchten (z. B. ftp.de.debian.org):

Wenn Sie keinen HTTP-Proxy verwenden, lassen Sie das folgende Feld leer und klicken Sie auf Weiter:

Apt aktualisiert jetzt seine Paketdatenbank:

Sie können die Umfrage zur Paketnutzung überspringen, indem Sie Nein auswählen:

Wir brauchen einen Webserver, einen DNS-Server, einen Mailserver und eine MySQL-Datenbank, aber wählen Sie jetzt keine davon aus, weil es besser ist, so viel wie möglich zu kontrollieren, was auf dem System installiert ist und was nicht. Die notwendigen Pakete werden später manuell installiert. Daher wählen wir einfach Standard-Systemdienstprogramme und SSH-Server aus, damit nach Abschluss der Installation mit einem Terminal oder SSH-Client wie PuTTY eine SSH-Verbindung zum System hergestellt werden kann, und klicken auf Weiter:

Die im vorherigen Schritt aus jeder Kategorie ausgewählten Pakete werden heruntergeladen und auf dem System installiert:

Wenn Sie gefragt werden, ob Sie den GRUB-Bootloader im Master Boot Record installieren? wählen, wählen Sie Ja:

Die Installation des Basissystems ist nun abgeschlossen. Entfernen Sie die Debian Squeeze CD1 (oder netinstall) aus dem CD-Laufwerk und klicken Sie auf Weiter, um das System neu zu starten:

Der perfekte Server – Debian Squeeze (Debian 6.0) mit BIND, Dovecot &Nginx [ISPConfig 3] – Seite 3

4 Installieren Sie den SSH-Server

Wenn Sie während der grundlegenden Systeminstallation keinen SSH-Server installiert haben, können Sie dies jetzt tun:

apt-get install ssh openssh-server

Hinweis:Die Befehle in diesem Tutorial setzen voraus, dass Sie als root angemeldet sind. Vielleicht möchten Sie auch die CD-ROM-Zeile in Ihrer /etc/apt/sources.list löschen:

vi /etc/apt/sources.list

und drücken Sie zweimal schnell hintereinander d, um eine einzelne Zeile zu löschen, bis alle CD-ROM-Einträge gelöscht sind. Wenn Sie eine Zeile zu viel löschen, geben Sie :q ein! ohne Speichern zu beenden und erneut zu versuchen.

Sie sollten in der Lage sein, ein Terminal oder einen SSH-Client wie PuTTY zu verwenden und sich von Ihrer Workstation aus mit Ihrem Debian Squeeze-Server zu verbinden und den verbleibenden Schritten aus diesem Tutorial zu folgen.

Wenn Sie vi als In-Terminal-Texteditor verwenden, sollten Sie das folgende Paket installieren. Das standardmäßige vi-Programm auf Debian und Ubuntu hat einige schwerwiegende Fehler, die eine Bearbeitung manchmal unmöglich machen, also installieren wir vim-nox:

, um dies zu beheben
apt-get install vim-nox

(Sie können diesen Schritt überspringen und stattdessen einen anderen Texteditor wie joe oder nano installieren, wenn Sie ihn vi vorziehen.)

6 Das Netzwerk konfigurieren

Da das Debian Squeeze-Installationsprogramm unser System so konfiguriert hat, dass es seine Netzwerkeinstellungen über DHCP erhält, müssen Sie diese Konfiguration jetzt ändern, da ein Server eine statische IP-Adresse haben sollte. Bearbeiten Sie /etc/network/interfaces mit einem Texteditor und passen Sie es an Ihre Bedürfnisse an (in diesem Beispiel-Setup wird die IP-Adresse 192.168.0.100 verwendet). Bitte beachten Sie, dass allow-hotplug eth0 durch auto eth0 ersetzt werden sollte, da sonst ein Neustart der Netzwerkschnittstellen nicht funktioniert und einen Systemneustart erfordern würde. Um mit vi zu bearbeiten, geben Sie ein:

vi /etc/network/interfaces
# Diese Datei beschreibt die auf Ihrem System verfügbaren Netzwerkschnittstellen# und wie sie aktiviert werden. Weitere Informationen finden Sie unter Interfaces(5).# Die Loopback-Netzwerkschnittstelleauto loiface lo inet loopback# Die primäre Netzwerkschnittstelle#allow-hotplug eth0#iface eth0 inet dhcpauto eth0iface eth0 inet statische Adresse 192.168.0.100 Netzmaske 255.255.255.0 Netzwerk 192.168.0.0 Broadcast 192.168.0.255 Gateway 192.168.0.1
/etc/init.d/networking restart

Bearbeiten Sie dann /etc/hosts. Es sollte ungefähr so ​​aussehen:

vi /etc/hosts
127.0.0.1 localhost.localdomain localhost192.168.0.100 server1.example.com server1# Die folgenden Zeilen sind wünschenswert für IPv6-fähige Hosts::1 ip6 -localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allrouters

Führen Sie nun Folgendes aus:

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

oder

vi /etc/hostname
/etc/init.d/hostname.sh start

und bearbeiten Sie den Hostnamen auf diese Weise.

Führen Sie anschließend

aus
Hostname
Hostname -f

Nach beiden Befehlen muss server1.example.com erscheinen! Wenn Sie den Hostnamen und den Domänennamen bereits während des Installationsvorgangs festgelegt haben, sollten sie wahrscheinlich korrekt sein, obwohl die IP-Adresse und der vollqualifizierte Domänenname (FQDN) in die Datei /etc/hosts eingefügt werden müssen. Bei einer lokalen Installation könnten Sie .local als Top-Level-Domain (TLD) verwenden, aber in diesem Szenario benötigen Sie einen DNS-Server, der richtig konfiguriert ist, um lokale IP-Adressen aufzulösen.

7 Fügen Sie das Dotdeb-Repository hinzu und aktualisieren Sie Ihr Debian-System

Dieser Schritt ist entscheidend, damit nginx mit ISPConfig 3 und Ihrem Debian 6-System funktioniert. Fügen Sie das Dotdeb-Repository hinzu, indem Sie die Datei /etc/apt/sources.list bearbeiten und die 2 Zeilen und den optionalen Kommentar einfügen und den GPG-Schlüssel herunterladen und hinzufügen:

vi /etc/apt/sources.list
[...]# Dotdeb-Repositoriumdeb http://packages.dotdeb.org quetschen alldeb-src http://packages.dotdeb.org quetschen alle[...]

Holen 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 das Squeeze-Updates-Repository enthält (dies stellt sicher, dass Sie immer die neuesten Updates für den ClamAV-Virenscanner erhalten - dieses Projekt veröffentlicht sehr oft Releases, und manchmal funktionieren alte Versionen nicht mehr).

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

Ausführen:

apt-get-Update

um die apt-Paket-Repository-Datenbank zu aktualisieren, und falls Upgrades verfügbar sind, können sie installiert werden, wenn Sie:

apt-get-Upgrade

8 Standard-Shell ändern

/bin/sh ist ein symbolischer Link zu /bin/dash, jedoch ist /bin/bash notwendig, nicht /bin/dash. Tun Sie daher Folgendes:

dpkg-reconfigure dash

Dash als Standardsystem-Shell verwenden (/bin/sh)? <-- Nein

9 Systemuhr synchronisieren

Es empfiehlt sich, die Systemuhr mit einem NTP-Server (Network Time Protocol) über das Internet zu synchronisieren. Führen Sie einfach Folgendes aus:

apt-get install ntp ntpdate

um Ihre Systemzeit synchron zu halten.

Der perfekte Server – Debian Squeeze (Debian 6.0) mit BIND, Dovecot &Nginx [ISPConfig 3] – Seite 4

10 Installieren Sie 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

Ihnen werden die folgenden Fragen gestellt:

Allgemeine Art der E-Mail-Konfiguration:<-- Internet Site
System-Mail-Name:<-- server1.example.com
Neues Passwort für den MySQL-"root"-Benutzer:<-- yourrootsqlpassword
Wiederholen Passwort für den MySQL-„root“-Benutzer:<-- yourrootsqlpassword

Wir möchten, dass MySQL auf allen Schnittstellen lauscht, nicht nur auf localhost, deshalb bearbeiten wir /etc/mysql/my.cnf und kommentieren die Zeile bind-address =127.0.0.1:

aus
vi /etc/mysql/my.cnf
[...]# Anstatt das Netzwerk zu überspringen, wird jetzt standardmäßig nur auf# localhost gelauscht, was kompatibler und nicht weniger sicher ist. #Bind-Adresse =127.0.0.1[...]

Starten Sie dann MySQL neu:

/etc/init.d/mysql Neustart

Überprüfen Sie nun, ob das Netzwerk aktiviert ist. Ausführen

netstat -tap | grep mysql

Die Ausgabe sollte etwa so aussehen:

[email protected]:~# netstat -tap | grep mysql
tcp        0      0 *:mysql                 *:*                    HÖREN      10617/mysqld
[email protected]:~#

11 Installieren Sie Amavisd-new, SpamAssassin und Clamav

Um amavisd-new, SpamAssassin und ClamAV zu installieren, führen Sie Folgendes aus:

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 Setup-Skript von ISPConfig 3 verwendet amavisd, das die SpamAssassin-Filterbibliothek intern lädt, also stoppen wir SpamAssassin, um etwas RAM freizugeben:

/etc/init.d/spamassassin stop
update-rc.d -f spamassassin remove

12 Nginx, PHP5 (PHP-FPM) und Fcgiwrap installieren

Nginx ist als Paket aus dem Dotdeb-Repository verfügbar (die Pakete im offiziellen nginx-Repository funktionieren zum Zeitpunkt des Schreibens nicht mit ISPConfig 3), führen Sie also den folgenden Befehl aus, um es zu installieren:

apt-get install nginx

Apache sollte zu diesem Zeitpunkt noch nicht installiert sein, obwohl es später im Tutorial als Abhängigkeit für phpMyAdmin gezogen wird. Entfernen Sie Apache mit:

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

und alle anderen verwandten Pakete. Sie können auch Folgendes ausführen:

apt-get autoremove

um sicherzustellen, dass alle unnötigen Pakete gelöscht werden.

Damit PHP5 in nginx über PHP-FPM (FastCGI Process Manager) als Alternative zur PHP-FastCGI-Implementierung mit einigen zusätzlichen Funktionen für Websites jeder Größe funktioniert, installieren Sie es wie folgt:

apt-get install php5-fpm

PHP-FPM ist ein Daemon-Prozess mit dem Init-Skript /etc/init.d/php5-fpm, der einen FastCGI-Server auf Port 9000 ausführt.

Um MySQL-Unterstützung zu PHP hinzuzufügen, können wir das Paket php5-mysql installieren. Möglicherweise benötigen Sie auch einige zusätzliche PHP5-Module, um die erweiterten Funktionen Ihrer Webanwendungen zu unterstützen. Sie können wie folgt nach verfügbaren PHP5-Modulen suchen:

apt-cache-Suche php5

Wenn Sie sich nicht um Speicherplatz kümmern oder ob sie für die Installation erforderlich sind oder nicht, können Sie sie alle installieren:

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

oder löschen Sie diejenigen, von denen Sie wissen, dass Sie sie nicht benötigen.

APC ist ein kostenloser Open-Source-PHP-Opcode-Cacher zum Caching und Optimieren von PHP-Zwischencode. Es ähnelt anderen PHP-Opcode-Cachern wie eAccelerator und XCache. Es wird dringend empfohlen, eines davon zu installieren, um Ihre PHP-Seiten zu beschleunigen.

APC kann wie folgt installiert werden:

apt-get install php-apc

Starten Sie nun PHP-FPM neu:

/etc/init.d/php5-fpm Neustart

Fcgiwrap ist ein CGI-Wrapper, der auch für komplexe CGI-Skripte funktionieren sollte und für gemeinsam genutzte Hosting-Umgebungen verwendet werden kann, da er jedem vhost erlaubt, sein eigenes cgi-bin-Verzeichnis zu verwenden. Für CGI-Unterstützung in Nginx müssen Sie das Fcgiwrap-Paket wie folgt installieren:

apt-get install fcgiwrap

Nach der Installation sollte der fcgiwrap-Daemon bereits gestartet sein; sein Socket ist /var/run/fcgiwrap.socket. Wenn es nicht läuft, können Sie es mit dem Skript /etc/init.d/fcgiwrap starten.

Das ist es! Wenn Sie jetzt einen Nginx-Vhost erstellen, kümmert sich ISPConfig 3 um die korrekte Vhost-Konfiguration.

13 Installieren Sie phpMyAdmin und konfigurieren Sie HTTPS für Vhosts

Um phpMyAdmin zu installieren, führen Sie den folgenden Befehl aus:

apt-get install phpmyadmin

Ihnen werden die folgenden Fragen gestellt:

Webserver zur automatischen Neukonfiguration:<-- wählen Sie none (da nur Apache2 und lighttpd als Optionen verfügbar sind)
Datenbank für phpmyadmin mit dbconfig-common konfigurieren? <-- Nein

Wenn Sie „Ja“ ausgewählt haben, erhalten Sie einen Fehler, der unter diesem Link nachgelesen werden kann:http://serverfault.com/questions/341116/setting-up-phpmyadmin-got-a-mysql-syntax-error

Da Apache2 als Teil einer phpMyAdmin-Abhängigkeit installiert wird, stoppen Sie es jetzt mit:

/etc/init.d/apache2 stop

und entfernen Sie die Systemstart-Links von Apache:

insserv -r apache2

Danach nginx starten:

/etc/init.d/nginx start

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

Nachdem Sie ISPConfig 3 installiert haben, können Sie wie folgt auf phpMyAdmin zugreifen:

Der ISPConfig 3-Apps-Vhost auf Port 8081 für nginx wird mit einer phpMyAdmin-Konfiguration geliefert, sodass Sie http://server1.example.com:8081/phpmyadmin oder http://server1.example.com:8081/phpMyAdmin verwenden können, um auf phpMyAdmin zuzugreifen .

Wenn Sie einen /phpmyadmin- oder /phpMyAdmin-Alias ​​verwenden möchten, den Sie von Ihren Websites verwenden können, ist dies etwas komplizierter als für Apache 2, da nginx keine globalen Aliase hat (Aliase, die für alle vhosts definiert werden können). Daher müssen Sie die Aliase für jeden vhost definieren, damit Sie mit phpMyAdmin auf Ihre angegebene URI zugreifen können.

Fügen Sie dazu Folgendes in das Feld nginx-Anweisungen auf der Registerkarte Optionen jeder Website in ISPConfig3 ein (nachdem Sie es später im Tutorial installiert haben):

 location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; Speicherort ~ ^/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; schließen Sie /etc/nginx/fastcgi_params ein; 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; }

Wenn Sie https statt http für Ihren vhost verwenden, sollten Sie die Zeile fastcgi_param HTTPS on zu Ihrer phpMyAdmin-Konfiguration wie folgt hinzufügen:

 location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; Speicherort ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass 127.0.0.1:9000; fastcgi_param HTTPS an; # <-- diese Zeile hinzufügen fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; schließen Sie /etc/nginx/fastcgi_params ein; 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; }

Es ist ziemlich fraglich, ob Sie Daten und Passwörter im Klartext an phpMyAdmin oder andere Anwendungen übertragen möchten, die Sie sicher aufbewahren möchten. Um also sowohl http als auch https für Ihren vhost zu verwenden, sollten Sie den folgenden Abschnitt zum http {}-Abschnitt in /etc/nginx/nginx.conf hinzufügen, vor allen include-Zeilen, dies bestimmt, ob der Besucher http oder https verwendet, und legt fest, ob der Besucher http oder https verwendet $fastcgi_https-Variable. Verwenden Sie dies entsprechend in Ihrer phpMyAdmin-Konfiguration:

vi /etc/nginx/nginx.conf
[...]http {[...] ## Erkennen, wenn HTTPS verwendet wird map $scheme $fastcgi_https { default off; https an; }[...]}[...]

Vergessen Sie nicht, nginx danach neu zu laden:

/etc/init.d/nginx neu laden

Gehen Sie dann erneut zum Feld nginx-Anweisungen und fügen Sie anstelle von fastcgi_param HTTPS die Zeile fastcgi_param HTTPS $fastcgi_https hinzu, sodass Sie phpMyAdmin sowohl für http- als auch für https-Anfragen verwenden können:

 location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; Speicherort ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass 127.0.0.1:9000; fastcgi_param HTTPS $fastcgi_https; # <-- diese Zeile hinzufügen fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; schließen Sie /etc/nginx/fastcgi_params ein; 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 Mailman installieren

Seit Version 3.0.4 ermöglicht Ihnen ISPConfig auch das Verwalten (Erstellen/Ändern/Löschen) von Mailman-Mailinglisten. Wenn Sie diese Funktion nutzen möchten, installieren Sie Mailman wie folgt:

apt-get install mailman

Bevor wir Mailman starten können, muss eine erste Mailingliste namens mailman erstellt werden:

Newlist-Mailman

[email protected]:~# newlist mailman
Geben Sie die E-Mail-Adresse der Person ein, die die Liste führt: <-- Admin-E-Mail-Adresse, z. B. [email protected]
Anfängliches Mailman-Passwort: <-- Admin-Passwort für die Mailman-Liste
Um die Erstellung Ihrer Mailingliste abzuschließen, müssen Sie Ihre /etc/aliases oder
eine äquivalente Datei bearbeiten Hinzufügen der folgenden Zeilen:

## 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 mailman bestätigen"
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 Mailman abbestellen"

Drücken Sie die Eingabetaste, um den Mailman-Besitzer zu benachrichtigen... <-- ENTER

[email protected]:~#

Danach /etc/aliases öffnen:

vi /etc/aliases

und fügen Sie 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 prallt mailman ab"mailman-confirm:"|/var/lib/mailman/mail/mailman bestätigen mailman"mailman- join:"|/var/lib/mailman/mail/mailman join mailman"mailman-leave:"|/var/lib/mailman/mail/mailman verlässt mailman"mailman-owner:"|/var/lib/mailman/mail /mailman Besitzer mailman"mailman-request:"|/var/lib/mailman/mail/mailman mailman anfordern"mailman-subscribe:"|/var/lib/mailman/mail/mailman mailman abonnieren"mailman-unsubscribe:"|/ var/lib/mailman/mail/mailman unsubscribe mailman"

Führen Sie newaliases aus und starten Sie Postfix neu:

newaliases
/etc/init.d/postfix restart

Starten Sie dann den Mailman-Daemon:

/etc/init.d/mailman start

Nachdem Sie ISPConfig 3 installiert haben, können Sie wie folgt auf Mailman zugreifen:

Der vhost der ISPConfig-Apps auf Port 8081 für nginx wird mit einer Mailman-Konfiguration geliefert, sodass Sie http://server1.example.com:8081/cgi-bin/mailman/admin/ oder http://server1.example verwenden können .com:8081/cgi-bin/mailman/listinfo/, um auf Mailman zuzugreifen.

Wenn Sie Mailman von Ihren individuellen Websites aus verwenden möchten, ist die Konfiguration etwas komplizierter als bei Apache, da nginx keine globalen Aliase hat (Definieren von Aliasen, die später für alle Hosts funktionieren, z. B. domain.tld/definedalias). Daher müssen Sie für jeden vhost, von dem aus Sie auf Mailman zugreifen möchten, Aliase definieren.

Fügen Sie dazu Folgendes in das Feld nginx-Anweisungen ein, nachdem ISPConfig auf der Registerkarte Optionen jeder Website installiert wurde:

 Speicherort /cgi-bin/mailman { root /usr/lib/; fastcgi_split_path_info (^/cgi-bin/mailman/[^/]*)(.*)$; schließen Sie /etc/nginx/fastcgi_params ein; 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; } Ort /pipermail { alias /var/lib/mailman/archives/public; Autoindex an; }

Dies definiert den Alias ​​/cgi-bin/mailman/ für Ihren vhost, was bedeutet, dass Sie auf die Mailman-Admin-Oberfläche für eine Liste unter http:///cgi-bin/mailman/admin/ zugreifen können, und die Webseite für Benutzer einer Mailingliste finden Sie unter http:///cgi-bin/mailman/listinfo/.

Unter http:///pipermail finden Sie das Archiv der Mailingliste.

Der perfekte Server – Debian Squeeze (Debian 6.0) mit BIND, Dovecot &Nginx [ISPConfig 3] – Seite 5

15 Installieren Sie PureFTPd und Quota

PureFTPd und Quota können mit dem folgenden Befehl installiert werden:

apt-get install pure-ftpd-common pure-ftpd-mysql Kontingent Kontingenttool

Bearbeiten Sie die Datei /etc/default/pure-ftpd-common:

vi /etc/default/pure-ftpd-common

Der Startmodus ist höchstwahrscheinlich bereits auf Standalone eingestellt, aber stellen Sie sicher, dass VIRTUALCHROOT=true auch so definiert ist:

[...]STANDALONE_OR_INETD=eigenständig[...]VIRTUALCHROOT=true[...]

Es ist wahrscheinlich, dass alle Zeilen auskommentiert sind, aber es lohnt sich, in /etc/inetd.conf nach einer Zeile zu suchen, die mit ftp stream tcp beginnt, und sie auszukommentieren. Wenn die Datei oder Zeile nicht vorhanden ist, besteht keine Notwendigkeit, sie zu bearbeiten oder zu erstellen. Dadurch wird verhindert, dass inetd versucht, ftp:

zu starten
vi /etc/inetd.conf

Kommentieren Sie es wie folgt aus:

[...]#:STANDARD:Dies sind Standarddienste.#ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/ reiner-ftpd-wrapper[...]

Wenn Sie /etc/inetd.conf ändern mussten, starten Sie inetd jetzt neu:

/etc/init.d/openbsd-inetd Neustart

Jetzt können Sie PureFTPd so konfigurieren, dass FTP- und TLS-Sitzungen zugelassen werden. FTP ist ein sehr unsicheres Protokoll, da alle Passwörter und Daten im Klartext übertragen werden. Durch die Verwendung von TLS können die Datenübertragungen verschlüsselt werden, wodurch FTP viel sicherer wird.

Wenn Sie die Ausführung von FTP- und TLS-Sitzungen zulassen möchten:

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

Um TLS verwenden zu können, müssen Sie ein SSL-Zertifikat erstellen. Erstellen Sie das Verzeichnis und generieren Sie das SSL-Zertifikat in /etc/ssl/private/ mit den folgenden Befehlen:

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

Ländername (2-Buchstaben-Code) [AU]:<-- Geben Sie Ihren Ländernamen ein (z. B. "DE").
Staats- oder Provinzname (vollständiger Name) [Some-State]:<-- Geben Sie Ihren Staat ein oder Provinzname.
Ortsname (zB Stadt) []:<-- Geben Sie Ihre Stadt ein.
Organisationsname (zB Firma) [Internet Widgits Pty Ltd]:<-- Geben Sie Ihren Organisationsnamen ein (z. B. der Name Ihres Unternehmens).
Name der Organisationseinheit (z. B. Abteilung) []:<-- Geben Sie den Namen Ihrer Organisationseinheit ein (z. B. "IT-Abteilung").
Allgemeiner Name (z. B. IHR Name) []:<-- Geben Sie den vollständig qualifizierten Domänennamen des Systems ein (z. B. "server1.example.com").
E-Mail-Adresse []:<-- Geben Sie Ihre E-Mail-Adresse ein.

Ändern Sie dann die Berechtigungen des SSL-Zertifikats und starten Sie PureFTPd neu:

chmod 600 /etc/ssl/private/pure-ftpd.pem
/etc/init.d/pure-ftpd-mysql Neustart

Bearbeiten Sie /etc/fstab durch Hinzufügen von ,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 zur Partition mit dem Einhängepunkt /, kann auch auf /var erfolgen, wenn Sie eine separate /var-Partition haben:

vi /etc/fstab
# /etc/fstab:Statische Dateisysteminformationen.## Verwenden Sie 'blkid', um die universell eindeutige Kennung für ein# Gerät auszugeben; Dies kann mit UUID=als robusterer Weg zum Benennen von Geräten# verwendet werden, der auch dann funktioniert, wenn Festplatten hinzugefügt und entfernt werden. Siehe fstab(5).##     
 proc /proc proc defaults 0 0# / war während der Installation auf /dev/sda1UUID=92bceda2-5ae4- 4e3a-8748-b14da48fb297 / ext3 Fehler=remount-ro,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0 1# Swap war auf /dev/sda5 während der InstallationUUID=e24b3e9e-095c-4b49-af27-6363a4b7d094 keine Swap sw 0 0/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0

Auf einer separaten /var-Partition können Sie usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 unter folgenden Optionen verwenden:

[...]# / war während der Installation auf /dev/sda1UUID=92bceda2-5ae4-4e3a-8748-b14da48fb297 / ext3 error=remount- ro 0 1[...]# /var war während der Installation auf /dev/sda3UUID=be189fc3-b1b0-4e41-822c-6f81aa504bc1 /var ext3 usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0 2[ ...]

Bitte beachten Sie, dass sich die UUIDs, Partitionen und Dateisystemtypen auf Ihrem System wahrscheinlich unterscheiden, also ändern Sie die nicht zu denen in der Beispielkonfiguration.

Führen Sie die folgenden Befehle aus, um Kontingente zu aktivieren:

mount -o remount /
quotacheck -avugm
quotaon -avug

Wenn Sie Quota auf /var aktiviert haben, erhalten Sie möglicherweise eine ähnliche Antwort auf Ihrem Terminal:

quotacheck:Scannen von /dev/sda3 [/var] abgeschlossen
quotacheck:Alte Benutzerkontingentdatei kann nicht angezeigt werden:Keine solche Datei oder Verzeichnis
quotacheck:Alte Gruppenkontingentdatei kann nicht angezeigt werden:Keine solche Datei oder Verzeichnis
quotacheck:Kontingentdatei des alten Benutzers kann nicht angezeigt werden:Keine solche Datei oder dieses Verzeichnis
quotacheck:Kontingentdatei der alten Gruppe kann nicht angezeigt werden:Keine solche Datei oder dieses Verzeichnis
quotacheck:335 Verzeichnisse und 3233 Dateien überprüft
quotacheck:Alte Datei nicht gefunden.
quotacheck:Alte Datei nicht gefunden.
[email protected]:~# quoteon -avug
/dev/sda3 [/var]:Gruppe Kontingente aktiviert
/dev/sda3 [/var]:Benutzerkontingente aktiviert

16 Installieren Sie den BIND-DNS-Server

BIND kann wie folgt installiert werden:

apt-get install bind9 dnsutils

17 Vlogger, Webalizer und AWstats installieren

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

apt-get install vlogger webalizer awstats geoip-database

Öffnen Sie /etc/cron.d/awstats, um es zu bearbeiten...

vi /etc/cron.d/awstats

... und kommentieren Sie beide Cron-Jobs in dieser Datei aus:

#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] &&/usr/ share/awstats/tools/update.sh# Statische Berichte generieren:#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] &&/usr/share/awstats/tools/buildstatic .sh

18 Jailkit installieren

Jailkit wird nur benötigt, wenn Sie SSH-Benutzer chrooten möchten. Jailkit muss vor ISPConfig 3 installiert werden, es kann nicht nachträglich installiert werden! Es kann wie folgt installiert 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*

The Perfect Server - Debian Squeeze (Debian 6.0) With BIND, Dovecot &Nginx [ISPConfig 3] - Page 6

19 Install fail2ban

This is optional but also recommended, because the ISPConfig monitor tries to show the contents of the log file:

apt-get install fail2ban

To make fail2ban monitor PureFTPd and Dovecot create the file /etc/fail2ban/jail.local...

vi /etc/fail2ban/jail.local

... and insert:

[pureftpd]enabled =trueport =ftpfilter =pureftpdlogpath =/var/log/syslogmaxretry =3[dovecot-pop3imap]enabled =truefilter =dovecot-pop3imapaction =iptables-multiport[name=dovecot-pop3imap, port="pop3,pop3s,imap,imaps", protocol=tcp]logpath =/var/log/mail.logmaxretry =5

Then create the two filter files:

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

Insert:

[Definition]failregex =.*pure-ftpd:\(.*@\) \[WARNUNG\] Authentifizierung für Benutzer fehlgeschlagen. *ignoreregex =
vi /etc/fail2ban/filter.d/dovecot-pop3imap.conf

Insert:

[Definition]failregex =(?:pop3-login|imap-login):.*(?:Authentifizierungsfehler|Anmeldung abgebrochen \(Authentifizierung fehlgeschlagen |Anmeldung abgebrochen \(versucht, deaktiviert zu verwenden|Verbindung getrennt \(Authentifizierung fehlgeschlagen|Anmeldung abgebrochen \(\d+ Authentifizierungsversuche).*rip=(?P\S*),.*ignoreregex =

Then restart fail2ban:

/etc/init.d/fail2ban restart

20 Install SquirrelMail (Optional)

This step is entirely optional. If you would like to install Roundcube instead then skip this step and refer to https://www.howtoforge.com/how-to-install-roundcube-0.7-for-ispconfig-3-on-debian-squeeze. You can do so after installing ISPConfig 3. To install the SquirrelMail webmail client just run:

apt-get install squirrelmail

... und SquirrelMail konfigurieren:

squirrelmail-configure

Wir müssen SquirrelMail mitteilen, dass wir Dovecot-IMAP/-POP3 verwenden:

SquirrelMail Konfiguration : Lesen Sie: config.php (1.4.0)
---------------------------------------------- ------------------------
Hauptmenü --
1. Organisationseinstellungen
2. Servereinstellungen
3. Ordner-Standardeinstellungen
4. Allgemeine Optionen
5. Themen
6. Adressbücher
7. Nachricht des Tages (MOTD)
8. Plugins
9. Datenbank
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. Das ändert nicht alles. 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. Das ändert nicht alles. 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 = 
                  trash_folder = Trash
                   sent_folder = Sent
                  draft_folder = Drafts
            show_prefix_option = false
          default_sub_of_inbox = false
show_contain_subfolders_optio n = 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. Organisationseinstellungen
2. Servereinstellungen
3. Ordner-Standardeinstellungen
4. Allgemeine Optionen
5. Themen
6. Adressbücher
7. Nachricht des Tages (MOTD)
8. Plugins
9. Datenbank
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. Organisationseinstellungen
2. Servereinstellungen
3. Ordner-Standardeinstellungen
4. Allgemeine Optionen
5. Themen
6. Adressbücher
7. Nachricht des Tages (MOTD)
8. Plugins
9. Datenbank
10. Languages

D. Set pre-defined settings for specific IMAP servers

C   Turn color on
S   Save data
Q   Quit

Command >> <-- Q

Now you can find SquirrelMail in the /usr/share/squirrelmail/ directory.

After you have installed ISPConfig 3, you can access SquirrelMail as follows:

The ISPConfig apps vhost on port 8081 for nginx comes with a SquirrelMail configuration, so you can use http://server1.example.com:8081/squirrelmail or http://server1.example.com:8081/webmail to access SquirrelMail.

If you want to use a /webmail or /squirrelmail alias that you can use from your web sites, this is a bit more complicated than for Apache because nginx does not support global aliases. Therefore you have to define the aliases for each vhost from which you want to access SquirrelMail.

To do this, paste the following into the nginx Directives field on the Options tab of the web site in ISPConfig:

 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; }

If you use https instead of http for your vhost, you should add the line fastcgi_param HTTPS on; to your SquirrelMail configuration like this:

 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; # <-- 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 ~* ^/squirrelmail/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } location /webmail { rewrite ^/* /squirrelmail last; }

If you use both http and https for your vhost you should have added the relevant section into /etc/nginx/nginx.conf while setting up phpMyAdmin earlier in the tutorial.

Go to the nginx Directives field again, and instead of fastcgi_param HTTPS on; you add the line fastcgi_param HTTPS $fastcgi_https; so that you can use SquirrelMail for both http and https requests:

 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; # <-- 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 ~* ^/squirrelmail/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } location /webmail { rewrite ^/* /squirrelmail last; }

The Perfect Server - Debian Squeeze (Debian 6.0) With BIND, Dovecot &Nginx [ISPConfig 3] - Page 7

21 Install ISPConfig 3

Before you start the ISPConfig installation ensure that Apache is stopped because phpMyAdmin will have installed Apache as a dependency. Should Apache2 already be installed on the system stop it now:

/etc/init.d/apache2 stop

and remove Apache's system startup links if you have not already done so in a previous step:

insserv -r apache2

Make sure that nginx is running:

/etc/init.d/nginx restart

If you have both Apache and nginx installed, the installer asks you which one you want to use:Apache and nginx detected. Select server to use for ISPConfig:(apache,nginx) [apache]:

Type nginx. If only Apache or nginx are installed, this is automatically detected by the installer, and no question is asked.

To install ISPConfig 3 from the latest released version, do this:

cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/

Der nächste Schritt ist die Ausführung

php -q install.php

Dadurch wird das ISPConfig 3-Installationsprogramm gestartet. Der Installer konfiguriert alle Dienste wie Postfix, Dovecot usw. für Sie. Eine manuelle Einrichtung wie bei ISPConfig 2 (perfekte Einrichtungsanleitungen) ist nicht erforderlich.

[email protected]:/tmp/ispconfig3_install/install# php -q install.php


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


>> Initial configuration

Operating System: Debian or compatible, unknown version.

    Following will be a few questions for primary configuration so be careful.
    Default values are in [brackets] and can be accepted with .
    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 []: <-- yourrootsqlpassword

MySQL database to create [dbispconfig]: <-- ENTER

MySQL charset [utf8]: <-- ENTER

Apache and nginx detected. Select server to use for ISPConfig: (apache,nginx) [apache]: <-- nginx

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
Configur ing SASL
Configuring PAM
Configuring Courier
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring Pureftpd
Configuring BIND
Configuring nginx
Configuring Vlogger
Configuring Apps vhost
Configuring Bastille Firewall
Configuring Fail2ban
Installing ISPConfig
ISPConfig Port [8080]: <-- ENTER

Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]: <-- ENTER

Generating RSA private key, 4096 bit long modulus
.............................................................................++
........................................................................................................................++
e is 65537 (0x10001)
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 q uite 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

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: <-- ENTER
An optional company name []: <-- ENTER
writing RSA key
Configuring DBServer
Installing ISPConfig crontab
no crontab for root
no crontab for getmail
Restarting services ...
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql restart

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop mysql ; start mysql. The restart(8) utility is also available.
mysql stop/waiting
mysql start/running, process 2463
 * Stopping Postfix Mail Transport Agent postfix
   ...done.
 * Starting Postfix Mail Transport Agent postfix
   ...done.
 * Stopping SASL Authentication Daemon saslauthd
   ...done.
 * Starting SASL Authentication Daemon saslauthd
   ...done.
Stopping amavisd: amavisd-new.
Starting amavisd: amavisd-new.
 * Stopping ClamAV daemon clamd
   ...done.
 * Starting ClamAV daemon clamd
Bytecode: Security mode set to "TrustSigned".
   ...done.
 * Stopping Courier authentication services authdaemond
   ...done.
 * Starting Courier authentication services authdaemond
   ...done.
 * Stopping Courier IMAP server imapd
   ...done.
 * Starting Courier IMAP server imapd
   ...done.
 * Stopping Courier IMAP-SSL server imapd-ssl
   ...done.
 * Starting Courier IMAP-SSL se rver imapd-ssl
   ...done.
 * Stopping Courier POP3 server...
   ...done.
 * Starting Courier POP3 server...
   ...done.
 * Stopping Courier POP3-SSL server...
   ...done.
 * Starting Courier POP3-SSL server...
   ...done.
 * Restarting Mailman master qrunner mailmanctl
 * Waiting...
   ...fail!
The master qrunner lock could not be acquired because it appears as if another
master qrunner is already running.

   ...done.
 * Reloading PHP5 FastCGI Process Manager php5-fpm
   ...done.
Reloading nginx configuration: nginx.
Restarting ftp server: Running: /usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql.conf -l pam -8 UTF-8 -O clf:/var/log/pure-ftpd/transfer.log -D -H -b -A -E -u 1000 -Y 1 -B
Installation completed.
You have mail in /var/mail/root
[email protected]:/tmp/ispconfig3_install/install#

The installer automatically configures all underlying services, so no manual configuration is needed.

You now also have the possibility to let the installer create an SSL vhost for the ISPConfig control panel, so that ISPConfig can be accessed using https:// instead of http://. To achieve this, just press ENTER when you see this question:Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]:.

You can then access ISPConfig 3 under http(s)://server1.example.com:8080/ or http(s)://192.168.0.100:8080/ ( http or https depends on what you chose during installation). Log in with the username admin and the password admin (you should change the default password and possibly edit the admin username after your first login):

If your browser indicates a 502 Bad Gateway error, just restart PHP-FPM and try the URL again:

/etc/init.d/php5-fpm restart

It can take a couple of minutes for the control panel to be accessible. The system should be ready to be used except if you have an error in your mail.log then read the note below.

21.1 ISPConfig 3 Manual

In order to learn how to use ISPConfig 3, I strongly recommend to download the ISPConfig 3 Manual.

Auf etwa 300 Seiten behandelt es das Konzept hinter ISPConfig (Admin, Reseller, Clients), erklärt, wie ISPConfig 3 installiert und aktualisiert wird, enthält eine Referenz für alle Formulare und Formularfelder in ISPConfig zusammen mit Beispielen für gültige Eingaben und bietet Tutorials für die häufigsten Aufgaben in ISPConfig 3. Es beschreibt auch, wie Sie Ihren Server sicherer machen können, und enthält am Ende einen Abschnitt zur Fehlerbehebung.

21.2 ISPConfig Monitor App For Android

Mit der ISPConfig Monitor App können Sie Ihren Serverstatus überprüfen und herausfinden, ob alle Dienste wie erwartet laufen. Sie können TCP- und UDP-Ports überprüfen und Ihre Server anpingen. In addition to that you can use this app to request details from servers that have ISPConfig installed (please note that the minimum installed ISPConfig 3 version with support for the ISPConfig Monitor App is 3.0.3.3! ); these details include everything you know from the Monitor module in the ISPConfig Control Panel (e.g. services, mail and system logs, mail queue, CPU and memory info, disk usage, quota, OS details, RKHunter log, etc.), and of course, as ISPConfig is multiserver-capable, you can check all servers that are controlled from your ISPConfig master server.

Anweisungen zum Herunterladen und zur Verwendung finden Sie unter http://www.ispconfig.org/ispconfig-3/ispconfig-monitor-app-for-android/.

22 Additional Notes

22.1 It is likely that emails are not sent or received so to correct this follow the steps below.

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

Similar error messages will appear in your mail log (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

Solution (this config should already exist after this tutorial):

Open your dovecot.conf /etc/dovecot/dovecot.conf, and make sure you have the following lines in it:

vi /etc/dovecot/dovecot.conf
[...]client { path =/var/spool/postfix/private/auth mode =0660 user =postfix group =postfix}[...]

Restart Dovecot.

Then check if /var/spool/postfix/private/auth got created:

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

Also make sure you add the following line into your /etc/postfix/main.cf file, sensibly on the line next to readme_directory =/usr/share/doc/postfix and restart postfix.

[...]queue_directory =/var/spool/postfix[...]
/etc/init.d/postfix Neustart

22.1 OpenVZ

If the Debian server that you have just set up in this tutorial is an OpenVZ container (virtual machine), you should do this on the host system, assuming that the ID of the OpenVZ container is 101, replace it with the correct VPSID on your system:

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

  • Debian:http://www.debian.org/
  • ISPConfig:http://www.ispconfig.org/

Panels
  1. Der perfekte Server – Ubuntu 14.10 (nginx, BIND, Dovecot, ISPConfig 3)

  2. Der perfekte Server – Ubuntu 15.04 (nginx, BIND, Dovecot und ISPConfig 3)

  3. Der perfekte Server – Ubuntu 12.10 (nginx, BIND, Dovecot, ISPConfig 3)

  4. Der perfekte Server – Debian 8.6 (nginx, BIND, Dovecot, ISPConfig 3.1)

  5. Der perfekte Server – Debian 9 (Nginx, BIND, Dovecot, ISPConfig 3.1)

Der perfekte Server – OpenSUSE 12.2 x86_64 (nginx, Dovecot, ISPConfig 3)

Der perfekte Server – CentOS 6.3 x86_64 (nginx, Dovecot, ISPConfig 3)

Der perfekte Server – Debian Wheezy (nginx, BIND, Dovecot, ISPConfig 3)

Der perfekte Server – Ubuntu 13.04 (Apache2, BIND, Dovecot, ISPConfig 3)

Der perfekte Server – CentOS 6.4 x86_64 (nginx, Dovecot, ISPConfig 3)

Der perfekte Server – Debian Wheezy (Apache2, BIND, Dovecot, ISPConfig 3)