December 19, 2007

Simple, fast administration with Webmin

Author: Federico Kereki

Linux has so many tools, settings, parameters, and configuration files to learn that administering your box can be a challenge. Webmin, a Web-based comprehensive administration tool for Linux, can help you get on your way.

Webmin presents a Web-based interface that allows you to perform system administration tasks in Unix, Linux, and FreeBSD. If your particular distribution isn't included in the list of supported systems, some Webmin modules might not work. Distributions use different locations for their various configuration files, and if your particular choice doesn't keep its files in standard places, Webmin won't be able to function. This may change over time if and when all distributions embrace the Linux Standard Base (LSB) and comply with a set of standards regarding these matters.

By using Webmin, you can forget about having to edit configuration files like those in the /etc directory manually, or starting, stopping, and restarting services. You can even manage your box remotely from other machines. All you need is a browser (Firefox works for me), Perl, a Java Runtime Environment (JRE) (for some modules), and the root password.

Webmin is available under the General Public License (GPL). The latest version is 1.380 from November 2007, so it's in active development.

Installation and upgrade

Installation is simple. You can probably install it by using your package manager, but I prefer to use Smart; a simple smart install webmin command does the job. Don't worry if you don't get the latest version this way; you can update the software easily by using Webmin itself. You can also download the appropriate version for your system and follow the installation instructions on the left side of the download page. You can start with the full package or go with the minimal edition and add the modules you want afterward by using Webmin's own update features.

You need to start a service before you can use Webmin. As root, enter these commands to ensure Webmin starts every day:

chkconfig webmin on
/etc/init.d/webmin start

Open a browser and key in to see Webmin's login page. Enter the username and password of the system administrator (in most distributions, that would be "root"; Ubuntu and others grant those rights to specific users and have no root account) and click on Login. You could check "Remember login permanently?," but that's a security risk, so I don't recommend it.

Upgrading Webmin, or installing more modules, is a breeze. On the left-side menu, click on Webmin -> Webmin Configuration. If you click on Upgrade Webmin, you'll be able to upgrade from the Internet. You can click on Scheduled Update to set up the system so it updates periodically and automatically.

If you click on Webmin Modules, you'll be able to browse what's available on the Webmin site and even download third-party modules from a different site. If you pick the Standard Module option, you'll get a pop-up window with dozens of modules listed in almost-alphabetical order. Click on a module name and then on Install Module to get the new module.

A security point: Webmin users aren't the same as the operating system users. The first time you log in, a "root" user is created automatically with the password you enter, but you should create specific accounts for each administrator, restricted to the functions they need.

Using Webmin

Pick from one of these categories on the left to see the list of available modules:

Webmin: Provides general configuration, including language and theme selection, Webmin upgrade, modules installation, logging options and log browsing, security restrictions (such as from which IP addresses you may use Webmin), encryption, and several other options. If the Servers module is installed, you can search for other Webmin servers in the network and manage them remotely; of course, it won't be as speedy.

System: Lets you run backups, actions at boot and shutdown time, user administration including password and rights changes, log files rotation, checking running processes, scheduled commands and cron jobs, software package installation, and more.

Servers: This has to do with all possible servers you might be running, including Apache, mail functions, Samba for file sharing, proxies for Web access, Dynamic Host Configuration Protocol (DHCP) for IP address assignment, and databases (such as MySQL and PostgreSQL). You have to click on each of these options to see all the features; normally you can specify several screens' worth of options.

Networking: Includes network-related options such as managing ADSL clients, bandwidth monitoring, security (IPsec and Kerberos 5), Network File System (NFS) exports, Network Information Service (NIS) clients and servers, Secure Sockets Layer (SSL) tunnels for safe remote access, and firewalls (both the standard iptables and the Shoreline firewall).

Hardware: Lets you burn CDs, change boot options (though this would seem more appropriate for the System menu), configure Redundant Array of Independent Drives (RAID) and logical volume manager (LVM), set local disk partitioning, system time, and more.

Cluster: Options for running two or more machines in a cluster.

Others: You get access to a command shell (through a Java applet), a file manager (also Java), remotely log in to a different machine, monitor system and server status, and more.


Jamie Cameron, the author of Webmin, says Webmin is better suited to "less experienced users who are unfamiliar with configuration file formats than enterprise sys admins who already have a detailed understanding of Unix."

Webmin packs an impressive number of functions that you manage through clear menus and Web pages. With the software you can detect many errors before they can do any harm. It makes a good learning aid, especially if you examine the configuration files after each change. Webmin guides you along your first steps and helps you become more proficient as a Linux system administrator.


  • System Administration
Click Here!