Serveur Ubuntu · 9 min read · Sep 11, 2025

Le Serveur Parfait - Ubuntu 18.04 (Bionic Beaver) avec Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot et ISPConfig 3.1

Ce tutoriel montre l’installation d’un serveur d’hébergement web Ubuntu 18.04 (Bionic Beaver) avec Apache 2.4, Postfix, Dovecot, Bind et PureFTPD pour le préparer à l’installation d’ISPConfig 3.1. 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, 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).

1. Remarque Préliminaire

Dans ce tutoriel, j’utilise le nom d’hôte server1.example.com avec l’adresse IP 192.168.1.100 et la passerelle 192.168.1.1. Ces paramètres peuvent différer pour vous, donc vous devez les remplacer là où c’est approprié. Avant de continuer, vous devez avoir une installation minimale de base d’Ubuntu 18.04 comme expliqué dans le tutoriel.

Les commandes de ce tutoriel doivent être exécutées avec les 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
#  
# deb cdrom:[Ubuntu-Server 18.04 LTS _Bionic Beaver_ - Release amd64 (20180425.1)]/ bionic main restricted  
#deb cdrom:[Ubuntu-Server 18.04 LTS _Bionic Beaver_ - Release amd64 (20180425.1)]/ bionic main restricted  

# 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/ bionic main restricted  
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic 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/ bionic-updates main restricted  
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic-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 PAS de  
## révision ou de mises à jour de l'équipe de sécurité Ubuntu.  
deb http://de.archive.ubuntu.com/ubuntu/ bionic universe  
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic universe  
deb http://de.archive.ubuntu.com/ubuntu/ bionic-updates universe  
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic-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 PAS de révision ou de mises à jour de l'équipe de  
## sécurité Ubuntu.  
deb http://de.archive.ubuntu.com/ubuntu/ bionic multiverse  
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic multiverse  
deb http://de.archive.ubuntu.com/ubuntu/ bionic-updates multiverse  
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic-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 PAS de révision  
## ou de mises à jour de l'équipe de sécurité Ubuntu.  
deb http://de.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse  
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic-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 bionic partner  
# deb-src http://archive.canonical.com/ubuntu bionic partner  


deb http://security.ubuntu.com/ubuntu bionic-security main restricted  
# deb-src http://security.ubuntu.com/ubuntu bionic-security main restricted  
deb http://security.ubuntu.com/ubuntu bionic-security universe  
# deb-src http://security.ubuntu.com/ubuntu bionic-security universe  
deb http://security.ubuntu.com/ubuntu bionic-security multiverse  
# deb-src http://security.ubuntu.com/ubuntu bionic-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 ( n etwork t ime p rotocol) sur Internet lorsque vous exécutez un serveur physique. Si 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 dovecot-lmtpd sudo

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” tel que server1.example.com ou server1.votredomaine.com et non un domaine que vous souhaitez utiliser comme domaine email (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_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, le 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 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 lecture, 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 MySQL avec la commande mysql_secure_installation.

# Généré automatiquement pour les scripts Debian. NE TOUCHER PAS !  
[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

Ensuite, nous redémarrons MariaDB :

service mysql restart

Vérifiez maintenant 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 30591/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 libdbd-mysql-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).

Le programme amavisd-new a actuellement un bogue dans Ubuntu 18.04 qui empêche les e-mails d’être signés correctement avec Dkim. Exécutez les commandes suivantes pour corriger amavisd-new.

cd /tmp  
wget https://git.ispconfig.org/ispconfig/ispconfig3/raw/stable-3.1/helper_scripts/ubuntu-amavisd-new-2.11.patch  
cd /usr/sbin  
cp -pf amavisd-new amavisd-new_bak  
patch < /tmp/ubuntu-amavisd-new-2.11.patch

Dans le cas où vous obtenez une erreur pour la dernière commande ‘patch’, alors Ubuntu a probablement corrigé le problème entre-temps, donc il devrait être sûr d’ignorer cette erreur.

7.1 Installer le Serveur XMPP Metronome (optionnel)

Le Serveur XMPP Metronome fournit un serveur de chat XMPP. Cette étape est optionnelle, si vous n’avez pas besoin d’un serveur de chat, vous pouvez sauter cette étape. Aucune autre fonction d’ISPConfig ne dépend de ce logiciel.

Installez les paquets suivants avec apt.

apt-get -y install git lua5.1 liblua5.1-0-dev lua-filesystem libidn11-dev libssl-dev lua-zlib lua-expat lua-event lua-bitop lua-socket lua-sec luarocks luarocks
luarocks install lpc

Ajoutez un utilisateur shell pour Metronome.

adduser --no-create-home --disabled-login --gecos 'Metronome' metronome

Téléchargez Metronome dans le répertoire /opt et compilez-le.

cd /opt; git clone https://github.com/maranda/metronome.git metronome  
cd ./metronome; ./configure --ostype=debian --prefix=/usr  
make  
make install

Metronome a maintenant été installé dans /opt/metronome.

Share: X/Twitter LinkedIn

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

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