The environment that shaunoconnor.co.uk is somewhat unique for a hosting setup.

Website host

Most sites you visit will be on either shared or dedicated hosts, usually on a linux server sometimes using control panel or plesk running apache, mySQL etc. I however have chosen to sit my environment onto a server running 2012r2 which is running Apache, Perl, and MySQL for the web hosting environment. This is physically located in the cellar of my house, so quite literally "welcome to my home"

Things such as webstats (via an installation of the opensource webalizer) are handled via task scheduler, not cron job as you would normally find.

task scheduler to update webalizer

Also, by using virtualhosts option within apache (apache/conf/extras/http-vhosts) I can host multiple domain names on this server and indeed I am currently running 19 websites from just the single static IP address, this server is pretty under powered these days but is still easily up to the task.

virtualhosts apache

The exact specs of the machine are dual core xeon with 32gb RAM and a RAID 5 setup giving me a total of 2tb of capacity, the limiting factor is mainly the upspeed of my connection which is only around 10mb

Email

The email side of things is covered with the opensource hMailserver, which I have installed and connected to mySQL database rather than the database connection it comes with as standard.   Again, hMailserver can handle multiple domains and many types of setup. 

Antivirus for hMailserver

I personally have also installed clamAV as a means to trap virus mails.  This is not to be confused with Clamwin which hMailserver can also use but is a huge strain on resources as it has to load the AV signature file each time an email hits the server, and can soon grind any server to a halt if it handles thousands of emails a day as mine does.

As ClamAV is a linux install I had to grab the source, modify and then compile it to run on windows.  The AV signatures are again downloaded nightly with task scheduler.   Each mail is scanned as it arrives for virus and sender/recipient notified should an email contain a virus.   Using ClamAV hardly puts any strain on the server and it does actually stop practically every email that contains a virus.

hMailserver Antispam hMailserver Antispam

ClamAV running for hMailserver on Windows Server 2012r2

Antispam for hMailserver

I actually use a combination of many methods for spam detection.  Running locally I have a version of Spam Assassin, which again had to be compiled by myself specifically for windows as this is also a linux program.  It works by identifying  spam using a wide range of heuristic tests on mail headers and body text and I also update the definitions on a nightly basis with a task schedule job.

I also make use of a few other in built methods, all which add "points" to the spam score, and ultimately when those points are met a rule is applied.  Some people delete them, I simply add {spam} to the subject header so that my email client can handle this as I choose.

Antispam for hMailserver Antispam for hMailserver Antispam for hMailserver

Finally I use a few blacklist lookup databases to see if the incoming mail comes from an IP that is logged with them as being bad.

dns blacklists hMailserver

Connectivity

All this sits behinds a pfSense firewall connected directly to a cellpipe (no need for a router). 

NAT is handled wonderfully and allows me to forward port 80 for web traffic, ports 110, 25 and 144 for SMTP, Pop3 and IMAP, as well as allowing me to connect via RDP from elsewhere to my server in the cellar.  

pfSense itself does far more than I describe above, it can cope with multiple WAN's, handle all types of VPN's, handle multiple LAN's, is a true software firewall and itself can handle antivirus and act as a proxy for PC's browsing the net on your LAN.  I also have it configured to block undesirable websites so I can allow my children to surf the net on their tablets without me worrying what they are upto, and if I ever do wonder - it also keeps logs of who did what and when. 

This pfSense box is simply a desktop PC with 4 cores, 3 network cards and 2gb of RAM, and it is also in the cellar, right next to my webhost/email server.  A 1gb switch and a cisco wireless access point to add wi-fi make up the rest of the hardware.