GNU/Linux >> LINUX-Kenntnisse >  >> Debian

Der perfekte Server – Debian 8.4 Jessie (Apache2, BIND, Dovecot, ISPConfig 3.1)

Dieses Tutorial zeigt, wie man einen Debian Jessie Server (mit Apache2, BIND, Dovecot) für die Installation von ISPConfig 3.1 vorbereitet und ISPConfig installiert. Das Webhosting-Kontrollfeld ISPConfig 3 ermöglicht Ihnen die Konfiguration der folgenden Dienste über einen Webbrowser:Apache- oder Nginx-Webserver, Postfix-Mailserver, Courier- oder Dovecot-IMAP/POP3-Server, MySQL-, BIND- oder MyDNS-Nameserver, PureFTPd, SpamAssassin, ClamAV, und viele mehr. Dieses Setup umfasst Apache (anstelle von nginx), BIND und Dovecot (anstelle von Courier).

1 Vorbemerkung

In diesem Tutorial verwende ich den Hostnamen server1.example.com mit der IP-Adresse 192.168.1.100 und dem Gateway 192.168.1.1. Diese Einstellungen können für Sie unterschiedlich sein, daher müssen Sie sie gegebenenfalls ersetzen. Bevor Sie fortfahren, benötigen Sie eine minimale Installation von Debian 8. Dies kann ein minimales Debian-Image von Ihrem Hosting-Anbieter sein, oder Sie verwenden das Tutorial für minimalen Debian-Server, um das Basissystem einzurichten.

Was ist neu in dieser Version des Tutorials?

  • Unterstützung für die neuen Funktionen von ISPConfig 3.1.
  • Unterstützung für SSL-Zertifikate von Let's Encrypt.
  • Unterstützung für HHVM (HipHop Virtual Machine) zum Ausführen von PHP-Skripten.
  • Unterstützung für XMPP (Metronom).
  • Unterstützung für E-Mail-Greylisting mit Postgrey.
  • UFW als Firewall, um Bastille zu ersetzen.
  • RoundCube Webmail statt Squirrelmail.

2 Installieren Sie den SSH-Server (optional)

Wenn Sie den OpenSSH-Server nicht während der Systeminstallation installiert haben, können Sie dies jetzt tun:

apt-get install ssh openssh-server

Von nun an können Sie einen SSH-Client wie PuTTY verwenden und sich von Ihrer Workstation aus mit Ihrem Debian-Jessie-Server verbinden und den verbleibenden Schritten dieses Tutorials folgen.

3 Installieren Sie einen Shell-Texteditor (optional)

Wir werden Nano verwenden Texteditor in diesem Tutorial. Einige Benutzer bevorzugen den klassischen vi-Editor, daher werden wir hier beide Editoren installieren. Das standardmäßige vi-Programm zeigt unter Debian und Ubuntu ein seltsames Verhalten; Um dies zu beheben, installieren wir vim-nox:

apt-get install nano vim-nox

Wenn vi Ihr Lieblingseditor ist, ersetzen Sie in den folgenden Befehlen zum Bearbeiten von Dateien nano durch vi.

4 Konfigurieren Sie den Hostnamen

Der Hostname Ihres Servers sollte eine Subdomain wie "server1.example.com" sein. Verwenden Sie als Hostnamen keinen Domainnamen ohne Subdomain-Anteil wie "example.com", da dies später zu Problemen mit Ihrer Mail-Einrichtung führen wird. Zuerst sollten Sie den Hostnamen in /etc/hosts überprüfen und bei Bedarf ändern. Die Zeile sollte lauten:"IP Address - space - full hostname incl. domain - space - subdomain part". Für unseren Hostnamen server1.example.com sollte die Datei so aussehen:

nano /etc/hosts
127.0.0.1 localhost.localdomain localhost192.168.1.100 server1.example.com server1# Die folgenden Zeilen sind für IPv6-fähige Hosts wünschenswert::1 localhost ip6-localhost ip6-loopbackff02::1 ip6-allnodesff02::2 ip6 -allrouter

Bearbeiten Sie dann die Datei /etc/hostname:

nano /etc/hostname

Sie soll nur den Teil der Subdomain enthalten, in unserem Fall:

server1

Starten Sie abschließend den Server neu, um die Änderung zu übernehmen:

Neustart

Melden Sie sich erneut an und überprüfen Sie mit diesen Befehlen, ob der Hostname jetzt korrekt ist:

Hostname
Hostname -f

Die Ausgabe soll wie folgt aussehen:

[E-Mail-geschützt]:/tmp# Hostname
server1
[E-Mail-geschützt]:/tmp# Hostname -f
server1.example.com

5 Aktualisieren Sie Ihre Debian-Installation

Stellen Sie zunächst sicher, dass Ihre /etc/apt/sources.list das jessie/updates-Repository enthält (dies stellt sicher, dass Sie immer die neuesten Sicherheitsupdates erhalten) und dass die contrib- und non-free-Repositorys aktiviert sind (einige Pakete wie libapache2- mod-fastcgi befinden sich nicht im Haupt-Repository).

nano /etc/apt/sources.list
#deb cdrom:[Debian GNU/Linux 8.0.0 _Jessie_ - Official amd64 NETINST Binary-1 20150425-12:50]/ jessie main

deb http://ftp.us.debian .org/debian/ jessie main contrib non-free
deb-src http://ftp.us.debian.org/debian/ jessie main contrib non-free

deb http:/ /security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free

Ausführen:

apt-get-Update

So aktualisieren Sie die apt-Paketdatenbank

apt-get-Upgrade

und um die neuesten Updates zu installieren (falls vorhanden).

6 Standard-Shell ändern

/bin/sh ist ein symbolischer Link zu /bin/dash, wir brauchen jedoch /bin/bash, nicht /bin/dash. Deshalb machen wir das:

dpkg-reconfigure dash

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

Andernfalls schlägt die Installation von ISPConfig fehl.

7 Synchronisieren Sie die Systemuhr

Es ist eine gute Idee, die Systemuhr mit einem NTP (n Netzwerk t ich bin p rotocol)-Server über das Internet. Einfach ausführen

apt-get install ntp

und Ihre Systemzeit wird immer synchron sein.

8 Installieren Sie Postfix, Dovecot, MySQL, rkhunter und Binutils

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

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

Wenn Sie MySQL gegenüber MariaDB bevorzugen, ersetzen Sie die Pakete „mariadb-client mariadb-server“ im obigen Befehl durch „mysql-client mysql-server“.

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 MariaDB-Benutzer "root":<-- yourrootsqlpassword
Wiederholen Passwort für den MariaDB-„Root“-Benutzer: <-- yourrootsqlpassword

Um die MariaDB/MySQL-Installation zu sichern und die Testdatenbank zu deaktivieren, führen Sie diesen Befehl aus:

mysql_secure_installation

Wir müssen das MySQL-Root-Passwort nicht ändern, da wir während der Installation einfach ein neues festlegen. Beantworten Sie die Fragen wie folgt:

Das Root-Passwort ändern? [Y/n] <-- n
Anonyme Benutzer entfernen? [Y/n] <-- y
Root-Anmeldung aus der Ferne nicht zulassen? [Y/n] <-- y
Testdatenbank und Zugriff darauf entfernen? [Y/n] <-- y
Berechtigungstabellen jetzt neu laden? [J/n] <-- ja

Öffnen Sie als Nächstes die TLS/SSL- und Übermittlungsports in Postfix:

nano /etc/postfix/master.cf

Entkommentieren Sie die Abschnitte „submission“ und „smtps“ wie folgt und fügen Sie gegebenenfalls Zeilen hinzu, sodass dieser Abschnitt der Datei „master.cf“ genauso aussieht wie der untenstehende.

[...]submission inet n - - - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
- o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions.
# -o smtpd_helo_restrictions=$mua_sender_restrictions.sender_restrictions.
# br /># -o smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=sasl_authentifiziert zulassen, ablehnen
# -o milter_macro_daemon_name=ORIGINIEREN
smtps inet n - - - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions =$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_r estrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING[...]

Danach Postfix neu starten:

Service Postfix-Neustart

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

nano /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-address =127.0.0.1[...]

Dann starten wir MySQL neu:

mysql-Dienst neu starten

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

netstat -tap | grep mysql

Die Ausgabe sollte so aussehen:

[email protected]:/# netstat -tap | grep mysql
tcp6 0 0 [::]:mysql [::]:* LISTEN 16806/mysqld

9 Installieren Sie Amavisd-new, SpamAssassin und ClamAV

Um amavisd-new, SpamAssassin und ClamAV zu installieren, führen wir

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 postgrey

Das ISPConfig 3-Setup verwendet amavisd, das die SpamAssassin-Filterbibliothek intern lädt, sodass wir SpamAssassin stoppen können, um etwas RAM freizugeben:

Dienst Spamassassin stoppen
systemctl Spamassassin deaktivieren

9.1 Metronome XMPP Server installieren (optional)

Dieser Schritt installiert den Metronome XMPP Server, der einen Chat-Server bereitstellt, der mit dem XMPP-Protokoll kompatibel ist. Dieser Schritt ist optional, wenn Sie keinen Chat-Server benötigen, können Sie diesen Schritt überspringen. Keine anderen ISPConfig-Funktionen hängen von dieser Software ab.

Fügen Sie das Prosody-Paket-Repository in Debian hinzu.

echo "deb http://packages.prosody.im/debian jessie main"> /etc/apt/sources.list.d/metronome.list
wget http://prosody.im/files/ prosody-debian-packages.key -O - | sudo apt-key add -

Aktualisieren Sie die Paketliste:

apt-get-Update

und installieren Sie die Pakete mit apt.

apt-get install git lua5.1 liblua5.1-0-dev lua-filesystem libidn11-dev libssl-dev lua-zlib lua-expat lua-event lua-bitop lua-socket lua-sec luarocks luarocks
luarocks installiert lpc

Fügen Sie einen Shell-Benutzer für Metronom hinzu.

adduser --no-create-home --disabled-login --gecos 'Metronom'-Metronom

Laden Sie Metronome in das Verzeichnis /opt herunter und kompilieren Sie es.

cd /opt; Git-Klon https://github.com/maranda/metronome.git metronome
cd ./metronome; ./configure --ostype=debian --prefix=/usr
make
make install

Metronome wurde nun nach /opt/metronome.

installiert

10 Installieren Sie Apache2, PHP, FCGI, suExec, Pear, phpMyAdmin und mcrypt

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

apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libruby libapache2-mod-python php5-curl php5-intl php5-memcache php5-memcached php5-pspell php5-recode php5 -sqlite php5-tidy php5-xmlrpc php5-xsl memcached libapache2-mod-passenger

Sie sehen die folgenden Fragen:

Webserver zur automatischen Neukonfiguration: <- apache2
Datenbank für phpmyadmin mit dbconfig-common konfigurieren? <- ja
Passwort des administrativen Benutzers eingeben? <- yourrootmysqlpassword
Das Passwort der phpmyadmin-Anwendung eingeben? <-  Drücken Sie einfach die Eingabetaste

Führen Sie dann den folgenden Befehl aus, um die Apache-Module suexec, rewrite, ssl, actions und include (plus dav, dav_fs und auth_digest, wenn Sie WebDAV verwenden möchten) zu aktivieren:

a2enmod suexec rewrite SSL-Aktionen enthalten dav_fs dav auth_digest CGI-Header

Um sicherzustellen, dass der Server nicht durch die HTTPOXY-Schwachstelle angegriffen werden kann, werden wir den HTTP_PROXY-Header in Apache global deaktivieren, indem wir die Konfigurationsdatei /etc/apache2/conf-available/httpoxy.conf hinzufügen.

sudo nano /etc/apache2/conf-available/httpoxy.conf

Fügen Sie den folgenden Inhalt in die Datei ein:

 RequestHeader setzt Proxy früh zurück

Und aktivieren Sie das Modul, indem Sie Folgendes ausführen:

a2enconf httpoxy
Dienst Apache2 Neustart

10.1 Installieren Sie HHVM (HipHop Virtual Machine)

In diesem Schritt werden wir HHVM aus seinem offiziellen Debian-Repository installieren. Fügen Sie das HHVM-Repo hinzu und importieren Sie den Schlüssel.

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449
echo deb http://dl.hhvm.com/debian jessie main | sudo tee /etc/apt/sources.list.d/hhvm.list

Aktualisieren Sie die Paketliste:

sudo apt-get update

und HHVM installieren:

sudo apt-get install hhvm

10.2 Installieren Sie SuPHP (optional, aber nicht empfohlen)

AKTUALISIERTER HINWEIS:SuPHP sollte nicht mehr installiert werden, fahren Sie mit Schritt 11 fort

SuPHP ist für Debian Jessie nicht mehr verfügbar. Der suphp-Modus sollte in ISPConfig nicht mehr verwendet werden, da es bessere PHP-Modi wie php-fpm und php-fcgi gibt. Wenn Sie suphp wirklich aus Legacy-Gründen brauchen, dann folgen Sie den Schritten in diesem Kapitel, um es manuell zu kompilieren. Aber wir empfehlen seine Installation nicht.

apt-get install apache2-dev build-essential autoconf automake libtool flex bison debhelper binutils
cd /usr/local/src
wget http://suphp.org/download/suphp-0.7.2.tar.gz
tar zxvf suphp-0.7.2.tar.gz
wget -O suphp.patch https://lists.marsching.com/pipermail/suphp/attachments/20130520/74f3ac02/attachment.patch
patch -Np1 -d suphp-0.7.2 cd suphp-0.7.2
autoreconf -if
./configure --prefix=/usr/ --sysconfdir=/etc/suphp/ --with-apr=/usr/bin /apr-1-config --with-apache-user=www-data --with-setid-mode=owner --with-logfile=/var/log/suphp/suphp.log
make
installieren

Erstellen Sie das suphp-Konfigurationsverzeichnis und die suphp.conf-Datei:

mkdir /var/log/suphp
mkdir /etc/suphp
nano /etc/suphp/suphp.conf
[global]
;Pfad zur Logdatei
logfile=/var/log/suphp/suphp.log

;Loglevel
loglevel=info

;Benutzer Apache läuft als
webserver_user=www-data

;Pfad alle Skripte müssen sich in
docroot=/var/www
befinden
;Pfad zu chroot() vor der Ausführung des Skripts
;chroot=/mychroot

; Sicherheitsoptionen
allow_file_group_writeable=false
allow_file_others_writeable=false
allow_directory_group_writeable=false
allow_directory_others_writeable=false

;Überprüfen Sie, ob sich das Skript innerhalb von DOCUMENT_ROOT befindet
check_vhost_docroot =true

;Kleinere Fehlermeldungen an den Browser senden
errors_to_browser=false

;PATH-Umgebungsvariable
env_path=/bin:/usr/bin

;Zu setzende Umask, Angabe in Oktalschreibweise
umask=0022

; Minimale UID
min_uid=100

; Mindest-GID
min_gid=100


[Handler]
;Handler für PHP-Skripte
x-httpd-suphp="php:/usr/ bin/php-cgi"

;Handler für CGI-Skripte
x-suphp-cgi=execute:!self
umask=0022

Als Nächstes fügen wir eine Konfigurationsdatei hinzu, um das suphp-Modul in Apache zu laden:

echo "LoadModule suphp_module /usr/lib/apache2/modules/mod_suphp.so"> /etc/apache2/mods-available/suphp.load

Und öffnen Sie dann /etc/apache2/mods-available/suphp.conf...

nano /etc/apache2/mods-available/suphp.conf

... und füge folgenden Inhalt hinzu:

 AddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml suPHP_AddHandler application/x-httpd-suphp  suPHP_Engine on  # Standardmäßig deaktiviert suPHP für debian verpackte Webanwendungen als Dateien # sind im Besitz von root und können wegen min_uid nicht von suPHP ausgeführt werden.  suPHP_Engine off # # Benutze eine spezifische PHP-Konfigurationsdatei (ein Verzeichnis, das eine php.ini-Datei enthält)# suPHP_ConfigPath /etc/php5/cgi/suphp/# ​​# Weist mod_suphp an, NICHT damit umzugehen Anfragen mit dem Typ .# suPHP_RemoveHandler 

Aktivieren Sie das suphp-Modul in Apache:

a2enmod suphp

Danach Apache neu starten:

Dienst Apache2 neu starten

11 Installieren Sie Let's Encrypt

ISPConfig 3.1 unterstützt die kostenlose SSL-Zertifizierungsstelle Let's encrypt. Mit der Let's Encrypt-Funktion können Sie innerhalb von ISPConfig kostenlose SSL-Zertifikate für Ihre Website erstellen.

Jetzt werden wir Unterstützung für Let's encrypt hinzufügen.

mkdir /opt/certbot
cd /opt/certbot
wget https://dl.eff.org/certbot-auto
chmod a+x ./certbot-auto

Führen Sie nun den Befehl certboot-auto aus, der die Software und ihre Abhängigkeiten herunterlädt und installiert.

./certbot-auto

Der Befehl teilt Ihnen dann mit, dass "in Ihren Konfigurationsdateien keine Namen gefunden wurden" und fragt, ob er fortfahren soll. Bitte wählen Sie hier "Nein", da die Zertifikate von ISPConfig erstellt werden.

12 Installieren PHP-FPM und XCache

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

Beginnend mit ISPConfig 3.0.5 gibt es einen zusätzlichen PHP-Modus, den Sie für die Verwendung mit Apache auswählen können:PHP-FPM.

Um PHP-FPM mit Apache zu verwenden, benötigen wir das Apache-Modul mod_fastcgi (bitte nicht mit mod_fcgid verwechseln - sie sind sehr ähnlich, aber Sie können PHP-FPM nicht mit mod_fcgid verwenden). Wir können PHP-FPM und mod_fastcgi wie folgt installieren:

apt-get install libapache2-mod-fastcgi php5-fpm

Stellen Sie sicher, dass Sie das Modul aktivieren und Apache neu starten:

a2enmod actions fastcgi alias
service apache2 restart

12.2 XCache installieren

XCache kann wie folgt installiert werden:

apt-get install php5-xcache

Starten Sie nun Apache neu:

Dienst Apache2 neu starten

13 Mailman installieren

Mit ISPConfig können Sie Mailman-Mailinglisten verwalten (erstellen/ändern/löschen). Wenn Sie diese Funktion nutzen möchten, installieren Sie Mailman wie folgt:

apt-get install mailman

Wählen Sie mindestens eine Sprache aus, z. B.:

Unterstützte Sprachen: <-- de (Englisch)
Fehlende Websiteliste <-- Ok

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 das Erstellen Ihrer Mailingliste abzuschließen, müssen Sie Ihre /etc/aliases (oder
äquivalente) Datei bearbeiten indem Sie die folgenden Zeilen hinzufügen und möglicherweise das
`newaliases"-Programm ausführen:

## 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-unsu bscribe:  "|/var/lib/mailman/mail/mailman unsubscribe mailman"

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

[email protected] :~#

Danach /etc/aliases öffnen...

nano /etc/aliases

... und fügen Sie die folgenden Zeilen hinzu:

[...]## mailman mailing listmailman:"|/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 bestätigen mailman"mailman-join:"|/var/lib/mailman/mail /mailman mailman beitreten"mailman-leave:"|/var/lib/mailman/mail/mailman mailman verlassen"mailman-owner:"|/var/lib/mailman/mail/mailman Eigentümer 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 Mailman abmelden" 

Ausführen:

newaliases

und starten Sie Postfix neu:

Service Postfix-Neustart

Schließlich müssen wir die Mailman-Apache-Konfiguration aktivieren:

ln -s /etc/mailman/apache.conf /etc/apache2/conf-enabled/mailman.conf

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

Unter http://server1.example.com/pipermail finden Sie die Mailinglisten-Archive.

Danach Apache neu starten:

Dienst Apache2 neu starten

Starten Sie dann den Mailman-Daemon:

Service Mailman starten

14 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...

nano /etc/default/pure-ftpd-common

... und stellen Sie sicher, dass der Startmodus auf Standalone eingestellt ist und setzen Sie VIRTUALCHROOT=true:

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

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

Wenn Sie FTP- und TLS-Sitzungen zulassen möchten, führen Sie

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

Um TLS verwenden zu können, müssen wir ein SSL-Zertifikat erstellen. Ich erstelle es in /etc/ssl/private/, also erstelle ich zuerst dieses Verzeichnis:

mkdir -p /etc/ssl/private/

Anschließend können wir das SSL-Zertifikat wie folgt generieren:

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 Bundesstaat oder Ihre Provinz ein.
Ortsname (z. B. Stadt) []:<-- Geben Sie Ihre Stadt ein.
Organisationsname (z. B. Unternehmen) [Internet Widgits Pty Ltd]:<-- Geben Sie ein Ihr Organisationsname (z. B. der Name Ihres Unternehmens).
Name der Organisationseinheit (z. B. Abschnitt) []:<-- 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 die Berechtigungen des SSL-Zertifikats:

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

Starten Sie dann PureFTPd neu:

Dienst pure-ftpd-mysql neu starten

Bearbeiten Sie /etc/fstab. Meine sieht so aus (ich habe ,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 zur Partition mit dem Einhängepunkt / hinzugefügt):

nano /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 robustere Methode zum Benennen von Geräten verwendet werden,
# die auch dann funktioniert, wenn Festplatten hinzugefügt und entfernt werden. Siehe fstab(5).
#
#
# / war während der Installation auf /dev/sda1
UUID=3dc3b58d-97e5-497b-8254-a913fdfc5408 / ext4 error=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
# Swap war auf /dev /sda5 während der Installation
UUID=36bf486e-8f76-492d-89af-5a8eb3ce8a02 none swap sw 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0

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

mount -o remount /
quotacheck -avugm
quotaon -avug

15 Installieren Sie den BIND-DNS-Server

BIND kann wie folgt installiert werden:

apt-get install bind9 dnsutils

Wenn Ihr Server eine virtuelle Maschine ist, wird dringend empfohlen, den Haveged-Daemon zu installieren, um eine höhere Entropie für die DNSSEC-Signatur zu erhalten. Sie können haveged auch auf nicht virtuellen Servern installieren, es sollte nicht schaden.

apt-get install muss

Eine Erklärung zu diesem Thema finden Sie hier.

16 Installieren Sie Webalizer und AWStats

Webalizer und AWStats können wie folgt installiert werden:

apt-get install webalizer awstats geoip-database libclass-dbi-mysql-perl libtimedate-perl

Danach /etc/cron.d/awstats öffnen...

nano /etc/cron.d/awstats

... und alles in dieser Datei auskommentieren:

#MAILTO=root#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] &&/usr/share/awstats/tools/update.sh# Statik generieren report:#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] &&/usr/share/awstats/tools/buildstatic.sh

17 Jailkit installieren

Jailkit wird nur benötigt, wenn Sie SSH-Benutzer chrooten möchten. Es kann wie folgt installiert werden (Wichtig:Jailkit muss vor ISPConfig installiert werden - es kann nicht nachträglich installiert werden!):

apt-get install build-essential autoconf automake libtool flex bison debhelper binutils
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.19.tar.gz
tar xvfz jailkit-2.19.tar.gz
cd jailkit- 2.19
./debian/rules binär

Sie können nun das Jailkit .deb-Paket wie folgt installieren:

cd ..
dpkg -i jailkit_2.19-1_*.deb
rm -rf jailkit-2.19*

18 Installieren Sie fail2ban und die UFW-Firewall

Dies ist optional, wird aber empfohlen, da der ISPConfig-Monitor versucht, das Protokoll anzuzeigen:

apt-get install fail2ban

Damit fail2ban PureFTPd und Dovecot überwacht, erstellen Sie die Datei /etc/fail2ban/jail.local:

nano /etc/fail2ban/jail.local

[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[postfix-sasl]enabled =trueport =smtpfilter =postfix-sasllogpath =/var/log/mail.logmaxretry =3 

Erstellen Sie dann die folgenden zwei Filterdateien:

nano /etc/fail2ban/filter.d/pureftpd.conf
[Definition]failregex =.*pure-ftpd:\(.*@\) \[WARNUNG\] Authentifizierung für user.*ignoreregex =
fehlgeschlagen
nano /etc/fail2ban/filter.d/dovecot-pop3imap.conf
[Definition]failregex =(?:pop3-login|imap-login):.*(?:Authentifizierungsfehler|Anmeldung abgebrochen \(Authentifizierung fehlgeschlagen|Anmeldung abgebrochen \(versucht, deaktiviert zu verwenden|Getrennt \(Authentifizierung fehlgeschlagen| Abgebrochene Anmeldung \(\d+ Authentifizierungsversuche).*rip=(?P\S*),.*ignoreregex =

Führen Sie dann Folgendes aus, um die Zeile „ignoreregex“ in die Filterdatei „postfix-sasl“ einzufügen:

echo "ignoreregex =">> /etc/fail2ban/filter.d/postfix-sasl.conf

Danach fail2ban neu starten:

Dienst fail2ban Neustart

Um die UFW-Firewall zu installieren, führen Sie diesen apt-Befehl aus:

apt-get install ufw

19 RoundCube installieren

Roundcube ist nicht im Haupt-Repository von Debian 8 verfügbar, aber wir können es über die Backports bekommen.

Fügen Sie das Backports-Repository zur Datei /etc/apt/sources.list hinzu:

echo "deb http://ftp.debian.org/debian jessie-backports main">> /etc/apt/sources.list

und führen Sie apt-get update aus.

apt-get-Update

Installieren Sie dann RoundCube mit diesem Befehl:

apt-get installiere roundcube roundcube-core roundcube-mysql roundcube-plugins

Das Installationsprogramm stellt die folgenden Fragen:

Datenbank für Roundcube mit dbconfig.common konfigurieren? <-- ja
Wählen Sie den Datenbanktyp aus:<-- mysql
Passwort des Administratorbenutzers der Datenbank:<-- geben Sie hier das MySQL-Root-Passwort ein.
MySQL-Anwendungspasswort für Roundcube:<- - Drücken Sie die Eingabetaste

Bearbeiten Sie dann die RoundCube-Datei /etc/roundcube/config.inc.php und passen Sie einige Einstellungen an:

nano /etc/roundcube/config.inc.php

Setzen Sie default_host und smtp_server auf localhost.

$config['default_host'] ='localhost';
$config['smtp_server'] ='localhost';

Bearbeiten Sie dann die Apache-Roundcube-Konfigurationsdatei /etc/apache2/conf-enabled/roundcube.conf:

nano /etc/apache2/conf-enabled/roundcube.conf

Und fügen Sie eine Alias-Zeile für den Apache /webmail-Alias ​​hinzu, Sie können die Zeile direkt am Anfang der Datei hinzufügen. HINWEIS:Verwenden Sie nicht /mail als Alias, sonst funktioniert das E-Mail-Modul von ispconfig nicht mehr!

Alias ​​/webmail /var/lib/roundcube

Laden Sie dann Apache neu:

Dienst Apache2 neu laden

Jetzt können Sie wie folgt auf RoundCube zugreifen:

http://192.168.1.100/webmail
http://www.example.com/webmail
http://server1.example.com:8080/webmail (nachdem Sie ISPConfig installiert haben, sehen Sie sich die nächstes Kapitel)

20 ISPConfig 3 herunterladen

Gehen Sie wie folgt vor, um ISPConfig 3 von der neuesten veröffentlichten Version zu installieren:

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

Ab heute (12. April 2016) steht das Finale von ISPConfig 3.1 noch nicht zum Download bereit. Wenn Sie die Vorabversion der kommenden Version 3.1 ausprobieren möchten, laden Sie sie mit diesem Befehl herunter:

cd /tmp
wget -O ISPConfig-3.1-beta.tar.gz  https://git.ispconfig.org/ispconfig/ispconfig3/repository/archive.tar.gz?ref=stable-3.1
tar xfz ISPConfig-3.1-beta.tar.gz
cd ispconfig3-stable-3.1*
cd install

21 ISPConfig installieren

Der nächste Schritt besteht darin, das ISPConfig-Installationsprogramm auszuführen.

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.

HINWEIS:Seien Sie nicht beunruhigt, dass das ISPConfig 3-Installationsprogramm Debian Jessie als unbekannte Version identifiziert. Dies beeinträchtigt keine Funktionalität und wird mit dem nächsten ISPConfig-Update behoben.

# php -q install.php

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

>> Erstkonfiguration
Betriebssystem:Debian 8.0 (Jessie) oder kompatibel
Es folgen ein paar Fragen zur primären Konfiguration, also seien Sie vorsichtig.
Standardwerte stehen in [Klammern] und können mit übernommen werden.
Tippen Sie auf "Beenden" (ohne die Anführungszeichen) um den Installer zu stoppen.

Sprache auswählen (en,de) [en]:<-- Enter drücken
Installationsmodus (Standard, Experte) [Standard]: <-- Drücken Sie die Eingabetaste
Vollqualifizierter Hostname (FQDN) des Servers, z. B. server1.domain.tld [server1.canomi.com]: <-- Drücken Sie die Eingabetaste
Hostname des MySQL-Servers [localhost]: <-- Drücken Sie die Eingabetaste
MySQL-Serverport [3306]: <-- Drücken Sie die Eingabetaste
MySQL-Root-Benutzername [root]: <-- Drücken Sie die Eingabetaste
MySQL-Root-Passwort []: <-- Geben Sie Ihr MySQL-Root-Passwort ein
MySQL-Datenbank zum Erstellen von [dbispconfig]: <-- Drücken Sie die Eingabetaste
MySQL-Zeichensatz [utf8]: <-- Drücken Sie die Eingabetaste
Konfigurieren von Postgrey
Konfigurieren von Postfix
Generieren eines privaten 4096-Bit-RSA-Schlüssels
........................ ...............................................++
................................................. .................................................... .........................................++
Schreiben eines neuen privaten Schlüssels in 'smtpd.key'
-----
Sie werden gleich aufgefordert, Informationen einzugeben, die
in Ihre Zertifikatsanforderung aufgenommen werden.
Was Sie gleich eingeben werden wird Distinguished Name oder DN genannt.
Es gibt einige Felder, aber Sie können einige leer lassen
Für einige Felder gibt es einen Standardwert,
Wenn Sie '. ', das Feld bleibt leer.
-----
Landesname (2-Buchstaben-Code) [AU]:<-- Geben Sie den 2-Buchstaben-Ländercode ein
Staats- oder Provinzname ( vollständiger Name) [Some-State]:<-- Geben Sie den Namen des Staates ein
Ortsname (z. B. Stadt) []:<-- Geben Sie Ihre Stadt ein
Name der Organisation (z. B. Unternehmen) [ Int ernet Widgits Pty Ltd]:<-- Geben Sie den Firmennamen ein oder drücken Sie die Eingabetaste
Name der Organisationseinheit (z. B. Abschnitt) []: <-- Drücken Sie die Eingabetaste
Common Name (z. B. Server-FQDN oder IHR Name) []:<-- Geben Sie den Hostnamen des Servers ein, in meinem Fall:server1.example.com
E-Mail-Adresse []: <-- Drücken Sie die Eingabetaste
Konfigurieren von Mailman
Dovecot konfigurieren
Spamassassin konfigurieren
Amavisd konfigurieren
Getmail konfigurieren
BIND konfigurieren
Jailkit konfigurieren
Pureftpd konfigurieren
Apache konfigurieren
vlogger konfigurieren
Konfigurieren des Metronom-XMPP-Servers
Schreiben des neuen privaten Schlüssels in „localhost.key“
-----
Landesname (2-Buchstaben-Code) [AU]: <-- Enter 2-Buchstaben-Ländercode
Ortsname (z. B. Stadt) []: <-- Geben Sie Ihre Stadt ein
Organisationsname (z. B. Firma) [Internet Widgits Pty Ltd]: <-- Geben Sie den Firmennamen ein oder drücken Sie
Name der Organisationseinheit eingeben (z. B. Abschnitt) []: <-- Drücken Sie die Eingabetaste
Allgemeiner Name (z. B. Server-FQDN oder IHR Name) [server1.canomi.com]: <-- Geben Sie den Hostnamen des Servers ein , in meinem Fall:server1.example.com
E-Mail-Adresse []: <-- Drücken Sie die Eingabetaste
Ubuntu Firewall konfigurieren
Fail2ban konfigurieren
[INFO] Dienst OpenVZ nicht erkannt
Apps vhost konfigurieren
ISPConfig installieren
ISPConfig Port [8080]:
Admin-Passwort [admin]:
Möchten Sie eine sichere (SSL-)Verbindung zur ISPConfig-Weboberfläche (y,n) [y]: <-- Drücken Sie die Eingabetaste
Generieren des privaten RSA-Schlüssels, 4096 Bit langer Modulus
.......................++
..... .................................................... .................................................... .........................++
e ist 65537 (0x10001)
Sie werden gleich aufgefordert, Informationen einzugeben, die dies erfordern in Ihren Zertifikatsantrag
einbezogen werden.
Was Sie jetzt eingeben werden, ist ein sogenannter Distinguished Name oder DN.
Es gibt einige Felder, aber Sie können einige leer lassen
Für einige Felder gibt es einen Standardwert.
Wenn Sie '.' eingeben, bleibt das Feld leer.
-----
Landesname (2-Buchstaben-Code) [AU]: <-- Geben Sie den 2-Buchstaben-Ländercode ein
Name des Staates oder der Provinz (vollständiger Name) [Some-State]: <-- Geben Sie den Namen des Staates ein
Name des Ortes (z. B. Stadt) []: <-- Geben Sie Ihre Stadt ein
Organisationsname (z. B. Firma) [Internet Widgits Pty Ltd]: <-- Geben Sie den Firmennamen ein oder drücken Sie die Eingabetaste
Name der Organisationseinheit (z. B. Abschnitt) [] : <-- Drücken Sie die Eingabetaste
Allgemeiner Name (z. B. Server-FQDN oder IHR Name) []: <-- Geben Sie den Hostnamen des Servers ein, in meinem Fall:server1.example.com
E-Mail-Adresse []: <-- Drücken Sie die Eingabetaste
Bitte geben Sie die folgenden „zusätzlichen“ Attribute ein,
die mit Ihrer Zertifikatsanforderung gesendet werden sollen
Ein Challenge-Passwort []: <-- Drücken Sie die Eingabetaste
Einen optionalen Firmennamen []: <- - Drücken Sie die Eingabetaste
Schreiben des RSA-Schlüssels

DBServer konfigurieren
ISPConfig crontab installieren
keine crontab für root
keine crontab für getmail
IP-Adressen erkennen
Dienste neu starten ...
Installation abgeschlossen.

Das Installationsprogramm konfiguriert automatisch alle zugrunde liegenden Dienste, sodass keine manuelle Konfiguration erforderlich ist.

Danach erreichen Sie ISPConfig 3 unter http(s)://server1.example.com:8080/ oder http(s)://192.168.1.100:8080/ ( http oder https hängt davon ab, was Sie bei der Installation gewählt haben). Melden Sie sich mit dem Benutzernamen admin und dem Passwort admin an (das voreingestellte Passwort sollten Sie nach Ihrer ersten Anmeldung ändern):

Das System ist jetzt einsatzbereit.

21.1 ISPConfig 3 Handbuch

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

Auf mehr als 300 Seiten behandelt es das Konzept hinter ISPConfig (Admin, Wiederverkäufer, Kunden), 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.

22 Zusätzliche Hinweise

22.1 OpenVZ

Wenn der Debian-Server, den Sie gerade in diesem Tutorial eingerichtet haben, ein OpenVZ-Container (virtuelle Maschine) ist, sollten Sie dies auf dem Hostsystem tun (ich gehe davon aus, dass die ID des OpenVZ-Containers 101 ist - ersetzen Sie sie durch die korrekte VPSID auf Ihrem System):

VPSID=101
für 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
fertig

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

Debian
  1. Der perfekte Server – CentOS 7 (Apache2, Dovecot, ISPConfig 3)

  2. Der perfekte Server – OpenSUSE 12.3 x86_64 (Apache2, Dovecot, ISPConfig 3)

  3. Der perfekte Server – CentOS 7.1 mit Apache2, Postfix, Dovecot, Pure-FTPD, BIND und ISPConfig 3

  4. Der perfekte Server – Debian 8 Jessie (Apache2, BIND, Dovecot, ISPConfig 3)

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

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

Der perfekte Server – OpenSUSE 12.2 x86_64 (Apache2, 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 (Apache2, Dovecot, ISPConfig 3)

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