Dieses Tutorial zeigt, wie man einen Debian 10 Server (mit Apache2, BIND, Dovecot) für die Installation von ISPConfig 3.2 vorbereitet und wie man 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 deckt Apache (anstelle von nginx), BIND und Dovecot ab.
1 Vorbemerkung
In diesem Tutorial verwende ich den Hostnamen server1.example.com mit der IP-Adresse 192.168.0.100 und dem Gateway 192.168.0.1. Diese Einstellungen können für Sie unterschiedlich sein, daher müssen Sie sie gegebenenfalls ersetzen. Bevor Sie fortfahren, benötigen Sie eine minimale Installation von Debian 10. 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.
Alle folgenden Befehle werden als Root-Benutzer ausgeführt. Melden Sie sich entweder direkt als Root-Benutzer an oder melden Sie sich als Ihr normaler Benutzer an und verwenden Sie dann den Befehl
su -
Root-Benutzer auf Ihrem Server zu werden, bevor Sie fortfahren. WICHTIG Hinweis:Sie müssen 'su -' und nicht nur 'su' verwenden, sonst wird Ihre PATH-Variable von Debian falsch gesetzt.
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 9-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.0.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:
Systemctl-Neustart
Melden Sie sich erneut an und überprüfen Sie jetzt mit diesen Befehlen, ob der Hostname 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 buster/updates-Repository enthält (dies stellt sicher, dass Sie immer die neuesten Sicherheitsupdates erhalten) und dass die contrib- und non-free-Repositorys aktiviert sind, da einige erforderliche Pakete dies nicht sind im Haupt-Repository.
nano /etc/apt/sources.list
deb http://deb.debian.org/debian/ buster main contrib non-free
deb-src http://deb.debian.org/debian/ buster main contrib non-free
deb http://security.debian.org/debian-security buster/updates main contrib non-free
deb-src http://security.debian.org/debian-security buster/updates Hauptbeitrag unfrei
Ausführen:
apt-get-Update
So aktualisieren Sie die apt-Paketdatenbank
apt-get-Upgrade
und um die neuesten Updates zu installieren (falls vorhanden).
6. Ändern Sie die Standard-Shell
/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 -y install ntp
und Ihre Systemzeit wird immer synchron sein.
8 Installieren Sie Postfix, Dovecot, MariaDB, rkhunter und Binutils
Wir können Postfix, Dovecot, MariaDB als MySQL-Alternative, rkhunter und Binutils mit einem einzigen Befehl installieren:
apt-get -y 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 curl
Ihnen werden die folgenden Fragen gestellt:
Allgemeine Art der E-Mail-Konfiguration:<-- Internet Site
System-Mail-Name:<-- server1.example.com
Führen Sie diesen Befehl aus, um die MariaDB-Installation zu sichern und die Testdatenbank zu deaktivieren:
mysql_secure_installation
Beantworten Sie die Fragen wie folgt:
Das Root-Passwort ändern? [J/n] <-- j
Neues Passwort:<-- Geben Sie ein neues MariaDB-Root-Passwort ein
Geben Sie das neue Passwort erneut ein:<-- Wiederholen Sie das MariaDB-Root-Passwort
Entfernen Sie anonyme Benutzer ? [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. WICHTIG: Entfernen Sie auch das # vor den Zeilen, die mit smtps und Submission beginnen, und nicht nur aus den -o-Zeilen nach diesen Zeilen!
[...]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 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:
systemctl-Neustart postfix
Wir möchten, dass MySQL auf allen Schnittstellen lauscht, nicht nur auf localhost. Daher bearbeiten wir /etc/mysql/mariadb.conf.d/50-server.cnf und kommentieren die Zeile bind-address =127.0.0.1 aus, indem wir ein # davor einfügen.
nano /etc/mysql/mariadb.conf.d/50-server.cnf
[...]# Anstelle des Überspringens von Netzwerken wird jetzt standardmäßig nur auf # localhost gelauscht, was kompatibler und nicht weniger sicher ist.# Bindungsadresse =127.0.0.1
[...]
Stellen Sie die Passwort-Authentifizierungsmethode in MariaDB auf nativ ein, damit wir später PHPMyAdmin verwenden können, um uns als Root-Benutzer zu verbinden:
echo "update mysql.user set plugin ='mysql_native_password' where user='root';" | mysql -u root
Bearbeiten Sie die Datei /etc/mysql/debian.cnf und setzen Sie das MYSQL/MariaDB-Root-Passwort dort zweimal in die Zeilen, die mit dem Wort password beginnen.
nano /etc/mysql/debian.cnf
Das hinzuzufügende MySQL-Root-Passwort wird rot angezeigt. In diesem Beispiel lautet das Passwort "howtoforge".
# Automatisch generiert für Debian-Skripte. NICHT ANFASSEN!
[client]
host =localhost
user =root
password = howtoforge
socket =/var/run/mysqld/mysqld.sock
[mysql_upgrade]
host =localhost
user =root
password =howtoforge
socket =/var/run/mysqld/mysqld.sock
basedir =/usr
Um den Fehler 'Fehler beim Akzeptieren:Zu viele offene Dateien zu verhindern ' werden wir jetzt höhere Limits für offene Dateien für MariaDB festlegen.
Öffnen Sie die Datei /etc/security/limits.conf mit einem Editor:
nano /etc/security/limits.conf
und fügen Sie diese Zeilen am Ende der Datei hinzu.
mysql soft nofile 65535
mysql hard nofile 65535
Erstellen Sie als Nächstes mit dem Befehl mkdir ein neues Verzeichnis /etc/systemd/system/mysql.service.d/.
mkdir -p /etc/systemd/system/mysql.service.d/
und fügen Sie eine neue Datei darin hinzu:
nano /etc/systemd/system/mysql.service.d/limits.conf
Fügen Sie die folgenden Zeilen in diese Datei ein:
[Dienst]
LimitNOFILE=unendlich
Speichern Sie die Datei und schließen Sie den Nano-Editor.
Dann laden wir systemd neu und starten MariaDB neu:
systemctl daemon-reload
systemctl restart mariadb
Überprüfen Sie nun, ob das Netzwerk aktiviert ist. Ausführen
netstat -tap | grep mysql
Die Ausgabe sollte so aussehen:
[email protected]:/home/administrator# netstat -tap | grep mysql
tcp6 0 0 [::]:mysql [::]:* LISTEN 16623/mysqld
9 Installieren Sie Amavisd-new, SpamAssassin und ClamAV
Um amavisd-new, SpamAssassin und ClamAV zu installieren, führen wir
ausapt-get install amavisd-new spamassassin clamav clamav-daemon unzip bzip2 arj nomarch lzop cabextract p7zip p7zip-full unrar lrzip 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 libdbd-mysql-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:
systemctl spamassassin stoppen
systemctl spamassassin deaktivieren
10 Installieren Sie Apache Web Server und PHP
Apache2, PHP, FCGI, suExec, Pear und mcrypt können wie folgt installiert werden:
apt-get -y install apache2 apache2-doc apache2-utils libapache2-mod-php php7.3 php7.3-common php7.3-gd php7.3-mysql php7.3-imap php7.3-cli php7 .3-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt imagemagick libruby libapache2-mod-python php7.3-curl php7.3-intl php7.3-pspell php7.3-recode php7.3-sqlite3 php7.3-tidy php7.3-xmlrpc php7.3-xsl memcached php-memcache php-imagick php-gettext php7.3-zip php7.3-mbstring memcached libapache2-mod-passenger php7.3-soap php7.3- fpm php7.3-opcache php-apcu libapache2-reload-perl
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 beinhalten dav_fs dav auth_digest CGI-Header-Aktionen proxy_fcgi Alias
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.
Hinweis: Die Schwachstelle heißt httpoxy (ohne „r“) und daher heißt die Datei, in der wir die Konfiguration hinzufügen, um sie zu verhindern, httpoxy.conf und nicht httproxy.conf, sodass kein „r“ im Dateinamen fehlt.
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
systemctl startet apache2 neu
11 Installieren Sie Let's Encrypt
ISPConfig verwendet jetzt acme.sh als Let's Encrypt-Client. Installieren Sie acme.sh mit dem folgenden Befehl:
curl https://get.acme.sh | sh -s
12 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 Site-Liste <-- 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-unsub scribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"
Drücken Sie die Eingabetaste, um den Eigentümer des Mailman 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:
systemctl postfix neu starten
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:
systemctl startet Apache2 neu
Starten Sie dann den Mailman-Daemon:
systemctl mailman neu starten
13 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
Erstellen Sie die dhparam-Datei für pure-ftpd:
openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048
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
ausecho 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:
systemctl restart pure-ftpd-mysql
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=45576b38-39e8-4994-b8c1-ea4870e2e614 / ext4 error=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
# Swap war auf /dev /sda5 während der Installation
UUID=8bea0d1e-ec37-4b20-9976-4b7daaa3eb69 keine 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
14 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.
15 Installieren Sie Webalizer, AWStats und GoAccess
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
Installieren der neuesten GoAccess-Version direkt aus dem GoAccess-Repository:
echo "deb https://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/goaccess.list
wget -O - https://deb.goaccess.io/gnugpg.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/goaccess.gpg add -
apt-get update
apt-get install goaccess
16 Jailkit installieren
Jailkit wird nur benötigt, wenn Sie SSH-Benutzer chrooten möchten. Es kann wie folgt installiert werden:
apt-get install build-essential autoconf automake libtool flex bison debhelper binutils
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.20.tar.gz
tar xvfz jailkit-2.20.tar.gz
cd jailkit- 2.20
echo 5> debian/compat
./debian/rules binär
Sie können nun das Jailkit .deb-Paket wie folgt installieren:
cd ..
dpkg -i jailkit_2.20-1_*.deb
rm -rf jailkit-2.20*
17 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
Und fügen Sie die folgende Konfiguration hinzu.
[pure-ftpd]
enabled =true
port =ftp
filter =pure-ftpd
logpath =/var/log/syslog
maxretry =3
[Dovecot]
enabled =true
filter =dovecot
logpath =/var/log/mail.log
maxretry =5
[postfix-sasl]
enabled =true
port =smtp
filter =postfix[mode=auth]
logpath =/var/log/mail.log
maxretry =3
Danach fail2ban neu starten:
systemctl restart fail2ban
Um die UFW-Firewall zu installieren, führen Sie diesen apt-Befehl aus:
apt-get install ufw
18 Installieren Sie das PHPMyAdmin-Datenbankverwaltungstool
Seit Debian 10 ist PHPMyAdmin nicht mehr als .deb-Paket verfügbar. Daher werden wir es von der Quelle installieren.
Erstellen Sie Ordner für PHPMyadmin:
mkdir /usr/share/phpmyadmin
mkdir /etc/phpmyadmin
mkdir -p /var/lib/phpmyadmin/tmp
chown -R www-data:www-data /var /lib/phpmyadmin
touch /etc/phpmyadmin/htpasswd.setup
Gehen Sie in das /tmp-Verzeichnis und laden Sie die PHPMyAdmin-Quellen herunter:
cd /tmp
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.tar.gz
Entpacken Sie die heruntergeladene Archivdatei und verschieben Sie die Dateien in den Ordner /usr/share/phpmyadmin und bereinigen Sie das Verzeichnis /tmp.
tar xfz phpMyAdmin-4.9.0.1-all-languages.tar.gz
mv phpMyAdmin-4.9.0.1-all-languages/* /usr/share/phpmyadmin/
rm phpMyAdmin-4.9. 0.1-all-languages.tar.gz
rm -rf phpMyAdmin-4.9.0.1-all-languages
Erstellen Sie basierend auf der bereitgestellten Beispieldatei eine neue Konfigurationsdatei für PHPMyaAdmin:
cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
Öffnen Sie die Konfigurationsdatei mit dem Nano-Editor:
nano /usr/share/phpmyadmin/config.inc.php
Legen Sie ein sicheres Passwort (Blowfish Secret) fest, das 32 Zeichen lang sein muss:
$cfg['blowfish_secret'] ='bD3e6wva9fnd93jVsb7SDgeiBCd452Dh'; /* SIE MÜSSEN DIES FÜR DIE COOKIE-AUTH AUSFÜLLEN! */
Verwenden Sie nicht mein Beispiel Blowfish Secret, legen Sie Ihr eigenes fest!
Fügen Sie dann eine Zeile hinzu, um das Verzeichnis festzulegen, das PHPMyAdmin zum Speichern temporärer Dateien verwenden soll:
$cfg['TempDir'] ='/var/lib/phpmyadmin/tmp';
Als nächstes erstellen wir die Apache-Konfigurationsdatei für PHPMyAdmin, indem wir eine neue Datei im Nano-Editor öffnen:
nano /etc/apache2/conf-available/phpmyadmin.conf
Fügen Sie die folgende Konfiguration in die Datei ein und speichern Sie sie.
# phpMyAdmin Apache-Standardkonfiguration
Alias /phpmyadmin /usr/share/phpmyadmin
Optionen FollowSymLinks
DirectoryIndex index.php
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc Aus
php_flag track_vars On
php_flag register_globals Off
php_value include_path .
# Zur Einrichtung autorisieren
AuthType Basic
AuthName "phpMyAdmin Setup"
AuthUserFile /etc/phpmyadmin/htpasswd. setup
Require valid-user
# Verweigert den Webzugriff auf Verzeichnisse, die ihn nicht benötigen
Order Deny, Allow
Allen verweigern
Auftrag verweigern, zulassen
Verweigern fr om All
Aktivieren Sie die Konfiguration und starten Sie Apache neu.
a2enconf phpmyadmin
systemctl reset apache2
Im nächsten Schritt konfigurieren wir den phpMyadmin-Konfigurationsspeicher (Datenbank).
Melden Sie sich als Root-Benutzer bei MariaDB an:
mysql -u root -p
Erstellen Sie in der MariaDB-Shell eine neue Datenbank für PHPMyAdmin:
MariaDB [(keine)]> DATENBANK ERSTELLEN phpmyadmin;
Erstellen Sie dann einen neuen Benutzer:
MariaDB [(none)]> CREATE USER 'pma'@'localhost' IDENTIFIED BY 'mypassword';
Ersetzen Sie das Wort mypassword mit einem sicheren Passwort Ihrer Wahl in den Befehlen oben und unten, verwenden Sie beide Male dasselbe Passwort. Gewähren Sie dann dem Benutzer Zugriff auf diese Datenbank und laden Sie die Datenbankberechtigungen neu.
MariaDB [(keine)]> GEWÄHRE ALLE PRIVILEGIEN AUF phpmyadmin.* AN 'pma'@'localhost' IDENTIFIZIERT DURCH 'mypassword' MIT GRANT OPTION;
MariaDB [(keine)]> FLUSH PRIVILEGES;
MariaDB [(keine)]> EXIT;
Laden Sie abschließend die SQL-Tabellen in die Datenbank:
mysql -u root -p phpmyadminGeben Sie auf Anfrage das MariaDB-Root-Passwort ein.
Jetzt müssen wir nur noch die phpmyadmin-Benutzerdaten in der Konfigurationsdatei festlegen. Öffnen Sie die Datei erneut im Nano-Editor:
nano /usr/share/phpmyadmin/config.inc.phpScrollen Sie nach unten, bis Sie die folgenden Zeilen sehen, und bearbeiten Sie sie:
/* Benutzer verwendet, um mit Speicher zu manipulieren */
$cfg['Servers'][$i]['controlhost'] ='localhost';
$cfg['Servers'][ $i]['controlport'] ='';
$cfg['Servers'][$i]['controluser'] ='pma';
$cfg['Servers'][$ i]['controlpass'] ='mypassword';
/* Speicherdatenbank und -tabellen */
$cfg['Servers'][$i]['pmadb'] =' phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] ='pma__bookmark';
$cfg['Servers'][$i]['relation'] =' pma__relation';
$cfg['Servers'][$i]['table_info'] ='pma__table_info';
$cfg['Servers'][$i]['table_coords'] =' pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] ='pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] =' pma__column_info';
$cfg['Servers'][$i]['history'] ='pma__history';
$cfg['Servers'][$i]['table_uiprefs'] =' pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] ='pma__tracking';
$cfg['Servers'][$i]['userconfig'] =' pma__userconfig';
$cfg['Servers'][$i]['recent'] ='pma__recent';
$cfg['Servers'][$i]['favorite'] ='pma__favorite';
$cfg['Servers'][$i]['users'] ='pma__users';
$cfg['Servers'][$i]['usergroups'] ='pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] ='pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] ='pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] ='pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] ='pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] ='pma__export_templates';Ich habe die Zeilen rot markiert, die ich bearbeitet habe. Ersetzen Sie meinPasswort mit dem Passwort, das Sie für den Benutzer phpmyadmin gewählt haben. Beachten Sie, dass auch die // vor den Zeilen entfernt wurden!
19 RoundCube Webmail installieren (optional)
In diesem Kapitel installieren wir den RoundCube-Webmail-Client. Zuerst müssen wir die Datenbank für Roundcube manuell erstellen, da es derzeit ein Problem im RoundCube Debian-Installationsprogramm gibt, das dazu führt, dass die Datenbank nicht automatisch erstellt wird. Führen Sie diesen Befehl aus, um die Datenbank zu erstellen:
echo "CREATE DATABASE roundcube;" | mysql --defaults-file=/etc/mysql/debian.cnfInstallieren Sie dann RoundCube mit diesem Befehl:
apt-get installiere roundcube roundcube-core roundcube-mysql roundcube-pluginsDas Installationsprogramm stellt die folgenden Fragen:
Datenbank für Roundcube mit dbconfig.common konfigurieren? <-- ja
MySQL-Anwendungspasswort für Roundcube:<-- drücken Sie die EingabetasteBearbeiten Sie dann die RoundCube-Datei /etc/roundcube/config.inc.php und passen Sie einige Einstellungen an:
nano /etc/roundcube/config.inc.phpSetzen Sie default_host auf localhost und smtp_server.
$config['default_host'] ='localhost';
$config['smtp_server'] ='localhost';
$config['smtp_port'] =25;Bearbeiten Sie dann die Apache RoundCube-Konfigurationsdatei /etc/apache2/conf-enabled/roundcube.conf:
nano /etc/apache2/conf-enabled/roundcube.confUnd fügen Sie eine Alias-Zeile für den Apache /webmail-Alias und eine für /roundcube 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 /roundcube /var/lib/roundcube
Alias /webmail /var/lib/roundcubeLaden Sie dann Apache neu:
systemctl reload apache2Jetzt können Sie wie folgt auf RoundCube zugreifen:
http://192.168.0.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)
Es gibt einige Plugins, um RoundCube Webmail mit ISPConfig zu integrieren, schauen Sie sich hier die Installationsanweisungen für das ISPConfig RoundCube-Plugin an.
20 ISPConfig 3 herunterladen
20 Laden Sie die stabile Version von ISPConfig herunter (empfohlen)
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/21 ISPConfig installieren
Der nächste Schritt besteht darin, das ISPConfig-Installationsprogramm auszuführen.
php -q install.phpDadurch 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.
# php -q install.php
----------------------------------------- -------------------------------------
_____ ___________ _____ __ _ ____
|_ _/ ___| ___ \ / __ \ / _(_) /__ \
| | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /
| | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ |
_| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \
\___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/
__/ |
|___/
--------------------------------------------------- -------------------------------------------
>> ErstkonfigurationBetriebssystem:Debian 10.0 (Buster) oder kompatibelEs 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ückenInstallationsmodus (Standard, Experte) [Standard]: <-- Drücken Sie die EingabetasteVollqualifizierter Hostname (FQDN) des Servers, z. B. server1.domain.tld [server1.example.com]: <-- Drücken Sie die EingabetasteHostname des MySQL-Servers [localhost]: <-- Drücken Sie die EingabetasteMySQL-Serverport [3306]: <-- Drücken Sie die EingabetasteMySQL-Root-Benutzername [root]: <-- Drücken Sie die EingabetasteMySQL-Root-Passwort []: <-- Geben Sie Ihr MySQL-Root-Passwort einMySQL-Datenbank zum Erstellen von [dbispconfig]: <-- Drücken Sie die EingabetasteMySQL-Zeichensatz [utf8]: <-- Drücken Sie die EingabetasteConfiguring Postgrey
Configuring Postfix
Generating a 4096 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 2 letter country code
State or Province Name (full name) [Some-State]:<-- Enter the name of the state
Locality Name (eg, city) []:<-- Enter your city
Organization Name (eg, company) [Internet Widgits Pty Ltd]:<-- Enter company name or press enter
Organizational Unit Name (eg, section) []: <-- Hit Enter
Common Name (e.g. server FQDN or YOUR name) []:<-- Enter the server hostname, in my case:server1.example.com
Email Address []: <-- Hit Enter
Configuring Mailman
Configuring Dovecot
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring BIND
Configuring Jailkit
Configuring Pureftpd
Configuring Apache
Configuring vlogger
[INFO] service Metronome XMPP Server not detected
Configuring Ubuntu Firewall
Configuring Fail2ban
[INFO] service OpenVZ not detected
Configuring Apps vhost
Installing ISPConfig
ISPConfig Port [8080]:Admin password [admin]:Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]: <-- Hit EnterGenerating 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 2 letter country code
State or Province Name (full name) [Some-State]: <-- Enter the name of the state
Locality Name (eg, city) []: <-- Enter your city
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Enter company name or press enter
Organizational Unit Name (eg, section) []: <-- Hit Enter
Common Name (e.g. server FQDN or YOUR name) []: <-- Enter the server hostname, in my case:server1.example.com
Email Address []: <-- Hit EnterPlease enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: <-- Hit Enter
An optional company name []: <-- Hit Enter
writing RSA key
Configuring DBServer
Installing ISPConfig crontab
no crontab for root
no crontab for getmail
Detect IP addresses
Restarting services ...
Installation completed.The installer automatically configures all underlying services, so no manual configuration is needed.
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.
21.1 ISPConfig 3 Manual
In order to learn how to use ISPConfig 3, I strongly recommend downloading the ISPConfig 3 Manual.
On more than 300 pages, it covers the concept behind ISPConfig (admin, resellers, clients), explains how to install and update ISPConfig 3, includes a reference for all forms and form fields in ISPConfig together with examples of valid inputs, and provides tutorials for the most common tasks in ISPConfig 3. It also lines out how to make your server more secure and comes with a troubleshooting section at the end.
22 Virtual Machine Image Download of this Tutorial
Dieses Tutorial ist als gebrauchsfertiges Image der virtuellen Maschine im ovf/ova-Format verfügbar, das mit VMWare und Virtualbox kompatibel ist. Das Image der virtuellen Maschine verwendet die folgenden Anmeldedaten:
SSH-/Shell-Anmeldung
Benutzername:administrator
Passwort:howtoforgeUsername: root
Password:howtoforgeISPConfig Login
Username:admin
Password: adminMySQL Login
Username:root
Password:howtoforgeThe IP of the VM is 192.168.0.100, it can be changed in the file /etc/network/interfaces. Please change all the above passwords to secure the virtual machine.
23 Links
- Debian:http://www.debian.org/
- ISPConfig:http://www.ispconfig.org/