From FreeBSDwiki
Jump to: navigation, search

Webmin is a service that runs in the background of UNIX or Unix-like systems and permits the administrator to configure virtually every aspect of the host system from a standard web browser. It is actively developed and (as at the time of writing) celebrating 10 years of existence since 1997-10-03.



The service runs over HTTP which makes it possible to maintain a Webmin-enabled server from any operating system that has a web browser (and quite possibly Opera Mini on a mobile phone!). The default configuration uses port 10000 and SSL for added security, so the web browser would be directed to where the user would be prompted for a username and password (which are set during the configuration stage).

Despite running in HTTP and SSL it does not need Apache or any other web server in order to run. This is self-contained within the Webmin / Perl code which keeps the dependencies to a minimum. The current release 1.360 available through the Ports system simply requires (somewhat obviously) Perl 5.8.8 along with p5-Authen-PAM-0.16_1 for authentication and p5-Net-SSLeay-1.30_1 for the SSL secure connection for HTTPS.

Recent releases of Webmin default to a frameset view with a drill-down menu to the side. Themes exist to 'skin' the look of Webmin, one of which is the 'old Webmin theme' that presents a single page with tabbed categories across the top. In this view the available options are presented (by tab titles, as per Webmin release 1.350 on FreeBSD 6.2):

  • Webmin
    • Backup Configuration Files;
    • Change Language and Theme;
    • Usermin Configuration;
    • Webmin Actions Log;
    • Webmin Configuration;
    • Webmin Servers Index;
    • Webmin Users
  • System
    • Bootup and Shutdown;
    • Change Passwords;
    • Disk Quotas;
    • Disk and Network Filesystems;
    • Filesystem Backup;
    • LDAP Users and Groups;
    • Log File Rotation;
    • MIME Type Programs;
    • Running Processes;
    • Scheduled Commands;
    • Scheduled Cron Jobs;
    • Security Sentries;
    • Software Packages;
    • System Documentation;
    • System Logs;
    • Users and Groups.
  • Servers
    • Apache Webserver;
    • BIND DNS Server;
    • CVS Server;
    • DHCP Server;
    • Dovecot IMAP/POP3 Server;
    • Fetchmail Mail Retrieval;
    • Frox FTP Proxy;
    • Jabber IM Server;
    • Majordomo List Manager;
    • MySQL Database Server;
    • OpenSLP Server;
    • Postfix Configuration;
    • PostgreSQL Database Server;
    • ProFTPD Server;
    • Procmail Mail Filter;
    • QMail Configuration;
    • Read User Mail;
    • SSH Server;
    • Samba Windows File Sharing;
    • Sendmail Configuration;
    • SpamAssassin Mail Filter;
    • Squid Analysis Report Generator;
    • Squid Proxy Server;
    • WU-FTP Server;
    • Webalizer Logfile Analysis.
  • Network
    • BSD Firewall;
    • Bandwidth Monitoring;
    • IPFilter Firewall;
    • Internet Services and Protocols;
    • NFS Exports;
    • Network Configuration;
    • PPTP VPN Server;
    • SSL Tunnels.
  • Hardware
    • CD Burner;
    • Printer Administration;
    • System Time.
  • Cluster
    • Cluster Change Passwords;
    • Cluster Copy Files;
    • Cluster Cron Jobs;
    • Cluster Shell Commands;
    • Cluster Usermin Servers;
    • Cluster Users and Groups;
    • Cluster Webmin Servers;
    • Configuration Engine;
    • Heartbeat Monitor.
  • Others
    • Command Shell;
    • Custom Commands;
    • File Manager;
    • HTTP Tunnel;
    • PHP Configuration;
    • Perl Modules;
    • Protected Web Directories;
    • SSH/Telnet Login;
    • System and Server Status;
    • Upload and Download.

While most commonly used servers are listed under the Servers category, configuration is only possible where the given system is installed. As an example selecting the Apache configuration option without either Apache 1.3 or 2.0 installed will display an error stating the httpd.conf file is not available.

Since Webmin is developed in Perl it is quite modular and extensible meaning additional configuration options can be programmed and added to the core Webmin system.

Example Screenshot

An example screenshot is available here.


There is a slight bug that can appear in the install script (./ under the Webmin install folder) following an installation from the Ports system on recent releases of FreeBSD - notably 6.2, but also others - that presents an error message. The author has found that rebooting (which is quite possibly considered a sin on Unix platforms!) and then running it again allows the script to complete without error. It is then possible to run the service as a daemon.

The service can be started at boot-up by adding webmin_enable="YES" to the rc.conf file. Alternatively it can be stopped or started using the usual rc.d script method.

It is possible to verify the service is running from the console by using sockstat and checking for the Webmin port 10000 (assuming it was setup using the default configuration). This is useful for situations where a graphical desktop environment with a web browser is not immediately available.

mail# sockstat | grep 10000
root     perl       454   5  tcp4   *:10000               *:*
root     perl       454   6  udp4   *:10000               *:*

Note that the services runs under the name perl and not Webmin.

See Also

See the official Webmin website.

Personal tools