Ce didacticiel vous guidera dans l'installation de votre propre configuration de serveur unique ISPConfig 3 à l'aide du programme d'installation automatique ISPConfig. Ce programme d'installation suit les anciens guides Perfect Server mais est plus modulaire et facile à suivre. Si vous souhaitez plutôt configurer une configuration multiserveur avec des serveurs dédiés pour chaque service, consultez le guide Perfect Multiserver.
Ce guide fonctionne à la fois pour Debian 10, Debian 11 et Ubuntu 20.04. Nous utiliserons le nom d'hôte server1.example.com. Remplacez-le si nécessaire. Le guide nécessite un système d'exploitation de base fraîchement installé et vide, n'essayez pas de l'utiliser sur un système sur lequel vous avez déjà configuré d'autres services.
1. Connectez-vous au serveur
Connectez-vous en tant que root ou exécutez
su -
pour devenir l'utilisateur root sur votre serveur avant de continuer. IMPORTANT :Vous devez utiliser 'su -' et pas seulement 'su', sinon votre variable PATH est mal définie par Debian.
2. Configurez le nom d'hôte et les hôtes
Le nom d'hôte de votre serveur doit être un sous-domaine tel que "server1.example.com". N'utilisez pas un nom de domaine sans une partie de sous-domaine comme "example.com" comme nom d'hôte car cela causera des problèmes plus tard avec votre configuration. Tout d'abord, vous devez vérifier le nom d'hôte dans /etc/hosts et le modifier si nécessaire. La ligne doit être :"Adresse IP - espace - nom d'hôte complet, y compris domaine - espace - partie sous-domaine". Pour notre nom d'hôte server1.example.com, le fichier doit ressembler à ceci (certaines lignes peuvent être différentes, cela peut différer selon le fournisseur d'hébergement) :
nano /etc/hosts
127.0.0.1 localhost.localdomain localhost
# This line should be changed to the correct servername:
127.0.1.1 server1.example.com server1
# The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
Modifiez ensuite le fichier /etc/hostname :
nano /etc/hostname
Il ne contiendra que la partie sous-domaine, dans notre cas :
server1
Enfin, redémarrez le serveur pour appliquer la modification :
systemctl reboot
Connectez-vous à nouveau et vérifiez si le nom d'hôte est correct maintenant avec ces commandes :
hostname
hostname -f
La sortie doit ressembler à ceci :
[email protected]:~$ hostname
server1
[email protected]:~$ hostname -f
server1.example.com
Vous devrez également configurer un enregistrement DNS avec votre fournisseur DNS qui pointe vers votre serveur. Il devrait y avoir un enregistrement A (et/ou AAAA) pour le sous-domaine qui pointe vers votre IP publique.
3. Mettre à jour le système
Pour mettre à jour les packages système, exécutez la commande :
apt update && apt upgrade
4. Exécutez le programme d'installation automatique
Nous pouvons maintenant exécuter le programme d'installation automatique. La configuration de base contient les packages logiciels suivants (ainsi que leurs dépendances bien sûr) :Apache2, PHP (versions 5.6 - 8.0), MariaDB, Postfix, Dovecot, Rspamd, BIND, Jailkit, Roundcube, PHPMyAdmin, Mailman, Webalizer, AWStats et GoAccess. Vous pouvez facilement choisir de ne pas utiliser certaines fonctions ou d'installer des services supplémentaires en transmettant des arguments au programme d'installation. Vous pouvez afficher tous les arguments avec :
wget -O - https://get.ispconfig.org | sh -s -- --help
Vous pouvez maintenant exécuter le script avec des arguments. Par exemple, si vous souhaitez une installation normale avec une plage de ports pour le FTP passif + les mises à niveau sans surveillance, exécutez :
wget -O - https://get.ispconfig.org | sh -s -- --use-ftp-ports=40110-40210
--unattended-upgrades
Après un certain temps, vous verrez :
WARNING! This script will reconfigure your complete server!
It should be run on a freshly installed server and all current configuration that you have done will most likely be lost!
Type 'yes' if you really want to continue:
Répondez "oui" et appuyez sur Entrée. Le programme d'installation va maintenant démarrer.
Lorsque le programme d'installation est terminé, il vous montrera le mot de passe administrateur ISPConfig et MySQL root comme ceci :
[INFO] Your ISPConfig admin password is: 5GvfSSSYsdfdYC
[INFO] Your MySQL root password is: kkAkft82d!kafMwqxdtYs
Assurez-vous de noter ces informations, car vous en aurez besoin plus tard.
5. Configuration du pare-feu
La dernière chose à faire est de configurer notre pare-feu.
Connectez-vous à l'interface utilisateur ISPConfig et accédez à Système -> Pare-feu. Cliquez ensuite sur "Ajouter un nouvel enregistrement de pare-feu".
Pour une configuration normale, cela ressemblerait à ceci :
TCP :
20,21,22,25,80,443,40110:40210,110,143,465,587,993,995,53,8080,8081
UDP :
53
Les ports nécessaires pour chaque service sont :
Web :20, 21, 22, 80, 443 et 40110:40210 (Tous TCP, pas d'UDP)
Mail :25, 110, 143, 465, 587, 993 et 995 (Tous TCP, pas d'UDP)
DNS :53 (TCP et UDP)
Panneau :8080 et 8081 (Tous TCP, pas d'UDP)
Votre serveur est maintenant configuré et prêt à être utilisé. Vous pouvez vous connecter à https://server1.example.com:8080
6. Options avancées
Le programme d'installation automatique dispose de diverses options de ligne de commande pour affiner la configuration. Vous pouvez par ex. choisir entre le serveur Web Apache et Nginx et quels services doivent être installés sur le système. Les arguments de la ligne de commande sont :
Usage: ispc3-ai.sh [] [...] This script automatically installs all needed packages for an ISPConfig 3 setup using the guidelines from the "Perfect Server Setup" howtos on www.howtoforge.com. Possible arguments are: --help Show this help page --debug Enable verbose logging (logs each command with the exit code) --channel Choose the channel to use for ISPConfig. --channel=<stable|dev> "stable" is the latest ISPConfig release available on www.ispconfig.org "dev" is the latest stable-branch from the ISPConfig git repository: https://git.ispconfig.org/ispconfig/ispconfig3/tree/stable-3.1 -> The dev channel might contain bugs and less-tested features and should only be used in production by very experienced users. --lang Use language for ISPConfig installation. Specify with --lang=en|de (only en (English) and de (German) supported currently). --interactive Don't install ISPConfig in non-interactive mode. This is needed if you want to use expert mode, e. g. to install a slave server that shall be integrated into an existing multiserver setup. --use-nginx Use nginx webserver instead of apache2 --use-amavis Use amavis instead of rspamd for mail filtering --use-unbound Use unbound instead of bind9 for local resolving. Only allowed if --no-dns is set. --use-php Use specific PHP versions, comma separated, instead of installing multiple PHP, e.g. --use-php=7.4,8.0 (5.6, 7.0, 7.1, 7.2, 7.3, 7.4 and 8.0 available). --use-php=system disables the sury repository and just installs the system's default PHP version. ommiting the argument (use all versions) --use-ftp-ports This option sets the passive port range for pure-ftpd. You have to specify the port range separated by hyphen, e. g. --use-ftp-ports=40110-40210. If not provided the passive port range will not be configured. --use-certbot Use Certbot instead of acme.sh for issuing Let's Encrypt certificates. Not adviced unless you are migrating from a old server that uses Certbot. --no-web Do not use ISPConfig on this server to manage webserver setting and don't install nginx/apache or pureftpd. This will also prevent installing an ISPConfig UI and implies --no-roundcube as well as --no-pma --no-mail Do not use ISPConfig on this server to manage mailserver settings. This will install postfix for sending system mails, but not dovecot and not configure any settings for ISPConfig mail. It implies --no-mailman. --no-dns Do not use ISPConfig on this server to manage DNS entries. Bind will be installed for local DNS caching / resolving only. --no-local-dns Do not install local DNS caching / resolving via bind. --no-firewall Do not install ufw and tell ISPConfig to not manage firewall settings on this server. --no-roundcube Do not install roundcube webmail. --roundcube Install Roundcube even when --no-mail is used. Manual configuration of Roundcube config is needed. --no-pma Do not install PHPMyAdmin on this server. --no-mailman Do not install Mailman mailing list manager. --no-quota Disable file system quota --no-ntp Disable NTP setup --unattended-upgrades Install UnattendedUpgrades. You can add extra arguments for automatic cleanup and automatic reboots when necessary with --unattended-upgrades=autoclean,reboot (or only one of them). --i-know-what-i-am-doing Prevent the autoinstaller to ask for confirmation before continuing to reconfigure the server.
Par exemple, pour installer un 'Perfect Server' comme setup avec Nginx au lieu d'Apache, utilisez cette commande :
wget -O - https://get.ispconfig.org | sh -s -- --use-nginx --use-ftp-ports=40110-40210
--unattended-upgrades
Ou pour installer un serveur Web Nginx sans services de messagerie et DNS :
wget -O - https://get.ispconfig.org | sh -s -- --use-nginx --no-dns --no-mail --use-ftp-ports=40110-40210
--unattended-upgrades
7. Finalisation
Votre configuration est maintenant terminée !
Vous pouvez prendre en charge ISPConfig en achetant notre manuel :https://www.ispconfig.org/documentation/
Les liens suivants sont des tutoriels/pointeurs utiles pour une configuration plus poussée :
- Configuration de la messagerie (rDNS, SPF, DKIM) :https://www.howtoforge.com/how-to-install-an-email-server-with-ispconfig-on-debian-10/
- Tweaking Roundcube :https://www.howtoforge.com/community/threads/tweaking-the-roundcube-settings.86387/
- Configuration d'autoconfig (configuration automatique de vos clients de messagerie) :https://schaal-it.com/ispconfig-automail/
- Améliorer la sécurité de PHPMyAdmin et de l'interface rspamd :https://www.howtoforge.com/community/threads/improving-the-security-of-phpmyadmin-and-rspamd-ui.86544/
- Référentiel de code et outil de suivi des problèmes du programme d'installation automatique ISPConfig :https://git.ispconfig.org/ispconfig/ispconfig-autoinstaller
Si vous avez des questions, posez-les sur le forum.