Serveur Ubuntu · 8 min read · Sep 11, 2025
Le Serveur Parfait - Ubuntu 16.04 (Xenial Xerus) 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 16.04 (Xenial Xerus) avec Apache2, 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 3 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).
Remarque : La version ISPConfig 3.1 utilisée dans ce tutoriel est actuellement en état bêta. L’ancienne version stable ISPConfig 3.0.5p9 ne peut pas être utilisée sur Ubuntu 16.04 car elle n’est pas compatible avec PHP 7.
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ù cela est approprié. Avant de continuer, vous devez avoir une installation minimale de base d’Ubuntu 16.04 comme expliqué dans le tutoriel.
2. Modifier /etc/apt/sources.list Et Mettre À Jour Votre Installation Linux
Modifiez /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 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420)]/ xenial main restricted
#deb cdrom:[Ubuntu-Server 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420)]/ xenial 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/ xenial main restricted
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial 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/ xenial-updates main restricted
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial-updates main restricted
## 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
votre droit à utiliser le logiciel. De plus, veuillez noter que le logiciel dans
universe NE RECEVRA AUCUN examen ou mise à jour de l'équipe de sécurité Ubuntu.
deb http://de.archive.ubuntu.com/ubuntu/ xenial universe
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial universe
deb http://de.archive.ubuntu.com/ubuntu/ xenial-updates universe
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial-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
votre droit à utiliser le logiciel. De plus, veuillez noter que le logiciel dans
multiverse NE RECEVRA AUCUN examen ou mise à jour de l'équipe de sécurité Ubuntu.
deb http://de.archive.ubuntu.com/ubuntu/ xenial multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial multiverse
deb http://de.archive.ubuntu.com/ubuntu/ xenial-updates multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial-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é Ubuntu.
deb http://de.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial-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 offert par Canonical et les
## vendeurs respectifs comme un service aux utilisateurs d'Ubuntu.
# deb http://archive.canonical.com/ubuntu xenial partner
# deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://security.ubuntu.com/ubuntu xenial-security main restricted
# deb-src http://security.ubuntu.com/ubuntu xenial-security main restricted
deb http://security.ubuntu.com/ubuntu xenial-security universe
# deb-src http://security.ubuntu.com/ubuntu xenial-security universe
deb http://security.ubuntu.com/ubuntu xenial-security multiverse
# deb-src http://security.ubuntu.com/ubuntu xenial-security multiverseEnsuite, exécutez
apt-get updatepour mettre à jour la base de données des paquets apt et
apt-get upgradepour 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 devez redémarrer le système par la suite :
reboot3. 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 dashUtiliser 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-utils5. Synchroniser l’Horloge du Système
Il est bon 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 devez sauter cette étape. Exécutez simplement
apt-get -y install ntp ntpdateet 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 removeLe 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 install postfix postfix-mysql postfix-doc mariadb-client mariadb-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve dovecot-lmtpd sudoVous serez invité à répondre aux questions suivantes :
Type général de configuration de mail : <-- Internet Site
Nom de mail système : <-- 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.cfDé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 - - - - 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 - - - - 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 restartNous voulons que MySQL écoute sur toutes les interfaces, pas seulement localhost. Par conséquent, nous modifions /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_installationVous serez invité à répondre à ces questions :
Entrez le mot de passe actuel pour root (appuyez sur entrer pour aucun) : <-- appuyez sur entrer
Définir le mot de passe root ? [Y/n] <-- y
Nouveau mot de passe : <-- Entrez le nouveau mot de passe root MariaDB ici
Répétez le nouveau mot de passe : <-- Répétez le mot de passe
Supprimer les utilisateurs anonymes ? [Y/n] <-- y
Interdire la connexion root à distance ? [Y/n] <-- y
Recharger les tables de privilèges maintenant ? [Y/n] <-- yEnsuite, nous redémarrons MariaDB :
service mysql restartVérifiez maintenant que le réseau est activé. Exécutez
netstat -tap | grep mysqlLa sortie devrait ressembler à ceci :
root@server1:~# netstat -tap | grep mysql
tcp6 0 0 [::]:mysql [::]:* LISTEN 5230/mysqld
root@server1:~# 7. Installer Amavisd-new, SpamAssassin et Clamav
Pour installer amavisd-new, SpamAssassin et ClamAV, nous exécutons
apt-get install amavisd-new spamassassin clamav clamav-daemon zoo 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 postgreyLa 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 removeModifiez le fichier de configuration de clamd :
nano /etc/clamav/clamd.confet changez la ligne :
AllowSupplementaryGroups falseen :
AllowSupplementaryGroups true Et enregistrez le fichier. Pour démarrer ClamAV, utilisez :
freshclam
service clamav-daemon startL’avertissement suivant peut être ignoré lors de la première exécution de freshclam car nous démarrons le démon ClamAV après avoir mis à jour la base de données.
WARNING: Clamd was NOT notified: Can't connect to clamd through /var/run/clamav/clamd.ctl: No such file or directory 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 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 luarocksluarocks install lpcAjoutez un utilisateur shell pour Metronome.
adduser --no-create-home --disabled-login --gecos 'Metronome' metronomeTé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 installMetronome a maintenant été installé dans /opt/metronome.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.