Perfect server: Debian 11 (Bullseye) v1.0

botond published 2022/12/13, k - 07:08 time

Content

 

Introductory

In this description, we will create a newer, Debian 11 (Bullseye) version of the perfect server. Unlike the previous perfect server installations, this will not be done with lengthy package installations and configurations, but with the help of an automation script, which is ISPConfig compiled by its developers to make server creation easier. The script has been available for some time, with the help of which it can be used not only on the Debian 11 (Bullseye) operating system, but also on the following distributions and their versions. I have automated the components of the perfect server:

  • Debian 10 (Buster)
  • Debian 11 (Bullseye)
  • Ubuntu 20.04 (Focal Pit)
  • Ubuntu 22.04 (Jammy Jellyfish)

Of these, in this description we will now automatically prepare the installation of the ISPConfig server environment for the Debian 11 (Bullseye) operating system.

 

 

Prerequisites

This guide was previously completed Debian 11 (Bullseye) for minimal server will be installed, so this basic system is necessary to achieve the exact end result of the process presented here. If VirtualBox on a virtual machine we install, in order to shorten the work, the minimum server From here you can download it. So I will perform the steps of this description on this basic system.

 

The repository database and updating packages

First, let's update our luggage racks and our packages root-Kent:

apt-get update
apt-get upgrade

 

Run the automatic installer for the first time

Attention!
In the next section, we will prepare a shell script downloaded from a "foreign" source root- on our system, so always follow a general rule: If we do not 100% understand the operation of the running command - what it does with the downloaded command file on our machine - or we do not trust the source, then do not run it!
In the present example, of course, the source is reliable, and we will also interpret the running command, so as soon as we understand its operation, we can run it.
So I wrote all of this just as a reminder that we should always be careful at this time.

Our automatic installation command is therefore the following, of which we will first look only at the help section, so that we can see what installation options are available to us. The help is below wget we can do it using the command rootyou are as sudo using it, of course after we have understood its operation:

wget -O - https://get.ispconfig.org | sh -s -- --help

The wget command does the following:

  • -SHE: output. Specify the output of the downloaded content.
  • - (single hyphen alone): Based on a Linux convention (not followed by all programs), a single hyphen in the filename position refers to standard input (stdin) or standard output (stdout), depending on the context. Since this is the argument to -O (output) in this case, it refers to stdout. In this way, we instruct the wget command to redirect the downloaded content to the standard output, i.e. to display it in the terminal.
  • https://get.ispconfig.org: You download content from this URL.

After that, the resulting output (which is otherwise a shell script) is not displayed on the screen, but is forwarded using a pipeline to the system's default command interpreter (sh) - Which in the case of Debian 11 is Dash, if it has not been converted - which receives the following parameters :

  • -s: If the -s option is present, or if there are no arguments left after processing the option, commands are read from standard input. This option allows you to set positional parameters when invoking an interactive shell or reading input through a pipe (detail in Bash manual page, which is almost identical to Dash in everything).
  • --: And the double hyphen ensures that the parts after it are not processed by the system shell as additional shell options, but as their own arguments of the specified script file (in this case, the script content received from the pipeline).
  • --help: Based on the previous item, this part is therefore not the Dash/Bash received as a parameter, but becomes a parameter of the downloaded and executed script file, which results in the program's help being displayed.

So now that we have a clear view of this command line, let's see what happens:

Download and run the automatic installation script

The wget download starts, then the resulting output is processed by the shell.

At the beginning of the script, it checks to see if it is installed PHP on the system. Since we are working with the minimal server, there is nothing on the machine yet, so the automatic installer installs command-line PHP and some other necessary PHP packages.

Even though we only run one help, here we have already permanently changed our system with various PHP package installations, so the installer skips this part on the next run. The PHP packages are needed because the other parts of the ISPConfig automatic installer were written in PHP, so this shell program is only a kind of checking and preparatory part for the subsequent installation.

Then you configure PHP 7.4, which is the default PHP version of Debian 11 (Bullseye):

Download and run the automatic installation script

 

 

Here you configure a little more, and then the help appears:

**************************************************************************************************************************************
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 and 8.1 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
    --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 send 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 wether or not to allow root login. Available options: yes | without-password | no -
                    e.g. --ssh-permit-root=without-password
    --ssh-password-authentication
                    ->  Configure the SSH server wether or not to allow password authentication. Available options:  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
                    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.

Here we get many options. Now I would not go into detail about each of them, but basically here we can switch the components on/off, and for some components we can request the installation based on several preset schemes. Like how it is Apache instead of Nginx Do we ask for the installation with a web server or is the SSH if we allow password entry, etc.

 

Perfect server automatic installation

The following installation is presented here with the default settings. To do this, we need to run the following command:

wget -O - https://get.ispconfig.org | sh -s

Here, the help part is removed from the command, so the installation starts.

The process provides detailed information on each step, here are the pictures:

Perfect server automatic installation

First, it warns that this script will completely reconfigure the entire server, and that it should be run on a completely fresh installation, and that all current configurations will be lost. It then asks us to enter the word "yes" if we are sure about starting the installation.

The installer will then start.

Perfect server automatic installation

Anyone who has installed perfect servers manually before is probably familiar with the software packages listed here.

Perfect server automatic installation

Here you are installing all available PHP versions. Previously, the by installing different PHP versions how much work it was, and the installed PHP versions were still there It also had to be set in the ISPConfig panel. Good old days...

Perfect server automatic installation

Here, it packages the PHP packages massively, and then installs additional packages - familiar from earlier. ISPConfig used to be Let's Encrypt ACME used CertBot as a client, but some time ago they switched to acme.sh, which allows for more modern integration.

Perfect server automatic installation

And in the last picture, it installs many other packages and then restarts the services.

Finally, it will write out the randomly generated ISPConfig admin and MySQL root passwords, which should be stored immediately.

And at the very end, it warns us to remove the installation log files from the /tmp directory, as they also contain these passwords.

Let's also delete the file:

rm /tmp/ispconfig-ai/var/log/setup-*

 

 

The output of the installer is:

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: yes
[INFO] Starting perfect server setup for Debian GNU/Linux 11 (bullseye)
[INFO] Checking hostname.
[INFO] Enabling contrib and non-free 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, ntp
[INFO] Installed packages ssh, openssh-server, nano, vim-nox, lsb-release, apt-transport-https, ca-certificates, wget, git, gnupg, software-properties-common, curl, cron, ntp
[INFO] Activating rspamd repository.
[INFO] Activating sury php repository.
[INFO] Activating GoAccess repository.
[INFO] Updating packages (after enabling 3rd party repos).
[INFO] Updated packages
[INFO] Default shell is currently dash.
[INFO] Setting bash as default shell.
[INFO] Default shell is now bash.
[INFO] Installing packages dbconfig-common, postfix, postfix-mysql, postfix-doc, mariadb-client, mariadb-server, openssl, rkhunter, binutils, sudo, getmail
[INFO] Installed packages dbconfig-common, postfix, postfix-mysql, postfix-doc, mariadb-client, mariadb-server, openssl, rkhunter, binutils, sudo, getmail
[INFO] Installing packages dovecot-imapd, dovecot-pop3d, dovecot-mysql, dovecot-sieve, dovecot-managesieved, dovecot-lmtpd
[INFO] Installed packages dovecot-imapd, dovecot-pop3d, dovecot-mysql, dovecot-sieve, dovecot-managesieved, dovecot-lmtpd
[INFO] Generating MySQL password.
[INFO] Writing MySQL config files.
[INFO] Configuring postfix.
[INFO] Restarting postfix
[INFO] Installing packages software-properties-common, update-inetd, dnsutils, resolvconf, clamav, clamav-daemon, clamav-docs, 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, bind9, rspamd, redis-server, postgrey, p7zip, p7zip-full, unrar-free, lrzip
[INFO] Installed packages software-properties-common, update-inetd, dnsutils, resolvconf, clamav, clamav-daemon, clamav-docs, 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, bind9, rspamd, redis-server, postgrey, p7zip, p7zip-full, unrar-free, lrzip
[INFO] Stopping Rspamd.
[INFO] (Re)starting Bind.
[INFO] Disabling spamassassin daemon.
[INFO] Checking local dns resolver.
[WARN] Unexpected resolver response: Server:            192.168.1.1 (/lib/os/class.ISPConfigDebianOS.inc.php:1584)
[INFO] Installing packages apache2, apache2-doc, apache2-utils, libapache2-mod-fcgid, apache2-suexec-pristine, libapache2-mod-python, libapache2-mod-passenger
[INFO] Installed packages apache2, apache2-doc, 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
[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
[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 in Debian 11.
[INFO] Installing packages quota, quotatool, haveged, geoip-database, libclass-dbi-mysql-perl, libtimedate-perl, build-essential, autoconf, automake, libtool, flex, bison, debhelper, binutils
[INFO] Installed packages quota, quotatool, haveged, geoip-database, libclass-dbi-mysql-perl, libtimedate-perl, build-essential, autoconf, automake, libtool, flex, bison, debhelper, binutils
[INFO] Adding quota to fstab.
[INFO] Installing packages pure-ftpd-common, pure-ftpd-mysql, awstats, goaccess, awffull
[INFO] Installed packages pure-ftpd-common, pure-ftpd-mysql, awstats, goaccess, awffull
[INFO] Enabling TLS for pureftpd
[INFO] Disabling awstats cron.
[INFO] Installing packages fail2ban, ufw
[INFO] Installed packages fail2ban, ufw
[INFO] Configuring SSHd
[INFO] Installing roundcube.
[INFO] Installing packages roundcube, roundcube-core, roundcube-mysql, roundcube-plugins
[INFO] Installed packages roundcube, roundcube-core, roundcube-mysql, roundcube-plugins
[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] bind9: OK
[INFO] pureftpd: OK
[INFO] apache2: OK
[INFO] rspamd: OK
[INFO] redis-server: OK
[INFO] dovecot: OK
[INFO] Installation ready.
[INFO] Your ISPConfig admin password is: kgurRd51KMRTepk
[INFO] Your MySQL root password is: pbBZhgLVEdxvupxF3KkF
[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!

There was one warning, and this was because of the name server, since I ran it on a virtual machine, so the address of the resolver is the address of the gateway of my router, which it could not do anything with. But of course there is no problem with this in a live environment.

 

Server overview and control

First, let's review the web parts. Let's start with an overview of the ISPConfig control panel itself.

Overview and configuration of ISPConfig

Open a browser and load our server IP addresses, and the ISPConfig port number, which is 8080 by default:

https://192.168.1.140:8080

ISPConfig login

Enter the admin user here and the password you received at the end of the installation.

ISPConfig - Home Page

Let's set up some basics.

Set language

If you want to change the language of the admin user, then go to the "CP Users" menu of the "System" main menu, then change your language here in the lower part of the form:

ISPConfig - Language setting

Then exit, then back again, and the Hungarian translations will appear. Of course, not all of it is completely translated, but some of it is.

 

 

Firewall setup

In the next step, configure the firewall. To do this, enter the "System" main menu, then the "Firewall" menu. Then click the "New firewall entry" button here:

ISPConfig - Firewall configuration

The system automatically fills in the settings of the open TCP and UDP ports based on the installed services. Of course, these depend on the settings of the ports selected during installation. Here we check that the TCP port 8080 is included in the list, otherwise we cannot re-enter the panel.

If we install the Monit service management software a --monit with the installation option, then we also insert the port number 2812 here, because you will be able to access the Monit interface on it.

If the settings are correct, save the firewall rule. Then, as usual, the red circle appears above in the ISPConfig panel, which tells us that a setting is in progress:

ISPConfig - Save firewall settings

This server configuration is UFW uses a firewall, with which the system can be adjusted comfortably and flexibly network ports. Interestingly, if you look at it from the command line, it is for UFW firewall settings, then we can see that at first it was still inactive, and after we set our first firewall rule, its status became active from then on, and it lists the open ports corresponding to our setting:

UFW firewall command line check

Of course, it is recommended on a live server individual port settings be used so that our server is better protected during possible attacks from the outside world, for example one port scanning in case of. Therefore, it is advisable to change the port number of all services that do not perform public tasks, but serve administrative or maintenance purposes, to a unique value.

Deactivating prefixing of usernames

It is also worth mentioning the prefixing function of the ISPConfig panel. If we plan to synchronize websites between two ISPConfig servers, for example between our production server and the server storing development/backup copies at home, we can avoid many later headaches if we turn off prefixing. Of course, this only makes sense if we use the server ourselves and want to keep the web hosts and their databases on it in sync.

In this case, let's go through the following description, in which we can find out about this in detail:

 

Check phpMyAdmin

In this section a phpMyAdmin we check the web database management system. To do this, enter the /phpmyadmin section after the IP address of our server:

http://192.168.1.140/phpmyadmin/

Here we note that it is not HTTPS phpMyAdmin comes in, since there is no unique port setting for which an HTTPS connection is set, as in the case of ISPConfig, for example. However, when we create websites and they already have working (Let's Encrypt) SSL, the database manager under the /phpmyadmin subdirectories can be accessed using HTTPS under the domain names of the websites.

To log in, enter the root user and the MySQL password you received at the end of the installation:

phpMyAdmin - Login

After logging in, we are greeted by the well-known home page:

phpMyAdmin - Home

Check Roundcube webmail

We check the Roundcube webmail:

http://192.168.1.140/webmail/

Roundcube - Login

There is no access here by default, for this you need to create an email address, which also requires an email domain. For the sake of the presentation, I created a mail account, so now we can also take a look at the internal interface of Roundcube:

Roundcube - Inbox

 

So that would be the quick overview, of course there are still a lot of things that have been set up that work in the background.

 

What's next?

Once our server is ready and everything is in order, all that's left is to start creating our web hosting. You can find out more about this at the following link:

 

 

Conclusion

With the help of the automated installer of the ISPConfig server environment, we can save a lot of time - for which we are grateful to the creators of the script - and reduce to zero the number of possible errors resulting from inattention during long installations and configurations. Of course, the polishing and perfecting of the server did not end here; the tutorials that prepared the updated versions of the previous perfect servers can also be used excellently for this server configuration.

I hope I managed to make you want to install a server again, enjoy!