what is webmin? how to install webmin on centOS 7 or 8

 

 

In today’s Internet-based world, monitoring solutions accessible via a basic web browser can be a valuable tool, Webmin is a web-based system administration tool that has been around since 1997, which makes webmin one of the long running, open source system administration tools for linux. As of today when writing this wiki, latest release is webmin 1.962, released on Nov 11, 2020 . I will walk through, to install webmin on centOS 7 machine (which also applies for centOS 8).

 

what is webmin?

  1. Webmin is a web-based system configuration and management system
  2. It was originally developed for Linux machines, now it is available for Windows & macOS operating systems
  3. It allows administrators to manage server remotely using any browser (web based interface).
  4. Administrators have access to log files, resource utilization, system details and more
  5. It allows administrators to manage operating system functions such as users, disk quotas, services configuration files and more
  6. Webmin can control or modify open source apps such as Apache HTTP server, PHP, MySQL/MariaDB, PostFix and SSH
  7. It has its own build terminal which allows remote file uploads & downloads on demand
  8. Ability to install and upgrade packages from repos

 

How to install Webmin 1.962 on centOS 7 or 8 ?

ssh to your server, you might either use root or sudo su - to get required permissions to create a custom repo and install the package

step 01 : once ssh to your server create a custom repo with
vi /etc/yum.repos.d/webmin.repo
containing the following

[Webmin]
name=Webmin Distribution Neutral
mirrorlist=https://download.webmin.com/download/yum/mirrorlist
enabled=1
gpgcheck=1
gpgkey=https://www.webmin.com/jcameron-key.asc

step 02 : install webmin with command yum install -y webmin

[[email protected] ~]# yum install -y webmin
Loaded plugins: fastestmirror
Repository Webmin is listed more than once in the configuration
Loading mirror speeds from cached hostfile
 * base: ftp.nluug.nl
 * extras: nl.mirrors.clouvider.net
 * updates: mirror.seedvps.com
Resolving Dependencies
--> Running transaction check
---> Package webmin.noarch 0:1.962-1 will be installed
--> Processing Dependency: perl(Net::SSLeay) for package: webmin-1.962-1.noarch
--> Processing Dependency: perl(Encode::Detect) for package: webmin-1.962-1.noarch
--> Running transaction check
---> Package perl-Encode-Detect.x86_64 0:1.01-13.el7 will be installed
---> Package perl-Net-SSLeay.x86_64 0:1.55-6.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=========================================================================================================================================================================
 Package                                         Arch                                Version                                   Repository                           Size
=========================================================================================================================================================================
Installing:
 webmin                                          noarch                              1.962-1                                   Webmin                               39 M
Installing for dependencies:
 perl-Encode-Detect                              x86_64                              1.01-13.el7                               base                                 82 k
 perl-Net-SSLeay                                 x86_64                              1.55-6.el7                                base                                285 k

Transaction Summary
=========================================================================================================================================================================
Install  1 Package (+2 Dependent packages)

Total download size: 39 M
Installed size: 123 M
Downloading packages:
(1/3): perl-Encode-Detect-1.01-13.el7.x86_64.rpm                                                                                                  |  82 kB  00:00:00     
(2/3): perl-Net-SSLeay-1.55-6.el7.x86_64.rpm                                                                                                      | 285 kB  00:00:00     
warning: /var/cache/yum/x86_64/7/Webmin/packages/webmin-1.962-1.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID 11f63c51: NOKEY       ] 5.0 MB/s |  29 MB  00:00:02 ETA 
Public key for webmin-1.962-1.noarch.rpm is not installed
(3/3): webmin-1.962-1.noarch.rpm                                                                                                                  |  39 MB  00:00:05     
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                    6.6 MB/s |  39 MB  00:00:05     
Retrieving key from https://www.webmin.com/jcameron-key.asc
Importing GPG key 0x11F63C51:
 Userid     : "Jamie Cameron <[email protected]>"
 Fingerprint: 1719 003a ce3e 5a41 e2de 70df d97a 3ae9 11f6 3c51
 From       : https://www.webmin.com/jcameron-key.asc
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : perl-Encode-Detect-1.01-13.el7.x86_64                                                                                                                 1/3 
  Installing : perl-Net-SSLeay-1.55-6.el7.x86_64                                                                                                                     2/3 
Operating system is CentOS Linux
  Installing : webmin-1.962-1.noarch                                                                                                                                 3/3 
Webmin install complete. You can now login to https://9to5host:10000/
as root with your root password.
  Verifying  : webmin-1.962-1.noarch                                                                                                                                 1/3 
  Verifying  : perl-Net-SSLeay-1.55-6.el7.x86_64                                                                                                                     2/3 
  Verifying  : perl-Encode-Detect-1.01-13.el7.x86_64                                                                                                                 3/3 

Installed:
  webmin.noarch 0:1.962-1                                                                                                                                                

Dependency Installed:
  perl-Encode-Detect.x86_64 0:1.01-13.el7                                               perl-Net-SSLeay.x86_64 0:1.55-6.el7                                              

Complete!

step 03 : Create & Configure webmin service, by default webmin doesn’t install service – for ease of work, lets configure one
a. to do that we need to stop webmin by following commands

[[email protected] ~]# cd /etc/webmin/
[[email protected] webmin]# ./stop
Stopping Webmin server in /usr/libexec/webmin

b. Create custom service with following commands

[[email protected] webmin]# cd /etc/systemd/system
[[email protected] system]# vim webmin.service

containing following :

## Custom service created for WebMin by 9TO5Host
## Author : i9to5host
## Date : Dec 22 2020
## url : htpps://9to5host.com
## wiki : https://blog.9to5host.com/339/what-is-webmin-h…on-centos-7-or-8/ ‎

[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

step 04 : Reload systemd with following command
systemctl daemon-reload

step 05 : Enable webmin service with
[[email protected] system]# systemctl enable --now webmin
Created symlink from /etc/systemd/system/multi-user.target.wants/webmin.service to /etc/systemd/system/webmin.service.

step 06: with above result, its clear that service is successfully created, lets check the status

[[email protected] system]# systemctl status webmin
● webmin.service - Webmin
   Loaded: loaded (/etc/systemd/system/webmin.service; enabled; vendor preset: disabled)
   Active: active (exited) since Tue 2020-12-22 07:06:49 UTC; 1min 14s ago
  Process: 31499 ExecStart=/etc/webmin/start (code=exited, status=0/SUCCESS)
 Main PID: 31499 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/webmin.service
           └─31500 /usr/bin/perl /usr/libexec/webmin/miniserv.pl /etc/webmin/miniserv.conf

Dec 22 07:06:49 9to5host systemd[1]: Starting Webmin...
Dec 22 07:06:49 9to5host start[31499]: Starting Webmin server in /usr/libexec/webmin
Dec 22 07:06:49 9to5host systemd[1]: Started Webmin.

step 07: Update Port info on the configuration file, with following command
vi /etc/webmin/miniserv.conf

a. change Port to 8080
b. Add listen=8080

before change :

After change :

step 08: Restart webmin service with systemctl restart webmin

Navigate to browser and access webmin by visiting https://~ip address~:8080

 

step 09: Login with your root credentials

How to Create Webmin Users?

Drilldown webmin in left navigation panel, head over to webmin Users and click on ‘Create a new privileged user’ as shown in the screenshot below

 

Provide the following inputs for your new user

username : desired username of your user

password : either provide raw password or use centOS account credentials

Available Webmin modules : drill down and select all available modules for your user

 

 

click on create, to create user ‘i9to5hosr’, as you can see, currently I have couple of webmin users created

 

Congratulations, you have successfully installed webmin 1.962, created user to administrate the server.

 

please let me know in comments if you have enjoyed the tutorial

Leave a comment