A lot of this will depend on your environment, but this is a generalised list I've used before (I've included compliance stuff under each point):
- All software patched and linked into a patch manager
- Your patch manager should patch often and alert loudly if a machine falls out of compliance.
- All unnecessary ports closed
- Set up nagios or similar to run a port scan regularly - alert if anything new opens.
- All unnecessary user accounts purged
- Again, you should watch this with your monitoring and enforce it with GPO or similar.
- All unnecessary software removed
- Get rid of all the debug stuff, you should ideally be logging every installation so you can check it off as 'uninstalled' in your first pass.
- Server linked into log server
- You want it to alert you if anyone logs on interactively, if it gets rebooted, if anything happens really. What you care about will be environmentally specific.
- All alarms and alerts on log server configured
- This relates to 5 - but check that all your alerts and alarms are appropriate - turn off any you will ignore so you don't end up habitually ignoring errors.
- End protection configured and hooked up, incl. application-level firewall and AV
- You should centrally manage this, and as with the patch manager, alert if non-compliant. Turn on an application-level firewall and only allow stuff you want to connect in/out. Block everything else.
- All necessary software whitelisted
- Now that it's in production - scan the system for all software you want to run, whitelist it and block everything else. This will be environmentally specific, and you need to work it in with your patching.
- Time synchronised
- This is critical; a lot of the above all relies on timing working - AV, logging, etc.
- Network configured, all non-prod interfaces removed
- Physically unplug, uninstall, disable, whatever is appropriate - make sure there is no link back to your test or dev environments.
The servers should be tested continually - you want to continually and automatically check with your monitoring and automation. The stuff you can't check automatically, look at as often as is practical.
The idea is that a recertification should just be to glance at a report, tick off that everything is green, log on, check the last few things and you're done in less than 10 minutes.