Prérequis
- Un serveur sous AlmaLinux 9, Rocky Linux 9 ou CentOS Stream 9 : voir nos VPS au Canada
- Une connexion SSH ouverte en root : Se connecter en SSH à votre VPS
- Un serveur vierge, sans serveur web, base de données ni serveur de courriel déjà installés
- 4 Go de RAM et 10 Go d'espace disque libre
- Un nom d'hôte complet pour le serveur, comme serveur.exemple.ca, qui n'est pas un domaine que vous hébergerez dessus
- L'adresse IP publique de votre poste, pour lui réserver l'accès au panneau
CWP, pour CentOS Web Panel, est un panneau d'hébergement gratuit pour les systèmes de la famille Enterprise Linux : depuis un navigateur, il crée des comptes avec leur site Apache, leur base de données, leur courriel et leur zone DNS. Ce guide l'installe avec son installateur officiel, ouvre le panneau, met en service son pare-feu avec le panneau réservé à votre adresse, et crée un premier compte. Copiez la commande avec le bouton Copier, collez-la dans votre terminal, et comparez avec le résultat attendu.
1Nommer le serveur, le mettre à jour et le redémarrer
L'installateur travaille avec le nom d'hôte complet du serveur. Remplacez 203.0.113.42 par l'adresse IP de votre serveur.
hostnamectl set-hostname serveur.exemple.ca
echo '203.0.113.42 serveur.exemple.ca serveur' >> /etc/hosts
hostname -fserveur.exemple.ca
wget et iptables ne sont pas dans les images minimales : l'installateur a besoin du premier, et le pare-feu du panneau du second.
dnf install -y wget iptables-nft
dnf upgrade -y && reboot2Lancer l'installateur
Reconnectez-vous en SSH. L'installateur travaille seul pendant 5 à 6 minutes, sans question : il désactive SELinux et firewalld, puis installe Apache, PHP, MariaDB, Postfix, Dovecot, ClamAV, Bind, pure-ftpd, phpMyAdmin, Roundcube et le pare-feu CSF. S'il échoue, il envoie son journal et un inventaire du serveur au site de l'éditeur.
cd /usr/local/src
wget http://centos-webpanel.com/cwp-el9-latest
sh cwp-el9-latest=== Checking DNS Resolution ===
[OK] DNS resolution is working properly.
...
#############################
# CWP Installed #
#############################
Go to CentOS WebPanel Admin GUI at http://SERVER_IP:2030/
http://203.0.113.42:2030
SSL: https://203.0.113.42:2031
---------------------
Username: root
Password: ssh server root password
MySQL root Password: ...
#########################################################
CentOS Web Panel MailServer Installer
#########################################################
SSL Cert name (hostname): serveur.exemple.ca
SSL Cert file location /etc/pki/tls/ private|certs
#########################################################
Visit for help: www.centos-webpanel.com
Write down login details and press ENTER for server reboot!
Please reboot the server!
Reboot command: shutdown -r now
(5 à 6 minutes)Notez le mot de passe MySQL
La ligne MySQL root Password donne le mot de passe de root pour MariaDB. Il est aussi dans /root/.my.cnf, lisible par root seulement. Le panneau, lui, se connecte avec le mot de passe root du serveur.
shutdown -r now3Ouvrir le panneau
Reconnectez-vous en SSH. Le panneau écoute sur le port 2030 en http et 2031 en https ; le premier renvoie vers le second.
curl -sk -o /dev/null -w '%{http_code}\n' https://127.0.0.1:2031/302 (302 : le panneau renvoie vers sa page de connexion)
- Ouvrez https://203.0.113.42:2031 dans votre navigateur, avec l'adresse IP de votre serveur, en https, et le port.
- Le navigateur avertit que le certificat n'est pas reconnu : CWP en a créé un lui-même pour le nom d'hôte. Cliquez sur Avancé, puis Continuer vers le site.
- Identifiant root, avec le mot de passe root de votre serveur. Si root n'en a pas, parce que vous vous connectez par clé, posez-en un avec passwd root.
4Mettre le pare-feu en service, avec le panneau réservé à votre adresse
Après le redémarrage, rien ne filtre
L'installateur a désactivé firewalld et posé CSF, mais CSF ne tourne pas : il manque iptables sur Rocky et CentOS, et sur AlmaLinux l'installateur l'a laissé désactivé. Le panneau (2030, 2031, 2082, 2083), MariaDB (3306), FTP et le courriel répondent à toutes les adresses, avec pour seule barrière leurs mots de passe.
Les commandes qui suivent activent CSF, retirent les deux ports du panneau de la liste ouverte à tous, et les réservent à une seule adresse. Remplacez 198.51.100.7 par l'adresse IP publique de votre poste.
csf -e
sed -i -E '/^TCP6?_IN /s/,2030,2031//' /etc/csf/csf.conf
echo 'tcp|in|d=2030|s=198.51.100.7' >> /etc/csf/csf.allow
echo 'tcp|in|d=2031|s=198.51.100.7' >> /etc/csf/csf.allow
systemctl restart csf lfdsystemctl is-active csf lfd
iptables -S ALLOWIN | grep 198.51.100.7active active -A ALLOWIN -s 198.51.100.7/32 ! -i lo -p tcp -m tcp --dport 2031 -j ACCEPT -A ALLOWIN -s 198.51.100.7/32 ! -i lo -p tcp -m tcp --dport 2030 -j ACCEPT
Les sites, le courriel, FTP et SSH restent ouverts à tous ; MariaDB est fermée de l'extérieur. CSF se relance à chaque démarrage avec ces règles.
curl -sk -o /dev/null -w '%{http_code}\n' --max-time 10 https://203.0.113.42:2031/000 (000 veut dire aucune réponse : c'est le résultat attendu depuis une adresse qui n'est pas la vôtre)
5Créer un premier compte
- Dans le panneau, ouvrez User Accounts, puis New Account.
- Domain name : monsite.exemple.ca. Username : monsite. Password : celui de votre choix. Email : la vôtre. Package : default. Cliquez sur Create.
sh /scripts/list_usersUSERNAME | DOMAIN | IP ADDRESS | EMAIL | PACKAGE ID | BACKUP ############################################################### monsite monsite.exemple.ca 203.0.113.42 admin@exemple.ca 1 on
stat -c '%n %U:%G %A' /home/monsite/public_html; ls /home/monsite/public_html/home/monsite/public_html monsite:nobody drwxr-x--- index.html
Vos fichiers vont dans ce dossier.
curl -s -o /dev/null -w '%{http_code}\n' -H 'Host: monsite.exemple.ca' http://203.0.113.42/200
6Les commandes du quotidien
sh /scripts/update_cwpsh /scripts/restart_cwpsrvsh /scripts/list_userssystemctl status csf lfdcsf -ltail /var/log/cwp_client_login.logss -ltnss -ltn | awk 'NR>1{print $4}' | sed 's/.*://' | sort -n -u | tr '\n' ' '21 22 25 53 80 110 143 465 587 953 993 995 2030 2031 2082 2083 2086 2087 2095 2096 2302 3306 4190 10025 (Rocky ajoute 111 : un service du système)
La base de données (3306) et les services internes sont dans cette liste mais ne répondent pas depuis l'extérieur : CSF ne les ouvre pas.
Erreurs fréquentes
L'installateur cwp-el9-latest ne connaît que les systèmes Enterprise Linux 9 : AlmaLinux 9, Rocky Linux 9, CentOS Stream 9. Sur Fedora, Ubuntu ou Debian, il s'arrête là sans rien installer.
Reprenez l'étape 1 : dnf install -y wget.
L'installateur ne se relance pas une fois CWP en place. Pour le mettre à jour, lancez sh /scripts/update_cwp.
CSF ne trouve pas iptables. Installez-le avec dnf install -y iptables-nft, puis reprenez l'étape 4.
L'installateur a désactivé CSF le temps de l'installation et ne l'a pas réactivé. C'est ce que fait la première commande de l'étape 4.
L'identifiant est root et le mot de passe est celui de root sur le serveur, le même qu'en SSH, pas celui de MariaDB. Après plusieurs échecs, CSF bloque votre adresse.
L'adresse IP publique de votre poste a changé, ou ce n'est pas celle des règles. Retrouvez-la dans votre session SSH avec echo $SSH_CLIENT, ajoutez les deux lignes de l'étape 4 avec cette adresse dans /etc/csf/csf.allow, puis systemctl restart csf lfd.
Un paquet du dépôt CWP n'a pas pu être installé. L'installateur a envoyé son journal /tmp/cwp.log et un inventaire du serveur au site de l'éditeur, et renvoie à son support : centos-webpanel.com/contact.
CWP en service
Le panneau répond sur le port 2031, réservé à votre adresse, et votre premier compte est servi. Pour un panneau libre qui gère aussi les domaines en ligne de commande, voyez Installer Virtualmin ; pour Ubuntu et Debian, Installer ISPConfig.