GNU/Linux >> Tutoriels Linux >  >> Cent OS

Le serveur parfait CentOS 8 avec Apache, PHP, Postfix, Dovecot, Pure-FTPD, BIND et ISPConfig 3.2

Ce tutoriel montre l'installation d'ISPConfig 3.2 sur un serveur CentOS 8 (64Bit). ISPConfig est un panneau de contrôle d'hébergement Web qui vous permet de configurer les services suivants via un navigateur Web :serveur Web Apache, PHP, serveur de messagerie Postfix, MySQL, serveur de noms BIND, PureFTPd, SpamAssassin, ClamAV, Mailman et bien d'autres.

1 Exigences

Pour installer un tel système, vous aurez besoin des éléments suivants :

  • Un système de serveur minimal Centos 8. Il peut s'agir d'un serveur installé à partir de zéro, comme décrit dans notre didacticiel sur le serveur minimal Centos 8, ou d'un serveur virtuel ou d'un serveur racine d'une société d'hébergement sur laquelle une configuration minimale de Centos 8 est installée.
  • Une connexion Internet rapide.

2 Remarque préliminaire

Dans ce tutoriel, j'utilise le nom d'hôte server1.example.com avec l'adresse IP 192.168.0.100 et la passerelle 192.168.0.1. Ces paramètres peuvent différer pour vous, vous devez donc les remplacer le cas échéant.

3 Préparer le serveur

Définir la disposition du clavier

Dans le cas où la disposition du clavier du serveur ne correspond pas à votre clavier, vous pouvez passer au bon clavier (dans mon cas "de" pour une disposition de clavier allemande, avec la commande localectl :

localectl set-keymap de

Pour obtenir une liste de tous les keymaps disponibles, exécutez :

localectl list-keymaps

Je veux installer ISPConfig à la fin de ce tutoriel, ISPConfig est livré avec le script de pare-feu Bastille que j'utiliserai comme pare-feu, donc je désactive maintenant le pare-feu CentOS par défaut. Bien sûr, vous êtes libre de laisser le pare-feu CentOS activé et de le configurer selon vos besoins (mais vous ne devriez pas utiliser d'autre pare-feu plus tard car il interférera très probablement avec le pare-feu CentOS).

Exécuter...

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

pour arrêter et désactiver le pare-feu CentOS. Ce n'est pas grave lorsque vous obtenez des erreurs ici, cela indique simplement que le pare-feu n'a pas été installé.

Ensuite, vous devez vérifier que le pare-feu a bien été désactivé. Pour cela, lancez la commande :

iptables -L

Le résultat devrait ressembler à ceci :

[[email protected] ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt ​​source destination
Chaîne FORWARD (policy ACCEPT)
target prot opt ​​source destination
Chain OUTPUT (policy ACCEPT)
target prot opt ​​source destination

Ou utilisez la commande firewall-cmd :

firewall-cmd --state
[[email protected] ~]# firewall-cmd --state
ne fonctionne pas
[[email protected] ~]#

Je vais maintenant installer l'éditeur de configuration réseau et l'éditeur basé sur le shell "nano" que j'utiliserai dans les prochaines étapes pour modifier les fichiers de configuration :

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

Si vous n'avez pas configuré votre carte réseau lors de l'installation, vous pouvez le faire maintenant. Exécuter...

nmtui

... et allez dans Modifier une connexion :

Sélectionnez votre interface réseau :

Ensuite, remplissez les détails de votre réseau - désactivez DHCP et remplissez une adresse IP statique, un masque de réseau, votre passerelle et un ou deux serveurs de noms, puis cliquez sur OK :

Sélectionnez ensuite OK pour confirmer les modifications que vous avez apportées aux paramètres réseau

et Quitter pour fermer l'outil de configuration réseau nmtui.

Vous devriez courir

ifconfig

maintenant pour vérifier si le programme d'installation a bien saisi votre adresse IP :

[[email protected] ~]# ifconfig
ens33 :flags=4163  mtu 1500
        inet 192.168.0.100  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::20c:29ff:feee:b665  préfixe 64  scopeid 0x20
        inet6 2003:e1:bf22:1b00:20c:29ff:feee:b665  préfixe 64  scopeid 0x0
        ether 00:0c:29:ee:b6:65  txqueuelen 1000  (Ethernet)
       Paquets RX 2874  octets 1369892 (1,3 Mio)
        Erreurs RX 0  abandonné 546  dépassement 0  frame 0    paquet TX 968  octets 160901 (157,1 Kio)
        Erreurs de transmission 0  abandonnées 0 dépassements 0  porteuse 0  collisions 0
lo :flags=73  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10
        loop  txqueuelen 1 000 (Local Loopback)
        Paquets RX 0  octets 0 (0,0 B)
        Erreurs RX 0  abandonné 0  dépassement 0  trame 0
        Paquets TX 0  octets 0 (0,0 B)
        Erreurs TX 0  abandonné 0 dépassements 0  porteur 0  collisions 0

Si votre carte réseau n'y apparaît pas, elle n'est pas activée au démarrage. Dans ce cas, ouvrez le fichier /etc/sysconfig/network-scripts/ifcfg-eth0

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

et réglez ONBOOT sur oui :

[...]
ONBOOT=oui
[...]

et redémarrez le serveur.

Vérifiez votre /etc/resolv.conf s'il répertorie tous les serveurs de noms que vous avez précédemment configurés :

cat /etc/resolv.conf

Si les serveurs de noms sont manquants, exécutez

nmtui

et ajoutez à nouveau les serveurs de noms manquants.

Passons maintenant à la configuration...

Ajuster /etc/hosts et /etc/hostname

Ensuite, nous allons éditer /etc/hosts. Faites en sorte qu'il ressemble à ceci :

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

Définissez le nom d'hôte dans le fichier /etc/hostname. Le fichier doit contenir le nom de domaine complet (par exemple server1.example.com dans mon cas) et pas seulement le nom court comme "server1". Ouvrez le fichier avec l'éditeur nano :

nano /etc/hostname

Et définissez le nom d'hôte dans le fichier.

serveur1.exemple.com

Enregistrez le fichier et quittez nano.

Définir SELinux sur permissif

SELinux est une extension de sécurité de CentOS qui devrait fournir une sécurité étendue. ISPConfig n'est pas livré avec un ensemble de règles SELinux, donc je l'ai défini sur permissif (c'est un must si vous souhaitez installer ISPConfig plus tard).

Modifiez /etc/selinux/config et définissez SELINUX=permissive :

nano /etc/selinux/config
# Ce fichier contrôle l'état de SELinux sur le système.# SELINUX=peut prendre l'une de ces trois valeurs :# enforcing - La politique de sécurité de SELinux est appliquée.# permissive - SELinux affiche des avertissements au lieu de les appliquer.# disabled - No SELinux la politique est chargée. SELINUX=permissif# SELINUXTYPE=peut prendre l'une de ces deux valeurs :# ciblé - Les processus ciblés sont protégés,# mls - Protection de sécurité à plusieurs niveaux.SELINUXTYPE=ciblé

Ensuite, nous devons redémarrer le système :

redémarrer

4 Activer des dépôts supplémentaires et installer certains logiciels

Tout d'abord, nous importons les clés GPG pour les packages logiciels :

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

Ensuite, nous activons le référentiel EPEL sur notre système CentOS car de nombreux packages que nous allons installer au cours de ce didacticiel ne sont pas disponibles dans le référentiel officiel CentOS 8 :

dnf -y install epel-release

Activer les outils électriques :

dnf config-manager --set-enabled powertools

Ensuite, nous mettons à jour nos packages existants sur le système :

dnf -y mise à jour

Maintenant, nous installons certains packages logiciels qui seront nécessaires plus tard :

dnf -y groupinstall 'Outils de développement'

5 quotas

(Si vous avez choisi un schéma de partitionnement différent du mien, vous devez ajuster ce chapitre afin que le quota s'applique aux partitions où vous en avez besoin.)

Pour installer le quota, nous exécutons cette commande :

dnf -y quota d'installation

Nous vérifions maintenant si le quota est déjà activé pour le système de fichiers dans lequel le site Web (/var/www) et les données Maildir (var/vmail) sont stockées. Dans cet exemple de configuration, j'ai une grande partition racine, donc je recherche '/' :

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

Si vous avez une partition /var distincte, utilisez :

monter | grep '/var '

Au lieu. Si la ligne contient le mot "noquota ", puis procédez comme suit pour activer le quota.

Activation du quota sur la partition / (racine)

Normalement, vous activez le quota dans le fichier /etc/fstab, mais si le système de fichiers est le système de fichiers racine "/", alors le quota doit être activé par un paramètre de démarrage du noyau Linux.

Modifiez le fichier de configuration grub :

nano /etc/default/grub

Recherchez la ligne qui commence par GRUB_CMDLINE_LINUX et ajoutez rootflags=uquota,gquota aux paramètres de la ligne de commande afin que la ligne résultante ressemble à ceci :

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

et appliquez les modifications en exécutant la commande suivante.

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

et redémarrez le serveur.

redémarrer

Vérifiez maintenant si le quota est activé :

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

Lorsque le quota est actif, nous pouvons voir "usrquota,grpquota " dans la liste des options de montage.

Activation du quota sur une partition /var distincte

Si vous avez une partition /var séparée, modifiez /etc/fstab et ajoutez ,uquota,gquota à la partition / (/dev/mapper/centos-var) :

nano /etc/fstab

#
# /etc/fstab
# Créé par anaconda le dimanche 21 septembre 16:33:45 2014
#
# Systèmes de fichiers accessibles, par référence , sont maintenus sous '/dev/disk'
# Consultez les pages de manuel fstab(5), findfs(8), mount(8) et/ou blkid(8) pour plus d'informations
#
/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

Puis lancez

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

pour activer les quotas. Lorsque vous obtenez une erreur indiquant qu'il n'y a pas de partition avec un quota activé, redémarrez le serveur avant de continuer.

6 Installer Apache, PHP, MySQL et phpMyAdmin

Activez le référentiel Remi pour obtenir les nouvelles versions de PHP (actuellement 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
mise à jour dnf

Nous pouvons installer les packages nécessaires avec une seule commande :

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

Pour garantir que le serveur ne peut pas être attaqué via la vulnérabilité HTTPOXY, nous désactiverons globalement l'en-tête HTTP_PROXY dans apache.

Ajoutez la règle d'en-tête apache à la fin du fichier httpd.conf :

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

Et redémarrez httpd pour appliquer le changement de configuration.

redémarrage du service httpd

Installez 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

Facultatif :Modifier le module Apache MPM

CentOS 8 utilise le module Apache MPM Event par défaut, ce qui est bien d'un côté, car il permet d'utiliser le protocole HTTP/2. En revanche, il ne permet pas d'utiliser le module apache mod_php. En général, on devrait utiliser PHP-FPM par défaut aujourd'hui et ISPConfig le supporte. Si vous avez besoin de l'ancien mode mod_php pour des raisons de compatibilité, vous pouvez changer le MPM Apache comme ceci :

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

Ajoutez un # devant la ligne d'événement MPM pour qu'elle ressemble à ceci :

# LoadModule mpm_event_module modules/mod_mpm_event.so

Ensuite, supprimez le # dans de la ligne MPM Prefork, de sorte qu'il ressemble à ceci :

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

Redémarrez ensuite httpd pour appliquer le changement de configuration.

redémarrage du service httpd

7 Installer Dovecot

Le pigeonnier peut être installé comme suit :

dnf -y install dovecot dovecot-mysql dovecot-pigeonhole

Créez un fichier dovecot-sql.conf vide et créez des liens symboliques :

touchez /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

Créez maintenant les liens de démarrage du système et démarrez Dovecot :

systemctl activer colombier
systemctl démarrer colombier

8 Installer Postfix

Postfix peut être installé comme suit :

dnf -y install postfix postfix-mysql

Ensuite, ouvrez les ports TLS/SSL et de soumission dans Postfix :

nano /etc/postfix/master.cf

Décommentez les sections submission et smtps comme suit et ajoutez des lignes si nécessaire afin que cette section du fichier master.cf ressemble exactement à celle ci-dessous. IMPORTANT : Supprimez le # devant les lignes qui commencent par smtps et la soumission aussi et pas seulement des lignes -o après ces lignes !

[...]
soumission 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 s =$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_se nder_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
[...]

Ensuite, désactivez Sendmail et démarrez Postfix et MariaDB (MySQL) :

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

Nous désactivons sendmail pour nous assurer qu'il ne démarre pas s'il est installé sur votre serveur. Ainsi, le message d'erreur "Échec de l'émission de l'appel de méthode :l'unité sendmail.service n'est pas chargée." peut être ignoré.

Pour activer la prise en charge des appareils anciens/obsolètes, exécutez cette commande (facultatif, utilisez uniquement lorsque vous souhaitez que les anciens appareils de messagerie se connectent car cela affaiblit la configuration SSL/TLS en autorisant des chiffrements moins sécurisés) :

update-crypto-policies --set LEGACY

9 Installer Getmail

Getmail peut être installé comme suit :

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 Définir les mots de passe MySQL et configurer phpMyAdmin

Définissez des mots de passe pour le compte racine MySQL :

mysql_secure_installation
[[email protected] tmp]# mysql_secure_installation


REMARQUE :L'EXÉCUTION DE TOUTES LES PARTIES DE CE SCRIPT EST RECOMMANDÉE POUR TOUS LES SERVEURS MariaDB
EN UTILISATION DE PRODUCTION ! VEUILLEZ LIRE ATTENTIVEMENT CHAQUE ÉTAPE !
Afin de se connecter à MariaDB pour le sécuriser, nous aurons besoin du
mot de passe actuel pour l'utilisateur root. Si vous venez d'installer MariaDB, et
vous n'avez pas encore défini le mot de passe root, le mot de passe sera vide,
il vous suffit donc d'appuyer sur Entrée ici.
Entrez le mot de passe actuel pour root (entrez pour aucun) :
OK, mot de passe utilisé avec succès, continuez...
La définition du mot de passe root garantit que personne ne peut se connecter à l'utilisateur root MariaDB
sans l'autorisation appropriée.

Définir le mot de passe root ? [O/n] <-- ENTRER
Nouveau mot de passe : <-- votremotdepasseqlracine
Saisir à nouveau le nouveau mot de passe : <-- votremotdepasseqlracine
Mot de passe mis à jour avec succès !
Rechargement des tableaux de privilèges. .
 ... Succès !


Par défaut, une installation MariaDB a un utilisateur anonyme, permettant à n'importe qui
de se connecter à MariaDB sans avoir de compte utilisateur créé pour
eux. Ceci est uniquement destiné aux tests et à rendre l'installation
un peu plus fluide. Vous devez les supprimer avant de passer à
un environnement de production.

Supprimer les utilisateurs anonymes ? [O/n] <-- ENTER
 ... Succès !

Normalement, root ne doit être autorisé à se connecter depuis 'localhost'. Cela
assure que quelqu'un ne ne peut pas deviner le mot de passe root depuis le réseau.

Interdire la connexion root à distance ? [O/n] <-- ENTER
 ... Succès !

Par défaut, MariaDB est fourni avec une base de données nommée "test" à laquelle tout le monde peut
accéder. Ceci est également destiné uniquement aux tests et doit être supprimé
avant de passer à un environnement de production.

Supprimer la base de données de test et y accéder ? [O/n] <-- ENTER
 - Suppression de la base de données de test...
 ... Réussite !
 - Suppression des privilèges sur la base de données de test...
 ... Réussite !

Recharger les tableaux de privilèges garantira que tout les changements apportés jusqu'à présent 
prendront effet immédiatement.

Recharger les tableaux de privilèges maintenant ? [O/n] <-- ENTER
 ... Réussite !

Nettoyage ...



Tout est terminé ! Si vous avez terminé toutes les étapes ci-dessus, votre installation de MariaDB
devrait maintenant être sécurisée.

Merci d'utiliser MariaDB !

[[email protected] tmp ]#

Maintenant, nous configurons phpMyAdmin. Créez ce fichier de configuration phpMyAdmin :

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

Ajoutez ce contenu au fichier :

# phpMyAdmin - Navigateur MySQL basé sur le Web écrit en php## N'autorise que localhost par défaut## Mais autoriser phpMyAdmin à toute personne autre que localhost devrait être considéré# dangereux à moins qu'il ne soit correctement sécurisé par SSLAlias ​​/phpMyAdmin /usr/share/phpmyadminAlias ​​/phpmyadmin /usr/share/phpmyadmin  # Apache 2.4 #  # Require ip 127.0.0.1 # Require ip ::1 #    # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 Allow from ::1  

Ensuite, nous changeons l'authentification dans phpMyAdmin de cookie à http:

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

Ensuite, nous créons les liens de démarrage du système pour Apache et le démarrons :

systemctl activer httpd
systemctl redémarrer httpd

Vous pouvez maintenant diriger votre navigateur vers http://server1.example.com/phpmyadmin/ ou http://192.168.0.100/phpmyadmin/ et vous connecter avec le nom d'utilisateur root et votre nouveau mot de passe root MySQL.

11 Installer Amavisd-new, SpamAssassin, ClamAV et Postgrey

Pour installer amavisd-new, SpamAssassin et ClamAV, exécutez la commande suivante :

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 décompresser bzip2 perl-DBD-mysql postgrey re2c 

Ensuite, nous commençons freshclam, amavisd et clamd.amavisd :

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

Dans l'étape suivante, nous configurons postgrey. Ouvrez le fichier /etc/sysconfig/postgrey dans un éditeur :

nano /etc/sysconfig/postgrey

et changez la ligne :

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

à

POSTGREY_TYPE="--inet=10023"

Enregistrez le fichier et redémarrez postgrey :

redémarrage du service postgrey

Pour configurer amavisd, éditez le fichier /etc/clamd.d/amavisd.conf :

nano /etc/clamd.d/amavisd.conf

et changez la ligne :

LocalSocket /run/clamd.amavisd/clamd.sock

à

LocalSocket /var/spool/amavisd/clamd.sock

Enregistrez le fichier de configuration modifié et redémarrez ClamAV :

systemctl redémarrer [email protected]

Nous devons maintenant créer une unité système pour le service freshclam. Créez un nouveau fichier /usr/lib/systemd/system/freshclam.service :

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

et saisissez le contenu suivant dans ce fichier :

[Unit]Description =ClamAV ScannerAfter =network.target[Service]Type =forking# si vous souhaitez en numériser plusieurs par jour, remplacez le numéro 1 par le numéro souhaité dans la ligne ci-dessous.ExecStart =/usr/bin /freshclam -d -c 1Restart =on-failurePrivateTmp =true[Install]WantedBy=multi-user.target

Enregistrez le fichier, puis activez et démarrez le service.

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

12 Installer Apache avec mod_php, mod_fcgi/PHP, PHP-FPM

ISPConfig 3 vous permet d'utiliser mod_php, mod_fcgi/PHP, cgi/PHP et PHP-FPM sur une base par site Web.

Nous pouvons installer Apache2 avec mod_php, mod_fcgid et PHP comme suit :

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

Ensuite, nous ouvrons /etc/php.ini...

nano /etc/php.ini

... et modifiez le rapport d'erreur (afin que les avis ne soient plus affichés), définissez le fuseau horaire et décommentez cgi.fix_pathinfo=1 :

[...];error_reporting =E_ALL &~E_DEPRECATEDerror_reporting =E_ALL &~E_NOTICE &~E_DEPRECATED &~E_STRICT[...]; cgi.fix_pathinfo fournit un support *réel* PATH_INFO/PATH_TRANSLATED pour CGI. PHP ; le comportement précédent était de définir PATH_TRANSLATED sur SCRIPT_FILENAME, et de ne pas grok ; ce que PATH_INFO est. Pour plus d'informations sur PPpp.tldTH_INFO, consultez les spécifications cgi. Paramètre; ceci à 1 obligera PHP CGI à fixer ses chemins pour se conformer à la spécification. Un paramètre; de zéro oblige PHP à se comporter comme avant. La valeur par défaut est 1. Vous devez corriger vos scripts ; pour utiliser SCRIPT_FILENAME plutôt que PATH_TRANSLATED.; http://www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfocgi.fix_pathinfo=1
[...]
date.timezone ='Europe /Berlin'[...]

Activez httpd et PHP-FPM pour démarrer au démarrage et démarrer le service PHP-FPM.

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

Enfin, nous redémarrons Apache :

systemctl redémarre httpd.service

Nous allons maintenant ajouter la prise en charge de Let's encrypt. ISPConfig utilise maintenant acme.sh comme client Let's Encrypt. Installez acme.sh à l'aide de la commande suivante :

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

13 Installation de mod_python

Le module Apache mod_python n'est pas disponible en tant que package RPM, nous allons donc le compiler à partir des sources. La première étape consiste à installer les fichiers de développement python et à télécharger la version actuelle de mod_python en tant que fichier .tar.gz

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

puis configurez et compilez le module.

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

Il y a une erreur dans le module compilé qui entraînera l'échec de l'installation avec l'erreur "version ="fatal :Pas un référentiel git (ou l'un des répertoires parents) :.git ". Pour résoudre ce problème, exécutez cette commande sed (la commande tient sur une ligne !).

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 )

Installez ensuite le module avec cette commande.

faire installer

et activez le module dans Apache :

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

14 Installer PureFTPd

PureFTPd peut être installé avec la commande suivante :

dnf -y install pure-ftpd

Créez ensuite les liens de démarrage du système et lancez PureFTPd :

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

Nous configurons maintenant PureFTPd pour autoriser les sessions FTP et TLS. FTP est un protocole très peu sûr car tous les mots de passe et toutes les données sont transférés en texte clair. En utilisant TLS, toute la communication peut être cryptée, ce qui rend le FTP beaucoup plus sécurisé.

OpenSSL est requis par TLS ; pour installer OpenSSL, nous exécutons simplement :

dnf installer openssl

Ouvrez /etc/pure-ftpd/pure-ftpd.conf...

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

Si vous souhaitez autoriser les sessions FTP et TLS, définissez TLS sur 1 en supprimant le # devant la ligne TLS. Il est fortement recommandé d'activer TLS.

[...]# Cette option peut accepter trois valeurs :# 0 :désactive la couche de chiffrement SSL/TLS (par défaut).# 1 :accepte les sessions traditionnelles et chiffrées.# 2 :refuse les connexions qui n'utilisent pas SSL /Mécanismes de sécurité TLS,# y compris les sessions anonymes.# Ne _pas_ décommentez ceci aveuglément. Assurez-vous que :# 1) Votre serveur a été compilé avec le support SSL/TLS (--with-tls),# 2) Un certificat valide est en place,# 3) Seuls les clients compatibles se connecteront.TLS 1[.. .]

Pour utiliser TLS, nous devons créer un certificat SSL. Je le crée dans /etc/ssl/private/, donc je crée d'abord ce répertoire :

mkdir -p /etc/ssl/private/

Ensuite, nous pouvons générer le certificat SSL comme suit :

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

Nom du pays (code à 2 lettres) [XX] :<-- Entrez le nom de votre pays (par exemple, "DE").
Nom de l'État ou de la province (nom complet) [] :<-- Entrez le nom de votre État ou de la province .
Nom de la localité (par exemple, ville) [Ville par défaut] :<-- Entrez votre ville.
Nom de l'organisation (par exemple, société) [Default Company Ltd] :<-- Entrez le nom de votre organisation (par exemple, , le nom de votre entreprise).
Nom de l'unité organisationnelle (par exemple, section) [] :<-- Saisissez le nom de votre unité organisationnelle (par exemple, "Service informatique").
Nom commun (par exemple, votre nom ou le nom d'hôte de votre serveur) [] :<-- Saisissez le nom de domaine complet du système (par exemple, "serveur1.exemple.com").
Adresse e-mail [] :<-- Saisissez votre adresse e-mail.

Modifiez les autorisations du certificat SSL :

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

Créez un fichier DHCParam :

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

Enfin, redémarrez PureFTPd :

systemctl redémarre pure-ftpd.service

C'est ça. Vous pouvez maintenant essayer de vous connecter en utilisant votre client FTP; cependant, vous devez configurer votre client FTP pour utiliser TLS.

15 Installer BIND

Nous pouvons installer BIND comme suit :

dnf -y install bind bind-utils haveged

Faites une sauvegarde du fichier /etc/named.conf existant et créez-en un nouveau comme suit :

cp /etc/named.conf /etc/named.conf_bak
cat /dev/null> /etc/named.conf
nano /etc/named.conf
////named.conf//// Fourni par le package de liaison Red Hat pour configurer le serveur DNS ISC BIND named(8)// en tant que serveur de noms de mise en cache uniquement (en tant que résolveur DNS localhost uniquement)./// / Voir /usr/share/doc/bind*/sample/ pour des exemples de fichiers de configuration nommés.//options { listen-on port 53 { any; } ; listen-on-v6 port 53 { n'importe lequel ; } ; répertoire "/var/named" ; fichier de vidage "/var/named/data/cache_dump.db" ; fichier-statistiques "/var/named/data/named_stats.txt" ; memstatistics-file "/var/named/data/named_mem_stats.txt" ; allow-query { n'importe lequel ; } ; allow-recursion {"aucun";} ; recursion no ;} logging { channel default_debug { file "data/named.run" ; dynamique de sévérité ; };};zone "." IN { type indice ; file "named.ca";};include "/etc/named.conf.local";

Créez le fichier /etc/named.conf.local qui est inclus à la fin de /etc/named.conf (/etc/named.conf.local sera plus tard rempli par ISPConfig si vous créez des zones DNS dans ISPConfig) :

touchez /etc/named.conf.local

Ensuite, nous créons les liens de démarrage et démarrons BIND :

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

16 Installer AWStats

AWStats peut être installé comme suit :

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

L'application alternative de statistiques Web 'webalizer' n'est plus disponible pour CentOS 8, vous ne pourrez donc utiliser qu'AWStats.

17 Installer Jailkit

Jailkit est utilisé pour chrooter les utilisateurs SSH et les cronjobs. Il peut être installé comme suit :

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 Installer Fail2Ban

Ceci est facultatif mais recommandé, car le moniteur ISPConfig essaie d'afficher le journal.

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

Ensuite, nous créons le fichier /etc/fail2ban/jail.local et activons la surveillance des services ssh, e-mail et ftp.

nano /etc/fail2ban/jail.local

Ajoutez le contenu suivant au fichier jail.local :

[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

Créez ensuite les liens de démarrage du système pour fail2ban et démarrez-le :

systemctl enable fail2ban.service
systemctl start fail2ban.service

19 Installer rkhunter

rkhunter peut être installé comme suit :

dnf -y install rkhunter

20 Installer Mailman

Si vous souhaitez gérer des listes de diffusion avec Mailman sur votre serveur, installez mailman maintenant. Mailman est pris en charge par ISPConfig, vous pourrez donc créer ultérieurement de nouvelles listes de diffusion via ISPConfig.

dnf -y install mailman

Avant de pouvoir démarrer Mailman, une première liste de diffusion appelée mailman doit être créée :

touchez /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

[[email protected] tmp]# /usr/lib/mailman/bin/newlist mailman
Saisissez l'e-mail de la personne qui gère la liste : <-- l'adresse e-mail de l'administrateur, par ex. [email protected]
Mot de passe initial mailman : <-- mot de passe admin pour la liste mailman 
Pour finir la création de votre liste d'envoi , vous de vaut modifier votre /etc/aliases (ou
équivalent) fichier en en ajoutant les lignes suivantes et éventuellement en exécutant le programme
`newaliases' :

## mailman mailing list
mailman :              "|/usr/lib/mailman/mail/mailman post mailman"
mailman-admin :        "|/usr/lib/mailman/mail/mailman admin mailman"
mailman-bounces :      "|/usr/lib/mailman/mail/mailman rebondit mailman"
mailman-confirm :      "|/usr/lib/mailman/mail/mailman confirm mailman"
mailman-join :         "|/usr/lib/mailman/mail/mailman join mailman"
mailman- congé :        "|/usr/lib/mailman/mail/mailman congé 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-unsub scribe :  "|/usr/lib/mailman/mail/mailman unsubscribe mailman"

Appuyez sur Entrée pour notifier le propriétaire du mailman... <-- ENTER

[[email protected ] tmp]#

Ouvrez ensuite /etc/aliases...

nano /etc/aliases

... et ajoutez les lignes suivantes :

[...]mailman:"|/usr/lib/mailman/mail/mailman post mailman"mailman-admin:"|/usr/lib/mailman/mail/mailman admin mailman"mailman-bounces:"| /usr/lib/mailman/mail/mailman rebondit mailman"mailman-confirm :"|/usr/lib/mailman/mail/mailman confirme mailman"mailman-join :"|/usr/lib/mailman/mail/mailman join mailman "mailman-leave:"|/usr/lib/mailman/mail/mailman quitter mailman"mailman-owner:"|/usr/lib/mailman/mail/mailman propriétaire mailman"mailman-request:"|/usr/lib/ mailman/mail/mailman demande mailman"mailman-subscribe:"|/usr/lib/mailman/mail/mailman s'abonner mailman"mailman-unsubscribe:"|/usr/lib/mailman/mail/mailman désabonner mailman"

Exécuter

nouveaux alias

ensuite et relancez Postfix :

systemctl redémarre postfix.service

Ouvrez maintenant le fichier de configuration Mailman Apache /etc/httpd/conf.d/mailman.conf...

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

... et ajoutez la ligne ScriptAlias ​​/cgi-bin/mailman/ /usr/lib/mailman/cgi-bin/. Commentez Alias ​​/pipermail/ /var/lib/mailman/archives/public/ et ajoutez la ligne Alias ​​/pipermail /var/lib/mailman/archives/public/ :

## paramètres de configuration httpd à utiliser avec mailman.#ScriptAlias ​​/mailman/ /usr/lib/mailman/cgi-bin/ScriptAlias ​​/cgi-bin/mailman/ /usr/lib/mailman/cgi-bin/ AllowOverride None Options ExecCGI Order allow,deny Allow from all#Alias ​​/pipermail/ /var/lib/mailman/archives/public/Alias ​​/pipermail /var/lib /mailman/archives/public/ Options Indexes MultiViews FollowSymLinks AllowOverride None Order allow,deny Allow from all AddDefaultCharset Off# Décommentez la ligne suivante, pour rediriger les requêtes vers / mailman à la page # listinfo (recommandé).# RedirectMatch ^/mailman[/]*$ /mailman/listinfo

Redémarrez Apache :

systemctl redémarre httpd.service

Créez les liens de démarrage du système pour Mailman et démarrez-le :

systemctl enable mailman.service
systemctl start mailman.service

Après avoir installé ISPConfig 3, vous pouvez accéder à Mailman comme suit :

Vous pouvez utiliser l'alias /cgi-bin/mailman pour tous les vhosts Apache (veuillez noter que suExec et CGI doivent être désactivés pour tous les vhosts à partir desquels vous souhaitez accéder à Mailman !), ce qui signifie que vous pouvez accéder à l'interface d'administration de Mailman pour une liste à http:///cgi-bin/mailman/admin/, et la page Web pour les utilisateurs d'une liste de diffusion se trouve à http:///cgi-bin/mailman/listinfo /.

Sous http:///pipermail/ vous pouvez trouver les archives de la liste de diffusion.

21 Installer le webmail Roundcube

Pour installer le client de messagerie Web RoundCube, téléchargez la dernière version avec wget dans le dossier /tmp :

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

Décompressez l'archive tar.gz et déplacez la source RoundCube vers /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

Créez un fichier de configuration roundcubemail.conf avec l'éditeur nano :

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

Et ajoutez le contenu suivant à ce fichier :

## Round Cube Webmail est un client IMAP multilingue basé sur un navigateur#Alias ​​/roundcubemail /usr/share/roundcubemail
Alias ​​/webmail /usr/share/roundcubemail# Définir qui peut accéder au Webmail# Vous pouvez agrandir autorisations une fois configurées Options aucune AllowOverride Limit Require all distributed# Définir qui peut accéder au programme d'installation# garder ceci sécurisé une fois configuré Options aucune AllowOverride Limit Exiger que tous soient accordés# Ces répertoires ne doivent pas être visualisés par les clients Web. Order Allow,Deny Deny from all Ordre Autoriser, Refuser Refuser de tous

Redémarrez Apache :

systemctl redémarre httpd.service

Nous avons maintenant besoin d'une base de données pour le courrier RoundCube, nous allons l'initialiser comme suit :

mysql -u root -p

À l'invite MariaDB, utilisez :

CRÉER UNE BASE DE DONNÉES roundcubedb ;
CRÉER UN UTILISATEUR [email protected] IDENTIFIÉ PAR 'roundcubepassword' ;
ACCORDER TOUS LES PRIVILÈGES sur roundcubedb.* à [email protected] ;
FLUSH PRIVILEGES ;
quitter

J'utilise les détails de la base de données RoundCube à titre d'exemple, veuillez remplacer les valeurs selon votre choix pour des raisons de sécurité.

Nous allons maintenant installer RoundCube dans le navigateur à l'adresse http://192.168.0.100/roundcubemail/installer

Créez maintenant le fichier config.inc.php :

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

/* Configuration locale pour Webmail Roundcube */

// ----------------- -----------------
// BASE DE DONNÉES SQL
// ------------------- ---------------
// Chaîne de connexion à la base de données (DSN) pour les opérations de lecture+écriture
// Format (compatible avec PEAR MDB2) :db_provider:// utilisateur :[email protected]/database
// Fournisseurs de base de données actuellement pris en charge :mysql, pgsql, sqlite, mssql, sqlsrv, oracle
// Pour des exemples, voir http://pear.php.net/manual/ en/package.database.mdb2.intro-dsn.php
// REMARQUE :pour SQLite, utilisez le chemin absolu (Linux) :'sqlite:////full/path/to/sqlite.db?mode=0646 '
// ou (Windows) :'sqlite:///C:/full/path/to/sqlite.db'
$config['db_dsnw'] ='mysql://roundcubeuser :[email protected]/roundcubedb';

// -------------------------------- --
// IMAP
// ----------------------------------
// L'hôte IMAP choisi pour effectuer la connexion.
// Laisser vide pour afficher une zone de texte à la connexion, donner une liste d'hôtes
// à afficher un menu déroulant ou définissez un hôte comme chaîne.
// Pour utiliser la connexion SSL/TLS, entrez le nom d'hôte avec le préfixe ssl:// ou tls://
// Variables de remplacement prises en charge :
// %n - nom d'hôte ($_SERVER['SERVER_NAME'])
// %t - nom d'hôte sans la première partie
// %d - domaine (nom d'hôte http $_SERVER['HTTP_HOST'] sans la première partie)
// %s - nom de domaine après le '@' de l'adresse e-mail fournie à l'écran de connexion
// Par exemple %n =mail.domain.tld, %t =domaine .tld
// AVERTISSEMENT :après le changement de nom d'hôte, la mise à jour de la colonne mail_host dans la table des utilisateurs est
// requise pour faire correspondre les anciens enregistrements de données utilisateur avec le nouvel hôte.
$config['default_host'] ='localhost';
$config['smtp_server'] ='localhost';
$config['smtp_port'] =25;

// fournissez une URL où un l'utilisateur peut obtenir de l'aide pour cette installation de Roundcube
// VEUILLEZ NE PAS LIEN VERS LE SITE WEB ROUNDCUBE.NET ICI !
$config['support_url'] ='';

/ / Cette clé est utilisée à des fins de chiffrement, comme sto anneau de mot de passe imap
// dans la session. Pour des raisons historiques, elle s'appelle DES_key, mais elle est utilisée
// avec n'importe quelle méthode de chiffrement configurée (voir ci-dessous).
$config['des_key'] ='pb0UucO0eqjgvhrqYlFTBVjE';

/ / ----------------------------------
// PLUGINS
// -- --------------------------------
// Liste des plugins actifs (dans le répertoire plugins/)
$config['plugins'] =array();

// Définit le moteur de vérification orthographique. Valeurs possibles :
// - 'googie' - la valeur par défaut (également utilisée pour se connecter à Nox Spell Server, voir le paramètre 'spellcheck_uri')
// - 'pspell' - nécessite le module PHP Pspell et 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;

Then press "continue" in the web installer. On the following page, press on the button "Initialize database".

Finally, disable the Roundecubemail installer. Change the RoundCube config.inc.php configuration file

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

et changez la ligne :

$config['enable_installer'] =true;

à :

$config['enable_installer'] =false;

Roundcube is available now under the aliases /webmail and /roundcubemail on your server:

http://192.168.0.100/webmail

The RoundCube login is the email address and password of an email account that you create later in ISPConfig.

22 Install ISPConfig 3.2

The ISPConfig installer will configure all services like Postfix, Dovecot, etc. for you.

You now also have the possibility to let the installer create an SSL vhost for the ISPConfig control panel so that ISPConfig can be accessed using https:// instead of http://. To achieve this, just press ENTER when you see this question:Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]:.

To install ISPConfig 3.2 nightly build, do this:

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/

The next step is to run:

php -q install.php

Cela lancera le programme d'installation d'ISPConfig 3. Le programme d'installation configurera tous les services comme Postfix, Dovecot, etc. pour vous.

[[email protected] install]# php install.php

------------------------------------------------------- -------------------------------------
_____ ___________ _____ __ _ ____
|_ _/ ___| ___ \ / __ \ / _(_) /__ \
| | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /
| | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ |
_| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \
\___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/
__/ |
|___/
-------------------------------------------------- ------------------------------------------

>> Configuration initiale
Operating System:CentOS 8.2
Voici quelques questions pour la configuration principale, alors soyez prudent.
Les valeurs par défaut sont entre [crochets] et peuvent être acceptées avec .
Appuyez sur "quitter" (sans les guillemets) pour arrêter le programme d'installation.

Sélectionnez la langue (en,de) [en] :<-- Appuyez sur Entrée
Mode d'installation (standard, expert) [standard] : <-- Appuyez sur Entrée
Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server1.example.com]: <-- Hit Enter
Nom d'hôte du serveur MySQL [localhost] : <-- Appuyez sur Entrée
Port du serveur MySQL [3306] : <-- Appuyez sur Entrée
Nom d'utilisateur root MySQL [root] : <-- Appuyez sur Entrée
MySQL root password []: <-- Ente the MySQL root password here
Base de données MySQL pour créer [dbispconfig] : <-- Appuyez sur Entrée
Jeu de caractères MySQL [utf8] : <-- Appuyez sur Entrée
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
Souhaitez-vous une connexion sécurisée (SSL) à l'interface Web ISPConfig (y,n) [y] : <-- Appuyez sur Entrée
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.

The installer automatically configures all underlying services, so there is no manual configuration needed.

23 First ISPConfig Login

Afterwards you can access ISPConfig 3 under http(s)://server1.example.com:8080/ or http(s)://192.168.0.100:8080/ (http or https depends on what you chose during installation).

Log in with the username admin and the password admin (you should change the default password after your first login):

23.1 The ISPConfig 3 Manual

In order to learn how to use ISPConfig 3, I strongly recommend downloading the ISPConfig 3 Manual.

On more than 300 pages, it covers the concept behind ISPConfig (admin, resellers, clients), explains how to install and update ISPConfig 3, includes a reference for all forms and form fields in ISPConfig together with examples of valid inputs, and provides tutorials for the most common tasks in ISPConfig 3. It also lines out how to make your server more secure and comes with a troubleshooting section at the end.

24 Download as a virtual machine

Cette configuration est disponible en téléchargement de machine virtuelle au format ova/ovf (compatible avec VMWare et Virtualbox) pour les abonnés howtoforge.

Informations de connexion pour la VM

  • The root password is:howtoforge
  • The password of the ISPConfig "admin" user is: howtoforge
  • There is another shell user with the name "howtoforge" and password:howtoforge

Veuillez modifier les deux mots de passe lors de la première connexion.

  • The IP address of the VM is 192.168.0.100
  • CentOS :http://www.centos.org/
  • ISPConfig:http://www.ispconfig.org/

Cent OS
  1. Le serveur parfait - Ubuntu 15.10 (Wily Werewolf) avec Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot et ISPConfig 3

  2. Le serveur parfait - Ubuntu 17.10 (Artful Aardvark) avec Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot et ISPConfig 3.1

  3. Le serveur parfait - Ubuntu 16.04 (Nginx, MySQL, PHP, Postfix, BIND, Dovecot, Pure-FTPD et ISPConfig 3.1)

  4. Le serveur parfait - Ubuntu 16.04 (Xenial Xerus) avec Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot et ISPConfig 3.1

  5. Le serveur parfait - Ubuntu 18.04 (Bionic Beaver) avec Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot et ISPConfig 3.1

Le serveur parfait CentOS 7.3 avec Apache, Postfix, Dovecot, Pure-FTPD, BIND et ISPConfig 3.1

Le serveur parfait CentOS 7.4 avec Apache, Postfix, Dovecot, Pure-FTPD, BIND et ISPConfig 3.1

Le serveur parfait CentOS 7.6 avec Apache, PHP 7.2, Postfix, Dovecot, Pure-FTPD, BIND et ISPConfig 3.1

Le serveur parfait - Ubuntu 20.04 avec Apache, PHP, MariaDB, PureFTPD, BIND, Postfix, Dovecot et ISPConfig 3.2

Le serveur parfait - Debian 9 (Stretch) avec Apache, BIND, Dovecot, PureFTPD et ISPConfig 3.1

Le serveur parfait - Ubuntu 14.10 avec Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot et ISPConfig