Configuring a cloud-based secure multi-domain web and e-mail server

Install Virtualmin 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…

Install Virtualmin

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 responses to “Configuring a cloud-based secure multi-domain web and e-mail server”

  1. I use Exim as mail server and I installed opendkim using the instructions at
    https://www.rosehosting.com/blog/how-to-install-and-configure-dkim-with-opendkim-and-exim-on-a-centos-7-vps/

    1. 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?

Leave a Reply

Your email address will not be published. Required fields are marked *