IONOS Mietserver Ubuntu 24.04 - Einrichtung ISPConfig: Unterschied zwischen den Versionen
Aus znilwiki
BLinz (Diskussion | Beiträge) |
BLinz (Diskussion | Beiträge) |
||
Zeile 211: | Zeile 211: | ||
was wir mit {{Key|yes}} bestätigen.<br> | was wir mit {{Key|yes}} bestätigen.<br> | ||
Er prüft dann noch mal die Umgebung und würde auf Fehler hinweisen und abbrechen. Wenn alles ok ist, legt er los.<br> | Er prüft dann noch mal die Umgebung und würde auf Fehler hinweisen und abbrechen. Wenn alles ok ist, legt er los.<br> | ||
<source> | |||
[INFO] Starting perfect server setup for Ubuntu 24.04 LTS | |||
[INFO] Checking hostname. | |||
[INFO] Configuring apt repositories. | |||
[INFO] Updating packages | |||
[INFO] Updated packages | |||
[INFO] Installing packages ssh, openssh-server, nano, vim-nox, lsb-release, apt-transport-https, ca-certificates, wget, git, gnupg, software-properties-common, curl, cron | |||
[INFO] Installed packages ssh, openssh-server, nano, vim-nox, lsb-release, apt-transport-https, ca-certificates, wget, git, gnupg, software-properties-common, curl, cron | |||
[INFO] Activating sury php repository. | |||
W: https://ppa.launchpadcontent.net/ondrej/php/ubuntu/dists/noble/InRelease: Signature by key 14AA40EC0831756756D7F66C4F4EA0AAE5267A6C uses weak algorithm (rsa1024) | |||
[INFO] Activating GoAccess repository. | |||
[INFO] Updating packages (after enabling 3rd party repos). | |||
[INFO] Updated packages | |||
[INFO] Installing packages dbconfig-common, postfix, postfix-mysql, mariadb-client, mariadb-server, openssl, rkhunter, binutils, sudo, getmail6, rsyslog | |||
[INFO] Installed packages dbconfig-common, postfix, postfix-mysql, mariadb-client, mariadb-server, openssl, rkhunter, binutils, sudo, getmail6, rsyslog | |||
[INFO] Generating MySQL password. | |||
[INFO] Writing MySQL config files. | |||
[INFO] Restarting postfix | |||
[INFO] Configuring rkhunter. | |||
[INFO] Installing packages software-properties-common, update-inetd, dnsutils, resolvconf, clamav, clamav-daemon, zip, unzip, bzip2, xz-utils, lzip, rar, borgbackup, arj, nomarch, lzop, cabextract, apt-listchanges, libnet-ldap-perl, libauthen-sasl-perl, daemon, libio-string-perl, libio-socket-ssl-perl, libnet-ident-perl, libnet-dns-perl, libdbd-mysql-perl, p7zip, p7zip-full, unrar-free, lrzip | |||
[INFO] Installed packages software-properties-common, update-inetd, dnsutils, resolvconf, clamav, clamav-daemon, zip, unzip, bzip2, xz-utils, lzip, rar, borgbackup, arj, nomarch, lzop, cabextract, apt-listchanges, libnet-ldap-perl, libauthen-sasl-perl, daemon, libio-string-perl, libio-socket-ssl-perl, libnet-ident-perl, libnet-dns-perl, libdbd-mysql-perl, p7zip, p7zip-full, unrar-free, lrzip | |||
[INFO] (Re)starting Bind. | |||
[INFO] Disabling spamassassin daemon. | |||
WARNING: Clamd was NOT notified: Can't connect to clamd through /var/run/clamav/clamd.ctl: No such file or directory | |||
[INFO] Installing packages apache2, apache2-utils, libapache2-mod-fcgid, apache2-suexec-pristine, libapache2-mod-python, libapache2-mod-passenger | |||
[INFO] Installed packages apache2, apache2-utils, libapache2-mod-fcgid, apache2-suexec-pristine, libapache2-mod-python, libapache2-mod-passenger | |||
[INFO] Installing packages php-pear, php-memcache, php-imagick, mcrypt, imagemagick, libruby, memcached, php-apcu, jailkit, php5.6, php5.6-common, php5.6-gd, php5.6-mysql, php5.6-imap, php5.6-cli, php5.6-mcrypt, php5.6-curl, php5.6-intl, php5.6-pspell, php5.6-recode, php5.6-sqlite3, php5.6-tidy, php5.6-xmlrpc, php5.6-xsl, php5.6-zip, php5.6-mbstring, php5.6-soap, php5.6-opcache, php5.6-cgi, php5.6-fpm, php7.0, php7.0-common, php7.0-gd, php7.0-mysql, php7.0-imap, php7.0-cli, php7.0-mcrypt, php7.0-curl, php7.0-intl, php7.0-pspell, php7.0-recode, php7.0-sqlite3, php7.0-tidy, php7.0-xmlrpc, php7.0-xsl, php7.0-zip, php7.0-mbstring, php7.0-soap, php7.0-opcache, php7.0-cgi, php7.0-fpm, php7.1, php7.1-common, php7.1-gd, php7.1-mysql, php7.1-imap, php7.1-cli, php7.1-mcrypt, php7.1-curl, php7.1-intl, php7.1-pspell, php7.1-recode, php7.1-sqlite3, php7.1-tidy, php7.1-xmlrpc, php7.1-xsl, php7.1-zip, php7.1-mbstring, php7.1-soap, php7.1-opcache, php7.1-cgi, php7.1-fpm, php7.2, php7.2-common, php7.2-gd, php7.2-mysql, php7.2-imap, php7.2-cli, php7.2-curl, php7.2-intl, php7.2-pspell, php7.2-recode, php7.2-sqlite3, php7.2-tidy, php7.2-xmlrpc, php7.2-xsl, php7.2-zip, php7.2-mbstring, php7.2-soap, php7.2-opcache, php7.2-cgi, php7.2-fpm, php7.3, php7.3-common, php7.3-gd, php7.3-mysql, php7.3-imap, php7.3-cli, php7.3-curl, php7.3-intl, php7.3-pspell, php7.3-recode, php7.3-sqlite3, php7.3-tidy, php7.3-xmlrpc, php7.3-xsl, php7.3-zip, php7.3-mbstring, php7.3-soap, php7.3-opcache, php7.3-cgi, php7.3-fpm, php7.4, php7.4-common, php7.4-gd, php7.4-mysql, php7.4-imap, php7.4-cli, php7.4-curl, php7.4-intl, php7.4-pspell, php7.4-sqlite3, php7.4-tidy, php7.4-xmlrpc, php7.4-xsl, php7.4-zip, php7.4-mbstring, php7.4-soap, php7.4-opcache, php7.4-cgi, php7.4-fpm, php8.0, php8.0-common, php8.0-gd, php8.0-mysql, php8.0-imap, php8.0-cli, php8.0-curl, php8.0-intl, php8.0-pspell, php8.0-sqlite3, php8.0-tidy, php8.0-xsl, php8.0-zip, php8.0-mbstring, php8.0-soap, php8.0-opcache, php8.0-cgi, php8.0-fpm, php8.1, php8.1-common, php8.1-gd, php8.1-mysql, php8.1-imap, php8.1-cli, php8.1-curl, php8.1-intl, php8.1-pspell, php8.1-sqlite3, php8.1-tidy, php8.1-xsl, php8.1-zip, php8.1-mbstring, php8.1-soap, php8.1-opcache, php8.1-cgi, php8.1-fpm, php8.2, php8.2-common, php8.2-gd, php8.2-mysql, php8.2-imap, php8.2-cli, php8.2-curl, php8.2-intl, php8.2-pspell, php8.2-sqlite3, php8.2-tidy, php8.2-xsl, php8.2-zip, php8.2-mbstring, php8.2-soap, php8.2-opcache, php8.2-cgi, php8.2-fpm, php8.3, php8.3-common, php8.3-gd, php8.3-mysql, php8.3-imap, php8.3-cli, php8.3-curl, php8.3-intl, php8.3-pspell, php8.3-sqlite3, php8.3-tidy, php8.3-xsl, php8.3-zip, php8.3-mbstring, php8.3-soap, php8.3-opcache, php8.3-cgi, php8.3-fpm | |||
[INFO] Installed packages php-pear, php-memcache, php-imagick, mcrypt, imagemagick, libruby, memcached, php-apcu, jailkit, php5.6, php5.6-common, php5.6-gd, php5.6-mysql, php5.6-imap, php5.6-cli, php5.6-mcrypt, php5.6-curl, php5.6-intl, php5.6-pspell, php5.6-recode, php5.6-sqlite3, php5.6-tidy, php5.6-xmlrpc, php5.6-xsl, php5.6-zip, php5.6-mbstring, php5.6-soap, php5.6-opcache, php5.6-cgi, php5.6-fpm, php7.0, php7.0-common, php7.0-gd, php7.0-mysql, php7.0-imap, php7.0-cli, php7.0-mcrypt, php7.0-curl, php7.0-intl, php7.0-pspell, php7.0-recode, php7.0-sqlite3, php7.0-tidy, php7.0-xmlrpc, php7.0-xsl, php7.0-zip, php7.0-mbstring, php7.0-soap, php7.0-opcache, php7.0-cgi, php7.0-fpm, php7.1, php7.1-common, php7.1-gd, php7.1-mysql, php7.1-imap, php7.1-cli, php7.1-mcrypt, php7.1-curl, php7.1-intl, php7.1-pspell, php7.1-recode, php7.1-sqlite3, php7.1-tidy, php7.1-xmlrpc, php7.1-xsl, php7.1-zip, php7.1-mbstring, php7.1-soap, php7.1-opcache, php7.1-cgi, php7.1-fpm, php7.2, php7.2-common, php7.2-gd, php7.2-mysql, php7.2-imap, php7.2-cli, php7.2-curl, php7.2-intl, php7.2-pspell, php7.2-recode, php7.2-sqlite3, php7.2-tidy, php7.2-xmlrpc, php7.2-xsl, php7.2-zip, php7.2-mbstring, php7.2-soap, php7.2-opcache, php7.2-cgi, php7.2-fpm, php7.3, php7.3-common, php7.3-gd, php7.3-mysql, php7.3-imap, php7.3-cli, php7.3-curl, php7.3-intl, php7.3-pspell, php7.3-recode, php7.3-sqlite3, php7.3-tidy, php7.3-xmlrpc, php7.3-xsl, php7.3-zip, php7.3-mbstring, php7.3-soap, php7.3-opcache, php7.3-cgi, php7.3-fpm, php7.4, php7.4-common, php7.4-gd, php7.4-mysql, php7.4-imap, php7.4-cli, php7.4-curl, php7.4-intl, php7.4-pspell, php7.4-sqlite3, php7.4-tidy, php7.4-xmlrpc, php7.4-xsl, php7.4-zip, php7.4-mbstring, php7.4-soap, php7.4-opcache, php7.4-cgi, php7.4-fpm, php8.0, php8.0-common, php8.0-gd, php8.0-mysql, php8.0-imap, php8.0-cli, php8.0-curl, php8.0-intl, php8.0-pspell, php8.0-sqlite3, php8.0-tidy, php8.0-xsl, php8.0-zip, php8.0-mbstring, php8.0-soap, php8.0-opcache, php8.0-cgi, php8.0-fpm, php8.1, php8.1-common, php8.1-gd, php8.1-mysql, php8.1-imap, php8.1-cli, php8.1-curl, php8.1-intl, php8.1-pspell, php8.1-sqlite3, php8.1-tidy, php8.1-xsl, php8.1-zip, php8.1-mbstring, php8.1-soap, php8.1-opcache, php8.1-cgi, php8.1-fpm, php8.2, php8.2-common, php8.2-gd, php8.2-mysql, php8.2-imap, php8.2-cli, php8.2-curl, php8.2-intl, php8.2-pspell, php8.2-sqlite3, php8.2-tidy, php8.2-xsl, php8.2-zip, php8.2-mbstring, php8.2-soap, php8.2-opcache, php8.2-cgi, php8.2-fpm, php8.3, php8.3-common, php8.3-gd, php8.3-mysql, php8.3-imap, php8.3-cli, php8.3-curl, php8.3-intl, php8.3-pspell, php8.3-sqlite3, php8.3-tidy, php8.3-xsl, php8.3-zip, php8.3-mbstring, php8.3-soap, php8.3-opcache, php8.3-cgi, php8.3-fpm | |||
[INFO] Disabling conflicting apache modules. | |||
[INFO] Enabling apache modules. | |||
[INFO] Enabling default PHP-FPM config. | |||
[INFO] Setting default system PHP version. | |||
[INFO] Installing phpMyAdmin | |||
[INFO] HTTPoxy config. | |||
[INFO] Installing acme.sh (Let's Encrypt). | |||
[INFO] acme.sh (Let's Encrypt) installed. | |||
[INFO] ISPConfig does not yet support mailman3 and mailman2 is no longer available since Ubuntu 22.04. | |||
[INFO] Installing packages haveged, geoip-database, libclass-dbi-mysql-perl, libtimedate-perl, build-essential, autoconf, automake, libtool, flex, bison, debhelper, binutils | |||
[INFO] Installed packages haveged, geoip-database, libclass-dbi-mysql-perl, libtimedate-perl, build-essential, autoconf, automake, libtool, flex, bison, debhelper, binutils | |||
[INFO] Installing packages webalizer, awstats, goaccess | |||
[INFO] Installed packages webalizer, awstats, goaccess | |||
[INFO] Disabling awstats cron. | |||
[INFO] Installing packages fail2ban | |||
[INFO] Installed packages fail2ban | |||
[INFO] Configuring SSHd | |||
[INFO] Installing ISPConfig3. | |||
[INFO] Adding PHP version(s) to ISPConfig. | |||
[INFO] Checking all services are running. | |||
[INFO] mysql: OK | |||
[INFO] clamav-daemon: OK | |||
[INFO] postfix: OK | |||
[INFO] pureftpd: FAILED | |||
[WARN] pureftpd seems not to be running! (/lib/os/class.ISPConfigDebianOS.inc.php:2255) | |||
[INFO] apache2: OK | |||
[INFO] Installation ready. | |||
[INFO] Your ISPConfig admin password is: Pjb3MGw8F18wyZd | |||
[INFO] Your MySQL root password is: 6J9XC5Z2QpZ3LWD6Zn43 | |||
[INFO] Warning: Please delete the log files in /tmp/ispconfig-ai/var/log/setup-* once you don't need them anymore because they contain your passwords! | |||
</source> | |||
Die Fehlermeldungen sind in diesem Fall richtig, der FTP-Dienst ist ja auch nicht installiert.<br> | |||
In der vor-vorletzten Zeile steht nun das Passwort über welches wir uns nun per https:// anmelden können, in der vorletzten des MySQL-root-Benutzers (auch wenn MariaDB installiert wurde).<br> | |||
Wir rufen die Webseite auf:<br> | |||
https://213.165.83.96:8080 | |||
was vermutlich nicht klappen wird - die IONOS Firewall wird den Port sperren.<br> | |||
Meldet euch in diesem Fall unter | |||
https://cloudpanel.ionos.de/ | |||
an (oder geht den Weg über https://login.ionos.de/ und wählt im Menü '''''Server & Cloud'''''), wählt dann<br> | |||
Netzwerk => Firewall-Richtlinien | |||
Dann rechts die Richtlinie auswählen und dann könnte Ihr unten einen Eintrag hinzufügen.<br> | |||
:[[Datei:ClipCapIt-240622-174355.PNG]]<br> | |||
Rechts den grünen Haken und er speichert sofort. Quelle lasst Ihr frei oder tragt eure aktuelle externe IP ein. Ich habe eine feste IP-Adresse und es so eingestellt das ich nur von zu Hause aus auf das System komme.<br> | |||
Und schon können wir uns anmelden:<br> | |||
:[[Datei:ClipCapIt-240622-174657.PNG]]<br> | |||
<br> | |||
---- | |||
==Postfix für Verwendung eines SMTP-Relay konfigurieren== | |||
nano /etc/postfix/main.cf | |||
und unten die folgende Zeile ändern und euren(!!!) SMPT-Relais Host eintragen:<br> | |||
relayhost = 5.196.125.45 | |||
Das ist bei mir mein ganz normaler Mailserver - auf dem ich eingestellt habe das er alles von der festen IP meines Webservers annehmen soll.<br> | |||
---- |
Version vom 22. Juni 2024, 16:51 Uhr
Changelog:
- 22.06.2024 erste Version
Vorwort
Meine Homepage läuft schon seit ein paar Jahren (2021) auf einem virtuellen Server bei IONOS.
Am 22.06.2024 habe ich einen neuen "VPS 2-2-80" Server bei IONOS angemietet. Aus verschiedenen Gründen:
- Durch den Neuabschluss zahle ich nur 4€ statt 5€ im Monat
- Bequeme Migration von Ubuntu 20.04 auf 24.04 da beides parallel läuft
- Die Firewall-Richtlinien über das https://cloudpanel.ionos.de/ gefallen mir gut
- Backup per VeeamAgent für Linux hat sich auch bei den neueren VMs auf "RedHat Virtualization (aka virtio)" als brauchbar herausgestellt.
Um die Einrichtung auch für das nächste man zu Beschleunigen, schreibe ich diesmal auch wirklich alles auf was ich mache :-)
Als Basis habe ich Ubuntu 24.04 LTS gewählt, nach ein paar Minuten war der Server fertig und ich konnte das erste mal per SSH auf das System.
Sprache Umstellen
Default ist das Ubuntu Englisch, inklusive Englischer Tastatur.
Das mit der Tastatur ist prinzipiell bei SSH Zugriff egal, aber es gibt auch eine KVM-Konsole bzw. beim Restore unter VMware ist auch erst einmal die Konsole.
dpkg-reconfigure keyboard-configuration
und dann
Generic 105-key PC => German => German => The default for the keyboard layout => No compose key
Und noch die Sprache
dpkg-reconfigure locales
und dann
de_DE.UTF-8 UTF-8 => de_DE.UTF-8
nano & Co auch auf deutsch
apt install -y language-pack-de
Prompt anpassen
nano .bashrc
und folgende Zeilen anpassen:
force_color_prompt=yes alias ll='ls -alFh'
macht den Prompt farbig und alle Größenangaben sind "Human readable", also in Kilobyte, Megabyte etc. statt in Bytes.
Und ganz unten noch folgendes anhängen:
# Alle SSH Sitzungen teilen sich die Bash-History # Keine Duplikate oder leeren Zeilen HISTCONTROL=ignoredups:ignorespace:erasedups # An die History Datei anhängen, nicht überschreiben shopt -s histappend # Maximale Anzahl Zeilen und/oder Dateigröße (je nachdem was zuerst eintrifft) HISTSIZE=50000 HISTFILESIZE=50000 # Nach jeden abgesetzen Befehl diesen an die History anhängen und diese neu einlesen export PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'n'}history -a; history -c; history -r"
System umbennen
ionos-web02
soll der neue Name des Systems sein.
hostnamectl set-hostname ionos-web02
und noch
nano /etc/hosts
und dort die 127.0.1.1 Zeile anpassen:
# Your system has configured 'manage_etc_hosts' as True.
# As a result, if you wish for changes to this file to persist
# then you will need to either
# a.) make changes to the master file in /etc/cloud/templates/hosts.debian.tmpl
# b.) change or remove the value of 'manage_etc_hosts' in
# /etc/cloud/cloud.cfg or cloud-config from user-data
#
127.0.1.1 ionos-web02 ionos-web02.znil.org
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Das ISPConfig-Installationsskript besteht auf einen FQDN-Namen für 127.0.1.1!
Der Name muss nicht auflösbar sein.
Nach einem reboot muss das in etwa so bei euch aussehen:
root@ionos-web02:~# hostname
ionos-web02
root@ionos-web02:~# hostname -f
ionos-web02.znil.org
Anmeldung des root per SSH verbieten
Per Default haben wir eine root-Anmeldung per SSH und Passwort.
Ich melde mich per SSH aber immer per SSH-Key an.
Den SSH-Key fügen wir in folgende Datei ein:
nano ~/.ssh/authorized_keys2
Speichern und dann testen ob die Anmeldung per SSH-Key funktioniert.
Wenn ja:
nano /etc/ssh/sshd_config
und ganz nach unten scrollen, da wurde bei mir die Zeile
PermitRootLogin yes
angehängt die wir mit F9 einfach löschen (oder an jeder anderen Stelle wo diese stehen würde)
Damit gilt automatisch der Default Wert PermitRootLogin prohibit-password
Die Gegenprobe schadet natürlich nicht (also ob es wirklich nicht mehr per Passwort geht)
Zeitzone setzen / Zeitserver setzen
Der Befehl
date
spuckt noch eine falsche Uhrzeit aus, die richtige Zeitzone setzen wir mit
timedatectl set-timezone Europe/Berlin
Als Zeitserver wird im Moment noch
ntp.ubuntu.com
genommen, das ändere ich wie folgt:
nano /etc/systemd/timesyncd.conf
und folgende Zeile einfügen / ändern:
[Time]
NTP=de.pool.ntp.org
#FallbackNTP=ntp.ubuntu.com
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048
#ConnectionRetrySec=30
#SaveIntervalSec=60
Updates einspielen / System aktualisieren
Das mache ich immer (auch später) mit folgendem Einzeiler:
apt update && apt dist-upgrade -y && apt autoremove -y
und ein
reboot
danach schadet nicht.
ISPConfig Installieren
Jetzt sind wir schon soweit das wir ISPConfig installieren können.
Früher habe ich das immer nach einen der diversen "The Perfect Server" Anleitungen installiert:
https://www.ispconfig.org/documentation/
Inzwischen gibt es einen automatischen Installer der das für uns übernimmt:
https://www.howtoforge.com/ispconfig-autoinstall-debian-ubuntu/
Die Vorarbeiten die man machen soll, haben wir schon erledigt.
Da ich einige Parameter anpassen möchte, starte ich es mit entsprechenden Parametern:
Die Hilfe bekommen wir per
wget -O - https://get.ispconfig.org | sh -s -- --help
Da werden - obwohl wir nur die Hilfe aufrufen - schon einige Pakete nachinstalliert.
Am Ende steht da die Hilfe:
**********************************************************************************************************************************************************************************************ISPConfig 3 Autoinstaller
**********************************************************************************************************************************************************************************************
Usage: ispc3-ai.sh [<argument>] [...]
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 dev-branch from the ISPConfig git repository: https://git.ispconfig.org/ispconfig/ispconfig3/tree/develop
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, 8.0, 8.1, 8.2 and 8.3 available).
--use-php=system disables the sury repository and just installs the system's default PHP version.
--use-php while omitting the argument, uses 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 advised unless you are migrating from an 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.
--no-jailkit Do not install jailkit.
--no-ftp Do not install Pure-FTPd server.
--monit Install Monit and set it up to monitor installed services. Supported services: Apache2, NGINX, MariaDB, pure-ftpd-mysql, php-fpm, ssh, named, Postfix, Dovecot, rspamd.
--monit-alert-email
Set up alerts for Monit to be sent to given e-mail address. e.g. --monit-alert-email=me@example.com.
--ssh-port Configure the SSH server to listen on a non-default port. Port number must be between 1 and 65535 and can not be in use by other services. e.g. --ssh-port=64.
--ssh-permit-root
Configure the SSH server whether or not to allow root login: --ssh-permit-root=<yes|without-password|no>, e.g. --ssh-permit-root=without-password.
--ssh-password-authentication
Configure the SSH server whether or not to allow password authentication: --ssh-password-authentication=<yes|no>, e.g. -ssh-password-authentication=no.
--ssh-harden Configure the SSH server to have a stronger security config.
--unattended-upgrades
Install UnattendedUpgrades. You can add extra arguments for automatic cleanup and automatic reboots when necessary: --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.
Ich nutze ISPConfig nur für mich alleine. Aber warum dann? Weil es bequem ist, jede Webseite läuft dann unter ihrem eigenen, eingeschränkten Benutzer, ich kann pro Webseite die PHP-Version einstellen (oder abschalten), automatisch Let`s Encrypt Zertifikate anfordern lassen usw.
Aber ich brauche - Stand 22.06.2024 - keinen Mailserver / Webmail / FTP / DNS-Server / NTP-Setup.
Ich installiere ISPConfig aif Englisch (ja, ich weis, wir haben doch gerade extra alles auf Deutsch umgestellt), empfinde ich als einfacher.
Ok, mein Aufruf sieht wie folgt aus:
wget -O - https://get.ispconfig.org | sh -s -- --lang=en --no-mail --no-dns --no-local-dns --no-firewall --no-roundcube --no-quota --no-ntp --no-ftp
Erklärung
--no-mail : Installiert nur Postfix um Systemmeldungen zu versenden, aber keine zusätzlichen Pakete oder die Konfiguration über ISPConfig --no-dns : Keine Verwaltung von DNS-Einträgen über ISPConfig --no-local-dns : und auch keinen Bind-DNS-Server installieren, wir fragen ganz norme externe DNS-Server ab --no-firewall : die Firewall nicht aktivieren (Ich nutze die IONOS Firewall davor) --no-roundcube : Den Roundcube Webmailer nicht installieren --no-quota : Keine Speicherplatzbegrenzungen pro Benutzer verwenden --no-ntp : Zeitserver nicht konfigurieren --no-ftp : keinen FTP-Server installieren
Wenn wir den Befehl senden, fragt er noch mal nach ob wir loslegen sollen:
WARNING! This script will reconfigure your entire 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: yes
was wir mit yes bestätigen.
Er prüft dann noch mal die Umgebung und würde auf Fehler hinweisen und abbrechen. Wenn alles ok ist, legt er los.
[INFO] Starting perfect server setup for Ubuntu 24.04 LTS
[INFO] Checking hostname.
[INFO] Configuring apt repositories.
[INFO] Updating packages
[INFO] Updated packages
[INFO] Installing packages ssh, openssh-server, nano, vim-nox, lsb-release, apt-transport-https, ca-certificates, wget, git, gnupg, software-properties-common, curl, cron
[INFO] Installed packages ssh, openssh-server, nano, vim-nox, lsb-release, apt-transport-https, ca-certificates, wget, git, gnupg, software-properties-common, curl, cron
[INFO] Activating sury php repository.
W: https://ppa.launchpadcontent.net/ondrej/php/ubuntu/dists/noble/InRelease: Signature by key 14AA40EC0831756756D7F66C4F4EA0AAE5267A6C uses weak algorithm (rsa1024)
[INFO] Activating GoAccess repository.
[INFO] Updating packages (after enabling 3rd party repos).
[INFO] Updated packages
[INFO] Installing packages dbconfig-common, postfix, postfix-mysql, mariadb-client, mariadb-server, openssl, rkhunter, binutils, sudo, getmail6, rsyslog
[INFO] Installed packages dbconfig-common, postfix, postfix-mysql, mariadb-client, mariadb-server, openssl, rkhunter, binutils, sudo, getmail6, rsyslog
[INFO] Generating MySQL password.
[INFO] Writing MySQL config files.
[INFO] Restarting postfix
[INFO] Configuring rkhunter.
[INFO] Installing packages software-properties-common, update-inetd, dnsutils, resolvconf, clamav, clamav-daemon, zip, unzip, bzip2, xz-utils, lzip, rar, borgbackup, arj, nomarch, lzop, cabextract, apt-listchanges, libnet-ldap-perl, libauthen-sasl-perl, daemon, libio-string-perl, libio-socket-ssl-perl, libnet-ident-perl, libnet-dns-perl, libdbd-mysql-perl, p7zip, p7zip-full, unrar-free, lrzip
[INFO] Installed packages software-properties-common, update-inetd, dnsutils, resolvconf, clamav, clamav-daemon, zip, unzip, bzip2, xz-utils, lzip, rar, borgbackup, arj, nomarch, lzop, cabextract, apt-listchanges, libnet-ldap-perl, libauthen-sasl-perl, daemon, libio-string-perl, libio-socket-ssl-perl, libnet-ident-perl, libnet-dns-perl, libdbd-mysql-perl, p7zip, p7zip-full, unrar-free, lrzip
[INFO] (Re)starting Bind.
[INFO] Disabling spamassassin daemon.
WARNING: Clamd was NOT notified: Can't connect to clamd through /var/run/clamav/clamd.ctl: No such file or directory
[INFO] Installing packages apache2, apache2-utils, libapache2-mod-fcgid, apache2-suexec-pristine, libapache2-mod-python, libapache2-mod-passenger
[INFO] Installed packages apache2, apache2-utils, libapache2-mod-fcgid, apache2-suexec-pristine, libapache2-mod-python, libapache2-mod-passenger
[INFO] Installing packages php-pear, php-memcache, php-imagick, mcrypt, imagemagick, libruby, memcached, php-apcu, jailkit, php5.6, php5.6-common, php5.6-gd, php5.6-mysql, php5.6-imap, php5.6-cli, php5.6-mcrypt, php5.6-curl, php5.6-intl, php5.6-pspell, php5.6-recode, php5.6-sqlite3, php5.6-tidy, php5.6-xmlrpc, php5.6-xsl, php5.6-zip, php5.6-mbstring, php5.6-soap, php5.6-opcache, php5.6-cgi, php5.6-fpm, php7.0, php7.0-common, php7.0-gd, php7.0-mysql, php7.0-imap, php7.0-cli, php7.0-mcrypt, php7.0-curl, php7.0-intl, php7.0-pspell, php7.0-recode, php7.0-sqlite3, php7.0-tidy, php7.0-xmlrpc, php7.0-xsl, php7.0-zip, php7.0-mbstring, php7.0-soap, php7.0-opcache, php7.0-cgi, php7.0-fpm, php7.1, php7.1-common, php7.1-gd, php7.1-mysql, php7.1-imap, php7.1-cli, php7.1-mcrypt, php7.1-curl, php7.1-intl, php7.1-pspell, php7.1-recode, php7.1-sqlite3, php7.1-tidy, php7.1-xmlrpc, php7.1-xsl, php7.1-zip, php7.1-mbstring, php7.1-soap, php7.1-opcache, php7.1-cgi, php7.1-fpm, php7.2, php7.2-common, php7.2-gd, php7.2-mysql, php7.2-imap, php7.2-cli, php7.2-curl, php7.2-intl, php7.2-pspell, php7.2-recode, php7.2-sqlite3, php7.2-tidy, php7.2-xmlrpc, php7.2-xsl, php7.2-zip, php7.2-mbstring, php7.2-soap, php7.2-opcache, php7.2-cgi, php7.2-fpm, php7.3, php7.3-common, php7.3-gd, php7.3-mysql, php7.3-imap, php7.3-cli, php7.3-curl, php7.3-intl, php7.3-pspell, php7.3-recode, php7.3-sqlite3, php7.3-tidy, php7.3-xmlrpc, php7.3-xsl, php7.3-zip, php7.3-mbstring, php7.3-soap, php7.3-opcache, php7.3-cgi, php7.3-fpm, php7.4, php7.4-common, php7.4-gd, php7.4-mysql, php7.4-imap, php7.4-cli, php7.4-curl, php7.4-intl, php7.4-pspell, php7.4-sqlite3, php7.4-tidy, php7.4-xmlrpc, php7.4-xsl, php7.4-zip, php7.4-mbstring, php7.4-soap, php7.4-opcache, php7.4-cgi, php7.4-fpm, php8.0, php8.0-common, php8.0-gd, php8.0-mysql, php8.0-imap, php8.0-cli, php8.0-curl, php8.0-intl, php8.0-pspell, php8.0-sqlite3, php8.0-tidy, php8.0-xsl, php8.0-zip, php8.0-mbstring, php8.0-soap, php8.0-opcache, php8.0-cgi, php8.0-fpm, php8.1, php8.1-common, php8.1-gd, php8.1-mysql, php8.1-imap, php8.1-cli, php8.1-curl, php8.1-intl, php8.1-pspell, php8.1-sqlite3, php8.1-tidy, php8.1-xsl, php8.1-zip, php8.1-mbstring, php8.1-soap, php8.1-opcache, php8.1-cgi, php8.1-fpm, php8.2, php8.2-common, php8.2-gd, php8.2-mysql, php8.2-imap, php8.2-cli, php8.2-curl, php8.2-intl, php8.2-pspell, php8.2-sqlite3, php8.2-tidy, php8.2-xsl, php8.2-zip, php8.2-mbstring, php8.2-soap, php8.2-opcache, php8.2-cgi, php8.2-fpm, php8.3, php8.3-common, php8.3-gd, php8.3-mysql, php8.3-imap, php8.3-cli, php8.3-curl, php8.3-intl, php8.3-pspell, php8.3-sqlite3, php8.3-tidy, php8.3-xsl, php8.3-zip, php8.3-mbstring, php8.3-soap, php8.3-opcache, php8.3-cgi, php8.3-fpm
[INFO] Installed packages php-pear, php-memcache, php-imagick, mcrypt, imagemagick, libruby, memcached, php-apcu, jailkit, php5.6, php5.6-common, php5.6-gd, php5.6-mysql, php5.6-imap, php5.6-cli, php5.6-mcrypt, php5.6-curl, php5.6-intl, php5.6-pspell, php5.6-recode, php5.6-sqlite3, php5.6-tidy, php5.6-xmlrpc, php5.6-xsl, php5.6-zip, php5.6-mbstring, php5.6-soap, php5.6-opcache, php5.6-cgi, php5.6-fpm, php7.0, php7.0-common, php7.0-gd, php7.0-mysql, php7.0-imap, php7.0-cli, php7.0-mcrypt, php7.0-curl, php7.0-intl, php7.0-pspell, php7.0-recode, php7.0-sqlite3, php7.0-tidy, php7.0-xmlrpc, php7.0-xsl, php7.0-zip, php7.0-mbstring, php7.0-soap, php7.0-opcache, php7.0-cgi, php7.0-fpm, php7.1, php7.1-common, php7.1-gd, php7.1-mysql, php7.1-imap, php7.1-cli, php7.1-mcrypt, php7.1-curl, php7.1-intl, php7.1-pspell, php7.1-recode, php7.1-sqlite3, php7.1-tidy, php7.1-xmlrpc, php7.1-xsl, php7.1-zip, php7.1-mbstring, php7.1-soap, php7.1-opcache, php7.1-cgi, php7.1-fpm, php7.2, php7.2-common, php7.2-gd, php7.2-mysql, php7.2-imap, php7.2-cli, php7.2-curl, php7.2-intl, php7.2-pspell, php7.2-recode, php7.2-sqlite3, php7.2-tidy, php7.2-xmlrpc, php7.2-xsl, php7.2-zip, php7.2-mbstring, php7.2-soap, php7.2-opcache, php7.2-cgi, php7.2-fpm, php7.3, php7.3-common, php7.3-gd, php7.3-mysql, php7.3-imap, php7.3-cli, php7.3-curl, php7.3-intl, php7.3-pspell, php7.3-recode, php7.3-sqlite3, php7.3-tidy, php7.3-xmlrpc, php7.3-xsl, php7.3-zip, php7.3-mbstring, php7.3-soap, php7.3-opcache, php7.3-cgi, php7.3-fpm, php7.4, php7.4-common, php7.4-gd, php7.4-mysql, php7.4-imap, php7.4-cli, php7.4-curl, php7.4-intl, php7.4-pspell, php7.4-sqlite3, php7.4-tidy, php7.4-xmlrpc, php7.4-xsl, php7.4-zip, php7.4-mbstring, php7.4-soap, php7.4-opcache, php7.4-cgi, php7.4-fpm, php8.0, php8.0-common, php8.0-gd, php8.0-mysql, php8.0-imap, php8.0-cli, php8.0-curl, php8.0-intl, php8.0-pspell, php8.0-sqlite3, php8.0-tidy, php8.0-xsl, php8.0-zip, php8.0-mbstring, php8.0-soap, php8.0-opcache, php8.0-cgi, php8.0-fpm, php8.1, php8.1-common, php8.1-gd, php8.1-mysql, php8.1-imap, php8.1-cli, php8.1-curl, php8.1-intl, php8.1-pspell, php8.1-sqlite3, php8.1-tidy, php8.1-xsl, php8.1-zip, php8.1-mbstring, php8.1-soap, php8.1-opcache, php8.1-cgi, php8.1-fpm, php8.2, php8.2-common, php8.2-gd, php8.2-mysql, php8.2-imap, php8.2-cli, php8.2-curl, php8.2-intl, php8.2-pspell, php8.2-sqlite3, php8.2-tidy, php8.2-xsl, php8.2-zip, php8.2-mbstring, php8.2-soap, php8.2-opcache, php8.2-cgi, php8.2-fpm, php8.3, php8.3-common, php8.3-gd, php8.3-mysql, php8.3-imap, php8.3-cli, php8.3-curl, php8.3-intl, php8.3-pspell, php8.3-sqlite3, php8.3-tidy, php8.3-xsl, php8.3-zip, php8.3-mbstring, php8.3-soap, php8.3-opcache, php8.3-cgi, php8.3-fpm
[INFO] Disabling conflicting apache modules.
[INFO] Enabling apache modules.
[INFO] Enabling default PHP-FPM config.
[INFO] Setting default system PHP version.
[INFO] Installing phpMyAdmin
[INFO] HTTPoxy config.
[INFO] Installing acme.sh (Let's Encrypt).
[INFO] acme.sh (Let's Encrypt) installed.
[INFO] ISPConfig does not yet support mailman3 and mailman2 is no longer available since Ubuntu 22.04.
[INFO] Installing packages haveged, geoip-database, libclass-dbi-mysql-perl, libtimedate-perl, build-essential, autoconf, automake, libtool, flex, bison, debhelper, binutils
[INFO] Installed packages haveged, geoip-database, libclass-dbi-mysql-perl, libtimedate-perl, build-essential, autoconf, automake, libtool, flex, bison, debhelper, binutils
[INFO] Installing packages webalizer, awstats, goaccess
[INFO] Installed packages webalizer, awstats, goaccess
[INFO] Disabling awstats cron.
[INFO] Installing packages fail2ban
[INFO] Installed packages fail2ban
[INFO] Configuring SSHd
[INFO] Installing ISPConfig3.
[INFO] Adding PHP version(s) to ISPConfig.
[INFO] Checking all services are running.
[INFO] mysql: OK
[INFO] clamav-daemon: OK
[INFO] postfix: OK
[INFO] pureftpd: FAILED
[WARN] pureftpd seems not to be running! (/lib/os/class.ISPConfigDebianOS.inc.php:2255)
[INFO] apache2: OK
[INFO] Installation ready.
[INFO] Your ISPConfig admin password is: Pjb3MGw8F18wyZd
[INFO] Your MySQL root password is: 6J9XC5Z2QpZ3LWD6Zn43
[INFO] Warning: Please delete the log files in /tmp/ispconfig-ai/var/log/setup-* once you don't need them anymore because they contain your passwords!
Die Fehlermeldungen sind in diesem Fall richtig, der FTP-Dienst ist ja auch nicht installiert.
In der vor-vorletzten Zeile steht nun das Passwort über welches wir uns nun per https:// anmelden können, in der vorletzten des MySQL-root-Benutzers (auch wenn MariaDB installiert wurde).
Wir rufen die Webseite auf:
https://213.165.83.96:8080
was vermutlich nicht klappen wird - die IONOS Firewall wird den Port sperren.
Meldet euch in diesem Fall unter
https://cloudpanel.ionos.de/
an (oder geht den Weg über https://login.ionos.de/ und wählt im Menü Server & Cloud), wählt dann
Netzwerk => Firewall-Richtlinien
Dann rechts die Richtlinie auswählen und dann könnte Ihr unten einen Eintrag hinzufügen.
Rechts den grünen Haken und er speichert sofort. Quelle lasst Ihr frei oder tragt eure aktuelle externe IP ein. Ich habe eine feste IP-Adresse und es so eingestellt das ich nur von zu Hause aus auf das System komme.
Und schon können wir uns anmelden:
Postfix für Verwendung eines SMTP-Relay konfigurieren
nano /etc/postfix/main.cf
und unten die folgende Zeile ändern und euren(!!!) SMPT-Relais Host eintragen:
relayhost = 5.196.125.45
Das ist bei mir mein ganz normaler Mailserver - auf dem ich eingestellt habe das er alles von der festen IP meines Webservers annehmen soll.