Installation

De Wiki de Jordan LE NUFF
Sauter à la navigation Sauter à la recherche
 
(2 révisions intermédiaires par le même utilisateur non affichées)
Ligne 159 : Ligne 159 :
 
*'''Use SSL (y/n):'''
 
*'''Use SSL (y/n):'''
 
**n
 
**n
 +
 +
===Installation sur openSUSE===
 +
<pre>
 +
zypper in perl-Encode-Detect
 +
wget https://prdownloads.sourceforge.net/webadmin/webmin-1.984-1.noarch.rpm
 +
rpm -U webmin-1.984-1.noarch.rpm
 +
firewall-cmd --permanent --new-service=webmin
 +
firewall-cmd --permanent --service=webmin --set-description="Webmin is a web-based interface for system administration for Unix"
 +
firewall-cmd --permanent --service=webmin --set-short=webmin
 +
firewall-cmd --permanent --service=webmin --add-port=10000/tcp
 +
firewall-cmd --add-service=webmin --permanent
 +
firewall-cmd --reload
 +
</pre>
  
 
== Installation par le gestionnaire de paquets ==
 
== Installation par le gestionnaire de paquets ==
Ligne 252 : Ligne 265 :
  
 
Ajouter les lignes suivantes dans la configuration Apache
 
Ajouter les lignes suivantes dans la configuration Apache
 +
<syntaxhighlight lang="apache">
 
# Configuration Webmin
 
# Configuration Webmin
ProxyPass /webmin/ http://localhost:10000/
+
ProxyPass /webmin http://localhost:10000
ProxyPassReverse /webmin/ http://localhost:10000/
+
ProxyPassReverse /webmin http://localhost:10000
 
# Fin de configuration Webmin
 
# Fin de configuration Webmin
 +
</syntaxhighlight>
  
 
Relance d'Apache pour prise en compte
 
Relance d'Apache pour prise en compte

Version actuelle datée du 27 janvier 2022 à 08:58

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

Installation sur openSUSE

zypper in perl-Encode-Detect
wget https://prdownloads.sourceforge.net/webadmin/webmin-1.984-1.noarch.rpm
rpm -U webmin-1.984-1.noarch.rpm
firewall-cmd --permanent --new-service=webmin
firewall-cmd --permanent --service=webmin --set-description="Webmin is a web-based interface for system administration for Unix"
firewall-cmd --permanent --service=webmin --set-short=webmin
firewall-cmd --permanent --service=webmin --add-port=10000/tcp
firewall-cmd --add-service=webmin --permanent
firewall-cmd --reload

Installation par le gestionnaire de paquets

Ajout du dépôt Webmin avec la création du fichier /etc/yum.repos.d/webmin.repo :

echo "[Webmin]" >> /etc/yum.repos.d/webmin.repo
echo "name=Webmin Distribution Neutral" >> /etc/yum.repos.d/webmin.repo
echo "#baseurl=https://download.webmin.com/download/yum" >> /etc/yum.repos.d/webmin.repo
echo "mirrorlist=https://download.webmin.com/download/yum/mirrorlist" >> /etc/yum.repos.d/webmin.repo
echo "enabled=1" >> /etc/yum.repos.d/webmin.repo

Cela donne le fichier suivant :

[Webmin]
name=Webmin Distribution Neutral
#baseurl=https://download.webmin.com/download/yum
mirrorlist=https://download.webmin.com/download/yum/mirrorlist
enabled=1

Récupération de la clé GPG et import de cette dernière dans RPM :

wget https://download.webmin.com/jcameron-key.asc
rpm --import jcameron-key.asc

Installation de webmin et du prérequis PERL Authen-PAM :

yum install webmin perl-Authen-PAM

Arrêt de webmin :

/etc/rc.d/init.d/webmin stop

Suppression de la gestion de webmin au travers de initd en supprimant les liens symboliques :

find /etc -type l -name *webmin -exec unlink {} \;

Création du service webmin avec la création du fichier /usr/lib/systemd/system/webmin.service

echo "[Unit]" >> /usr/lib/systemd/system/webmin.service
echo "Description=Webmin" >> /usr/lib/systemd/system/webmin.service
echo "Requires=local-fs.target" >> /usr/lib/systemd/system/webmin.service
echo "After=basic.target" >> /usr/lib/systemd/system/webmin.service
echo "Conflicts=shutdown.target" >> /usr/lib/systemd/system/webmin.service
echo "" >> /usr/lib/systemd/system/webmin.service
echo "[Service]" >> /usr/lib/systemd/system/webmin.service
echo "Type=oneshot" >> /usr/lib/systemd/system/webmin.service
echo "RemainAfterExit=yes" >> /usr/lib/systemd/system/webmin.service
echo "ExecStart=/etc/webmin/start" >> /usr/lib/systemd/system/webmin.service
echo "ExecStop=/etc/webmin/stop" >> /usr/lib/systemd/system/webmin.service
echo "ExecReload=/etc/webmin/reload" >> /usr/lib/systemd/system/webmin.service
echo "" >> /usr/lib/systemd/system/webmin.service
echo "[Install]" >> /usr/lib/systemd/system/webmin.service
echo "WantedBy=multi-user.target" >> /usr/lib/systemd/system/webmin.service

Cela donne le fichier suivant :

[Unit]
Description=Webmin
Requires=local-fs.target
After=basic.target
Conflicts=shutdown.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/etc/webmin/start
ExecStop=/etc/webmin/stop
ExecReload=/etc/webmin/reload

[Install]
WantedBy=multi-user.target

Rechargement de la configuration de systemd pour prise en compte du nouveau service :

systemctl daemon-reload

Désactivation du SSL et de l'IPv6 dans Webmin :

sed -i -e 's/ssl=1/ssl=0/g' /etc/webmin/miniserv.conf
sed -i -e 's/ipv6=1/ipv6=0/g' /etc/webmin/miniserv.conf

Cela défini les paramètres ssl=0 et ipv6=0 dans le fichier de configuration /etc/webmin/miniserv.conf.

Définir l'emplacement de l'URL d'accès à Webmin dans un sous-dossier /webmin :

echo "cookiepath=/webmin" >> /etc/webmin/miniserv.conf
echo "webprefix=/webmin" >> /etc/webmin/config
echo "webprefixnoredir=1" >> /etc/webmin/config
echo "referer=1" >> /etc/webmin/config

Cela ajoute le paramètre cookiepath=/webmin dans le fichier /etc/webmin/miniserv.conf et les paramètres webprefix=/webmin, webprefixnoredir=1 et referer=1 dans le fichier /etc/webmin/config.

Démarrer le service webmin :

systemctl start webmin.service

Activer le service webmin au démarrage du serveur :

systemctl enable webmin.service

Ajouter les lignes suivantes dans la configuration Apache

	# Configuration Webmin
	ProxyPass /webmin http://localhost:10000
	ProxyPassReverse /webmin http://localhost:10000
	# Fin de configuration Webmin

Relance d'Apache pour prise en compte

httpd -k graceful

Webmin est désormais accessible sur l'URL http://mon.domaine.com/webmin.

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/.