Serveur Ubuntu · 23 min read · Sep 11, 2025

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

Ce tutoriel montre l’installation d’un serveur d’hébergement web Ubuntu 20.04 (Focal Fossa) avec Apache 2.4, Postfix, Dovecot, Bind et PureFTPD pour le préparer à l’installation d’ISPConfig 3.2. Le système résultant fournira un serveur Web, Mail, Mailinglist, DNS et FTP.

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 ou Nginx, serveur de mail Postfix, serveur IMAP/POP3 Courier ou Dovecot, MariaDB comme remplacement de MySQL, serveur de noms BIND ou MyDNS, PureFTPd, SpamAssassin, ClamAV, et bien d’autres. Cette configuration couvre l’installation d’Apache (au lieu de Nginx), BIND (au lieu de MyDNS) et Dovecot (au lieu de Courier).

Il existe deux façons d’installer ISPConfig. Vous pouvez soit utiliser les instructions d’installation manuelle ci-dessous, soit utiliser le programme d’installation automatique d’ISPConfig, qui installe ISPConfig automatiquement en quelques minutes. Nous recommandons d’utiliser le programme d’installation automatique, qui prend également en charge Ubuntu 22.04. Voir l’installation automatisée d’ISPConfig pour des instructions sur la façon d’installer ISPConfig automatiquement.

1. 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, donc vous devez les remplacer là où cela est approprié. Avant de continuer, vous devez avoir une installation minimale de base d’Ubuntu 20.04 comme expliqué dans le tutoriel.

Les commandes de ce tutoriel doivent être exécutées avec des permissions root. Pour éviter d’ajouter sudo devant chaque commande, vous devrez devenir utilisateur root en exécutant :

sudo -s

avant de continuer.

2. Éditer /etc/apt/sources.list et Mettre à Jour votre Installation Linux

Éditez /etc/apt/sources.list. Commentez ou supprimez le CD d’installation du fichier et assurez-vous que les dépôts universe et multiverse sont activés. Cela devrait ressembler à ceci par la suite :

nano /etc/apt/sources.list
# Voir http://help.ubuntu.com/community/UpgradeNotes pour comment mettre à niveau vers
# des versions plus récentes de la distribution.
deb http://de.archive.ubuntu.com/ubuntu focal main restricted
# deb-src http://de.archive.ubuntu.com/ubuntu focal main restricted

## Mises à jour majeures de correction de bogues produites après la version finale de la
## distribution.
deb http://de.archive.ubuntu.com/ubuntu focal-updates main restricted
# deb-src http://de.archive.ubuntu.com/ubuntu focal-updates main restricted

## N.B. le logiciel de ce dépôt est ENTIÈREMENT NON SOUTENU par l'équipe Ubuntu.
## De plus, veuillez noter que le logiciel dans universe NE recevra AUCUN
## examen ou mise à jour de l'équipe de sécurité d'Ubuntu.
deb http://de.archive.ubuntu.com/ubuntu focal universe
# deb-src http://de.archive.ubuntu.com/ubuntu focal universe
deb http://de.archive.ubuntu.com/ubuntu focal-updates universe
# deb-src http://de.archive.ubuntu.com/ubuntu focal-updates universe

## N.B. le logiciel de ce dépôt est ENTIÈREMENT NON SOUTENU par l'équipe Ubuntu,
et peut ne pas être sous une licence libre. Veuillez vous assurer de
## vos droits d'utilisation du logiciel. De plus, veuillez noter que le logiciel dans
## multiverse NE recevra AUCUN examen ou mise à jour de l'équipe de sécurité d'Ubuntu.
deb http://de.archive.ubuntu.com/ubuntu focal multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu focal multiverse
deb http://de.archive.ubuntu.com/ubuntu focal-updates multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu focal-updates multiverse

## N.B. le logiciel de ce dépôt peut ne pas avoir été testé aussi
## largement que celui contenu dans la version principale, bien qu'il inclue
## des versions plus récentes de certaines applications qui peuvent fournir des fonctionnalités utiles.
## De plus, veuillez noter que le logiciel dans backports NE recevra AUCUN examen
## ou mise à jour de l'équipe de sécurité d'Ubuntu.
deb http://de.archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse

## Décommentez les deux lignes suivantes pour ajouter des logiciels du
## dépôt 'partenaire' de Canonical.
## Ce logiciel ne fait pas partie d'Ubuntu, mais est proposé par Canonical et les
## fournisseurs respectifs comme un service aux utilisateurs d'Ubuntu.
# deb http://archive.canonical.com/ubuntu focal partner
# deb-src http://archive.canonical.com/ubuntu focal partner

deb http://de.archive.ubuntu.com/ubuntu focal-security main restricted
# deb-src http://de.archive.ubuntu.com/ubuntu focal-security main restricted
deb http://de.archive.ubuntu.com/ubuntu focal-security universe
# deb-src http://de.archive.ubuntu.com/ubuntu focal-security universe
deb http://de.archive.ubuntu.com/ubuntu focal-security multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu focal-security multiverse

Ensuite, exécutez

apt-get update

pour mettre à jour la base de données des paquets apt et

apt-get upgrade

pour installer les dernières mises à jour (s’il y en a). Si vous voyez qu’un nouveau noyau est installé dans le cadre des mises à jour, vous devriez redémarrer le système par la suite :

reboot

3. Changer le Shell par Défaut

/bin/sh est un lien symbolique vers /bin/dash, cependant nous avons besoin de /bin/bash, pas de /bin/dash. Par conséquent, nous faisons ceci :

dpkg-reconfigure dash

Utiliser dash comme shell système par défaut (/bin/sh) ? <– Non

Si vous ne faites pas cela, l’installation d’ISPConfig échouera.

4. Désactiver AppArmor

AppArmor est une extension de sécurité (similaire à SELinux) qui devrait fournir une sécurité étendue. À mon avis, vous n’en avez pas besoin pour configurer un système sécurisé, et cela cause généralement plus de problèmes que d’avantages (pensez-y après avoir passé une semaine à résoudre des problèmes parce qu’un service ne fonctionnait pas comme prévu, et ensuite vous découvrez que tout allait bien, seul AppArmor causait le problème). Par conséquent, je le désactive (c’est un must si vous voulez installer ISPConfig plus tard).

Nous pouvons le désactiver comme ceci :

service apparmor stop  
update-rc.d -f apparmor remove   
apt-get remove apparmor apparmor-utils

5. Synchroniser l’Horloge du Système

Il est judicieux de synchroniser l’horloge du système avec un serveur NTP ( network time protocol) sur Internet lorsque vous exécutez un serveur physique. Dans le cas où vous exécutez un serveur virtuel, vous devriez sauter cette étape. Exécutez simplement

apt-get -y install ntp

et votre heure système sera toujours synchronisée.

6. Installer Postfix, Dovecot, MariaDB, rkhunter et binutils

Pour installer postfix, nous devons nous assurer que sendmail n’est pas installé et en cours d’exécution. Pour arrêter et supprimer sendmail, exécutez cette commande :

service sendmail stop; update-rc.d -f sendmail remove

Le message d’erreur :

Failed to stop sendmail.service: Unit sendmail.service not loaded.

est correct, cela signifie simplement que sendmail n’était pas installé, donc il n’y avait rien à supprimer.

Maintenant, nous pouvons installer Postfix, Dovecot, MariaDB (comme remplacement de MySQL), rkhunter et binutils avec une seule commande :

apt-get -y install postfix postfix-mysql postfix-doc mariadb-client mariadb-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve sudo patch

Vous serez invité à répondre aux questions suivantes :

General type of mail configuration: <-- Internet Site  
System mail name: <-- server1.example.com

Il est important que vous utilisiez un sous-domaine comme “nom de mail système” comme server1.example.com ou server1.votredomaine.com et non un domaine que vous souhaitez utiliser comme domaine de mail (par exemple, votredomaine.tld) plus tard.

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

nano /etc/postfix/master.cf

Décommentez les sections de soumission et smtps comme suit - ajoutez la ligne -o smtpd_client_restrictions=permit_sasl_authenticated,reject aux deux sections et laissez tout le reste commenté :

[...]
submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes  
  -o smtpd_tls_auth_only=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=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
smtps     inet  n       -       y       -       -       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=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
[...]

REMARQUE : Les espaces devant les lignes “-o …. “ sont importants !

Redémarrez Postfix par la suite :

service postfix restart

Nous voulons que MySQL écoute sur toutes les interfaces, pas seulement localhost. Par conséquent, nous éditons /etc/mysql/mariadb.conf.d/50-server.cnf et commentons la ligne bind-address = 127.0.0.1 :

nano /etc/mysql/mariadb.conf.d/50-server.cnf
[...]
# Au lieu de skip-networking, la valeur par défaut est maintenant d'écouter uniquement sur
# localhost, ce qui est plus compatible et n'est pas moins sécurisé.
#bind-address           = 127.0.0.1  
  
[...]

Maintenant, nous définissons un mot de passe root dans MariaDB. Exécutez :

mysql_secure_installation

Vous serez invité à répondre à ces questions :

Enter current password for root (enter for none): <-- appuyez sur entrer  
Set root password? [Y/n] <-- y  
New password: <-- Entrez le nouveau mot de passe root de MariaDB ici  
Re-enter new password: <-- Répétez le mot de passe  
Remove anonymous users? [Y/n] <-- y  
Disallow root login remotely? [Y/n] <-- y  
Reload privilege tables now? [Y/n] <-- y

Définissez la méthode d’authentification par mot de passe dans MariaDB sur native afin que nous puissions utiliser PHPMyAdmin plus tard pour nous connecter en tant qu’utilisateur root :

echo "update mysql.user set plugin = 'mysql_native_password' where user='root';" | mysql -u root

Éditez le fichier /etc/mysql/debian.cnf et définissez le mot de passe root MYSQL / MariaDB là deux fois dans les lignes qui commencent par password.

nano /etc/mysql/debian.cnf

Le mot de passe root MySQL qui doit être ajouté est affiché en rouge. Dans cet exemple, le mot de passe est “howtoforge”. Remplacez le mot “howtoforge” par le mot de passe que vous avez défini pour l’utilisateur root de MySQL avec la commande mysql_secure_installation.

# Généré automatiquement pour les scripts Debian. NE PAS TOUCHER !  
[client]  
host = localhost  
user = root  
password = howtoforge  
socket = /var/run/mysqld/mysqld.sock  
[mysql_upgrade]  
host = localhost  
user = root  
password = howtoforge  
socket = /var/run/mysqld/mysqld.sock  
basedir = /usr

Ouvrez le fichier /etc/security/limits.conf avec un éditeur :

nano /etc/security/limits.conf

et ajoutez ces lignes à la fin du fichier.

mysql soft nofile 65535  
mysql hard nofile 65535

Ensuite, créez un nouveau répertoire /etc/systemd/system/mysql.service.d/ avec la commande mkdir.

mkdir /etc/systemd/system/mysql.service.d/

et ajoutez un nouveau fichier à l’intérieur :

nano /etc/systemd/system/mysql.service.d/limits.conf

collez les lignes suivantes dans ce fichier :

[Service]  
LimitNOFILE=infinity

Enregistrez le fichier et fermez l’éditeur nano.

Ensuite, nous rechargeons systemd et redémarrons MariaDB :

systemctl daemon-reload  
service mariadb restart

Maintenant, vérifiez que le réseau est activé. Exécutez

netstat -tap | grep mysql

La sortie devrait ressembler à ceci :

root@server1:~# netstat -tap | grep mysql  
tcp6       0      0 [::]:mysql              [::]:*                     LISTEN      51836/mysqld  
root@server1:~#

7. Installer Amavisd-new, SpamAssassin et Clamav

Pour installer amavisd-new, SpamAssassin et ClamAV, nous exécutons

apt-get -y install amavisd-new spamassassin clamav clamav-daemon unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl postgrey

La configuration d’ISPConfig 3 utilise amavisd qui charge la bibliothèque de filtre SpamAssassin en interne, donc nous pouvons arrêter SpamAssassin pour libérer de la RAM :

service spamassassin stop  
update-rc.d -f spamassassin remove

Pour démarrer ClamAV, utilisez :

freshclam  
service clamav-daemon start

Le message d’erreur suivant peut être ignoré lors de la première exécution de freshclam.

ERROR: /var/log/clamav/freshclam.log is locked by another process  
ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log).

8. Installer Apache, PHP, phpMyAdmin, FCGI, SuExec, Pear

Apache 2.4, PHP 7.4, phpMyAdmin, FCGI, suExec et Pear peuvent être installés comme suit :

apt-get -y install apache2 apache2-doc apache2-utils libapache2-mod-php php7.4 php7.4-common php7.4-gd php7.4-mysql php7.4-imap phpmyadmin php7.4-cli php7.4-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear libruby libapache2-mod-python php7.4-curl php7.4-intl php7.4-pspell php7.4-sqlite3 php7.4-tidy php7.4-xmlrpc php7.4-xsl memcached php-memcache php-imagick php7.4-zip php7.4-mbstring php-soap php7.4-soap php7.4-opcache php-apcu php7.4-fpm libapache2-reload-perl

Vous verrez la question suivante :

Web server to reconfigure automatically: <-- apache2

Activer PHPMyAdmin dans Apache2


Configurer la base de données pour phpmyadmin avec dbconfig-common? <-- Oui

Mot de passe d'application MySQL pour phpmyadmin: <-- Appuyez sur entrer  

![Mot de passe d'application MySQL](/files/d6d79cfd-1efd-46ca-8155-f42a53d02409.png)

Ensuite, exécutez la commande suivante pour activer les modules Apache suexec, rewrite, ssl, actions et include (plus dav, dav_fs et auth_digest si vous souhaitez utiliser WebDAV) :

a2enmod suexec rewrite ssl actions include cgi alias proxy_fcgi

a2enmod dav_fs dav auth_digest headers


Pour s'assurer que le serveur ne peut pas être attaqué via la vulnérabilité HTTPOXY, je vais désactiver l'en-tête HTTP_PROXY dans apache globalement. Créez un nouveau fichier httpoxy.conf avec nano :

nano /etc/apache2/conf-available/httpoxy.conf


Collez ce contenu dans le fichier :
RequestHeader unset Proxy early

Activez le fichier de configuration en exécutant :

a2enconf httpoxy


Redémarrez Apache par la suite :

service apache2 restart


Si vous souhaitez héberger des fichiers Ruby avec l'extension .rb sur vos sites web créés via ISPConfig, vous devez commenter la ligne application/x-ruby rb dans /etc/mime.types :

nano /etc/mime.types

[…] #application/x-ruby rb […]


(Ceci est nécessaire uniquement pour les fichiers .rb ; les fichiers Ruby avec l'extension .rbx fonctionnent directement.)

Redémarrez Apache par la suite :

service apache2 restart


## 9. Installer Let's Encrypt

ISPConfig 3.2 a un support intégré pour l'autorité de certification SSL gratuite Let's Encrypt. La fonction Let's Encrypt vous permet de créer des certificats SSL gratuits pour votre site web dans ISPConfig.

Maintenant, nous allons ajouter le support pour Let's Encrypt.

apt-get install certbot


## 10. Installer Mailman

ISPConfig vous permet de gérer (créer/modifier/supprimer) des listes de diffusion Mailman. Si vous souhaitez utiliser cette fonctionnalité, installez Mailman comme suit :

apt-get -y install mailman


Sélectionnez au moins une langue, par exemple :

Langues à prendre en charge : <-- en (Anglais)  
Liste de sites manquante <-- Ok

L'erreur ' *Job for mailman.service failed because the control process exited with* error *code.* ' peut être ignorée pour l'instant.

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

newlist mailman


root@server1:~# newlist mailman  
Entrez l'email de la personne gérant la liste : <-- adresse email de l'administrateur, par exemple [email protected]  
Mot de passe initial de mailman : <-- mot de passe administrateur pour la liste mailman  
Pour terminer la création de votre liste de diffusion, vous devez éditer votre /etc/aliases (or fichier équivalent) en ajoutant les lignes suivantes, et éventuellement en exécutant le programme `newaliases` :  

## liste de diffusion mailman  
mailman:              "|/var/lib/mailman/mail/mailman post mailman"  
mailman-admin:        "|/var/lib/mailman/mail/mailman admin mailman"  
mailman-bounces:      "|/var/lib/mailman/mail/mailman bounces mailman"  
mailman-confirm:      "|/var/lib/mailman/mail/mailman confirm mailman"  
mailman-join:         "|/var/lib/mailman/mail/mailman join mailman"  
mailman-leave:        "|/var/lib/mailman/mail/mailman leave mailman"  
mailman-owner:        "|/var/lib/mailman/mail/mailman owner mailman"  
mailman-request:      "|/var/lib/mailman/mail/mailman request mailman"  
mailman-subscribe:    "|/var/lib/mailman/mail/mailman subscribe mailman"  
mailman-unsubscribe:  "|/var/lib/mailman/mail/mailman unsubscribe mailman"  

Appuyez sur entrer pour notifier le propriétaire de mailman... <-- ENTRER  

root@server1:~#

Ouvrez /etc/aliases par la suite...

nano /etc/aliases


... et ajoutez les lignes suivantes :

[…] ## liste de diffusion mailman
mailman: “|/var/lib/mailman/mail/mailman post mailman”
mailman-admin: “|/var/lib/mailman/mail/mailman admin mailman”
mailman-bounces: “|/var/lib/mailman/mail/mailman bounces mailman”
mailman-confirm: “|/var/lib/mailman/mail/mailman confirm mailman”
mailman-join: “|/var/lib/mailman/mail/mailman join mailman”
mailman-leave: “|/var/lib/mailman/mail/mailman leave mailman”
mailman-owner: “|/var/lib/mailman/mail/mailman owner mailman”
mailman-request: “|/var/lib/mailman/mail/mailman request mailman”
mailman-subscribe: “|/var/lib/mailman/mail/mailman subscribe mailman”
mailman-unsubscribe: “|/var/lib/mailman/mail/mailman unsubscribe mailman”


Exécutez

newaliases


par la suite et redémarrez Postfix :

service postfix restart


Enfin, nous devons activer la configuration Apache de Mailman :

ln -s /etc/mailman/apache.conf /etc/apache2/conf-available/mailman.conf


Cela définit l'alias /cgi-bin/mailman/ pour tous les hôtes virtuels Apache, 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 peut être trouvée à http:///cgi-bin/mailman/listinfo/.

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

Activez la configuration avec :

a2enconf mailman


Redémarrez Apache par la suite :

service apache2 restart


Ensuite, démarrez le démon Mailman :

service mailman start


## 11. Installer PureFTPd et Quota

PureFTPd et quota peuvent être installés avec la commande suivante :

apt-get -y install pure-ftpd-common pure-ftpd-mysql quota quotatool


Éditez le fichier /etc/default/pure-ftpd-common...

nano /etc/default/pure-ftpd-common


... et assurez-vous que le mode de démarrage est défini sur standalone et définissez VIRTUALCHROOT=true :

[…] STANDALONE_OR_INETD=standalone […] VIRTUALCHROOT=true […]


Maintenant, nous configurons PureFTPd pour permettre les sessions FTP et TLS. FTP est un protocole très peu sécurisé 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 chiffrée, rendant ainsi FTP beaucoup plus sécurisé.

Si vous souhaitez autoriser les sessions FTP et TLS, exécutez

echo 1 > /etc/pure-ftpd/conf/TLS


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) [AU]: <-- Entrez votre nom de pays (par exemple, "DE").  
Nom de l'état ou de la province (nom complet) [Some-State]: <-- Entrez le nom de votre état ou province.  
Nom de la localité (par exemple, ville) []: <-- Entrez votre ville.  
Nom de l'organisation (par exemple, entreprise) [Internet Widgits Pty Ltd]: <-- Entrez le nom de votre organisation (par exemple, le nom de votre entreprise).  
Nom de l'unité organisationnelle (par exemple, section) []: <-- Entrez le nom de votre unité organisationnelle (par exemple, "Département IT").  
Nom commun (par exemple, VOTRE nom) []: <-- Entrez le nom de domaine entièrement qualifié du système (par exemple, "server1.example.com").  
Adresse email []: <-- Entrez votre adresse email.

Changez les permissions du certificat SSL :

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


Ensuite, redémarrez PureFTPd :

service pure-ftpd-mysql restart


Éditez /etc/fstab. Le mien ressemble à ceci (j'ai ajouté,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 à la partition avec le point de montage /) :

nano /etc/fstab

/dev/mapper/server1–vg-root / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
/dev/mapper/server1–vg-swap_1 none swap sw 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0


Pour activer le quota, exécutez ces commandes :

mount -o remount /

quotacheck -avugm
quotaon -avug


Ce qui affichera la sortie suivante :

root@server1:/tmp# quotacheck -avugm
quotacheck: Scanning /dev/mapper/server1–vg-root [/] done
quotacheck: Cannot stat old user quota file //quota.user: No such file or directory. Usage will not be subtracted.
quotacheck: Cannot stat old group quota file //quota.group: No such file or directory. Usage will not be subtracted.
quotacheck: Cannot stat old user quota file //quota.user: No such file or directory. Usage will not be subtracted.
quotacheck: Cannot stat old group quota file //quota.group: No such file or directory. Usage will not be subtracted.
quotacheck: Checked 13602 directories and 96597 files
quotacheck: Old file not found.
quotacheck: Old file not found.
root@server1:/tmp# quotaon -avug
/dev/mapper/server1–vg-root [/]: group quotas turned on
/dev/mapper/server1–vg-root [/]: user quotas turned on


## 12. Installer le Serveur DNS BIND

BIND peut être installé comme suit :

apt-get -y install bind9 dnsutils haveged


Activez et démarrez le démon haveged :

systemctl enable haveged
systemctl start haveged


## 13. Installer Vlogger, Webalizer, AWStats et GoAccess

Vlogger, Webalizer et AWStats peuvent être installés comme suit :

apt-get -y install vlogger webalizer awstats geoip-database libclass-dbi-mysql-perl


Installation de la dernière version de GoAccess directement depuis le dépôt GoAccess :

echo “deb https://deb.goaccess.io/ $(lsb_release -cs) main” | sudo tee -a /etc/apt/sources.list.d/goaccess.list
wget -O - https://deb.goaccess.io/gnugpg.key | sudo apt-key –keyring /etc/apt/trusted.gpg.d/goaccess.gpg add -
sudo apt-get update
sudo apt-get install goaccess


Ouvrez ensuite /etc/cron.d/awstats...

nano /etc/cron.d/awstats


... et commentez tout dans ce fichier :

#MAILTO=root

#*/10 www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh

#10 03 * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh


## 14. Installer Jailkit

Jailkit est utilisé pour enfermer les utilisateurs de shell et les cronjobs dans ISPConfig. Installez jailkit avec apt :

apt-get -y install jailkit


## 15. Installer fail2ban et UFW

C'est optionnel mais recommandé car le moniteur ISPConfig essaie de montrer le journal :

apt-get -y install fail2ban


Pour faire en sorte que fail2ban surveille PureFTPd et Dovecot, créez le fichier /etc/fail2ban/jail.local :

nano /etc/fail2ban/jail.local

[pure-ftpd] enabled = true port = ftp filter = pure-ftpd logpath = /var/log/syslog maxretry = 3

[dovecot] enabled = true filter = dovecot action = iptables-multiport[name=dovecot-pop3imap, port=”pop3,pop3s,imap,imaps”, protocol=tcp] logpath = /var/log/mail.log maxretry = 5

[postfix] enabled = true port = smtp filter = postfix logpath = /var/log/mail.log maxretry = 3


Redémarrez fail2ban par la suite :

service fail2ban restart


Pour installer le pare-feu UFW, exécutez cette commande apt :

apt-get install ufw


## 16. Installer Roundcube Webmail

Pour installer Roundcube Webmail, exécutez :

apt-get -y install roundcube roundcube-core roundcube-mysql roundcube-plugins roundcube-plugins-extra javascript-common libjs-jquery-mousewheel php-net-sieve tinymce


L'installateur peut poser les questions suivantes :

Configurer la base de données pour roundcube avec dbconfig-common? <– Oui
Mot de passe d’application MySQL pour roundcube: <– Appuyez sur entrer


Ne vous inquiétez pas si vous ne recevez pas ces questions et un avertissement concernant le script ucf, c'est normal.

L'avertissement ucf que vous recevrez sur le shell peut être ignoré, il n'a pas d'impact négatif sur l'installation.

Ensuite, éditez le fichier de configuration apache de RoundCube.

nano /etc/apache2/conf-enabled/roundcube.conf


et supprimez le # devant la ligne Alias, puis ajoutez la deuxième ligne Alias pour /webmail et ajoutez la ligne "AddType application/x-httpd-php .php" juste après la ligne "" :

Alias /roundcube /var/lib/roundcube
Alias /webmail /var/lib/roundcube […]

AddType application/x-httpd-php .php [...] ``` Et redémarrez apache ``` service apache2 restart ``` Ensuite, éditez le fichier de configuration config.inc.php de RoundCube : ``` nano /etc/roundcube/config.inc.php ``` et changez l'hôte par défaut en localhost : ``` $config['default_host'] = 'localhost'; ``` et le serveur SMTP en : ``` $config['smtp_server'] = 'localhost'; ``` et ``` $config['smtp_port']  = 25; ``` Cela empêche Roundcube d'afficher le champ de saisie du nom du serveur dans le formulaire de connexion. ## 17. Installer ISPConfig 3.2 Nous allons utiliser la version stable d'ISPConfig 3.2 ici. ``` 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/ ``` L'étape suivante consiste à exécuter ``` php -q install.php ``` Cela lancera l'installateur d'ISPConfig 3. L'installateur configurera tous les services comme Postfix, Dovecot, etc. pour vous. ``` # php -q install.php ``` ``` -------------------------------------------------------------------------------- _____ ___________ _____ __ _ ____ |_ _/ ___| ___ \ / __ \ / _(_) /__ \ | | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ / | | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ | _| |_\/__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \ \___/\____/\_| \____/\___/|_| |_|_| |_\__, | \____/ __/ | |___/ -------------------------------------------------------------------------------- ``` ``` >> Configuration initiale ``` ``` Système d'exploitation : Ubuntu 20.04.1 LTS (Focal Fossa) ``` ``` Les questions suivantes seront posées pour la configuration principale, soyez donc prudent. Les valeurs par défaut sont entre [crochets] et peuvent être acceptées avec . Tapez "quit" (sans les guillemets) pour arrêter l'installateur. ``` ``` Sélectionnez la langue (en,de) [en]: <-- Appuyez sur Entrée ``` ``` Mode d'installation (standard,expert) [standard]: <-- Appuyez sur Entrée ``` ``` Nom d'hôte entièrement qualifié (FQDN) du serveur, par ex. server1.domaine.tld [server1.canomi.com]: <-- Appuyez sur Entrée ``` ``` 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 ``` ``` Mot de passe root MySQL []: <-- Entrez votre mot de passe root MySQL ``` ``` Base de données MySQL à créer [dbispconfig]: <-- Appuyez sur Entrée ``` ``` Jeu de caractères MySQL [utf8]: <-- Appuyez sur Entrée ``` ``` Configuration de Postgrey Configuration de Postfix Génération d'une clé privée RSA de 4096 bits .......................................................................++ ........................................................................................................................................++ écriture de la nouvelle clé privée dans 'smtpd.key' ----- Vous allez être invité à entrer des informations qui seront incorporées dans votre demande de certificat. Ce que vous allez entrer est ce qu'on appelle un Nom Distingué ou DN. Il y a plusieurs champs, mais vous pouvez laisser certains vides Pour certains champs, il y aura une valeur par défaut, Si vous entrez '.', le champ sera laissé vide. ----- Nom du pays (code à 2 lettres) [AU]: <-- Entrez le code pays à 2 lettres Nom de l'état ou de la province (nom complet) [Some-State]: <-- Entrez le nom de l'état Nom de la localité (par exemple, ville) []: <-- Entrez votre ville Nom de l'organisation (par exemple, entreprise) [Internet Widgits Pty Ltd]: <-- Entrez le nom de l'entreprise ou appuyez sur entrer Nom de l'unité organisationnelle (par exemple, section) []: <-- Appuyez sur Entrée Nom commun (par exemple, FQDN du serveur ou VOTRE nom) []: <-- Entrez le nom d'hôte du serveur, dans mon cas : server1.example.com Adresse email []: <-- Appuyez sur Entrée Configuration de Mailman Configuration de Dovecot Configuration de Spamassassin Configuration d'Amavisd Configuration de Getmail Configuration de BIND Configuration de Jailkit Configuration de Pureftpd Configuration d'Apache Configuration de vlogger Configuration du Serveur XMPP Metronome écriture de la nouvelle clé privée dans 'localhost.key' ----- Nom du pays (code à 2 lettres) [AU]: <-- Entrez le code pays à 2 lettres Nom de la localité (par exemple, ville) []: <-- Entrez votre ville Nom de l'organisation (par exemple, entreprise) [Internet Widgits Pty Ltd]: <-- Entrez le nom de l'entreprise ou appuyez sur entrer Nom de l'unité organisationnelle (par exemple, section) []: <-- Appuyez sur Entrée Nom commun (par exemple, FQDN du serveur ou VOTRE nom) [server1.canomi.com]: <-- Entrez le nom d'hôte du serveur, dans mon cas : server1.example.com Adresse email []: <-- Appuyez sur Entrée ``` ``` Configuration du Pare-feu Ubuntu Configuration de Fail2ban [INFO] service OpenVZ non détecté Configuration des hôtes virtuels d'Apps Installation d'ISPConfig Port d'ISPConfig [8080]: ``` ``` Mot de passe administrateur [admin]: ``` ``` Souhaitez-vous une connexion sécurisée (SSL) à l'interface web d'ISPConfig (y,n) [y]: <-- Appuyez sur Entrée ``` ``` Génération de la clé privée RSA, 4096 bits de long .......................++ ................................................................................................................................++ Vous allez être invité à entrer des informations qui seront incorporées dans votre demande de certificat. Ce que vous allez entrer est ce qu'on appelle un Nom Distingué ou DN. Il y a plusieurs champs, mais vous pouvez laisser certains vides Pour certains champs, il y aura une valeur par défaut, Si vous entrez '.', le champ sera laissé vide. ----- Nom du pays (code à 2 lettres) [AU]: <-- Entrez le code pays à 2 lettres Nom de l'état ou de la province (nom complet) [Some-State]: <-- Entrez le nom de l'état Nom de la localité (par exemple, ville) []: <-- Entrez votre ville Nom de l'organisation (par exemple, entreprise) [Internet Widgits Pty Ltd]: <-- Entrez le nom de l'entreprise ou appuyez sur entrer Nom de l'unité organisationnelle (par exemple, section) []: <-- Appuyez sur Entrée Nom commun (par exemple, FQDN du serveur ou VOTRE nom) []: <-- Entrez le nom d'hôte du serveur, dans mon cas : server1.example.com Adresse email []: <-- Appuyez sur Entrée ``` ``` Veuillez entrer les 'attributs' supplémentaires suivants à envoyer avec votre demande de certificat Un mot de passe de défi []: <-- Appuyez sur Entrée Un nom d'entreprise optionnel []: <-- Appuyez sur Entrée écriture de la clé RSA ``` ``` Créer un lien symbolique des certificats SSL LE d'ISPConfig vers postfix ? (y,n) [y]:  <-- Appuyez sur Entrée ``` ``` Créer un lien symbolique des certificats SSL LE d'ISPConfig vers pureftpd ? La création du fichier dhparam prend un certain temps. (y,n) [y]:  <-- Appuyez sur Entrée ``` ``` Génération des paramètres DH, 2048 bits de long, premier premier sûr, générateur 2 Cela va prendre beaucoup de temps .............................................................+.........................................................................................................................................................................+................... ``` ``` Configuration du Serveur de Base de Données Installation de la crontab d'ISPConfig aucune crontab pour root aucune crontab pour getmail Détection des adresses IP Redémarrage des services ... Installation terminée. ``` L'installateur configure automatiquement tous les services sous-jacents, donc aucune configuration manuelle n'est nécessaire. Ensuite, vous pouvez accéder à ISPConfig 3 sous http(s)://server1.example.com:8080/ ou http(s)://192.168.0.100:8080/ (HTTP ou HTTPS dépend de ce que vous avez choisi lors de l'installation). Connectez-vous avec le nom d'utilisateur admin et le mot de passe admin (vous devriez changer le mot de passe par défaut après votre première connexion) : ![Connexion ISPConfig sur Ubuntu 18.04 LTS](/files/24a359d6-6ef5-41f5-934b-3c7d69d55dcf.png) ![Tableau de bord ISPConfig 3.2](/files/0aadd86c-90dd-42d7-9206-15914f387fbb.png) Le système est maintenant prêt à être utilisé. ## 18. Téléchargement de l'image de machine virtuelle de ce tutoriel Ce tutoriel est disponible sous forme d'image de machine virtuelle prête à l'emploi au format ovf/ova compatible avec VMWare et Virtualbox. L'image de la machine virtuelle utilise les détails de connexion suivants : Connexion SSH / Shell Nom d'utilisateur : administrateur Mot de passe : howtoforge Cet utilisateur a des droits sudo. Connexion ISPConfig Nom d'utilisateur : admin Mot de passe : howtoforge Connexion MySQL Nom d'utilisateur : root Mot de passe : howtoforge L'IP de la VM est 192.168.0.100, elle peut être changée dans le fichier */etc/netplan/01-netcfg.yaml*. Veuillez changer tous les mots de passe ci-dessus pour sécuriser la machine virtuelle. ## 19. Liens - Ubuntu: http://www.ubuntu.com/ - ISPConfig: http://www.ispconfig.org/
Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.