IIS auf Windows 2008 R2

Sicherheit erhöhen

zuallererst natürlich SSL aktivieren.

Abschalten von SSL2:
ssl2_off.reg
Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols]
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0]
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Client]
"DisabledByDefault"=dword:00000001
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server]
"Enabled"=dword:00000000
"DisabledByDefault"=dword:00000001 

anschließend Neustart des Rechners erforderlich, Neustart des IIS reicht nicht!

Abschalten von SSL3 wegen Poodle:
ssl3_off.reg
Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0]
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client]
"DisabledByDefault"=dword:00000001
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server]
"Enabled"=dword:00000000

anschließend Neustart des Rechners erforderlich, Neustart des IIS reicht nicht!

Abschalten von RC4:
rc4_off.reg
Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 128/128]
"Enabled"=dword:00000000
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 40/128]
"Enabled"=dword:00000000
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 56/128]
"Enabled"=dword:00000000
Abschalten von DH kleiner 2048:
disabledh2048.reg
Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\Diffie-Hellman]
 
"ServerMinKeyBitLength"=dword:00000800
Anschalten von TLS 1.1 und TLS 1.2:
tls_on.reg
Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1]
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client]
"DisabledByDefault"=dword:00000000
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server]
"DisabledbyDefault"=dword:00000000
"Enabled"=dword:ffffffff
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"DisabledByDefault"=dword:00000000
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:ffffffff

anschließend Neustart des Rechners erforderlich, Neustart des IIS reicht nicht!
siehe auch: https://www.ssllabs.com/ssltest/index.html

Abschalten von DES
des_off.reg
Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\DES 56/56]
"Enabled"=dword:00000000

anschließend Neustart des Rechners erforderlich, Neustart des IIS reicht nicht!

Strict-Transport-Security aktivieren

Verhinderung von Man-in-the-Middle-Attacke durch aufknacken der Verschlüsselung per SSL-Proxy
im IIS-Manager auf den Servernamen gehen;
dann auf HTTP Response Headers;
dann neuen Eintrag Strict-Transport-Security erstellen;
dann mit neuem Wert max-age=31536000;includeSubDomains erstellen;
danach ist der Header sofort aktiv; es ist kein IIS Neustart erforderlich.

bevorzugtes Verschlüsselungsverfahren (cipher) auswählen
setpreferredCipher.cpp
// setpreferredCipher.cpp : 
// lib: bcrypt.lib
 
#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
#include <bcrypt.h>
void main(void)
{
SECURITY_STATUS Status = ERROR_SUCCESS;
LPWSTR wszCiphertop = (L"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384");
LPWSTR wszCipherbottom = (L"TLS_RSA_WITH_RC4_128_SHA");
 
Status = BCryptAddContextFunction(CRYPT_LOCAL,L"SSL",NCRYPT_SCHANNEL_INTERFACE,wszCiphertop,CRYPT_PRIORITY_TOP);
printf("\nSet %S on top\n",wszCiphertop);
// Schmuddelkind RC4 wird von manchen Programmen noch gebraucht
Status = BCryptAddContextFunction(CRYPT_LOCAL,L"SSL",NCRYPT_SCHANNEL_INTERFACE,wszCipherbottom,CRYPT_PRIORITY_BOTTOM);
printf("\nSet %S on bottom\n",wszCipherbottom);
}

siehe auch:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002]


Backup

list all backups:

%windir%\system32\inetsrv\appcmd.exe list backup

backup:

%windir%\system32\inetsrv\appcmd.exe add backup ”IISbkp_12.Juni.2015 ”

restore:

%windir%\system32\inetsrv\appcmd.exe restore backup ”IISbkp_12.Juni.2015 ”

delete a backup:

%windir%\system32\inetsrv\appcmd.exe delete backup ”IISbkp_12.Juni.2015 ”

Windows Powershell for Webaccess

Installation

Zugriff auf die Powershell soll per Web auf einen Server möglich sein.
IIS mit SSL muss installiert und konfiguriert sein.
Feature Windows PowerShell / Windows PowerShell Web Access muss installiert sein.

import-Module Webadministration
install-PswaWebApplication -Webapplication meinPSzugriff
Add-PswaAuthorizationRule -UserName myDomain\myDomuser * *

Die Einstellungen wirken sofort ohne Neustart.
Jetzt ist ein Zugriff auf den Webserver über https://meinwebserver/meinPSzugriff
für den Benutzer myDomain\myDomuser
auf den Computer . möglich.

Deinstallation
Uninstall-PswaWebApplication -Webapplication meinPSzugriff