See Zwiegnet Blog 2014’s Installing Virtualmin on CentOS guide for reference.
Virtualmin is a web-portal that allows complete access to server administration tasks via easy-to-navigate web pages. A nice side-effect of installing Virtualmin is the installation of MySQL and the easy configuration of multiple domains.
Let’s start by changing to our user’s home folder:
[newuser@mail ~]$ cd ~/tmp
This will help ensure we don’t pollute our file system with downloaded files. We’ll use the “wget” command to obtain the Virtualmin installation script:
[newuser@mail ~]$ wget http://software.virtualmin.com/gpl/scripts/install.sh
Next, make the installation script executable:
[newuser@mail ~]$ chmod +x ./install.sh
And finally, run the Virtualmin installation script:
[newuser@mail ~]$ sudo ./install.sh
Note the “./” leading the command. Because your home directory is not part of the environment PATH variable, linux won’t find the file – even though it’s in the current directory. Instead, we’ll tell linux the file can be found in the current directory by appending “./” to the beginning of the file.
You’ll be presented with a large disclaimer, and a request to continue. Press the “Y” key. You’ll be asked to enter a fully-qualified domain name for this server. I used the combined hostname and domain we added to our hosts file at the beginning of this article. In my example, I used mail.example.com.
The installation process takes a long, long time. Upwards of 90 minutes, depending on your Linode plan. When the installation is complete, the last line of text you’ll see is “INFO – Rule updates done”. Once the installation of Virtualmin is complete, you can point your browser to https://serverIPAddress:10000 (or if you’ve already configured a DNS A record to point to your hostname.domain, point your browser to https://hostname.domain:10000. In my example, I’d browse to https://mail.example.com:10000. Use the root credentials to log in to Virtualmin.
Once logged in to Virtualmin, complete the post-installation wizard. Choose what you like at this point, but I’ll list the choices I made during this wizard. You can always rerun the wizard at a later time.
- Preload Virtualmin libraries? No (default)
- Run e-mail domain lookup server? No (default)
- Run ClamAV server scanner? No (default)
- Run SpamAssassin server filter? No (default)
- Run MySQL database server? Yes (default)
- Run PostgreSQL database server? No (default)
- Assign MySQL password
- MySQL configuration size? Medium system (512M) with regular MySQL use
- Password storage mode: Store plain-text passwords (default)
Next step: Adding your first domain
2 thoughts on “Configuring a cloud-based secure multi-domain web and e-mail server”
I use Exim as mail server and I installed opendkim using the instructions at
Awesome! To be perfectly honest, i went with postfix because it’s been the default I’ve seen installed with Virtualmin. Why did you choose to go with exim?