XenServer basic security Tips – How do you secure your XenServer?
Using this post to keep some notes on a few things I did to my XenServer instance, most of this is just common sense.
Disable root login via SSH
First things first, make sure you add a user on the Xenserver box. This is the user you will allow to login via SSH (if you have SSH running at all).
Edit the sshd_config, and find the text #PermitRootLogin yes and change it to:
PermitRootLogin no
Right below that add a new line, and replace USERNAME with the username you created.
AllowUsers USERNAME
If you have more then one user that you want to add just put a space between them and add them in succession. Example:
AllowUsers john harry bob
Then go ahead and restart sshd:
/etc/init.d/sshd restart
Open up a new terminal session and make sure you can login to the server under your new user, and you should be good to go!
Edit the web page that XenServer shows or limit access completely
Xenserver by default serves up a web page that gives your links to download the Xen Center admin console… The web server also servers up the XAPI that is needed for the admin console to access the server remotely. So you have a few options, edit the index.html page to remove the data on there and serve up a blank page. Or the better option is to restrict access completely to the XAPI via the hosts file. And the best option is to toss the Xenserver behind a firewall (hardware or software). Perhaps I’ll go into detail on how to do that in a future post, but in short, firewall the entire server and tunnel in via SSH, which would be the most secure avenue. The only downside to restricting access via a firewall or restricting access via the hosts file is that if you are not at home / work / at a PC where you have access to the restrictions in place your, out of luck on getting access to your server. Now keep in mind, there are alternatives for access (port knocking, ssh via another server or VM, etc) I could go on forever, but everyones situation is different. With that said, lets go over the first two options.
To prevent XenServer from showing the default index.html page, you can either edit the actual file and change it to your liking. The file is located here:
/opt/xensource/www/index.html
For the second option, you can reference the Citrix support document here for detailed information on modifying the hosts file http://support.citrix.com/article/CTX118504, however below is essentially what you need to do.
First edit the hosts.deny file located here: /etc/hosts.deny and enter in: xapi:ALL – What this does is restrict every IP from accessing the XAPI. Second, you’ll need to edit the hosts.allow file, which takes precedence over the hosts.deny and specify the ip adresses or range of ip addresses that you would like to allow access to the XAPI. The hosts.allow file is located /etc/hosts.allow
Allow access to a specific ip in the hosts.allow you would put in the following replacing IPADDRESS with the ip you would like to grant access:
xapi:IPADDRESS
Example:
xapi:24.22.12.222
To allow access to a group of ip addresses, for our example, lets use 24.22. – this would allow any ip address that begins with 24.22. to access the XAPI.
Example:
xapi: 24.22.
If you happen to come across this page, what do you do to lock down your XenServer installs? I’ll be writing a few more articles as I dive deeper into Xen and XenServer, so be sure to check back often.
snot
I’ll say use denyhosts and perhaps create a sshlogin group.
On most of my VM’s it only makes sense to login as root because a normal user can’t configure anything anyway. So having normal user account which will only ever execute su – makes little sense to keep around.
John Burmeister
Disabling root help protect you from brute force attacks against that account… For a brute force to work after disabling root login they now they would first have to guess what your user account is.