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

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

Dieses Tutorial zeigt, wie man einen Debian Jessie Server (mit Apache2, BIND, Dovecot) für die Installation von ISPConfig 3 vorbereitet und wie man ISPConfig 3 installiert. Das Webhosting Control Panel 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 (anstelle von MyDNS) 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 minimale Debian-Server-Tutorial, um das Basissystem einzurichten.

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, deshalb 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 ntpdate

und Ihre Systemzeit wird immer synchron sein.

8 Installieren Sie Postfix, Dovecot, MySQL, phpMyAdmin, rkhunter, 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

Ö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]:/tmp# netstat -tap | grep mysql
tcp6 0 0 [::]:mysql [::]:* LISTEN 27371/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

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

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

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

apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick 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 umfassen dav_fs dav auth_digest cgi

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

service apache2 neu starten

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:

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

12 XCache und PHP-FPM

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.

XCache kann wie folgt installiert werden:

apt-get install php5-xcache

Starten Sie nun Apache neu:

Dienst Apache2 neu starten

12.2 PHP-FPM

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

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

vi /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

anschließend Postfix neu starten:

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

16 Installieren Sie Vlogger, Webalizer und AWStats

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

apt-get install vlogger webalizer awstats geoip-database libclass-dbi-mysql-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.17.tar.gz
tar xvfz jailkit-2.17.tar.gz
cd jailkit- 2.17
./debian/rules binär

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

cd ..
dpkg -i jailkit_2.17-1_*.deb
rm -rf jailkit-2.17*

18 Installieren Sie fail2ban

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

19 Installieren Sie squirrelmail

Um den SquirrelMail-Webmail-Client zu installieren, führen Sie

aus
apt-get install squirrelmail

Konfigurieren Sie dann SquirrelMail:

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

D. Festlegen vordefinierter Einstellungen für bestimmte IMAP-Server

C   Farbe einschalten
S   Daten speichern
Q   Beenden

Befehl >> <-- D


SquirrelMail Konfiguration : Lesen: config.php
---------------------- ------------------------------
Während wir SquirrelMail entwickelt haben, haben wir einige
Einstellungen entdeckt die mit einigen Servern besser funktionieren, die mit anderen nicht
gut funktionieren. Wenn Sie Ihren IMAP-Server auswählen, legt diese Option 
einige vordefinierte Einstellungen für diesen Server fest.

Bitte beachten Sie müssen noch durchgehen und sicherstellen, dass
alles so ist ist richtig. Das ändert nicht alles. Es sind
nur einige Einstellungen, die dadurch geändert werden.

Bitte wählen Sie Ihren IMAP-Server aus:
    bincimap    = Binc-IMAP-Server
    courier     = Courier-IMAP-Server
    cyrus       = Cyrus IMAP Server
    dovecot     = Dovecot Secure IMAP Server
    exchange    = Microsoft Exchange IMAP Server
    hmailserver = hMail Server
    macosx      = Mac OS X > Mailserver 
    macosx      = Mac OS X > Mailserver /32
    uw          = IMAP Server der University of Washington
    gmail       = IMAP-Zugriff auf Google Mail (Gmail) Konten

    beenden        = Nichts ändern
Befehl >> <-- dovecot


SquirrelMail-Konfiguration : Lesen Sie: config.php
----------------------- ----------------------------------
Während wir SquirrelMail entwickelt haben, haben wir einige entdeckt
Einstellungen, die mit einigen Servern besser funktionieren, die mit anderen
nicht so gut funktionieren. Wenn Sie Ihren IMAP-Server auswählen, legt diese Option 
einige vordefinierte Einstellungen für diesen Server fest.

Bitte beachten Sie müssen noch durchgehen und sicherstellen, dass
alles so ist ist richtig. Das ändert nicht alles. Es sind
nur einige Einstellungen, die dadurch geändert werden.

Bitte wählen Sie Ihren IMAP-Server aus:
    bincimap    = Binc-IMAP-Server
    courier     = Courier-IMAP-Server
    cyrus       = Cyrus IMAP Server
    dovecot     = Dovecot Secure IMAP Server
    exchange    = Microsoft Exchange IMAP Server
    hmailserver = hMail Server
    macosx      = Mac OS X > Mailserver 
    macosx      = Mac OS X > Mailserver /32
    uw          = IMAP Server der University of Washington
    gmail       = IMAP-Zugriff auf Google Mail (Gmail) Konten

    beenden        = Nichts ändern
Befehl >> dovecot

IMAP_SERVER_TYPE =DOVECOT
default_folder_prefix =
Trash_Folder =Trash
sent_folder =gesendet
entworfen_Folder =Entwürfe
show_prefix_option =false
default_sub_inbox = false
show_contain_subfolders_option = fa lse
            optional_delimiter = detect
                 delete_folder = false

Drücken Sie eine beliebige Taste, um fortzufahren... <-- drücken Sie eine Taste

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

D. Festlegen vordefinierter Einstellungen für bestimmte IMAP-Server

C   Farbe einschalten
S   Daten speichern
Q   Beenden

Befehl >> <-- S


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

D. Festlegen vordefinierter Einstellungen für bestimmte IMAP-Server

C   Farbe einschalten
S   Daten speichern
Q   Beenden

Befehl >> <-- Q

Jetzt werden wir SquirrelMail so konfigurieren, dass Sie es von Ihren (durch ISPConfig erstellten) Websites aus verwenden können, indem Sie die Aliase /squirrelmail oder /webmail verwenden. Wenn Ihre Website also www.example.com ist, können Sie über www.example.com/squirrelmail oder www.example.com/webmail auf SquirrelMail zugreifen.

Die Apache-Konfiguration von SquirrelMail befindet sich in der Datei /etc/squirrelmail/apache.conf, aber diese Datei wird von Apache nicht geladen, da sie sich nicht im Verzeichnis /etc/apache2/conf.d/ befindet. Dazu erstellen wir einen Symlink namens squirrelmail.conf im Verzeichnis /etc/apache2/conf.d/, der auf /etc/squirrelmail/apache.conf zeigt, und laden Apache anschließend neu:

cd /etc/apache2/conf-enabled/
ln -s ../../squirrelmail/apache.conf squirrelmail.conf
service apache2 reload

Öffnen Sie nun /etc/apache2/conf-enabled/squirrelmail.conf...

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

... und fügen Sie dem Container die folgenden Zeilen hinzu, um sicherzustellen, dass mod_php für den Zugriff auf SquirrelMail verwendet wird, unabhängig davon, welchen PHP-Modus Sie für Ihre Website in ISPConfig auswählen:

[...] Optionen FollowSymLinks  AddType application/x-httpd-php .php php_flag magic_quotes_gpc Aus php_flag track_vars Ein php_admin_flag allow_url_fopen Aus php_value include_path . php_admin_value upload_tmp_dir /var/lib/squirrelmail/tmp php_admin_value open_basedir /usr/share/squirrelmail:/etc/squirrelmail:/var/lib/squirrelmail:/etc/hostname:/etc/mailname php_flag register_globals off   DirectoryIndex index.php  # Der Zugriff auf configtest ist standardmäßig eingeschränkt, um Informationslecks zu verhindern 
 order deny,allow deny from all allow from 127.0.0.1 [ ...]

Erstellen Sie das Verzeichnis /var/lib/squirrelmail/tmp...

mkdir /var/lib/squirrelmail/tmp

... und machen es zum Eigentum des Benutzers www-data:

chown www-data /var/lib/squirrelmail/tmp

Apache erneut laden:

Dienst Apache2 neu laden

Das war's auch schon - /etc/apache2/conf-enabled/squirrelmail.conf definiert einen Alias ​​namens /squirrelmail, der auf das Installationsverzeichnis von SquirrelMail /usr/share/squirrelmail zeigt.

Sie können jetzt wie folgt von Ihrer Website aus auf SquirrelMail zugreifen:

http://192.168.0.100/squirrelmail
http://www.example.com/squirrelmail

Sie können auch wie folgt über das ISPConfig-Kontrollfeld vhost (nachdem Sie ISPConfig installiert haben, siehe nächstes Kapitel) darauf zugreifen (dies erfordert keine Konfiguration in ISPConfig):

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

Wenn Sie statt /squirrelmail den Alias ​​/webmail verwenden möchten, öffnen Sie einfach /etc/apache2/conf-enabled/squirrelmail.conf

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

... und fügen Sie die Zeile Alias ​​/webmail /usr/share/squirrelmail:

hinzu
Alias ​​/squirrelmail /usr/share/squirrelmailAlias ​​/webmail /usr/share/squirrelmail[...]

Laden Sie dann Apache neu:

Dienst Apache2 neu laden

Jetzt können Sie wie folgt auf Squirrelmail 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)

Wenn Sie einen vhost wie webmail.example.com definieren möchten, wo Ihre Benutzer auf SquirrelMail zugreifen können, müssen Sie die folgende vhost-Konfiguration zu /etc/apache2/conf-enabled/squirrelmail.conf hinzufügen:

vi /etc/apache2/conf-enabled/squirrelmail.conf

[...] DocumentRoot /usr/share/squirrelmail Servername webmail.example.com

Natürlich muss es einen DNS-Eintrag für webmail.example.com geben, der auf die IP-Adresse zeigt, die Sie in der vhost-Konfiguration verwenden. Stellen Sie außerdem sicher, dass der vhost webmail.example.com nicht in ISPConfig existiert (sonst stören sich beide vhosts gegenseitig!).

Jetzt Apache neu laden...

/etc/init.d/apache2 neu laden

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

20 Installieren Sie ISPConfig 3

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/

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.

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.

[email protected]:/tmp/ispconfig3_install/install# php -q install.php
PHP veraltet:  Kommentare, die mit '#' beginnen, sind in /etc/php5/cli/conf.d/ming veraltet. ini auf Zeile 1 in Unbekannt auf Zeile 0


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


>> Anfangskonfiguration

Betriebssystem: Debian oder kompatible, unbekannte Version.

    Im Folgenden werden einige Fragen für die primäre Konfiguration stehen, also sei vorsichtig.
    Standardwerte sind in [Klammern] und können mit übernommen werden.
    Tippe in "quit" (ohne Anführungszeichen), um den Installer zu stoppen.


Wähle Sprache (en, de) [en]: <-- ENTER

Installationsmodus (Standard,Experte) [Standard]: <-- ENTER

Vollqualifizierter Hostname (FQDN) des Servers , zB server1.domain.tld  [server1.example.com]: <-- ENTER

MySQL-Server-Hostname [localhost]: <-- ENTER

MySQL-Root-Benutzername [ root]: <-- ENTER

MySQL-Root-Passwort [ ]: <-- yourrootsqlpassword

MySQL-Datenbank zum Erstellen [dbispconfig]: <-- ENTER

MySQL-Zeichensatz [utf8]: <-- ENTER

Generieren eines privaten 4096-Bit-RSA-Schlüssels
..................................... ........................++
....................... .................................................... .................................................. .++
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, comp any) [Internet Widgits Pty Ltd]: <-- ENTER
Organizational Unit Name (eg, section) []: <-- ENTER
Common Name (e.g. server FQDN or YOUR name) []: <-- ENTER
Email Address []: <-- ENTER
Configuring Jailkit
Configuring Dovecot
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring Pureftpd
Configuring BIND
Configuring Apache
Configuring Vlogger
Configuring Apps vhost
Configuring 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 (e.g. server FQDN or 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 ...
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld ..
Checking for tables which need an upgrade, are corrupt or were
not closed cleanly..
Stopping Postfix Mail Transport Agent: postfix.
Starting Postfix Mail Transport Agent: postfix.
Stopping amavisd: amavisd-new.
Starting amavisd: amavisd-new.
Stopping ClamAV daemon: clamd.
Starting ClamAV daemon: clamd .
Restarting IMAP/POP3 mail server: dovecot.
[Tue May 07 02:36:22 2013] [warn] NameVirtualHost *:443 has no VirtualHosts
[Tue May 07 02:36:22 2013] [warn] NameVirtualHost *:80 has no VirtualHosts
[Tue May 07 02:36:23 2013] [warn] NameVirtualHost *:443 has no VirtualHosts
[Tue May 07 02:36:23 2013] [warn] NameVirtualHost *:80 has no VirtualHosts
Restarting web server: apache2 ... waiting .
Restarting ftp server: Running: /usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql.conf -l pam -H -O clf:/var/log/pure-ftpd/transfer.log -Y 1 -D -u 1000 -A -E -b -8 UTF-8 -B
Installation completed.
[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]:.

Afterwards you can 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 after your first login):

The system is now ready to be used.

20.1 ISPConfig 3 Manual

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.

20.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. 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/.

21 Additional Notes

21.1 OpenVZ

If the Debian server that you've just set up in this tutorial is an OpenVZ container (virtual machine), you should do this on the host system (I'm 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/

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.4 Jessie (Apache2, BIND, Dovecot, ISPConfig 3.1)

  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)