De perfecte server CentOS 8 met Apache, PHP, Postfix, Dovecot, Pure-FTPD, BIND en ISPConfig 3.2.

Deze tutorial toont de installatie van ISPConfig 3.2 op een CentOS 8 (64Bit) server. ISPConfig is een webhosting controlepaneel waarmee je via een webbrowser de volgende diensten kunt configureren: Apache webserver, PHP, Postfix mailserver, MySQL, BIND nameserver, PureFTPd, SpamAssassin, ClamAV, Mailman, en nog veel meer.

1 Vereisten

Om zo’n systeem te installeren heb je het volgende nodig:

  • Een Centos 8 minimaal server systeem. Dit kan een vanaf nul geïnstalleerde server zijn zoals beschreven in onze Centos 8 minimal server tutorial of een virtual-server of root-server van een hostingbedrijf waarop een minimale Centos 8 setup is geïnstalleerd.
  • Een snelle internetverbinding.

2 Inleidende opmerking

In deze tutorial gebruik ik de hostnaam server1.example.com met het IP adres 192.168.0.100 en de gateway 192.168.0.1. Deze instellingen kunnen voor jou anders zijn, dus je moet ze waar nodig vervangen.

3 Bereid de server voor

Stel de toetsenbordindeling in

In het geval dat de toetsenbordindeling van de server niet overeenkomt met je toetsenbord, kun je met het commando localectl overschakelen naar het juiste toetsenbord (in mijn geval “de” voor een Duitse toetsenbordindeling:

localectl set-keymap de

Om een lijst van alle beschikbare keymaps te krijgen, voer je uit:

localectl list-keymaps

Aan het eind van deze tutorial wil ik ISPConfig installeren, ISPConfig wordt geleverd met het Bastille firewall script dat ik als firewall zal gebruiken, daarom schakel ik nu de standaard CentOS firewall uit. Natuurlijk staat het je vrij om de CentOS firewall aan te laten staan en hem naar wens te configureren (maar dan moet je later geen andere firewall gebruiken, omdat die hoogstwaarschijnlijk de CentOS firewall zal verstoren).

Uitvoeren…

dnf -y install net-tools wget rsyslog curl
systemctl stop firewalld.service
systemctl disable firewalld.service

om de CentOS firewall te stoppen en uit te schakelen. Het is niet erg als je hier fouten krijgt, dit geeft alleen maar aan dat de firewall niet geïnstalleerd is.

Vervolgens moet je controleren of de firewall echt is uitgeschakeld. Voer daarvoor het commando uit:

iptables -L

De uitvoer zou er zo uit moeten zien:

[root@server1 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Of gebruik het commando firewall-cmd:

firewall-cmd --state
[root@server1 ~]# firewall-cmd --state
not running
[root@server1 ~]#

Nu installeer ik de netwerkconfiguratie editor en de op de shell gebaseerde editor “nano” die ik in de volgende stappen zal gebruiken om de config-bestanden te bewerken:

dnf -y install nano wget NetworkManager-tui yum-utils

Als je tijdens de installatie je netwerkkaart niet hebt geconfigureerd, kun je dat nu doen. Start …

nmtui

… en ga naar Bewerk een verbinding:

Selecteer je netwerkinterface:

Vul dan je netwerkgegevens in – schakel DHCP uit en vul een statisch IP adres in, een netmasker, je gateway en een of twee nameservers, druk dan op Ok:

Kies vervolgens OK om de wijzigingen die je in de netwerkinstellingen hebt aangebracht te bevestigen

en Quit om het nmtui network configuration tool te sluiten.

Stoppen met nmtui

Je moet nu

ifconfig

om te controleren of het installatieprogramma je IP adres goed heeft:

[root@server1 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.100  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::20c:29ff:feee:b665  prefixlen 64  scopeid 0x20<link>
        inet6 2003:e1:bf22:1b00:20c:29ff:feee:b665  prefixlen 64  scopeid 0x0<global>
        ether 00:0c:29:ee:b6:65  txqueuelen 1000  (Ethernet)
        RX packets 2874  bytes 1369892 (1.3 MiB)
        RX errors 0  dropped 546  overruns 0  frame 0
        TX packets 968  bytes 160901 (157.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Als je netwerkkaart daar niet verschijnt, dan is hij niet ingeschakeld bij het opstarten, Open in dat geval het bestand /etc/sysconfig/network-scripts/ifcfg-eth0

nano /etc/sysconfig/network-scripts/ifcfg-ens33

en zet ONBOOT op ja:

[...]
ONBOOT=yes
[...]

en herstart de server.

Controleer je /etc/resolv.conf of daarin alle nameservers staan die je eerder hebt geconfigureerd:

cat /etc/resolv.conf

Als er nameservers ontbreken, voer dan

nmtui

en voeg de ontbrekende nameservers opnieuw toe.

Nu verder met de configuratie…

Aanpassen van /etc/hosts en /etc/hostname

Vervolgens gaan we /etc/hosts bewerken. Laat het er zo uitzien:

nano /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.0.100   server1.example.com     server1

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

Stel de hostnaam in het bestand /etc/hostname in. Het bestand moet de volledig gekwalificeerde domeinnaam bevatten (bijvoorbeeld server1.example.com in mijn geval) en niet alleen de korte naam zoals “server1”. Open het bestand met de editor nano:

nano /etc/hostname

En stel de hostnaam in het bestand in.

server1.example.com

Sla het bestand op en sluit nano af.

Zet SELinux op permissief

SELinux is een beveiligingsuitbreiding van CentOS die uitgebreide beveiliging moet bieden. ISPConfig wordt niet geleverd met een SELinux regelset, daarom heb ik hem op permissief gezet (dit is een must als je later ISPConfig wilt installeren).

Bewerk /etc/selinux/config en stel SELINUX=permissive in:

nano /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=permissive
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

Daarna moeten we het systeem opnieuw opstarten:

reboot

4 Extra repositories inschakelen en wat software installeren

Eerst importeren we de GPG-sleutels voor softwarepakketten:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

Vervolgens schakelen we de EPEL repository in op ons CentOS systeem, omdat veel van de pakketten die we in de loop van deze tutorial gaan installeren niet beschikbaar zijn in de officiële CentOS 8 repository:

dnf -y install epel-release

Power Tools activeren:

dnf config-manager --set-enabled powertools

Dan werken we onze bestaande pakketten op het systeem bij:

dnf -y update

Nu installeren we enkele softwarepakketten die later nodig zijn:

dnf -y groupinstall 'Development Tools'

5 Quota

(Als je een ander partitieschema hebt gekozen dan ik, moet je dit hoofdstuk aanpassen zodat quota van toepassing is op de partities waar je het nodig hebt).

Om quota te installeren voeren we dit commando uit:

dnf -y install quota

Nu controleren we of quota al is ingeschakeld voor het bestandssysteem waar de website (/var/www) en Maildir gegevens (var/vmail) zijn opgeslagen. In deze voorbeeldopstelling heb ik één grote rootpartitie, dus zoek ik naar ‘ / ‘:

mount | grep ' / '
[root@server1 ~]# mount | grep ' / '
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,noquota)
[root@server1 ~]#

Als je een aparte /var partitie hebt, gebruik dan :

mount | grep ' /var '

in plaats daarvan. Als de regel het woord“noquota” bevat, ga dan verder met de volgende stappen om quota in te schakelen.

Quota inschakelen op de / (root) partitie

Normaal gesproken zou je quota inschakelen in het /etc/fstab bestand, maar als het bestandssysteem het root bestandssysteem “/” is, dan moet quota worden ingeschakeld door een opstartparameter van de Linux Kernel.

Bewerk het grub configuratiebestand:

nano /etc/default/grub

Zoek naar de regel die begint met GRUB_CMDLINE_LINUX en voeg rootflags=uquota,gquota toe aan de commandline parameters zodat de resulterende regel er zo uitziet:

GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rootflags=uquota,gquota"

en pas de wijzigingen toe door het volgende commando uit te voeren.

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg_bak
grub2-mkconfig -o /boot/grub2/grub.cfg

en herstart de server.

reboot

Controleer nu of quota is ingeschakeld:

mount | grep ' / '
[root@server1 ~]# mount | grep ' / '
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,usrquota,grpquota)
[root@server1 ~]#

Als quota actief is, zien we“usrquota,grpquota” in de lijst met mount-opties.

Quota inschakelen op een aparte /var partitie

Als je een aparte /var partitie hebt, bewerk dan /etc/fstab en voeg ,uquota,gquota toe aan de / partitie(/dev/mapper/centos-var):

nano /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sun Sep 21 16:33:45 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        1 1
/dev/mapper/centos-var /var                     xfs     defaults,uquota,gquota        1 2
UUID=9ac06939-7e43-4efd-957a-486775edd7b4 /boot                   xfs     defaults        1 3
/dev/mapper/centos-swap swap                    swap    defaults        0 0

Voer dan

mount -o remount /var
quotacheck -avugm
quotaon -avug

om quota in te schakelen. Als je een foutmelding krijgt dat er geen partitie is met quota ingeschakeld, herstart dan de server voordat je verder gaat.

6 Installeer Apache, PHP, MySQL en phpMyAdmin

Schakel de Remi repository in om nieuwere PHP versies te krijgen (momenteel PHP 7.4):

dnf install http://rpms.remirepo.net/enterprise/remi-release-8.rpm
dnf -y install yum-utils
dnf -y module reset php
dnf -y module install php:remi-7.4
dnf update

We kunnen de benodigde pakketten met een enkel commando installeren:

dnf -y install httpd mod_ssl mariadb-server php php-mysqlnd php-mbstring

Om ervoor te zorgen dat de server niet kan worden aangevallen via de HTTPOXY kwetsbaarheid, zullen we de HTTP_PROXY header in apache globaal uitschakelen.

Voeg de apache header regel toe aan het einde van het bestand httpd.conf:

echo "RequestHeader unset Proxy early" >> /etc/httpd/conf/httpd.conf

En herstart httpd om de configuratiewijziging toe te passen.

service httpd restart

Installeer phpMyAdmin:

cd /tmp
wget https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.tar.gz
tar xzvf phpMyAdmin-5.0.2-all-languages.tar.gz
mkdir /usr/share/phpmyadmin
mv phpMyAdmin-5.0.2-all-languages/* /usr/share/phpmyadmin/
mkdir /usr/share/phpmyadmin/tmp
chown -R apache:apache /usr/share/phpmyadmin
chmod 777 /usr/share/phpmyadmin/tmp

Optioneel: Verander de Apache MPM Module

CentOS 8 gebruikt standaard de Apache MPM Event module, dit is aan de ene kant goed, omdat je daarmee het HTTP/2 protocol kunt gebruiken. Aan de andere kant staat het je niet toe om de apache mod_php module te gebruiken. In het algemeen moet je tegenwoordig standaard PHP-FPM gebruiken en ISPConfig ondersteunt dat. Als je de oude mod_php modus nodig hebt om compatibiliteitsredenen, dan kun je de Apache MPM als volgt omschakelen:

nano /etc/httpd/conf.modules.d/00-mpm.conf

Voeg een # toe voor de MPM event regel zodat het er zo uitziet:

# LoadModule mpm_event_module modules/mod_mpm_event.so

Verwijder dan de # voor de MPM Prefork regel, zodat het er zo uitziet:

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

Herstart vervolgens httpd om de configuratiewijziging toe te passen.

service httpd restart

7 Dovecot installeren

Dovecot kan als volgt worden geïnstalleerd:

dnf -y install dovecot dovecot-mysql dovecot-pigeonhole

Maak een leeg dovecot-sql.conf bestand en maak symlinks aan:

touch /etc/dovecot/dovecot-sql.conf
ln -s /etc/dovecot/dovecot-sql.conf /etc/dovecot-sql.conf
ln -s /etc/dovecot/dovecot.conf /etc/dovecot.conf

Maak nu de systeemstartkoppelingen aan en start Dovecot:

systemctl enable dovecot
systemctl start dovecot

8 Installeer Postfix

Postfix kan als volgt worden geïnstalleerd:

dnf -y install postfix postfix-mysql

Open vervolgens de poorten TLS/SSL en submission in Postfix:

nano /etc/postfix/master.cf

Haal het commentaar weg bij deindieningensmtpssecties als volgt uit en voeg waar nodig regels toe zodat deze sectie van het master.cf bestand er precies zo uitziet als hieronder.BELANGRIJK:Verwijder de # voor de regels die beginnen met smtps en submission ook en niet alleen van de -o regels na deze regels!

[...]
submission inet n - 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_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
smtps inet n - 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_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
[...]

Schakel dan Sendmail uit en start Postfix en MariaDB (MySQL):

systemctl enable mariadb.service
systemctl start mariadb.service
systemctl enable postfix.service
systemctl restart postfix.service

We schakelen sendmail uit om ervoor te zorgen dat het niet gestart wordt, mocht het op je server geïnstalleerd zijn. Dus de foutmelding “Failed to issue method call: Unit sendmail.service not loaded.” kan worden genegeerd.

Om ondersteuning voor oude/verouderde apparaten in te schakelen, voer je dit commando uit (optioneel, alleen gebruiken als je wilt dat oude mailapparaten verbinding maken, omdat het de SSL/TLS setup verzwakt door minder veilige cijfers toe te staan):

update-crypto-policies --set LEGACY

9 Installeer Getmail

Getmail kan als volgt geïnstalleerd worden:

dnf install python2
cd /tmp
wget http://pyropus.ca/software/getmail/old-versions/getmail-5.14.tar.gz
tar xvfz getmail-5.14.tar.gz
cd getmail-5.14
python2 setup.py build
python2 setup.py install

10 Stel MySQL wachtwoorden in en configureer phpMyAdmin

Stel wachtwoorden in voor de MySQL root account:

mysql_secure_installation
[root@server1 tmp]# mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n]

 <-- ENTER
New password: <-- yourrootsqlpassword
Re-enter new password: <-- yourrootsqlpassword
Password updated successfully!
Reloading privilege tables..
 ... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n]

 <-- ENTER
 ... Success!

Normally, root should only be allowed to connect from ‘localhost’.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n]

 <-- ENTER
 ... Success!

By default, MariaDB comes with a database named ’test’ that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n]

 <-- ENTER
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n]

 <-- ENTER
 ... Success!

Cleaning up…

All done! If you’ve completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

[root@server1 tmp]#

Nu configureren we phpMyAdmin. Maak dit phpMyAdmin configuratiebestand:

nano /etc/httpd/conf.d/phpmyadmin.conf

Voeg deze inhoud toe aan het bestand:

# phpMyAdmin - Web based MySQL browser written in php
#
# Allows only localhost by default
#
# But allowing phpMyAdmin to anyone other than localhost should be considered
# dangerous unless properly secured by SSL

Alias /phpMyAdmin /usr/share/phpmyadmin
Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin/>
   <IfModule mod_authz_core.c>
     # Apache 2.4
  #  <RequireAny>
     #  Require ip 127.0.0.1
     #  Require ip ::1
  #  </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>

Vervolgens veranderen we de authenticatie in phpMyAdmin van cookie naar http:

cp -pf /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
nano /usr/share/phpmyadmin/config.inc.php
[...]
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'http';
[...]

Dan maken we de systeemopstartlinks voor Apache en starten die:

systemctl enable httpd
systemctl restart httpd

Nu kun je je browser leiden naar http://server1.example.com/phpmyadmin/ of http://192.168.0.100/phpmyadmin/ en inloggen met de gebruikersnaam root en je nieuwe root MySQL wachtwoord.

11 Installeer Amavisd-new, SpamAssassin, ClamAV en Postgrey

Voer het volgende commando uit om amavisd-new, SpamAssassin en ClamAV te installeren:

dnf -y install amavisd-new spamassassin clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd unzip bzip2 perl-DBD-mysql postgrey re2c

Vervolgens starten we freshclam, amavisd, en clamd.amavisd:

sa-update
freshclam
systemctl enable amavisd.service
systemctl start amavisd.service
systemctl start [email protected]
systemctl enable postgrey.service
systemctl start postgrey.service

In de volgende stap configureren we postgrey. Open het bestand /etc/sysconfig/postgrey in een editor:

nano /etc/sysconfig/postgrey

en verander de regel:

POSTGREY_TYPE="--unix=/var/spool/postfix/postgrey/socket"

in

POSTGREY_TYPE="--inet=10023"

Sla het bestand op en herstart postgrey:

service postgrey restart

Om amavisd te configureren, bewerk je het bestand /etc/clamd.d/amavisd.conf:

nano /etc/clamd.d/amavisd.conf

en verander de regel:

LocalSocket /run/clamd.amavisd/clamd.sock

in

LocalSocket /var/spool/amavisd/clamd.sock

Sla het gewijzigde configuratiebestand op en herstart ClamAV:

systemctl restart [email protected]

Nu moeten we een systeemeenheid aanmaken voor de dienst freshclam. Maak een nieuw bestand /usr/lib/system/system/freshclam.service:

nano /usr/lib/systemd/system/freshclam.service

en voer in dat bestand de volgende inhoud in:

[Unit]
Description = ClamAV Scanner
After = network.target

[Service]
Type = forking
# if you want to scan more than one in a day change the number 1 with your desired number in below line.
ExecStart = /usr/bin/freshclam -d -c 1
Restart = on-failure
PrivateTmp =true

[Install]
WantedBy=multi-user.target

Sla het bestand op en schakel vervolgens de dienst in en start hem.

systemctl enable freshclam.service
systemctl start freshclam.service
systemctl status freshclam.service

12 Apache installeren met mod_php, mod_fcgi/PHP, PHP-FPM

Met ISPConfig 3 kun je mod_php, mod_fcgi/PHP, cgi/PHP en PHP-FPM per website gebruiken.

We kunnen Apache2 met mod_php, mod_fcgid, en PHP als volgt installeren:

dnf -y install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-pecl-apc php-mbstring php-mcrypt php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel mod_fcgid php-cli httpd-devel php-fpm php-intl php-imagick php-pspell wget

Vervolgens openen we /etc/php.ini

nano /etc/php.ini

… en veranderen de foutmelding (zodat meldingen niet meer getoond worden), stellen de tijdzone in en zetten cgi.fix_pathinfo=1 uit:

[...]
;error_reporting = E_ALL & ~E_DEPRECATED
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT
[...]
; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI.  PHP's
; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
; what PATH_INFO is.  For more information on PAppp.tldTH_INFO, see the cgi specs.  Setting
; this to 1 will cause PHP CGI to fix its paths to conform to the spec.  A setting
; of zero causes PHP to behave as before.  Default is 1.  You should fix your scripts
; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
; http://www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfo
cgi.fix_pathinfo=1
[...]
date.timezone = 'Europe/Berlin'
[...]

Schakel httpd en PHP-FPM in om op te starten bij het opstarten en start de PHP-FPM dienst.

systemctl start php-fpm.service
systemctl enable php-fpm.service
systemctl enable httpd.service

Tenslotte starten we Apache opnieuw op:

systemctl restart httpd.service

Nu gaan we ondersteuning voor Let’s encrypt toevoegen. ISPConfig gebruikt nu acme.sh als Let’s Encrypt client. Installeer acme.sh met het volgende commando:

curl https://get.acme.sh | sh -s

13 Installatie van mod_python

De Apache module mod_python is niet beschikbaar als RPM pakket, daarom zullen we hem vanaf de broncode compileren. De eerste stap is het installeren van de python ontwikkelingsbestanden en het downloaden van de huidige mod_python versie als .tar.gz bestand

dnf -y install python3-devel
cd /usr/local/src/
wget http://dist.modpython.org/dist/mod_python-3.5.0.tgz
tar xfz mod_python-3.5.0.tgz
cd mod_python-3.5.0

en dan de module configureren en compileren.

./configure --with-python=/usr/bin/python3
make

Er zit een fout in de gecompileerde module waardoor de installatie mislukt met de fout“version = “fatal: Not a git repository (or any of the parent directories): .git“. Om dat op te lossen, voer je dit sed-commando uit (het commando is één regel!).

sed -e 's/(git describe --always)/(git describe --always 2>\/dev\/null)/g' -e 's/`git describe --always`/`git describe --always 2>\/dev\/null`/g' -i $( find . -type f -name Makefile\* -o -name version.sh )

Installeer dan de module met dit commando.

make install

en schakel de module in Apache in:

echo 'LoadModule python_module modules/mod_python.so' > /etc/httpd/conf.modules.d/10-python.conf
systemctl restart httpd.service

14 PureFTPd installeren

PureFTPd kan worden geïnstalleerd met het volgende commando:

dnf -y install pure-ftpd

Maak vervolgens de systeemstartkoppelingen en start PureFTPd:

systemctl enable pure-ftpd.service
systemctl start pure-ftpd.service

Nu configureren we PureFTPd om FTP en TLS sessies toe te staan. FTP is een zeer onveilig protocol omdat alle wachtwoorden en alle gegevens in duidelijke tekst worden overgebracht. Door TLS te gebruiken kan de hele communicatie versleuteld worden, waardoor FTP veel veiliger wordt.

Voor TLS is OpenSSL nodig; om OpenSSL te installeren draaien we eenvoudigweg:

dnf install openssl

Open /etc/pure-ftpd/pure-ftpd.conf

nano /etc/pure-ftpd/pure-ftpd.conf

Als je FTP en TLS sessies wilt toestaan, zet dan TLS op 1 door de # voor de TLS regel te verwijderen. Het wordt ten zeerste aanbevolen om TLS in te schakelen.

[...]
# This option can accept three values :
# 0 : disable SSL/TLS encryption layer (default).
# 1 : accept both traditional and encrypted sessions.
# 2 : refuse connections that don't use SSL/TLS security mechanisms,
#     including anonymous sessions.
# Do _not_ uncomment this blindly. Be sure that :
# 1) Your server has been compiled with SSL/TLS support (--with-tls),
# 2) A valid certificate is in place,
# 3) Only compatible clients will log in.

TLS                      1
[...]

Om TLS te gebruiken, moeten we een SSL-certificaat aanmaken. Ik maak het aan in /etc/ssl/private/, daarom maak ik die map eerst aan:

mkdir -p /etc/ssl/private/

Daarna kunnen we het SSL-certificaat als volgt genereren:

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

Landnaam (code van 2 letters) [XX]: <– Voer je landnaam in (bijvoorbeeld “DE”).
Staat of Provincie Naam (volledige naam) []:
<– Voer je Staat of Provincie Naam in.
Plaatsnaam (bijv. stad) [Standaardstad]:
<– Voer je woonplaats in.
Organisatie Naam (bijv. bedrijf) [Default Company Ltd]:
<– Voer je Organisatienaam in (bijv. de naam van je bedrijf).
Naam organisatie-eenheid (bijv. sectie) []:
<– Voer je Organisatorische Eenheidsnaam in (bijv. “IT-afdeling”).
Common Name (bijv. je naam of de hostnaam van je server) []:
<– Voer de Fully Qualified Domain Name van het systeem in (bijv. “server1.example.com”).
E-mailadres []:
<– Voer je E-mailadres in.

Wijzig de rechten van het SSL-certificaat:

chmod 600 /etc/ssl/private/pure-ftpd.pem

Maak een DHParam bestand aan:

openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048

Start tot slot PureFTPd opnieuw op:

systemctl restart pure-ftpd.service

Dat was het. Je kunt nu proberen verbinding te maken met je FTP-cliënt; je moet je FTP-cliënt echter configureren om TLS te gebruiken.

15 BIND installeren

We kunnen BIND als volgt installeren:

dnf -y install bind bind-utils haveged

Maak een back-up van het bestaande bestand /etc/named.conf en maak als volgt een nieuwe aan:

cp /etc/named.conf /etc/named.conf_bak
cat /dev/null > /etc/named.conf
nano /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { any; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { any; };
				allow-recursion {"none";};
        recursion no;
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
zone "." IN {
        type hint;
        file "named.ca";
};
include "/etc/named.conf.local";

Maak het bestand /etc/named.conf.local dat aan het eind van /etc/named.conf staat(/etc/named.conf.local wordt later door ISPConfig gevuld als je DNS-zones in ISPConfig aanmaakt):

touch /etc/named.conf.local

Daarna maken we de opstartkoppelingen en starten we BIND:

systemctl enable named.service
systemctl start named.service
systemctl enable haveged.service
systemctl start haveged.service

16 AWStats installeren

AWStats kan als volgt worden geïnstalleerd:

dnf -y install awstats perl-DateTime-Format-HTTP perl-DateTime-Format-Builder

De alternatieve webstatistieken applicatie ‘webalizer’ is niet meer beschikbaar voor CentOS 8, dus kun je alleen AWStats gebruiken.

17 Installeer Jailkit

Jailkit wordt gebruikt om SSH-gebruikers en cronjobs te chrooten. Het kan als volgt worden geïnstalleerd:

ln -s /usr/bin/python2 /usr/bin/python
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.21.tar.gz
tar xvfz jailkit-2.21.tar.gz
cd jailkit-2.21
./configure
make
make install
cd ..
rm -rf jailkit-2.21*

18 Installeer Fail2Ban

Dit is optioneel maar aanbevolen, omdat de ISPConfig monitor het logboek probeert te tonen.

dnf -y install iptables-services fail2ban fail2ban-systemd
systemctl stop firewalld.service
systemctl mask firewalld.service
systemctl disable firewalld.service

Vervolgens maken we het bestand /etc/fail2ban/jail.local aan en schakelen monitoring in voor ssh, e-mail en ftp dienst.

nano /etc/fail2ban/jail.local

Voeg de volgende inhoud toe aan het jail.local bestand:

[sshd]
enabled = true
action = iptables[name=sshd, port=ssh, protocol=tcp]

[pure-ftpd]
enabled = true
action = iptables[name=FTP, port=ftp, protocol=tcp]
maxretry = 3

[dovecot]
enabled = true
action = iptables-multiport[name=dovecot, port=”pop3,pop3s,imap,imaps”, protocol=tcp]
maxretry = 5

[postfix-sasl]
enabled = true
action = iptables-multiport[name=postfix-sasl, port=”smtp,smtps,submission”, protocol=tcp]
maxretry = 3

Maak dan de systeemstartkoppelingen voor fail2ban en start het:

systemctl enable fail2ban.service
systemctl start fail2ban.service

19 Installeer rkhunter

rkhunter kan als volgt geïnstalleerd worden:

dnf -y install rkhunter

20 Installeer Mailman

Als je graag mailinglijsten beheert met Mailman op je server, installeer dan nu mailman. Mailman wordt ondersteund door ISPConfig, zodat je later via ISPConfig nieuwe mailinglijsten kunt aanmaken.

dnf -y install mailman

Voordat we Mailman kunnen starten, moet een eerste mailinglijst met de naam mailman worden aangemaakt:

touch /var/lib/mailman/data/aliases
postmap /var/lib/mailman/data/aliases
/usr/lib/mailman/bin/newlist mailman
ln -s /usr/lib/mailman/mail/mailman /usr/bin/mailman

[root@server1 tmp]# /usr/lib/mailman/bin/newlist mailman
Voer het e-mailadres in van degene die de lijst beheert:
<– admin e-mailadres, bijv.[email protected]
Initieel mailman wachtwoord: <– admin wachtwoord voor de mailman lijst
Om het maken van je mailinglijst af te ronden, moet je jeje /etc/aliases (of
equivalent) bestand bewerken door de volgende regels toe te voegen, en eventueel het programma
`newaliases’ te draaien:

## mailman mailinglijst
mailman: “|/usr/lib/mailman/mailman post mailman”
mailman-admin:”|/usr/lib/mailman/mailman admin mailman”
mailman-bounces:”|/usr/lib/mailman/mailman bounces mailman”
mailman-confirm:”|/usr/lib/mailman/mailman bevestigt mailman”
mailman-join:”|/usr/lib/mailman/mailman join mailman”
mailman-leave:”|/usr/lib/mailman/mailman leave mailman”
mailman-owner:”|/usr/lib/mailman/mailman owner mailman”
mailman-request:”|/usr/lib/mailman/mailman request mailman”
mailman-subscribe:”|/usr/lib/mailman/mailman subscribe mailman”
mailman-unsubscribe:”|/usr/lib/mailman/mailman unsubscribe mailman”

Druk op enter om de eigenaar van mailman op de hoogte te stellen… <– ENTER

[root@server1 tmp]#

Open daarna /etc/aliases

nano /etc/aliases

… en voeg de volgende regels toe:

[...]
mailman:              "|/usr/lib/mailman/mail/mailman post mailman"
mailman-admin:        "|/usr/lib/mailman/mail/mailman admin mailman"
mailman-bounces:      "|/usr/lib/mailman/mail/mailman bounces mailman"
mailman-confirm:      "|/usr/lib/mailman/mail/mailman confirm mailman"
mailman-join:         "|/usr/lib/mailman/mail/mailman join mailman"
mailman-leave:        "|/usr/lib/mailman/mail/mailman leave mailman"
mailman-owner:        "|/usr/lib/mailman/mail/mailman owner mailman"
mailman-request:      "|/usr/lib/mailman/mail/mailman request mailman"
mailman-subscribe:    "|/usr/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe:  "|/usr/lib/mailman/mail/mailman unsubscribe mailman"

Voer

newaliases

daarna en herstart Postfix:

systemctl restart postfix.service

Open nu het Mailman Apache configuratiebestand /etc/httpd/conf.d/mailman.conf

nano /etc/httpd/conf.d/mailman.conf

… en voeg de regel ScriptAlias /cgi-bin/mailman/ /usr/lib/mailman/cgi-bin/ toe. Commentarieer Alias /pipermail/ /var/lib/mailman/archives/public/ uit en voeg de regel Alias /pipermail /var/lib/mailman/archives/public/ toe:

#
#  httpd configuration settings for use with mailman.
#

ScriptAlias /mailman/ /usr/lib/mailman/cgi-bin/
ScriptAlias /cgi-bin/mailman/ /usr/lib/mailman/cgi-bin/
<Directory /usr/lib/mailman/cgi-bin/>
    AllowOverride None
    Options ExecCGI
    Order allow,deny
    Allow from all
</Directory>


#Alias /pipermail/ /var/lib/mailman/archives/public/
Alias /pipermail /var/lib/mailman/archives/public/
<Directory /var/lib/mailman/archives/public>
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
    AddDefaultCharset Off
</Directory>

# Uncomment the following line, to redirect queries to /mailman to the
# listinfo page (recommended).

# RedirectMatch ^/mailman[/]*$ /mailman/listinfo

Herstart Apache:

systemctl restart httpd.service

Maak de systeemstartkoppelingen voor Mailman en start het:

systemctl enable mailman.service
systemctl start mailman.service

Nadat je ISPConfig 3 hebt geïnstalleerd, kun je Mailman als volgt benaderen:

Je kunt de alias /cgi-bin/mailman gebruiken voor alle Apache vhosts (let op dat suExec en CGI uitgeschakeld moeten zijn voor alle vhosts van waaruit je Mailman wilt benaderen!), wat betekent dat je de Mailman admin-interface voor een lijst kunt benaderen op http://<vhost>/cgi-bin/mailman/admin/<listname>, en dat de webpagina voor gebruikers van een mailinglijst te vinden is op http://<vhost>/cgi-bin/mailman/listinfo/<listname>.

Onder http://<vhost>/pipermail/<listname> kun je de archieven van de mailinglijsten vinden.

21 Roundcube webmail installeren

Om de RoundCube webmail client te installeren, download je de laatste versie met wget naar de /tmp map:

cd /tmp
wget https://github.com/roundcube/roundcubemail/releases/download/1.4.3/roundcubemail-1.4.3-complete.tar.gz

Pak het tar.gz archief uit en verplaats de RoundCube broncode naar /usr/share/roundcubemail

tar xfz roundcubemail-1.4.3-complete.tar.gz
mkdir /usr/share/roundcubemail
mv /tmp/roundcubemail-1.4.3/* /usr/share/roundcubemail/
chown -R root:root /usr/share/roundcubemail
chown apache /usr/share/roundcubemail/temp
chown apache /usr/share/roundcubemail/logs

Maak een roundcubemail.conf configuratiebestand aan met nano editor:

nano /etc/httpd/conf.d/roundcubemail.conf

En voeg de volgende inhoud toe aan dat bestand:

#
# Round Cube Webmail is a browser-based multilingual IMAP client
#

Alias /roundcubemail /usr/share/roundcubemail
Alias /webmail /usr/share/roundcubemail

# Define who can access the Webmail
# You can enlarge permissions once configured

<Directory /usr/share/roundcubemail/>
        Options none
        AllowOverride Limit
        Require all granted
</Directory>

# Define who can access the installer
# keep this secured once configured

<Directory /usr/share/roundcubemail/installer>
        Options none
        AllowOverride Limit
        Require all granted
</Directory>


# Those directories should not be viewed by Web clients.
<Directory /usr/share/roundcubemail/bin/>
    Order Allow,Deny
    Deny from all
</Directory>
<Directory /usr/share/roundcubemail/plugins/enigma/home/>
    Order Allow,Deny
    Deny from all
</Directory>

Start Apache opnieuw op:

systemctl restart httpd.service

Nu hebben we een database nodig voor RoundCube mail, die gaan we als volgt initialiseren:

mysql -u root -p

Gebruik bij MariaDB prompt:

CREATE DATABASE roundcubedb;
CREATE USER roundcubeuser@localhost IDENTIFIED BY 'roundcubepassword';
GRANT ALL PRIVILEGES on roundcubedb.* to roundcubeuser@localhost ;
FLUSH PRIVILEGES;
exit

Ik gebruik de gegevens voor de RoundCube database als voorbeeld, vervang de waarden naar eigen keuze om veiligheidsredenen.

Nu installeren we RoundCube in de browser op http://192.168.0.100/roundcubemail/installer

Maak nu het bestand config.inc.php:

nano /usr/share/roundcubemail/config/config.inc.php
<?php

/* Local configuration for Roundcube Webmail */

// ———————————-
// SQL DATABASE
// ———————————-
// Database connection string (DSN) for read+write operations
// Format (compatible with PEAR MDB2): db_provider://user:password@host/database
// Currently supported db_providers: mysql, pgsql, sqlite, mssql, sqlsrv, oracle
// For examples see http://pear.php.net/manual/en/package.database.mdb2.intro-dsn.php
// NOTE: for SQLite use absolute path (Linux): ‘sqlite:////full/path/to/sqlite.db?mode=0646’
// or (Windows): ‘sqlite:///C:/full/path/to/sqlite.db’
$config[‘db_dsnw’] = ‘mysql://roundcubeuser:roundcubepassword@localhost/roundcubedb’;

// ———————————-
// IMAP
// ———————————-
// The IMAP host chosen to perform the log-in.
// Leave blank to show a textbox at login, give a list of hosts
// to display a pulldown menu or set one host as string.
// To use SSL/TLS connection, enter hostname with prefix ssl:// or tls://
// Supported replacement variables:
// %n – hostname ($_SERVER[‘SERVER_NAME’])
// %t – hostname without the first part
// %d – domain (http hostname $_SERVER[‘HTTP_HOST’] without the first part)
// %s – domain name after the ‘@’ from e-mail address provided at login screen
// For example %n = mail.domain.tld, %t = domain.tld
// WARNING: After hostname change update of mail_host column in users table is
// required to match old user data records with the new host.
$config[‘default_host’] = ‘localhost’;
$config[‘smtp_server’] = ‘localhost’;
$config[‘smtp_port’] = 25;

// provide an URL where a user can get support for this Roundcube installation
// PLEASE DO NOT LINK TO THE ROUNDCUBE.NET WEBSITE HERE!
$config[‘support_url’] = ”;

// This key is used for encrypting purposes, like storing of imap password
// in the session. For historical reasons it’s called DES_key, but it’s used
// with any configured cipher_method (see below).
$config[‘des_key’] = ‘pb0UucO0eqjgvhrqYlFTBVjE’;

// ———————————-
// PLUGINS
// ———————————-
// List of active plugins (in plugins/ directory)
$config[‘plugins’] = array();

// Set the spell checking engine. Possible values:
// – ‘googie’ – the default (also used for connecting to Nox Spell Server, see ‘spellcheck_uri’ setting)
// – ‘pspell’ – requires the PHP Pspell module and aspell installed
// – ‘enchant’ – requires the PHP Enchant module
// – ‘atd’ – install your own After the Deadline server or check with the people at http://www.afterthedeadline.com before using their API
// Since Google shut down their public spell checking service, the default settings
// connect to http://spell.roundcube.net which is a hosted service provided by Roundcube.
// You can connect to any other googie-compliant service by setting ‘spellcheck_uri’ accordingly.
$config[‘spellcheck_engine’] = ‘pspell’;
$config[‘enable_installer’] = true;

Druk dan op “doorgaan” in het web-installatieprogramma. Druk op de volgende pagina op de knop “Initialize database”.

Schakel tenslotte de Roundecubemail installer uit. Wijzig het configuratiebestand RoundCube config.inc.php

nano /usr/share/roundcubemail/config/config.inc.php

en verander de regel:

$config['enable_installer'] = true;

in:

$config['enable_installer'] = false;

Roundcube is nu beschikbaar onder de aliassen /webmail en /roundcubemail op je server:

http://192.168.0.100/webmail

De RoundCube login is het e-mailadres en wachtwoord van een e-mailaccount dat je later in ISPConfig aanmaakt.

22 Installeer ISPConfig 3.2

Het installatieprogramma van ISPConfig zal alle diensten zoals Postfix, Dovecot, enz. voor je configureren.

Je hebt nu ook de mogelijkheid om het installatieprogramma een SSL vhost te laten maken voor het ISPConfig controlepaneel, zodat ISPConfig kan worden benaderd met https:// in plaats van http://. Om dit te bereiken druk je gewoon op ENTER als je deze vraag ziet: Wil je een beveiligde (SSL) verbinding met de ISPConfig webinterface (y,n) [y]:.

Om ISPConfig 3.2 nightly build te installeren, doe je dit:

cd /tmp 
wget -O ispconfig.tar.gz https://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ispconfig.tar.gz
cd ispconfig3*/install/

De volgende stap is het uitvoeren van:

php -q install.php

Hiermee start je het ISPConfig 3 installatieprogramma. Het installatieprogramma zal alle diensten zoals Postfix, Dovecot, enz. voor je configureren.

[root@server1 install]# php install.php
--------------------------------------------------------------------------------
_____ ___________ _____ __ _ ____
|_ _/ ___| ___ \ / __ \ / _(_) /__ \
| | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /
| | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ |
_| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \
\___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/
__/ |
|___/
--------------------------------------------------------------------------------
>> Initial configuration
Operating System: CentOS 8.2
Following will be a few questions for primary configuration so be careful.
Default values are in [brackets] and can be accepted with <ENTER>.
Tap in "quit" (without the quotes) to stop the installer.
Select language (en,de) [en]: <-- Hit Enter
Installation mode (standard,expert) [standard]: <-- Hit Enter
Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server1.example.com]: <-- Hit Enter
MySQL server hostname [localhost]: <-- Hit Enter
MySQL server port [3306]: <-- Hit Enter
MySQL root username [root]: <-- Hit Enter
MySQL root password []: <-- Ente the MySQL root password here
MySQL database to create [dbispconfig]: <-- Hit Enter
MySQL charset [utf8]: <-- Hit Enter
Configuring 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) [XX]: <-- Enter 2 Letter country code, e.g. US
State or Province Name (full name) []: <-- Enter anme of State or Province
Locality Name (eg, city) [Default City]: <-- Name of city
Organization Name (eg, company) [Default Company Ltd]: <-- Company name
Organizational Unit Name (eg, section) []: <-- Hit Enter
Common Name (eg, your name or your server's hostname) []: <-- Enter server hostname here, in my case: server1.example.com
Email Address []: <-- Enter Email address
Configuring mailman
Configuring Dovecot
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring Jailkit
Configuring Pureftpd
Configuring BIND
Configuring Apache
Configuring vlogger
[INFO] service OpenVZ not detected
Configuring Bastille Firewall
[INFO] service Metronome XMPP Server not detected
Configuring Fail2ban
Configuring Apps vhost
Installing ISPConfig
ISPConfig Port [8080]: <-- Hit Enter
Admin password [fad579a6]: <-- Enter new password for ISPConfig admin user
Re-enter admin password []: <-- Repeat the password
Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]: <-- Hit Enter
Generating RSA private key, 4096 bit long modulus
.................................................................................++
.....++
e is 65537 (0x10001)
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]: <-- Enter 2 Letter country code, e.g. US
State or Province Name (full name) []: <-- Enter anme of State or Province
Locality Name (eg, city) [Default City]: <-- Name of city
Organization Name (eg, company) [Default Company Ltd]: <-- Company name
Organizational Unit Name (eg, section) []: <-- Hit Enter
Common Name (eg, your name or your server's hostname) []: <-- Enter server hostname here, in my case: server1.example.com
Email Address []: <-- Enter Email address
Please 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
Installing ISPConfig crontab
no crontab for root
no crontab for getmail
Detect IP addresses
Restarting services ...
Installation completed.

Het installatieprogramma configureert automatisch alle onderliggende diensten, dus er is geen handmatige configuratie nodig.

23 Eerste ISPConfig login

Daarna kun je ISPConfig 3 benaderen onder http(s)://server1.example.com:8080/ of http(s)://192.168.0.100:8080/(http of https hangt af van wat je tijdens de installatie hebt gekozen).

Log in met de gebruikersnaam admin en het wachtwoord admin (je moet het standaard wachtwoord wijzigen na de eerste keer inloggen):

De ISPConfig Login

25 Links