In case anyone missed it DISA posted a brand spank’n new ESXi 5 STIG revision on Friday, January 24th.

ESXi 5 STIG Version 1 Revision 4

Now, I want to point out a few things about this revision.  First off I teamed up with a great engineer working for DISA FSO to basically rewrite most of the ESXi 5 Server portion of this STIG.  We put a lot of work into that section and I was proud of the result.  If you’ve had trouble implementing the ESXi 5 Server piece in the past please take a look at the changes in revision 4.  You can see from the release notes alone that dozens of checks were changed, and several deleted all together.

Additionally, a lot of the posts on this blog are now moot if you’re using revision 4.  Why?  Because we essentially used this blog as a point of reference in the rewrite.  I’ll be leaving the posts up here, but note in them that it was pre-revision 4 information.

Finally I wanted to mention our Community Project for ESXi STIG Automation.  If you haven’t signed up for this project yet, please do so.  We will use revision 4 as the focal point for its development.

As I’ve eluded to in some previous articles I’ve started up a community project on ESXi 5 STIG automation.  Why  Well, quite simply to help with credibility.  The best way to apply the ESXi 5 STIG settings is by way of a VIB, and in order for one to create and deploy a VIB in this fashion it will be unsigned but have a higher than Community acceptance level.  That is, as you know, a STIG issue itself.  Bit Chicken and Egg if you know what I mean.  So to help combat that I decided to post this as a community project on  If this is to be useful it must be trusted by the IA community within DoD.

Now, all that aside, let’s talk business.  First thing you need to do is go join the project!  Even if you do not plan to directly participate please join the project anyway.  This way we can show numbers and interest from the DoD community.  Trust me, things like this gain a life of their own and contribute a great deal to decisions made in development within VMware (you’d think).  Additionally, numbers and involvement will help drive IA acceptance of the tool as well.  NOW JOIN!

Project Site: ESXi STIG Toolset (CAC Required)

Now, you’ve joined the project, right?  Ok, next… read.  Take a look at the project charter and get familiar with project controls.  You’ll notice there’s a Discussion tab in the project console.  Use it.  Post questions, code snipits, and general information here.  That way everyone involved will benefit.

Next take notice of the Tracker tab.  This is a bug / feature tracker if you will.  As we progress along we should place features and bugs in this tracker.  Again, it helps everyone if we follow a standard.

File Releases is next.  Here is where we will place pre-built VIB versions for download, along with their code.  If you are familiar with source control we will build a branch and tag it as a release, those artifacts will go here.

Finally is the Source Control tab.  Within this tab you will see a Development repository.  This is where we will keep all the project files.

Now let’s get to building.  I’ll post a followup article on my ideas as to how we move forward.  What I ask of you is involvement.  Share your scripts and ESXi STIG settings within the project discussion group.  This is a community project.  I’ll be working on the build automation and documentation.  I need help with the rest of it.  I’ll cover what that is in the next article.  Until then, join the project!  I’ll be posting updates here and via e-mail through the project group itself.

Note: As of right now, only the project site itself and a minimum repository file structure has been established.  The real content will come.  Keep an eye here for a follow-up post and join the group for e-mail notification.

Anyone that has tried to apply the ESXi STIG knows the pain it can cause, especially across multiple hosts.  Settings don’t stick, special scripts must be created, and local files need to be changed.  Doing this once is a pain, doing it across your data center will drive one to drink.  How can this be made easier?

The answer could be a custom VIB.  Using a VIB can resolve the missing or non-sticky file issue, and populate the settings for you, but is that really a viable solution for the Federal data center?  Short answer, it depends.  Let’s dive into the reasons.

Continue reading

That’s right, revision 4 of the ESXi 5 STIG is right around the corner. You should see it in mid to late January, barring any issues during sign off at DISA.

So, what are the changes you ask?  Well, there are quite a few, and I shouldn’t derail the DISA FSO process by posting them early. However, I can tell you this. The assigned DISA engineer and I sat down for several hours and pretty much rewrote a large majority of the platform portion of the STIG. A special thanks should go out to that engineer, Joe. He absolutely set out to make a much more user friendly and accurate document, and I believe he did.  Well done and thanks Joe!

Another thing you will notice is a striking resemblance to this blog and it’s guidance in the check/fix(s) of the next revision!  Each and every one of you helped to contribute to that knowledge. So, in a sense, you all had a hand in the rewrite since a large portion of the content was pulled from this site. Thanks to all of you for correcting and adding to what I provided here.  I absolutely consider this not only a community effort, but a success at that.

Kudos and all that aside this will undoubtedly not make everyone out there happy, nor will it cover each and every use case. The intent in this revision was to provide content that was achievable and possible to implement. You could say I was trying to work myself out of a blog. 🙂  The revision will not address everything for everyone, but it does work!  Remember, as always, the STIG is an implementation guide to controls that do not fit into every situation. Work with your IA teams and DAA on a plan that fits within your agencies goals and security procedures.

Happy Holidays to all!


Note: This article covers material present in Version 1 Revision 3 and below.  Topics found below may be mitigated in the most current version of the ESXi 5 STIG.  Ensure you are using the most current version of the DISA STIG documents.

Had a colleague point out to me that I gave a pass on a STIG finding for ESXi 5 Server that is, in fact, not that straight forward.  I wanted to take a moment to break that finding out and give some additional guidance.

SRG-OS-99999-ESXI5-000158 – Unauthorized Kernel Modules Must Not Be Loaded on Host

So the key word here is “unauthorized”.  What do they mean?  Well, they are talking about unsigned kernel modules, but there’s a trick to even that.  Per the STIG no kernel module may be loaded that lacks a digital signature… so lets look at how we can do this check.

Right off I’ll tell you there’s at least two ways, likely more, to knock this out.  By default there are a LOT of kernel modules on a default ESXi Server install, too many to go through by hand per the instructions in the STIG.  How can we make this easier.

Continue reading

Note: This article covers material present in Version 1 Revision 3 and below.  Topics found below may be mitigated in the most current version of the ESXi 5 STIG.  Ensure you are using the most current version of the DISA STIG documents.

In this article I’m going to cover how you can setup the cron jobs necessary in ESXi 5.x to monitor for setUID, setGID, and device file changes per the ESXi 5 STIG.  I will walk you through adding a few scripts to your system that will provide log files that are date/time stamped.

Note: The following is unsupported by VMware.

The scripts outlined below are for educational purposes only to assist in your compliance efforts.  They are in no way meant to be a singular solution nor a replacement for a commercial OS baseline monitoring tool.

GEN002400-ESXI5-10047, GEN002460-ESXI5-20047, GEN002260-ESXI5-000047 – setUID, setGID, and Extraneous Device File Monitoring

First off, as before, the changes we are about to make will not persist across reboots without our help so please reference Blog Series: ESXi 5 STIG – File and Setting Persistence.  Keep that handy in the next tab over for reference.

So, we need to add some automated scripts to your ESXi host to parse the file system for suid, guid, and device files.  The method in which you review and/or determine changes have been made is up to you, ESXi provides you no mechanism to accomplish this.  All we are doing here is setting up the automated process of dumping the data required per the STIG.

Continue reading

*** Update ***

The ESXi 5 STIG for ESXi Server and vCenter Server is now at version 1 revision 3.  The only difference between revision 2 and 3 is the removal of some IAVM findings incorrectly included in the previous release.  The certificate requirements have still been pulled and the below information valid for revision 3.


Ok, so yesterday DISA released the ESXi 5 Version 1 Revision 2 of the STIG.  Now this is only Revision 2 of the ESXi 5 Server and vCenter Server STIG, not the VM.  That is still at revision 1.

Why did they do it?  Just one thing, the removal of  the rule The system must not use default self-signed certificates for <ESXi / vCenter> Communication.  So, if you want to follow the STIG, you no longer have to replace the default certificates provided, or you could replace them with an internal CA.

Why did they do this?  Well, there’s a reason, but not one I’m going to put here on a public blog.  If you’d like to know why just ask your SE.  I will have either already informed them, or they can reach out to me for the information internally.

For years now as VMware has traveled down the path of the Virtual Appliance.  It’s nothing new, but the approach has changed thanks to a few very key people within the company.

The Virtual Appliance of the past typically almost never saw an OS patch, rarely was hardened, and quite frankly scared Federal Admins and IA groups for those reasons.  Truth be told, they all wanted to use them, but getting it approved was just too much of a hurdle.  That is quickly changing, and some of it has already and you didn’t even know it.

With 5.5 on the horizon you’re going to see a new breed of Virtual Appliance for products such as vCenter Server and vCenter Orchestrator that are all based upon a common OS, common set of services, and a common set of hardening.  No more one-offs, everything is going to a standard.  What does that mean for you?  A great deal from both the administrative and security point of view.

Continue reading

Note: This article covers material present in Version 1 Revision 3 and below.  Topics found below may be mitigated in the most current version of the ESXi 5 STIG.  Ensure you are using the most current version of the DISA STIG documents.

** Updated 9/9/13 to include distinction on Privilege Separation between v5.0 and 5.1 and above **

Note: All settings within the sshd_config file are case sensitive.  Options are typically all lower case {yes|no} and are all expressed as <settings> <option> within the configuration file.  The easiest way to verify an issue during your configuration is to have a second console open and run 'tail -f /var/log/auth.log' while attempting a connection.

I’m going to start with the SSH daemon findings.  Why?  Because it’s been a topic of conversation internally for the past few days, and it’s just littered with problems to talk about.

So, here’s the format we’re going to follow.  I’m going to divide this into sections calling out the STIG ID and Rule Title.  If the rule causes no issue I’ll call it out, but that will be about it.  By the end of the article you’ll have a list of rules that you comply with, or at the very least you’ll know why you cannot.  Here we go…

The SSH daemon settings in the ESXi 5 STIG pose a bit of a problem for those implementing them.  To make it worse, there’s some confusion and lack of direction to several of the findings, plus one permanent finding that you cannot set on 5.0, but can on 5.1+.  Let’s get started with the SSH daemon settings below.  I’ll cover the SSH client settings in the next post. Continue reading

Note: This article covers material present in Version 1 Revision 3 and below.  Topics found below may be mitigated in the most current version of the ESXi 5 STIG.  Ensure you are using the most current version of the DISA STIG documents.

Ah the dreaded STIG. For many, a necessity by way of policy, but an implementation headache for all. Sadly the ESXi 5 STIG, released at V1R1 on August 9th 2013, will be no different.

In the spirit of VMFieldTips I will be taking you on a journey over the next few weeks through the ESXi 5 STIG. I will hit the head scratchers, problem points, and the just plain crazy.  Also, where appropriate, I will try and loop in the official VMware Security Hardening Guides if possible.  I know @mikefoley will be proud.

What this blog series is not:  It is not an official implementation guide by any means.  It is a compilation of questions and answers from the field on how to address, or in some cases securely work around, the findings in the ESXi 5 STIG.  It is completely open for comment and can be driven by you.  If I have not covered a specific finding yet, ask me for it.  If you have a better way, throw it into a comment on the article.  I will review, discuss, and possibly even add it into the article itself.  Blogs are a way to learn, share, and in this case overcome and intense feelings of insanity as you muscle through the ESXi 5 STIG.

The ESXi 5 STIG is made up of three parts, ESXi Server, vCenter Server, and VM (vmx).  I will start this series off in the ESXi Server portion of the STIG, a few findings at a time to reduce the time between posts.  Already, just from the start, we are going to have our work cut out for us.

Posts that are a part of this series will be linked below.  I will also provide the full STIG ID(s) in each post for easy searching and Google indexing.  Ok, now let’s get to it.

Blog Series Table of Contents:

Blog Series: ESXi 5 STIG – ESXi Server SSH Daemon

Blog Series: ESXi 5 STIG – File and Setting Persistence

Blog Series: ESXi 5 STIG – ESXi Server SSH Client

Blog Series: ESXi 5 STIG – ESXi Server Password Complexity Requirements