Installation
Sommaire
Présentation
Cette page a pour objet de décrire comment installer l'outil Webmin.
Prérequis
Parce qu'il autorise les connexions de n'importe quel utilisateur Unix sur le système, Usermin a besoin d'un moyen de vérifier les mots de passe des utilisateurs. Par défaut, cela se fera simplement en lisant directement le fichier /etc/shadow
, mais si le système utilise NIS, cela ne fonctionnera pas.
Au lieu de cela, il faudra installer le module perl Authen::PAM
. Ce module peut être installé à l'aide du module "Modules Perl" de Webmin ou être manuellement téléchargé à partir de CPAN. Pour que ce module puisse être compilé, les fichiers d’en-tête PAM doivent être installés sur le système. Sur certaines distributions Linux, ils se trouvent dans le paquet pam-devel
, qui peut ne pas être installé par défaut.
De plus, Usermin nécessite la création d'un service PAM appelé usermin
. Sous Linux, cela implique généralement la création du fichier /etc/pam.d/usermin
contenant :
#%PAM-1.0 auth required pam_unix.so shadow nullok account required pam_unix.so password required pam_unix.so shadow nullok use_authtok session required pam_unix.so
Cependant, si c'est la version RPM de Webmin qui est installée , ce fichier sera créé automatiquement.
Plus d'information sur http://www.webmin.com/udownload.html.
Pour installer le module Authen::PAM
sous OpenSUSE :
perl -MCPAN -e shell install Authen::PAM exit
Installation par les sources
Créer le dossier de téléchargement (si absent) :
mkdir -p ~/downloads
Télécharger le paquet avec la commande (rajouter l'option --no-check-certificate
si erreur "Unable to establish SSL connection") :
wget -O ~/downloads/webmin-1.930.tar.gz https://netix.dl.sourceforge.net/project/webadmin/webmin/1.930/webmin-1.930.tar.gz
Créer le dossier d'installation et son lien symbolique :
mkdir -p /local/webmin/webmin-1.930 ln -s /local/webmin/webmin-1.930 /local/webmin/current
Créer le dossier de configuration /local/webmin/config
:
mkdir /local/webmin/config
Créer un lien symbolique pointant vers perl
:
ln -s /usr/bin/perl /usr/local/bin/perl
Dépackager les sources :
gunzip -d ~/downloads/webmin-1.930.tar.gz tar -xvf ~/downloads/webmin-1.930.tar
Se rendre dans le dossier et lancer l'installation dans le dossier /local/webmin/current
:
cd webmin-1.930/ ./setup.sh /local/webmin/current
Donner les réponses suivantes aux questions posées :
*********************************************************************** * Welcome to the Webmin setup script, version 1.930 * *********************************************************************** Webmin is a web-based interface that allows Unix-like operating systems and common Unix services to be easily administered. Installing Webmin from /root/webmin-1.930 to /local/webmin/current ... *********************************************************************** Webmin uses separate directories for configuration files and log files. Unless you want to run multiple versions of Webmin at the same time you can just accept the defaults. Config file directory [/etc/webmin]: /local/webmin/config Log file directory [/var/webmin]: /data/logs/webmin *********************************************************************** Webmin is written entirely in Perl. Please enter the full path to the Perl 5 interpreter on your system. Full path to perl (default /usr/bin/perl): /usr/bin/perl Testing Perl ... Perl seems to be installed ok *********************************************************************** Operating system name: CentOS Linux Operating system version: 7.7.1908 *********************************************************************** Webmin uses its own password protected web server to provide access to the administration programs. The setup script needs to know : - What port to run the web server on. There must not be another web server already using this port. - The login name required to access the web server. - The password required to access the web server. - If the webserver should use SSL (if your system supports it). - Whether to start webmin at boot time. Web server port (default 10000): Login name (default admin): Login password: Password again: Use SSL (y/n): n Webmin does not support being started at boot time on your system. *********************************************************************** Copying files to /local/webmin/current .. ..done Creating web server config files.. ..done Creating access control file.. ..done Inserting path to perl into scripts.. ..done Creating start and stop scripts.. ..done Copying config files.. ..done Creating uninstall script /local/webmin/config/uninstall.sh .. ..done Changing ownership and permissions .. ..done Running postinstall scripts .. ..done Enabling background status collection .. ..done Attempting to start Webmin mini web server.. Starting Webmin server in /local/webmin/current ..done *********************************************************************** Webmin has been installed and started successfully. Use your web browser to go to http://mygreatserver.jordan-lenuff.com:10000/ and login with the name and password you entered previously.
- Config file directory [/etc/webmin]:
- /local/webmin/config
- Log file directory [/var/webmin]:
- /data/logs/webmin
- Full path to perl (default /usr/bin/perl):
- /usr/bin/perl
- Web server port (default 10000):
- Laisser vide
- Login name (default admin):
- Laisser vide
- Login password:
- Renseigner un mot de passe
- Password again:
- Répéter le mot de passe
- Use SSL (y/n):
- n
Utiliser le service
Une fois installé, webmin
est automatiquement démarré.
Sans systemd
Création du service
Si le script /etc/init.d/webmin
n'existe pas, le créer avec le contenu suivant :
#!/bin/bash
#
# webmin Startup script for the Webmin Server
#
# See how we were called.
case "$1" in
start)
/local/webmin/config/start
;;
stop)
/local/webmin/config/stop
;;
restart)
/local/webmin/config/restart
;;
reload)
/local/webmin/config/reload
;;
*)
echo $"Usage: webmin {start|stop|restart|reload}"
exit 1
esac
exit 0
Lui donner le droit d'exécution :
chmod u+x /etc/init.d/webmin
Utilisation du service
Pour l'arrêter :
/etc/init.d/webmin stop
Pour le démarrer :
/etc/init.d/webmin start
Pour le redémarrer :
/etc/init.d/webmin restart
Pour le recharger:
/etc/init.d/webmin reload
Lancer le service au démarrage
Créer les liens symboliques suivants :
ln -s /etc/rc.d/webmin /etc/rc.d/rc3.d/S12webmin ln -s /etc/rc.d/webmin /etc/rc.d/rc3.d/K01webmin
Avec systemd
Création du service
Si le service webmin
n'existe pas (vérifiable avec la commande systemctl status webmin
), créer le fichier /usr/lib/systemd/system/webmin.service
et y insérer le contenu suivant :
[Unit]
Description=Start or stop Webmin
[Service]
ExecStart=/local/webmin/config/start
ExecStop=/local/webmin/config/stop
Type=forking
PIDFile=/data/logs/webmin/miniserv.pid
[Install]
WantedBy=multi-user.target
Recharger les services pour prise en compte :
systemctl daemon-reload
Utilisation du service
Pour l'arrêter :
systemctl stop webmin.service
Pour le démarrer :
systemctl start webmin.service
Pour le redémarrer :
systemctl restart webmin.service
Pour afficher le statut :
systemctl status webmin.service
Lancer le service au démarrage
Lancer la commande suivante :
systemctl enable webmin.service
Vérification
Pour vérifier que le service tourne et écoute bien sur le port 10000 :
netstat -paunt|grep perl
Exemple de retour :
tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 28304/perl udp 0 0 0.0.0.0:10000 0.0.0.0:* 28304/perl
Publier via Apache
Bien que l'outil écoute sur toutes les adresses IP disponibles sur le port 10000, il n'est pas joignable car le pare-feu n'a pas autorisé ce port.
Dans un but de construction d'URLs conviviales et de simplification d'accès, il va falloir éditer le fichier /local/www/current/conf/sites/01_vmexploit02.conf
et y ajouter la section suivante :
...
# Configuration Webmin
ProxyPass /webmin/ http://localhost:10000/
ProxyPassReverse /webmin/ http://localhost:10000/
# Fin de configuration Webmin
...
Redémarrer Apache pour prise en compte :
httpd -k graceful
Editer ensuite le fichier /local/webmin/config/config
et y ajouter les paramètres suivants :
... webprefix=/webmin webprefixnoredir=1 referer=mygreatserver.jordan-lenuff.com
Redémarrer Webmin pour prise en compte des modifications :
systemctl restart webmin.service
L'interface Webmin est désormais joignable sur http://mygreatserver.jordan-lenuff.com/webmin/.