Webmin

Webmin is a web-based server management control panel for Unix-like systems. Webmin allows the user to configure operating system internals, such as users, disk quotas, services and configuration files, as well as modify and control open-source apps, such as BIND, Apache HTTP Server, PHP, and MySQL.

History 
Webmin, written by Jamie Cameron, was first released as version 0.1 in October 1997.  Its basic concept of being a web-based administration interface has remained constant since its first release. 

It was originally written during the time that Cameron administered a DNS server and needed an easy-to-use interface to allow users to make changes to the DNS records without giving them root access to the server. Over time, various themes, a dashboard that displays CPU, RAM, and disk space usage with visual gauges, and a sidebar with a search function were also added.

Financial support for the Webmin project came from the Linux distribution companies Caldera and MSC Linux, as well as many user contributions of code patches, hundreds of modules, language translations, and user suggestions.

In 2019, a backdoor was discovered which would allow a remote attacker to execute malicious commands with root privileges on the machine running Webmin. This backdoor exploit was present on versions 1.882-1.921, when a network admin would enable the password expiration policy. Developers of Webmin believed that the backdoor being introduced was the result of a malicious injection to the code via the online source code repository SourceForge.

Since its release, the Webmin user interface, its appearance, and its many features have changed dramatically using code that has been completely rewritten over the subsequent versions.This includes the overhaul brought by Webmin 2.0, which enforced strict HTTP Strict Transport Security policy for SSL, and gave options to users upgrading from older versions.

General description 
Webmin is largely based on Perl, running as its own process and web server. It defaults to TCP port 10000 for communicating, and can be configured to use SSL if OpenSSL is installed with additional required Perl modules. Webmin is built around over 110 standard modules, which have an interface to the configuration files and the Webmin server, which makes it simple to add new functionality. Due to Webmin's modular design, it is possible for anyone who is interested to write plugins for desktop configuration. Webmin allows for controlling many machines through a single interface, or seamless login on other Webmin hosts on the same subnet or LAN.

Webmin is primarily coded by Australian Jamie Cameron and released under the BSD license.

If a plugin for certain tasks is not available, it is possible to open a terminal and perform various task through a command line interface (CLI). This is especially useful if using SSH (or similar) is not an option.

Inclusion in distributions 
While Webmin was included in the official repositories of some Linux distributions (Debian and Ubuntu), it was removed from those because Webmin was not compatible with the way that the distributions' packages handled configuration files and caused unexpected issues with systems.

Related software 
Webmin can be expanded by installing modules, which can be custom made. Aside from this, there are two other major projects that extend the functionality of Webmin:

 Usermin presents and controls a subset of the features available in Webmin, such as webmail and other user-level tasks, rather than administrator-level tasks.
 Virtualmin, which is a web hosting control panel. Virtualmin enables users to host websites under domains, and gives the server admin and the end user a simple interface for managing their websites.

Webmin released Minecraft Server Module 1.0 in January 2013, and version 1.1 in March 2013. The module presents a very basic GUI for server administration. The Webmin Minecraft server is free and open source with no limitations on simultaneous players.

See also 
 Virtualmin
 Usermin
 YaST

References

External links 
 
 Webmin documentation wiki

Perl software
Software using the BSD license
Unix configuration utilities
Web server management software