Strengthening the Security of an IIS 8.5 Web Server

Strengthening the security of an IIS 8.5 web server. Let's Encrypt Windows certificate, protocols, ciphers, hashes, and key exchange.

Strengthening the Security of an IIS 8.5 Web Server

Real-world use case

You're exposing an IIS web server on the Internet: here's how to strengthen its security, version 8.5.

The security of a web server

The security of a web server is often overlooked. Here are some of my IIS hardening methods, for a web server running version 8.5 on Windows Server 2012 R2 Standard.

To start, you need to understand the SSL/TLS protocol and how it works. Personally, here are the tools/methods I use to strengthen a web server:

  • Signed certificate: I've only used the Let's Encrypt authority since 2015, with a 3076-bit RSA key (2048-bit is still tolerated until 2030).
  • Elliptic-curve Diffie-Hellman key exchange: ECDHE key exchanges should be favored with the following curves: secp256r1, secp384r1, secp521r1, brainpoolP256r1, brainpoolP384r1, or brainpoolP512r1.
  • Header restriction: limit REST information disclosure.
  • Request logging: for tracking in case of an incident.
  • IP address and domain restrictions / Dynamic restrictions (anti-DoS).
  • Endpoint Detection and Response (on the Windows server).

Hardening an IIS 8.5 web server

Signed certificate: Let's Encrypt on Windows

  1. Download the latest available version of win-acme on your server: link
  2. Unzip the archive on the server
  3. Run wacs.exe, then: "N", then "1", and choose your IIS site (domain validation via port 80).
  4. Your website is then certified by a valid authority.
  5. Check the IIS bindings and the certificates used.

Protocols, ciphers, hashes, and key exchange

Download: IIS Crypto

Run the program.

Here's my configuration:

In the Cipher Suites section, here are my preferences:

Confirm your choices and restart the Windows server.

Limiting fingerprinting

In the IIS server, go to: HTTP Response Headers (here's my configuration):

I strongly encourage you to research each directive (e.g., Content-Security-Policy).

More verbose logs

To get more information about the requests received by your sites, go to the Logging tab:

The logs are more verbose and useful in the event of a server issue.

IP address and domain restrictions

In the IP Address and Domain Restrictions tab, I mainly use dynamic restriction:

Endpoint Detection and Response (optional)

Unusual behavior on a web server is often a sign of attack attempts. EDR lets you monitor the machine's behavior. I currently use the Bitdefender EDR solution. For more information: external EDR article.

Once your IIS web server is hardened, you should get the following result on ssllabs.com:

Conclusion

Jérémie Kassianoff

Cybernetics team

View profile

Read next

Achieving a 0% Exposure Score with Microsoft Defender Vulnerability Management
Microsoft

Achieving a 0% Exposure Score with Microsoft Defender Vulnerability Management

Read the article
Take Back Control of Your Microsoft Directories with an Infrastructure as Code Approach
Microsoft

Take Back Control of Your Microsoft Directories with an Infrastructure as Code Approach

Read the article
Installing and Configuring Azure Active Directory Connect
Microsoft

Installing and Configuring Azure Active Directory Connect

Read the article