IIS auf Windows 2008 R2
Sicherheit erhöhen
zuallererst natürlich SSL aktivieren.
Abschalten von SSL2:
- ssl2_off.reg
[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
[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
[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
[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
[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
[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