Der Perfekte Server - Ubuntu 11.10 mit 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 Ubuntu 11.10 (Oneiric Ocelot) Server mit nginx auf die Installation von
ISPConfig 3 vorbereiten und dieses anschließend installieren. Ab Version 3.0.4 unterstützt ISPConfig zusätzlich zu Apache Servern nginx Server; dieses Tutorial beschäftigt sich mit dem nginx Setup anstatt von Apache. ISPConfig 3 ist eine Webhosting Kontrolloberfläche, die es Ihnen erlaubt folgende Dienste mit einem Internetbrowser zu konfigurieren: nginx und Apache Webserver, Postfix Mailserver, MySQL, BIND oder MyDNS Nameserver, PureFTPd, SpamAssassin, ClamAV und viele mehr.
Wollen Sie nginx anstatt von Apache mit ISPConfig nutzen, so beachten Sie bitte dass Ihre nginx Version mindestens 0.8.21 sein muss, außerdem müssen Sie PHP-FPM installieren. Für CGI/Perl Unterstützung
müssen Sie fcgiwrap benutzen. All dies wird in diesem Tutorial erklärt.
Beachten Sie außerdem, dass dieses Tutorial nicht für Debian Squeeze benutzt werden kann, da dieses eine ältere nginx Version (0.7.67) benutzt und kein PHP-FPM Paket mitbringt!
Beachten Sie bitte, dass dieses Setup nicht mit ISPConfig 2 kompatibel ist! Es ist nur für ISPConfig 3 gültig!
Für den Inhalt des Tutorials gebe ich keinerlei Garantie!
1 Voraussetzungen
Um ein solches System zu installieren, brauchen Sie folgendes:
2 Vorbemerkung
In diesem Tutorial benutze ich den Hostnamen
server1.example.com mit der IP-Adresse
192.168.0.100 und dem Gateway
192.168.0.1. Diese Einstellungen werden sich von Ihren unterscheiden, Sie werden sie also an den entsprechenden Stellen ersetzen müssen.
3 Das Basissystem
Legen Sie die Ubuntu Installations-CD ins Laufwerk ein und starten Sie Ihren Computer davon. Wählen Sie Ihre Sprache aus (Ich werde hier Englisch wählen, die Steuerungselemente sind jedoch in allen Sprachen gleich angeordnet):
Wählen Sie
Install Ubuntu Server:
Wählen Sie erneut Ihre Sprache (diese wird die Standardsprache Ihres installierten Systems sein):
Wählen Sie dann Ihr Land aus:
Haben Sie eine ungewöhnliche Kombination von Sprache und Land ausgewählt (so wie in meinem Fall Englisch als Sprache und Deutschland als Land), wird Ihnen der Installer sagen, dass er keine dazu passenden Ortseinstellungen findet. Sie müssen dann ein Land auswählen, auf dem diese Einstellungen basieren sollen (Sprache, Zeichensatz). Ich wähle hier
en_US.UTF-8:
Wählen Sie ein Tastaturlayout (Sie können dies entweder durch automatische Detektion oder durch Auswahl von einer Liste tun - wählen Sie
Yes für die automatische Detektion oder
No für die Listenauswahl):
Der Installer überprüft die Installations-CD, Ihre Hardware, und konfiguriert das Netzwerk mit DHCP, wenn er einen DHCP Server im Netzwerk findet:
Geben Sie einen Hostnamen an. Ich wähle für dieses Beispiel den Systemnamen
server1.example.com, also gebe ich
server1 ein:
Geben Sie an, ob der Installer Ihre Zeitzone korrekt erkannt hat. Ist diese richtig, wählen Sie
Yes, andernfalls
No:
Nun müssen Sie Ihre Festplatte partitionieren. Der Einfachheit halber wähle ich
Guided - use entire disk and set up LVM - dies wird eine Datenträgergruppe mit zwei Datenträgern erstellen, einen für das
/ Datensystem und einen als Swap (natürlich können Sie Ihre Festplatte auch anders partitionieren - wenn Sie wissen was Sie tun, steht Ihnen die Möglichkeit offen dies manuell zu tun).
Wählen Sie die Festplatte, die Sie partitionieren möchten:
Sobald Sie gefragt werden
Write the changes to disks and configure LVM?, wählen Sie
Yes:
Wenn Sie wie ich
Guided - use entire disk and set up LVM gewählt haben, wird der Partitionierer eine große Datenträgergruppe erstellen, die den gesamten Festplattenplatz einnimmt. Sie können jeweils konfigurieren, wie viel Platz für die
/ und Swap benutzt werden soll. Unter Umständen macht es Sinn, einigen Speicherplatz unbenutzt zu lassen, um später die vorhandenen Datenträger vergrößern oder neue anlegen zu können - es gibt Ihnen somit mehr Flexibilität.
Wenn Sie fertig sind, wählen Sie
Yes wenn Sie dies gefragt werden:
Write the changes to disks?:
Daraufhin werden Ihr Partitionen erstellt und formatiert:
Nun wird das Basissystem installiert:
Erstellen Sie einen Benutzer, zum Beispiel den Benutzer
Administrator mit dem Benutzernamen
administrator (benutzen Sie nicht den Benutzernamen
admin, da dieser auf Ubuntu 11.10 reserviert ist):
Ich brauche kein verschlüsseltes Privatverzeichnis, deshalb wähle ich hier
No:
Als nächstes wird die Paketverwaltung apt konfiguriert. Lassen Sie die HTTP proxy Zeile leer, esseidenn Sie wollen einen Proxy Server benutzen, um sich mit dem Intenet zu verbinden:
Ich möchte, um mehr Kontrolle zu haben, meine Server manuell aktualisieren, deshalb stelle ich die automatischen Aktualisierungen durch die Auswahl von
No automatic updates ab. Natürlich können Sie hier auswählen, was Ihnen lieber ist:
Wir benötigen einen DNS-, Mail- und LAMP Server, wählen Sie hier jedoch noch keinen dieser aus. Wir werden Sie später manuell installieren um kontrollieren zu können, was genau auf dem System installiert wird. Der einzige Eintrag, den Sie ankreuzen sollten, ist
OpenSSH server, damit man sich, sofort nachdem die Installation fertiggestellt ist, mit einem SSH Client wie
PuTTY mit dem Server verbinden kann:
Die Installation geht weiter:
Der GRUB Boot Loader wird installiert:
Wählen Sie
Yes, wenn Sie dies gefragt werden:
Install the GRUB boot loader to the master boot record?:
Die Installation des Basissystems ist nun abgeschlossen. Entfernen Sie die Installations-CD aus dem Laufwerk und wählen Sie
Continue, um das System neu zu starten:
Nun zum nächsten Schritt...
4 Administrativrechte
Nach dem Neustart können Sie sich mit dem zuvor angelegten Benutzernamen anmelden (z.B.
administrator). Da Sie alle Schritte dieses Tutorials mit root-Rechten ausführen müssen, können Sie entweder jedem Befehl ein
sudo voranstellen, oder sich durch folgenden befehl als root einloggen:
sudo su
(Sie können die root-Anmeldung auch durch
sudo passwd root
und die Verleihung eines root-Passwortes erlauben. Sie können sich dann direkt als root einloggen, dies wird jedoch von den Ubuntu entwicklern als auch der Gemeinde aus verschiedenen Gründen nicht empfohlen. Lesen Sie hierzu
http://ubuntuforums.org/showthread.php?t=765414.)
5 Installation des SSH Servers (Optional)
Haben Sie den OpenSSH Server nicht während der Systeminstallation mitinstalliert, können Sie dies nun nachholen:
apt-get install ssh openssh-server
Von jetzt an können Sie einen SSH Client wie
PuTTY benutzen, um sich von Ihrer Arbeitsoberfläche mit Ihrem Ubuntu 11.10 Server zu verbinden und die restlichen Schritte des Tutorials auszuführen.
6 Installation von vim-nox (Optional)
Ich werde in diesem Tutorial
vi als Textbearbeitungsprogramm benutzen. Das Standardprogramm
vi weist jedoch merkwürdiges Verhalten auf Ubuntu und Debian auf; um dies zu umgehen installiere ich
vim-nox:
apt-get install vim-nox
(Diesen Schritt können Sie auslassen, wenn Sie einen anderen Texteditor wie joe oder nano verwenden.)
7 Das Netzwerk konfigurieren
Da der Ubuntu Installer das System so konfiguriert hat, dass es seine Netzwerkeinstellungen durch DHCP bezieht, müssen wir dies umstellen, da ein Server eine statische IP-Adresse haben sollte. Editieren Sie
/etc/network/interfaces und passen Sie sie nach Ihren Vorstellungen an (in diesem Beispielsetup benutze ich die IP-Adresse
192.168.0.100):
vi /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
Starten Sie dann Ihr Netzwerk neu:
/etc/init.d/networking restart
Editieren Sie dann
/etc/hosts. Lassen Sie die Datei 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 restart
Danach, benutzen Sie
hostname
hostname -f
Beide sollten nun
server1.example.com anzeigen.
8 Editieren Sie /etc/apt/sources.list und aktualisieren Ihre Linux Installation
Editieren Sie
/etc/apt/sources.list. Entfernen Sie die Installations-CD oder kommentieren Sie diese aus der Datei aus und stellen Sie sicher, dass die
universe und
multiverse Repositories aktiviert sind. Die Datei sollte wie folgt aussehen:
vi /etc/apt/sources.list
#
# deb cdrom:[Ubuntu-Server 11.10 _Oneiric Ocelot_ - Release amd64 (20111011)]/ dists/oneiric/main/binary-i386/
# deb cdrom:[Ubuntu-Server 11.10 _Oneiric Ocelot_ - Release amd64 (20111011)]/ dists/oneiric/restricted/binary-i386/
# deb cdrom:[Ubuntu-Server 11.10 _Oneiric Ocelot_ - Release amd64 (20111011)]/ oneiric main restricted
#deb cdrom:[Ubuntu-Server 11.10 _Oneiric Ocelot_ - Release amd64 (20111011)]/ dists/oneiric/main/binary-i386/
#deb cdrom:[Ubuntu-Server 11.10 _Oneiric Ocelot_ - Release amd64 (20111011)]/ dists/oneiric/restricted/binary-i386/
#deb cdrom:[Ubuntu-Server 11.10 _Oneiric Ocelot_ - Release amd64 (20111011)]/ oneiric main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://de.archive.ubuntu.com/ubuntu/ oneiric main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ oneiric main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://de.archive.ubuntu.com/ubuntu/ oneiric-updates main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ oneiric-updates main restricted
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://de.archive.ubuntu.com/ubuntu/ oneiric universe
deb-src http://de.archive.ubuntu.com/ubuntu/ oneiric universe
deb http://de.archive.ubuntu.com/ubuntu/ oneiric-updates universe
deb-src http://de.archive.ubuntu.com/ubuntu/ oneiric-updates universe
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://de.archive.ubuntu.com/ubuntu/ oneiric multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ oneiric multiverse
deb http://de.archive.ubuntu.com/ubuntu/ oneiric-updates multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ oneiric-updates multiverse
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://de.archive.ubuntu.com/ubuntu/ oneiric-backports main restricted universe multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ oneiric-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu oneiric-security main restricted
deb-src http://security.ubuntu.com/ubuntu oneiric-security main restricted
deb http://security.ubuntu.com/ubuntu oneiric-security universe
deb-src http://security.ubuntu.com/ubuntu oneiric-security universe
deb http://security.ubuntu.com/ubuntu oneiric-security multiverse
deb-src http://security.ubuntu.com/ubuntu oneiric-security multiverse
## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu oneiric partner
# deb-src http://archive.canonical.com/ubuntu oneiric partner
## Uncomment the following two lines to add software from Ubuntu's
## 'extras' repository.
## This software is not part of Ubuntu, but is offered by third-party
## developers who want to ship their latest software.
# deb http://extras.ubuntu.com/ubuntu oneiric main
# deb-src http://extras.ubuntu.com/ubuntu oneiric main
Benutzen Sie dann
apt-get update
um die apt Paketdatendank zu aktualisieren und
apt-get upgrade
um die neusten Updates zu installieren (falls es welche gibt). Falls Sie sehen, dass ein neuer Kernel mit den Updates installiert wird, sollten Sie Ihr System danach neustarten:
reboot
9 Standardshell ändern
/bin/sh ist ein Symlink zu
/bin/dash, wir brauchen aber
/bin/bash, nicht
/bin/dash. Deshalb führen Sie dies aus:
dpkg-reconfigure dash
Use dash as the default system shell (/bin/sh)? <-- No
Tun Sie dies nicht, wird die Installation von ISPConfig fehlschlagen.
10 AppArmor deaktivieren
AppArmor ist ein erweiterter Sicherheitsdienst (ähnlich SELinux). Er sollte eigentlich die Sicherheit des Systems verbessern, verursacht aber eher Probleme. Meiner Meinung nach brauchen Sie es nicht, um ein sicheres System zu konfigurieren (AppArmor meldet ab und zu ein Problem mit einem Dienst, welches es selbst verursacht). Um später ISPConfig zu installieren, muss der Dienst ohnehin deaktiviert werden, deshalb beschreibe ich nun, wie es funktioniert:
Sie können es wie folgt deaktivieren:
/etc/init.d/apparmor stop
update-rc.d -f apparmor remove
apt-get remove apparmor apparmor-utils
11 Die Systemuhr synchronisieren
Es ist eine gute Sache, die Systemuhrzeit mit einem NTP (
network
time
protocol) Server über das Internet zu synchronisieren. Benutzen Sie dazu einfach
apt-get install ntp ntpdate
und Ihre Systemuhr wird immer synchronisiert sein.
12 Installation von Postfix, Courier, Saslauthd, MySQL, rkhunter,
binutils
Sie können Postfix, Courier, Saslauthd, MySQL, rkhunter und binutils mit einem einzigen Befehl installieren:
apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl getmail4 rkhunter binutils maildrop
Sie werden die folgenden Fragen gefragt werden:
New password for the MySQL "root" user: <-- IhrrootSQLPasswort
Repeat password for the MySQL "root" user: <-- IhrrootSQLPasswort
Create directories for web-based administration? <-- No
General type of mail configuration: <-- Internet Site
System mail name: <-- server1.example.com
SSL certificate required <-- Ok
Sollten Sie später herausfinden (später, nachdem Sie in ISPConfig Ihren erstes Mailkonto angelegt haben), dass Sie keine Mails versenden können und folgender Fehler in
/var/log/mail.log auftaucht...
SASL LOGIN authentication failed: no mechanism available
... gehen Sie bitte auf
https://www.howtoforge.com/forums/showpost.php?p=265831&postcount=25 um zu erfahren, wie man den Fehler behebt.
Wir wollen, dass MySQL alle Interfaces überprüft, nicht nut localhost. Editieren Sie deshalb
/etc/mysql/my.cnf und kommentieren Sie die Zeile
bind-address = 127.0.0.1 aus:
vi /etc/mysql/my.cnf
[...]
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address = 127.0.0.1
[...]
Starten Sie MySQL dann neu:
/etc/init.d/mysql restart
Überprüfen Sie nun, ob Networking erlaubt ist. Benutzen Sie dazu
netstat -tap | grep mysql
Die Ausgabe sollte etwa so aussehen:
root@server1:~# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 22355/mysqld
root@server1:~#
Während der Installation werden die SSL Zertifikate für IMAP-SSL und POP3-SSL mit dem Hostnamen
localhost erstellt. Um den korrekten Hostnamen anzugeben (
server1.example.com in diesem Tutorial) löschen Sie die Zertifikate...
cd /etc/courier
rm -f /etc/courier/imapd.pem
rm -f /etc/courier/pop3d.pem
... und modifizieren die folgenden zwei Dateien; ersetzen Sie
CN=localhost mit
CN=server1.example.com (Sie können auch die anderen Werte ändern, sollte dies nötig sein):
vi /etc/courier/imapd.cnf
[...]
CN=server1.example.com
[...]
vi /etc/courier/pop3d.cnf
[...]
CN=server1.example.com
[...]
Replizieren Sie dann die Zertifikate...
mkimapdcert
mkpop3dcert
... und starten Courier-IMAP-SSL und Courier-POP3-SSL neu:
/etc/init.d/courier-imap-ssl restart
/etc/init.d/courier-pop-ssl restart
13 Installation von 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 ISPConfig 3 Setup benutzt amavisd, welches die SpamAssassin Filter Library intern lädt, sodass Sie SpamAssassin beenden können um ein wenig RAM zu gewinnen:
/etc/init.d/spamassassin stop
update-rc.d -f spamassassin remove
14 Installation von Nginx, PHP5 (PHP-FPM) und Fcgiwrap
Nginx ist für Ubuntu als Paket verfügbar, installieren Sie es wie folgt:
apt-get install nginx
Ist bereits Apache auf dem System installiert, stoppen Sie es nun...
/etc/init.d/apache2 stop
... und entfernen Apaches Systemstartlinks:
insserv -r apache2
Starten Sie nginx danach neu:
/etc/init.d/nginx start
(Sind sowohl Apache als auch nginx installiert wird Sie der Installer fragen, welches von ihnen Sie benutzen wollen - antworten Sie hier
nginx. Ist nur eins von beiden installiert, wird ISPConfig die nötige Konfiguration von automatisch vornehmen.)
PHP5 lässt sich in nginx mit
PHP-FPM benutzen (PHP-FPM (FastCGI Process Manager) ist eine alternative PHP FastCGI Implementierung mit einigen zusätzlichen, für Seiten jeder Größenordnung nützlichen Features, vor allem aber für ausgelastetere Seiten). Installieren Sie es folgendermaßen:
apt-get install php5-fpm
PHP-FPM ist ein Daemon-Prozess (mit dem init-Script
/etc/init.d/php5-fpm), der einen FastCGI Server auf dem Port
9000 betreibt.
Um MySQL Unterstützung in PHP zu erhalten, müssem Sie das
php5-mysql Paket installieren. Es ist außerdem immer gut, einige andere PHP5 Module zu installieren, da Sie diese für Ihre Anwendungen brauchen könnten. Sie können folgendermaßen nach verfügbaren PHP5 Modulen suchen:
apt-cache search php5
Wählen Sie die aus, die Sie brauchen und installieren Sie sie:
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
APC ist ein kostenloser und offener PHP opcode Cacher zum Cachen und Optimieren von PHP intermediate Code, es ist anderen opcode Cachern wie eAccelerator und XCache ähnlich. Es wird dringlichst empfohlen einen von diesen auf Ihrer PHP Seite installiert zu haben.
APC kann wie folgt installiert werden:
apt-get install php-apc
Starten Sie PHP-FPM nun neu:
/etc/init.d/php5-fpm restart
Für CGI Unterstützung in nginx installieren Sie Fcgiwrap.
Fcgiwrap ist ein CGI Wrapper der auch für komplexe CGI Skripts funktionieren sollte und für geteilte Hosting Umgebungen benutzt werden kann da es jedem vhost erlaubt, sein eigenes
cgi-bin Verzeichnis zu benutzen.
Installieren Sie das
fcgiwrap Paket:
apt-get install fcgiwrap
Nach der Installation sollte der
fcgiwrap Daemon bereits gestartet worden sein; sein Socket ist
/var/run/fcgiwrap.socket. Sollte dies nicht der Fall sein, können Sie das
/etc/init.d/fcgiwrap Skript benutzen um ihn zu starten.
Das war es. Wenn Sie nun einen nginx vhost erstellen, wird sich ISPConfig um die korrekte vhost Konfiguration kümmern.
14.1 Installation von phpMyAdmin
Installieren Sie nun phpMyAdmin:
apt-get install phpmyadmin
Ihnen werden die folgenden Fragen gestellt:
Web server to reconfigure automatically: <-- wählen Sie keinen (da nur apache2 und lighttpd als Optionen verfügbar sind)
Configure database for phpmyadmin with dbconfig-common? <-- No
Sie können phpMyAdmin nun im
/usr/share/phpmyadmin/ Verzeichnis finden.
Nachdem Sie ISPConfig installiert haben, können Sie folgendermaßen auf phpMyAdmin zugreifen:
Der ISPConfig Apps vhost auf Port 8081 für nginx liefert eine phpMyAdmin Konfiguration mit, Sie können deshalb
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:
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 $request_filename;
include /etc/nginx/fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
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 http
s 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; # <-- Fügen Sie diese Zeile hinzu
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include /etc/nginx/fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
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;
}
[...]
}
[...]
Vergessen Sie nicht, nginx danach neu zu starten:
/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; #<-- Fügen Sie diese Zeile hinzu
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include /etc/nginx/fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
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;
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
equivalent) file by adding the following lines, and possibly running the
`newaliases' program:
## 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
und starten Postfix neu:
/etc/init.d/postfix restart
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 von PureFTPd und Quota
PureFTPd und quota können mit dem folgenden 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
... und stellen Sie sicher, dass der start mode gleich
standalone und
VIRTUALCHROOT=true gesetzt sind:
[...]
STANDALONE_OR_INETD=standalone
[...]
VIRTUALCHROOT=true
[...]
Konfigurieren Sie nun PureFTPd dazu, FTP und TLS Sitzungen zu erlauben. FTP ist ein sehr unsicheres Protokoll, da alle Passwörter und Dateien in reiner Textform übertragen werden. Durch die Benutzung von TLS wird die gesamte Kommunikation verschlüsselt, wodurch es FTP sehr viel sicherer macht.
Wollen Sie FTP und TLS Sitzungen erlauben, führen Sie folgenden Befehl aus:
echo 1 > /etc/pure-ftpd/conf/TLS
Um TLS benutzen zu können, müssen Sie ein SSL Zertifikat erstellen. Ich tue dies in
/etc/ssl/private/, dieses Verzeichnis muss ich zuerst erstellen:
mkdir -p /etc/ssl/private/
Danach können Sie das SSL Zertifikat folgendermaßen erstellen:
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 Ihre Landesbezeichnung an (z.B., "DE").
State or Province Name (full name) [Some-State]: <-- Geben Sie Ihr Bundesland an.
Locality Name (eg, city) []: <-- Geben Sie Ihre Stadt an.
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Geben Sie den Namen Ihrer Organisation an (z.B., den Namen Ihrer Firma).
Organizational Unit Name (eg, section) []: <-- Geben Sie den Namen Ihrer Organisationseinheit an (z.B. "IT Abteilung").
Common Name (eg, YOUR name) []: <-- Geben Sie die vollwertige Domain des Systems an (z.B. "server1.example.com").
Email Address []: <-- Geben Sie Ihre Mail-Adresse an.
Ändern Sie die Zugriffsrechte 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 die
/etc/fstab Datei. Meine sieht wie folgt aus (Ich habe
,usrjquota=quota.user,grpjquota=quota.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 nodev,noexec,nosuid 0 0
/dev/mapper/server1-root / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
# /boot was on /dev/sda1 during installation
UUID=6fbce377-c3d6-4eb3-8299-88797d4ad18d /boot ext2 defaults 0 2
/dev/mapper/server1-swap_1 none swap sw 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0
Um Quota zu erlauben, benutzen Sie diese Befehle:
mount -o remount /
quotacheck -avugm
quotaon -avug
17 Installation des BIND DNS Servers
BIND kann folgendermaßen installiert werden:
apt-get install bind9 dnsutils
18 Installation von Vlogger, Webalizer und AWstats
Vlogger, webalizer und AWstats können wie folgt installiert werden:
apt-get install vlogger webalizer awstats
geoip-database
Ö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
19 Installation von Jailkit
Jailkit wird nur gebraucht, wenn Sie SSH Benutzer chrooten möchten. Es kann wie folgt installiert werden (
wichtig: Jailkit muss vor ISPConfig installiert werden - dies kann später nicht nachgeholt werden!):
apt-get install build-essential autoconf automake1.9 libtool flex bison debhelper binutils-gold
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
Installieren Sie das Jailkit
.deb Paket nun folgendermaßen:
cd ..
dpkg -i jailkit_2.14-1_*.deb
rm -rf jailkit-2.14*
20 Installation von fail2ban
Diese ist optional aber empfohlen, da der ISPConfig Monitor versucht, den fail2ban Log anzuzeigen:
apt-get install fail2ban
Um fail2ban PureFTPd, SASL und Courier überwachen 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
[sasl]
enabled = true
port = smtp
filter = sasl
logpath = /var/log/mail.log
maxretry = 5
[courierpop3]
enabled = true
port = pop3
filter = courierpop3
logpath = /var/log/mail.log
maxretry = 5
[courierpop3s]
enabled = true
port = pop3s
filter = courierpop3s
logpath = /var/log/mail.log
maxretry = 5
[courierimap]
enabled = true
port = imap2
filter = courierimap
logpath = /var/log/mail.log
maxretry = 5
[courierimaps]
enabled = true
port = imaps
filter = courierimaps
logpath = /var/log/mail.log
maxretry = 5
Erstellen Sie dann die folgen fünf Filterdateien:
vi /etc/fail2ban/filter.d/pureftpd.conf
[Definition]
failregex = .*pure-ftpd: (.*@<HOST>) [WARNING] Authentication failed for user.*
ignoreregex =
vi /etc/fail2ban/filter.d/courierpop3.conf
# Fail2Ban configuration file
#
# $Revision: 100 $
#
[Definition]
# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
# host must be matched by a group named "host". The tag "<HOST>" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P<host>S+)
# Values: TEXT
#
failregex = pop3d: LOGIN FAILED.*ip=[.*:<HOST>]
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =
vi /etc/fail2ban/filter.d/courierpop3s.conf
# Fail2Ban configuration file
#
# $Revision: 100 $
#
[Definition]
# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
# host must be matched by a group named "host". The tag "<HOST>" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P<host>S+)
# Values: TEXT
#
failregex = pop3d-ssl: LOGIN FAILED.*ip=[.*:<HOST>]
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =
vi /etc/fail2ban/filter.d/courierimap.conf
# Fail2Ban configuration file
#
# $Revision: 100 $
#
[Definition]
# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
# host must be matched by a group named "host". The tag "<HOST>" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P<host>S+)
# Values: TEXT
#
failregex = imapd: LOGIN FAILED.*ip=[.*:<HOST>]
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =
vi /etc/fail2ban/filter.d/courierimaps.conf
# Fail2Ban configuration file
#
# $Revision: 100 $
#
[Definition]
# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
# host must be matched by a group named "host". The tag "<HOST>" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P<host>S+)
# Values: TEXT
#
failregex = imapd-ssl: LOGIN FAILED.*ip=[.*:<HOST>]
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =
Starten Sie fail2ban danach neu:
/etc/init.d/fail2ban restart
21 Installation von SquirrelMail
Um den SquirrelMail Webmail Client zu installieren, benutzen Sie:
apt-get install squirrelmail
Konfigurieren Sie SquirrelMail anschließend:
squirrelmail-configure
Sie müssen SquirrelMail sagen, dass Sie Courier-IMAP/-POP3 benutzen:
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 >>
<-- courier
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
quit = Do not change anything
Command >> courier
imap_server_type = courier
default_folder_prefix = INBOX.
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 = .
delete_folder = true
Press any key to continue...
<-- ENTER
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 >> S
Data saved in config.php
Press enter to continue...
<-- ENTER
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
SquirrelMail lässt sich nun im
/usr/share/squirrelmail/ Verzeichnis finden.
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 $request_filename;
include /etc/nginx/fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
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 http
s 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; # <-- Fügen Sie diese Zeile hinzu
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include /etc/nginx/fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
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 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 SquirrelMail Konfiguration benutzt wird):
vi /etc/nginx/nginx.conf
[...]
http {
[...]
## Detect when HTTPS is used
map $scheme $fastcgi_https {
default off;
https on;
}
[...]
}
[...]
Vergessen Sie nicht, anschließend nginx neu zu starten:
/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 SquirrelMail sowohl für http als auch für https Anfragen benutzen können:
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; # <-- Fügen Sie diese Zeile hinzu
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include /etc/nginx/fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
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;
}
22 Installation von ISPConfig 3
Bevor Sie mit der Installation von ISPConfig beginnen, stellen Sie sicher, dass Apache gestoppt ist (falls es installiert ist - es ist möglich, dass einige installierte Pakete Apache als vorausgesetztes Paket mitinstalliert haben, ohne, dass Sie dies gemerkt hätten). Ist Apache2 installiert, stoppen Sie es jetzt...
/etc/init.d/apache2 stop
... und entfernen die Apache Systemstartlinks:
insserv -r apache2
Stellen Sie sicher, dass nginx gestartet ist:
/etc/init.d/nginx restart
(Haben Sie sowohl Apache als auch nginx installiert, wird Sie der Installer fragen, welches davon Sie benutzen möchten:
Apache and nginx detected. Select server to use for ISPConfig: (apache,nginx) [apache]:
Geben Sie hier
nginx ein. Ist nur Apache oder nur nginx installiert wird dies automatisch vom Installer erkannt und es werden keine Fragen gestellt.)
Um die aktuellste ISPConfig 3 Version zu installieren, führen Sie folgende Befehle 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/
Als nächstes benutzen Sie:
php -q install.php
Dies wird den ISPConfig 3 Installer starten. Dieser wird alle Dienste wie Postfix, SASL, Courier, etc. für Sie konfigurieren. Ein manuelles Setup, wie es für ISPConfig 2 gebraucht wurde ist nicht notwendig.
root@server1:/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 <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
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
Configuring 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 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
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 server 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
root@server1:/tmp/ispconfig3_install/install#
Der Installer konfiguriert automatisch alle unterliegenden Dienste, keine manuelle Konfiguration is notwendig.
Sie haben nun die Möglichkeit, den Installer einen SSL vhost für die ISPConfig Kontrolloberfläche erstellen zu lassen, sodass diese über
https:// anstatt über
http:// erreicht werden kann. Um dies zu bewerkstelligen, drücken Sie einfach
ENTER sobald Sie folgende Frage sehen:
Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]:.
Anschließend können Sie ISPConfig unter
http(s)://server1.example.com:8080/ oder
http(s)://192.168.0.100:8080/ erreichen (ob http oder https bestimmt sich dadurch, was Sie bei der Installation angegeben haben). Melden Sie sich mit dem Benutzernamen
admin und dem Passwort
admin an (Sie sollten das Standardpasswort nach der ersten Anmeldung ändern):
(Sollte Ihnen ein 502 Bad Gateway error angezeigt werden, starten Sie einfach PHP-FPM neu und versuchen es noch einmal:
/etc/init.d/php5-fpm restart
)
Das System ist nun bereit zur Benutzung.
23 Zusätzliche Anmerkungen
23.1 OpenVZ
Ist der Ubuntu Server den Sie gerade aufgesetzt haben ein OpenVZ Container (eine virtuelle Maschine), sollten Sie folgendes auf dem
host system ausführen (Ich nehme an, dass die ID Ihres OpenVZ Containers
101 ist - ersetzen Sie diese mit der korrekten
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
24 Links