Webmin est un panneau de contrôle gratuit et open-source pour administrer les serveurs Unix/Linux. Ce tutoriel vous montrera comment installer Webmin sur le serveur CentOS 8/RHEL 8.
Webmin fournit aux utilisateurs une interface utilisateur graphique basée sur le Web pour configurer les tâches et les paramètres système courants. Si vous n'aimez pas l'idée d'utiliser la ligne de commande pour gérer votre serveur, alors Webmin est une bonne alternative graphique pour vous. Voici une liste des fonctionnalités fournies par Webmin.
- Résolveur DNS BIND et serveur DNS faisant autorité
- Serveur Samba
- Serveur FTP
- Serveur SMTP Postfix et serveur Dovecot IMAP/POP3.
- sauvegarde du système de fichiers
- Configurer la rotation des fichiers journaux.
- Modifiez les référentiels de packages, planifiez des mises à jour logicielles automatiques et recevez des rapports de mise à jour par e-mail.
- Gérer les utilisateurs et les groupes
- Planifiez des tâches Cron.
- Configurer le pare-feu iptables
- Et bien d'autres.
Installez Webmin sur CentOS 8/RHEL 8 à partir du référentiel Webmin
Webmin existe depuis 1997. Au moment d'écrire ces lignes, la dernière version stable disponible est la 1.970, qui a été publiée le 6 janvier 2021. Webmin n'est pas dans le référentiel de logiciels CentOS/RHEL. Il est recommandé d'installer Webmin à partir de son référentiel officiel afin que vous puissiez toujours obtenir la dernière version.
Pour ajouter un référentiel Webmin, créez un fichier de référentiel avec un éditeur de texte en ligne de commande tel que Nano.
sudo dnf install nano sudo nano /etc/yum.repos.d/webmin.repo
Ajoutez les lignes suivantes dans le fichier.
[Webmin] name=Webmin Distribution Neutral #baseurl=https://download.webmin.com/download/yum mirrorlist=https://download.webmin.com/download/yum/mirrorlist enabled=1
Enregistrez et fermez le fichier. Pour enregistrer le fichier dans l'éditeur de texte Nano, appuyez sur CTRL+O
, puis appuyez sur Enter
confirmer. Pour fermer le fichier, appuyez sur CTRL+X
. Ensuite, nous devons exécuter la commande suivante pour télécharger et importer la clé de signature Webmin PGP afin que le gestionnaire de packages puisse vérifier l'intégrité des packages téléchargés à partir du référentiel Webmin.
wget http://www.webmin.com/jcameron-key.asc
Puis importez-le avec :
sudo rpm --import jcameron-key.asc
Nous pouvons maintenant mettre à jour le référentiel et installer Webmin.
sudo dnf update -y sudo dnf install webmin -y
Une fois installé, le serveur Web intégré Wemin démarrera automatiquement, comme vous pouvez le voir en exécutant la commande systemctl ci-dessous :
systemctl status webmin
Sortie :
Astuce :Si la commande ci-dessus ne se ferme pas immédiatement, vous pouvez appuyer sur Q clé pour reprendre le contrôle du terminal.
S'il ne fonctionne pas, vous pouvez le démarrer avec :
sudo systemctl start webmin
Si vous voyez le message "Unit webmin.service could not be found
” erreur, alors vous devez redémarrer votre serveur.
sudo shutdown -r now
Le serveur Webmin écoute sur le port 10000, vous devez donc ouvrir le port TCP 10000 dans le pare-feu.
sudo firewall-cmd --permanent --add-port=10000/tcp sudo systemctl reload firewalld
Vous pouvez désormais accéder au panneau de configuration Web via
https://your-server-ip:10000
Comme il fonctionne en mode HTTPS et utilise un certificat TLS auto-signé, le navigateur vous indiquera que la connexion n'est pas sécurisée.
Mais vous savez qu'il s'agit de votre propre serveur, alors cliquez simplement sur Advanced
onglet dans Firefox et ajouter une exception. Si vous utilisez Google Chrome, vous pouvez cliquer sur Advanced
-> Proceed
.
L'écran de connexion Webmin vous sera maintenant présenté. Vous devez utiliser root
compte pour vous connecter.
Si vous n'aimez pas la couleur par défaut du menu de navigation, vous pouvez la changer en une couleur différente en cliquant sur theme configuration
icône en bas du menu de navigation,
puis sélectionnez les options du menu de navigation et définissez la palette de couleurs. Par exemple, j'ai sélectionné le bleu nuit.
Enregistrez la modification.
Configuration du proxy inverse
Si vous installez Webmin sur un serveur de production, vous souhaiterez peut-être configurer un proxy inverse avec Apache ou Nginx afin de pouvoir utiliser un nom de domaine pour accéder à l'interface Webmin sans spécifier le numéro de port (10000). Cela vous permet également d'obtenir et d'installer un certificat Let's Encrypt TLS valide pour Webmin.
Si vous n'avez pas de vrai nom de domaine, je vous recommande d'aller sur NameCheap pour en acheter un. Le prix est bas et ils offrent une protection de la confidentialité whois gratuite à vie.
Apache
Si vous préférez utiliser le serveur Web Apache, suivez les instructions ci-dessous pour configurer le proxy inverse.
Installez le serveur Web Apache.
sudo dnf install httpd
Créez ensuite un fichier d'hôte virtuel pour Webmin.
sudo nano /etc/httpd/conf.d/webmin.conf
Ajoutez les textes suivants dans le fichier. Remplacez webmin.your-domain.com
avec votre nom de domaine réel et n'oubliez pas de créer un enregistrement DNS A pour celui-ci.
<VirtualHost *:80> ServerName webmin.your-domain.com ProxyPass / http://127.0.0.1:10000/ ProxyPassReverse / http://127.0.0.1:10000/ </VirtualHost>
Enregistrez et fermez le fichier. Rechargez Apache pour que les modifications prennent effet.
sudo systemctl reload httpd
Par défaut, SELinux interdit à Apache d'effectuer des requêtes réseau vers d'autres serveurs, mais plus tard, Apache doit transmettre les requêtes HTTP à 127.0.0.1:10000
, nous devons donc dire à SELinux d'autoriser Apache avec la commande suivante.
sudo setsebool -P httpd_can_network_connect 1
Vous pouvez désormais accéder à distance à Webmin en saisissant le nom de domaine (webmin.your-domain.com
) dans la barre d'adresse du navigateur.
Nginx
Si vous préférez utiliser le serveur Web Nginx, suivez les instructions ci-dessous pour configurer le proxy inverse.
Installez Nginx sur CentOS/RHEL.
sudo dnf install nginx
Démarrez le serveur Web Nginx.
sudo systemctl start nginx
Créez ensuite un nouveau fichier de bloc de serveur dans /etc/nginx/conf.d/
répertoire.
sudo nano /etc/nginx/conf.d/webmin.conf
Collez le texte suivant dans le fichier. Remplacez webmin.your-domain.com
avec votre nom de domaine préféré et n'oubliez pas de créer un enregistrement DNS A pour celui-ci.
server { listen 80; listen [::]:80; server_name webmin.your-domain.com; access_log /var/log/nginx/webmin.access; error_log /var/log/nginx/webmin.error; location / { proxy_pass http://127.0.0.1:10000; #proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
Enregistrez et fermez le fichier. Testez ensuite la configuration de Nginx.
sudo nginx -t
Si le test réussit, rechargez Nginx.
sudo systemctl reload nginx
Par défaut, SELinux interdit à Nginx de faire des requêtes réseau à d'autres serveurs, mais plus tard, Nginx doit transmettre les requêtes HTTP à 127.0.0.1:10000
, nous devons donc dire à SELinux d'autoriser Nginx avec la commande suivante.
sudo setsebool -P httpd_can_network_connect 1
Vous pouvez maintenant accéder à l'interface Web de Webmin via webmin.your-domain.com
.
Activer HTTPS
Pour chiffrer le trafic HTTP lorsque vous visitez l'interface Web Webmin, nous pouvons activer HTTPS en installant un certificat TLS gratuit émis par Let's Encrypt. Exécutez la commande suivante pour installer le client Let's Encrypt (certbot) sur CentOS/RHEL.
sudo dnf install certbot
Si vous utilisez Apache, vous devez installer le plugin Certbot Apache.
sudo dnf install python3-certbot-apache
Ensuite, exécutez la commande suivante pour obtenir et installer le certificat TLS.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d webmin.your-domain.com
Si vous utilisez Nginx, vous devez installer le plug-in Certbot Nginx.
sudo dnf install python3-certbot-nginx
Ensuite, exécutez la commande suivante pour obtenir et installer le certificat TLS.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d webmin.your-domain.com
Où :
--apache
:Utilisez le plug-in Apache.--nginx
:Utilisez le plug-in nginx.--agree-tos
:acceptez les conditions d'utilisation.--redirect
:Forcer HTTPS par redirection 301.--hsts
:Ajoutez l'en-tête Strict-Transport-Security à chaque réponse HTTP. Forcer le navigateur à toujours utiliser TLS pour le domaine. Protège contre le SSL/TLS Stripping.--staple-ocsp
:active l'agrafage OCSP. Une réponse OCSP valide est agrafée au certificat que le serveur propose pendant TLS.
Le certificat devrait maintenant être obtenu et installé automatiquement. Et vous pourrez accéder à l'interface Web de Webmin via une connexion HTTPS sécurisée.
Ajouter des référents de confiance
Parce que Webmin lui-même fonctionne en mode HTTP et que nous avons activé HTTPS dans Apache/Nginx, Webmin pensera que https://webmin.your-domain.com
est en dehors du serveur Webmin. Nous devons donc ajouter des référents de confiance.
Modifiez le fichier de configuration Webmin.
sudo nano /etc/webmin/config
Ajoutez la ligne suivante à la fin.
referers=webmin.your-domain.com
Enregistrez et fermez le fichier. Redémarrez ensuite Webmin.
sudo systemctl restart webmin
Désactiver le mode HTTPS dans Webmin
Maintenant que la connexion TLS est terminée sur Apache/Nginx, nous devons désactiver le mode HTTPS dans le serveur Web intégré de Webmin. Modifiez le fichier de configuration Webmin.
sudo nano /etc/webmin/miniserv.conf
Trouvez la ligne suivante.
ssl=1
Remplacez-le par ce qui suit pour désactiver le mode HTTPS dans Webmin.
ssl=0
Nous pouvons également ajouter la ligne suivante dans ce fichier afin que le serveur Web intégré n'autorise l'accès qu'à partir de localhost. Visiteurs utilisant le http://public-ip:10000
sera interdit.
allow=127.0.0.1
Enregistrez et fermez le fichier. Redémarrez ensuite Webmin.
sudo systemctl restart webmin
Dépannage
Si vous voyez des erreurs, vous pouvez consulter le journal des erreurs Webmin (/var/webmin/miniserv.error
) pour dépanner.