From Webmin Documentation
Jump to: navigation, search
Other languages:

Obtaining Webmin is easy. In fact, it may be installed on your system already. Several Linux distributions now include Webmin as either its primary system administration interface or as an optional package. Also, a large number of Linux hardware vendors use Webmin or a modified version of Webmin as their graphical administration interface. Best of all, because Webmin is free software, even if you don't have Webmin already, it is only a download away.

Where to Download Webmin[edit]

It is often best to obtain Webmin from your OS vendor if they provide a package for it. In this way, you can be sure it is automatically configured suitably for your particular OS and version. Executable and configuration file locations vary somewhat from OS version to version and from vendor to vendor, so getting Webmin from your vendor insures consistency.


It is necessary to temper the advice to get Webmin from your vendor with the warning that some vendors lag behind the release schedule of the official Webmin by a month or more. In recent months at least two exploitable conditions have been found in older versions of Webmin. If you are obtaining Webmin from your vendor, it is imperative that you check to be sure it is a recent version, which does not have exploitable bugs. Good vendors will of course update their packages immediately with a secured version, but being cautious is wise when the security of your server is at stake.

If your OS or system vendor does not provide a package of Webmin, then you can go to the Webmin homepage at: Here you will find the latest version of Webmin in a tarball package, a Solaris pkg, a .deb package, and an RPM package. The tarball will work on nearly any UNIX version that has Perl, while the RPM package is known to work directly on at least Red Hat, Mandrake, SUSE, MSC and Caldera versions of Linux. The .deb is expected to work on all versions of Debian and Ubuntu.

Installing Webmin[edit]

Installation of Webmin differs slightly depending on which type of package you choose to install. Note that Webmin requires a relatively recent Perl for any of these installation methods to work. Nearly all, if not all, modern UNIX and UNIX-like OS variants now include Perl as a standard component of the OS, so this should not be an issue.

Installing from a tar.gz[edit]

First you must untar and unzip the archive in the directory where you would like Webmin to be installed. The most common location for installation from tarballs is /usr/local. Some sites prefer /opt. If you're using GNU tar, you can do this all on one command line:

# tar zxvf webmin-1.330.tar.gz

If you have a less capable version of tar, you must unzip the file first and then untar it:

# gunzip webmin-1.330.tar.gz
# tar xvf webmin-1.330.tar

Next, you need to change to the directory that was created when you untarred the archive, and execute the script, as shown in the following example. The script will ask several questions about your system and your preferences for the installation. Generally, accepting the default values will work. An example installation might look like this:

        [root@delilah webmin-1.330]# ./
        *       Welcome to the Webmin setup script, version 1.330        *
        Webmin is a web-based interface that allows Unix-like operating
        systems and common Unix services to be easily administered.
        Installing Webmin in /usr/local/webmin-1.330 ...
        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]: /usr/local/etc/webmin
        Log file directory [/var/webmin]: /usr/local/var/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):
        Testing Perl ...
        Perl seems to be installed ok
        Operating system name:    Redhat Linux
        Operating system version: 13.0
        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): root
        Login password:
        Password again:
        The Perl SSLeay library is not installed. SSL not available.
        Start Webmin at boot time (y/n): n
        Creating web server config files..
        Creating access control file..
        Inserting path to perl into scripts..
        Creating start and stop scripts..
        Copying config files..
        Creating uninstall script /usr/local/etc/webmin/ ..
        Changing ownership and permissions ..
        Running postinstall scripts ..
        Attempting to start Webmin mini web server..
        Starting Webmin server in /usr/local/webmin-1.330
        Webmin has been installed and started successfully. Use your web
        browser to go to
        and login with the name and password you entered previously.
        [root@delilah webmin-1.330]#

Here you can see that I've chosen the default in some locations, and deviated from the default in others. The most likely changes you may want to make include changing the default installation directories, and altering the port on which Webmin will listen. Webmin also politely generates an script that allows you to easily remove Webmin from your system.

Installing from an RPM[edit]

Installing from an RPM is even easier. You only need to run one command:

[root@delilah root]# rpm -Uvh webmin-1.330-1.noarch.rpm

This will copy all of the Webmin files to the appropriate locations and run the install script with appropriate default values. For example, on my Red Hat system, the Webmin perl files will be installed in /usr/libexec/webmin while the configuration files will end up in /etc/webmin. Webmin will then be started on port 10000. You may log in using root as the login name and your system root password as the password. It's unlikely you will need to change any of these items from the command line, because they can all be modified using Webmin. If you do need to make any changes, you can do so in miniserv.conf in /etc/webmin.

Installing from a pkg[edit]

To install on a Solaris machine using the pkg file, the steps are almost as simple as using the RPM. First, unzip the file using gzip and then use pkgadd to install the package:

root# gunzip webmin-1.330.pkg.gz
root# pkgadd -d webmin-1.330.pkg

This will install Webmin into /usr/opt, and run the install script with appropriate default values.

Installing from a deb[edit]

To install on Debian or Ubuntu from a deb package:

 root# dpkg -i webmin_1.330_all.deb 

Installing using yum (CentOS/RedHat/Fedora)[edit]

By adding the webmin repository and Jamie Cameron's key it is possible to install & maintain the latest Wemin/Usermin versions.

Just Cut&Paste the entire text below and hit enter. This will install the latest Webmin version by adding the webmin-repo and corresponding key as well as installing necessary packages:

(echo "[Webmin]
name=Webmin Distribution Neutral
enabled=1" >/etc/yum.repos.d/webmin.repo;
rpm --import
yum -y install openssl openssl-devel
yum -y install perl perl-Net-SSLeay perl-Crypt-SSLeay
yum -y install webmin)

Make sure that the Linux Firewall does allow port 10000.

iptables-save > /tmp/tabsav
vi /tmp/tabsav
iptables-restore < /tmp/tabsav

Use the commands above to make the firewall rules look like below

# Generated by iptables-save v1.4.7 on Thu Sep 26 00:02:49 2013
:OUTPUT ACCEPT [3044:1198306]
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10000 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
# Completed on Thu Sep 26 00:02:49 2013