There’s plenty of control panels out there, some free and some that a lot of money. A very popular pay one is cPanel, and that is arguably THE most popular control panel for servers out there. You can do a lot with it, probably more than most should be allowed to do (this coming from my experiences working with web hosting companies). However, over the past few years, when I’ve wanted a control panel for my own use I’ve stuck with the free-side of things. That where this little write up comes in. I’m talking about Webmin, and for those of you that have used it, you know just how powerful it can be.
The installation of this control panel is pretty smooth and slick. Webmin is basically a plethora of Perl/CGI scripts, and by default they install to the /usr directory (which you can either change or set up a redirect/alias in your web server config). There is one thing that I’m not particularly fond of, but makes absolute sense: you have to install with root. If you’re installing into /usr it makes absolute sense. While otherwise it doesn’t make a whole lot of sense, once you get into the power of Webmin it starts to flow together more nicely.
During install, it will generate a self-signed SSL certificate, as the control panel will essentially force you by default to run it in SSL mode before you can log in. Personally I have no problem with self-signed certificates and do advocate them being allowed for web services, but that will be a topic for a different day. Installation itself is done via the CLI, so its not like WordPress where you have to go to a URI, set up a database, user account, etc… All the information needed will be asked initially.
By default Webmin prompts you to create a user and password during set up. However, you can also “convert” standard Unix accounts in /etc/passwd to be able to log into Webmin as well. Before doing this though you’ll have to create a webmin group on your server (groupadd webmin).
Pretty much everything you can do in cPanel, Clientexec and other control panels, you can do through Webmin as well. There’s a long, exhausting list of what you can do, but a basically you can create backups (both automatically and manually), manage cron jobs and users, install software, log in via SSH through it (via Java), manage your files with a file manager (again, with Java), and configure RAID.
I’m far from a fan of Java, and prefer to stick with the old fashioned SSH and CLI method, but if you’re quick on the go, this is definitely a faster process.
One powerful and awesome feature about this control panel is the ease of use to manage iptables with it. It allows you to easily re-order rules, create new chains, rules, and just overall make the task of managing firewalls easier. Which, to be honest, makes me extremely happy seeing as how I tend to make very tedious mistakes (i.e.: “-dport” instead of “–dport”) to my rules. Granted, it just errors out iptables, but still.
The last feature I’m going to showcase about Webmin right now is the plugin system they have in it. Think WordPress, but for control panels. They also offer different administration plugins (i.e.: Virtualmin for resellers) as well, but some of them (like Virtualmin Pro) you have to pay for. However, you can also write your own if you’re up for the task, or use any of the freely available plugins. This makes Webmin highly scalable and customizable.
While this isn’t the last review of Webmin I’ll be doing, I wanted to point out some of the more noticeable features about this control panel. Does it have its flaws? Just like everything else out there, yes. The biggest flaw for me is that it uses Java for some of its functionality. However, that alone should not draw people away from this tool, as to me it feels “you want a feature implemented? there’s a plugin for that.” However, next time I’ll be touching base on some of the negative aspects about this software as well (besides the Java).