Perfekte Server Automatisierte ISPConfig 3 Installation auf Debian 11 und Ubuntu 20.04
Dieses Tutorial führt Sie durch die Installation Ihres eigenen ISPConfig 3 Einzelserver-Setups mit dem ISPConfig-Auto-Installer. Dieser Installer folgt den alten Perfect Server-Anleitungen, ist aber modularer und einfacher zu befolgen. Wenn Sie stattdessen ein Multiserver-Setup mit dedizierten Servern für jeden Dienst einrichten möchten, lesen Sie die Perfect Multiserver-Anleitung.
Diese Anleitung funktioniert sowohl für Debian 10 und Debian 11 als auch für Ubuntu 20.04. Wir werden den Hostnamen server1.example.com verwenden. Ersetzen Sie ihn, wo nötig.
1. Melden Sie sich auf dem Server an
Melden Sie sich als root an oder führen Sie
su -
aus, um der Root-Benutzer auf Ihrem Server zu werden, bevor Sie fortfahren. WICHTIG: Sie müssen ’su -‚ und nicht nur ’su‘ verwenden, sonst wird Ihre PATH-Variable von Debian falsch gesetzt.
2. Konfigurieren Sie den Hostnamen und die Hosts
Der Hostname Ihres Servers sollte eine Subdomain wie „server1.example.com“ sein. Verwenden Sie keinen Domain-Namen ohne Subdomain-Teil wie „example.com“ als Hostname, da dies später zu Problemen bei der Einrichtung führen wird. Zunächst sollten Sie den Hostnamen in /etc/hosts überprüfen und gegebenenfalls ändern. Die Zeile sollte lauten: „IP-Adresse – Leerzeichen – vollständiger Hostname inkl. Domain – Leerzeichen – Subdomainteil“. Für unseren Hostnamen server1.example.com soll die Datei so aussehen (einige Zeilen können anders sein, das kann je nach Hosting-Anbieter unterschiedlich sein):
nano /etc/hosts
127.0.0.1 localhost.localdomain localhost # This line should be changed to the correct servername: 127.0.1.1 server1.example.com server1 # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
Bearbeiten Sie anschließend die Datei /etc/hostname:
nano /etc/hostname
Sie soll in unserem Fall nur den Teil mit der Subdomain enthalten:
server1
Zum Schluss starten Sie den Server neu, um die Änderung zu übernehmen:
systemctl reboot
Loggen Sie sich wieder ein und überprüfen Sie mit diesen Befehlen, ob der Hostname nun korrekt ist:
hostname hostname -f
Die Ausgabe sollte wie folgt aussehen:
root@server1:~$ hostname server1 root@server1:~$ hostname -f server1.example.com
Sie müssen auch einen DNS-Eintrag bei Ihrem DNS-Anbieter einrichten, der auf Ihren Server zeigt. Es sollte einen A- (und/oder AAAA-) Eintrag für die Subdomain geben, der auf Ihre öffentliche IP verweist.
3. Starten Sie den Auto-Installer
Nun können wir den Auto-Installer ausführen. Das Basis-Setup enthält die folgenden Softwarepakete (plus deren Abhängigkeiten natürlich): Apache2, PHP (Versionen 5.6 – 8.0), MariaDB, Postfix, Dovecot, Rspamd, BIND, Jailkit, Roundcube, PHPMyAdmin, Mailman, Webalizer, AWStats und GoAccess. Sie können einfach wählen, bestimmte Funktionen nicht zu verwenden oder zusätzliche Dienste zu installieren, indem Sie Argumente an das Installationsprogramm übergeben. Sie können alle Argumente mit anzeigen:
wget -O - https://get.ispconfig.org | sh -s -- --help
Sie können nun das Skript mit Argumenten ausführen. Wenn Sie z. B. eine normale Installation mit einem Portbereich für Passives FTP + unbeaufsichtigte Upgrades wünschen, führen Sie aus:
wget -O - https://get.ispconfig.org | sh -s -- --use-ftp-ports=40110-40210
--unattended-upgrades
Nach einiger Zeit werden Sie sehen:
WARNING! This script will reconfigure your complete server! It should be run on a freshly installed server and all current configuration that you have done will most likely be lost! Type 'yes' if you really want to continue:
Antworten Sie mit „Ja“ und drücken Sie die Eingabetaste. Das Installationsprogramm wird nun gestartet.
Wenn der Installer fertig ist, zeigt er Ihnen das ISPConfig-Admin- und MySQL-Root-Passwort so an:
[INFO] Your ISPConfig admin password is: 5GvfSSSYsdfdYC [INFO] Your MySQL root password is: kkAkft82d!kafMwqxdtYs
Notieren Sie sich diese Informationen, da Sie sie später noch benötigen werden.
4. Einrichten der Firewall
Als letztes müssen Sie unsere Firewall einrichten.
Melden Sie sich in der ISPConfig-Benutzeroberfläche an und gehen Sie zu System -> Firewall. Klicken Sie dann auf „Add new firewall record“.
Bei einer normalen Einrichtung würde es so aussehen:
TCP:
20,21,22,80,443,40110:40210,110,143,465,587,993,995,53,8080,8081
UDP:
53
Die notwendigen Ports für jeden Dienst sind:
Web: 20, 21, 22, 80, 443 und 40110:40210 (alle TCP, kein UDP)
Mail: 110, 143, 465, 587, 993 und 995 (alle TCP, kein UDP)
DNS: 53 (TCP und UDP)
Panel: 8080 und 8081 (alle TCP, kein UDP)
Ihr Server ist nun eingerichtet und einsatzbereit. Sie können sich unter https://server1.example.com:8080 anmelden.
5. Erweiterte Optionen
Das Auto-Installationsprogramm verfügt über verschiedene Befehlszeilenoptionen zur Feinabstimmung des Setups. Sie können z. B. zwischen Apache und Nginx Webserver wählen und welche Dienste auf dem System installiert werden sollen. Die Kommandozeilenargumente sind:
Usage: ispc3-ai.sh [] [...] This script automatically installs all needed packages for an ISPConfig 3 setup using the guidelines from the "Perfect Server Setup" howtos on www.howtoforge.com. Possible arguments are: --help Show this help page --debug Enable verbose logging (logs each command with the exit code) --channel Choose the channel to use for ISPConfig. --channel=<stable|dev> "stable" is the latest ISPConfig release available on www.ispconfig.org "dev" is the latest stable-branch from the ISPConfig git repository: https://git.ispconfig.org/ispconfig/ispconfig3/tree/stable-3.1 -> The dev channel might contain bugs and less-tested features and should only be used in production by very experienced users. --lang Use language for ISPConfig installation. Specify with --lang=en|de (only en (English) and de (German) supported currently). --interactive Don't install ISPConfig in non-interactive mode. This is needed if you want to use expert mode, e. g. to install a slave server that shall be integrated into an existing multiserver setup. --use-nginx Use nginx webserver instead of apache2 --use-amavis Use amavis instead of rspamd for mail filtering --use-unbound Use unbound instead of bind9 for local resolving. Only allowed if --no-dns is set. --use-php Use specific PHP versions, comma separated, instead of installing multiple PHP, e.g. --use-php=7.4,8.0 (5.6, 7.0, 7.1, 7.2, 7.3, 7.4 and 8.0 available). --use-php=system disables the sury repository and just installs the system's default PHP version. ommiting the argument (use all versions) --use-ftp-ports This option sets the passive port range for pure-ftpd. You have to specify the port range separated by hyphen, e. g. --use-ftp-ports=40110-40210. If not provided the passive port range will not be configured. --use-certbot Use Certbot instead of acme.sh for issuing Let's Encrypt certificates. Not adviced unless you are migrating from a old server that uses Certbot. --no-web Do not use ISPConfig on this server to manage webserver setting and don't install nginx/apache or pureftpd. This will also prevent installing an ISPConfig UI and implies --no-roundcube as well as --no-pma --no-mail Do not use ISPConfig on this server to manage mailserver settings. This will install postfix for sending system mails, but not dovecot and not configure any settings for ISPConfig mail. It implies --no-mailman. --no-dns Do not use ISPConfig on this server to manage DNS entries. Bind will be installed for local DNS caching / resolving only. --no-local-dns Do not install local DNS caching / resolving via bind. --no-firewall Do not install ufw and tell ISPConfig to not manage firewall settings on this server. --no-roundcube Do not install roundcube webmail. --roundcube Install Roundcube even when --no-mail is used. Manual configuration of Roundcube config is needed. --no-pma Do not install PHPMyAdmin on this server. --no-mailman Do not install Mailman mailing list manager. --no-quota Disable file system quota --no-ntp Disable NTP setup --unattended-upgrades Install UnattendedUpgrades. You can add extra arguments for automatic cleanup and automatic reboots when necessary with --unattended-upgrades=autoclean,reboot (or only one of them). --i-know-what-i-am-doing Prevent the autoinstaller to ask for confirmation before continuing to reconfigure the server.
Um z. B. eine „Perfect Server“-ähnliche Einrichtung mit Nginx anstelle von Apache zu installieren, verwenden Sie diesen Befehl:
wget -O - https://get.ispconfig.org | sh -s -- --use-nginx --use-ftp-ports=40110-40210
--unattended-upgrades
Oder um einen Nginx-Webserver ohne E-Mail- und DNS-Dienste zu installieren:
wget -O - https://get.ispconfig.org | sh -s -- --use-nginx --no-dns --no-mail --use-ftp-ports=40110-40210
--unattended-upgrades
6. Fertigstellung
Ihre Einrichtung ist nun abgeschlossen!
Sie können ISPConfig durch den Kauf unseres Handbuchs unterstützen: https://www.ispconfig.org/documentation/
Die folgenden Links sind einige nützliche Tutorials/Hinweise für die weitere Einrichtung:
- Einrichten von Mail (rDNS, SPF, DKIM): https://www.howtoforge.com/how-to-install-an-email-server-with-ispconfig-on-debian-10/
- Roundcube einrichten: https://www.howtoforge.com/community/threads/tweaking-the-roundcube-settings.86387/
- Einrichten von autoconfig (automatische Konfiguration für Ihre E-Mail-Clients): https: //schaal-it.com/ispconfig-automail/
- Verbessern der Sicherheit von PHPMyAdmin und der rspamd-Schnittstelle: https://www.howtoforge.com/community/threads/improving-the-security-of-phpmyadmin-and-rspamd-ui.86544/
Wenn Sie Fragen haben, stellen Sie sie im Forum.