26
Windows Server 2008 R2 разработка .NET приложений для Server Core

Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер

Embed Size (px)

Citation preview

Page 1: Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер

Windows Server 2008 R2разработка .NET приложений для Server Core

Page 2: Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер

Почему Server Core?

Windows Server® часто разворачиваю для выполнения всего одной ролиValue Proposition

Уменьшение attack surface areaСервер оптимизирован для выполнения роли - легче управлять и поддерживатьПовышение надежности и безопасностиМеньший объем установки и запуска

Page 3: Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер

Обзор Server CoreServer Core

Минимальная инсталляция Windows ServerCommand Line interface, no GUI Shell

Входит в следующие редакции Windows Server

WebStandardEnterpriseDatacenter

Server Core - уменьшенное количество обновления

Windows 2000 ~60%Windows Server 2003 ~40%Windows Server 2008 ~40%

Page 4: Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер

Server Core в Windows Server 2008

Server Core поддерживаетСледующие роли:

DHCP, File, Print, AD, AD LDS, Media Services, DNS, IIS, and Hyper-V

Следующие дополнительные компоненты:

WINS, Failover Clustering, Subsystem for UNIX-based applications, Backup, Multipath IO, Removable Storage Management, Bitlocker Drive Encryption, SNMP, Telnet Client, QoS

Page 5: Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер

Архитектура Server Core

Server Core Server Roles

Server CoreSecurity, TCP/IP, File Systems, RPC,plus other Core Server Sub-Systems

DNS DHCP FileAD

ServerWith .NETFx,

Shell, Tools, etc.

TS NAS ADFS WDS Etc…

GUI, Shell, IE, Media, Mail, Etc.

Server, Server Roles (for example only)

ADLDS

MediaServer IIS 7 Hyper-V

Print

Page 6: Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер

Расширение Server Core в R2 .NET Framework для Server Core

Подмножество .NET 2.0 Подмножество .NET 3.0

Windows Communication Framework (WCF) Windows Workflow Framework (WF)

Подмножество .NET 3.5 WF расширения 3.5 LINQ

Частичная поддержка ASP.NET вIIS PowerShell WoW64 опциальный компонент

Не устанавливается по умолчанию

Page 7: Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер

Архитектура 2008 R2 Server Core

Server Core Server Roles and Optional Features

Server CoreSecurity, TCP/IP, File Systems, RPC,plus other Core Server Sub-Systems

DNS DHCP FileAD

ServerWith .NetFx, Shell,

Tools, etc.

TS NAS ADFS WDS Etc…

Server, Server Roles (for example only)

ADLDS

MediaServer IIS 7 Hyper-V

Print

ASP.NETPS.NET3/3.5

.NET2.0

WoW64 GUI, Shell, IE, Media, Mail, Etc.

Page 8: Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер

Архитектура .NET Framework

CLR 2.0

LINQ

CLR 3.0Additions

CLR 3.5Additions

WPF ASP.NETWCF WF

Page 9: Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер

CLR 2.0

ASP.NETWPF

.NET Framework на Server Core

LINQ

CLR 3.0Additions

CLR 3.5Additions

WPFWCF WF

Page 10: Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер

.NET Framework 2.0 на Server Core Подмножество .NET 2 на Server Core Установка

Start /w ocsetup NetFx2-ServerCore Для поддержки 32bit :

Start /w ocsetup ServerCore-WOW64 Start /w ocsetup NetFx2-ServerCore-WOW64

Page 11: Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер

.NET Framework 3 на Server Core

.NET 3 функциональность WPF нет на Server Core

.NET 3.5 функциональность LINQ

.NET 3 и 3.5 устанавливаются в одном пакете Start /w ocsetup NetFx3-ServerCore Для поддержки 32bit:

Start /w ocsetup ServerCore-WOW64 Start /w ocsetup NetFx3-ServerCore-WOW64

Page 12: Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер

.NET Namespaces не доступные на Server Core Microsoft.Aspnet.Snapin Microsoft.Ink Microsoft.ManagementConsole.* Microsoft.StylusInput.* Microsoft.VisualBasic.Compatibility.VB6 Microsoft.Windows.Themes Microsoft.WindowsCE.Forms Microsoft.WindowsMobile.DirectX.* System.ComponentModel.Design.*

System.Data.Design System.Deployment.Applicatio

n System.Diagnostics.Design System.Media System.Messaging.Design System.Speech.* System.Web.UI.Design.* System.Windows.* UIAutomationClientsideProvide

rs

Page 13: Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер

VS 2008 C# Installer Необходимо выбрать Target Platform x64 Необходимо модифицировать msi при

помощи Orca.exe В таблице Custom Action необходимо удалить

строки: DIRCA_CheckFx VSDCA_VsdLaunchConditions

Page 14: Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер

Демо

Page 15: Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер

ASP.NET

Входит в IIS, в тот же пакет что и в полном сервере: IIS-ASPNET

Ограничения System.Web.Mail не будут работать по

причине CDOSYS Используйте System.Net.Mail

Web Application Tool (WAT) не доступно

Page 16: Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер

Удаленное управление IIS на Server Core Установите IIS Management Service

Start /w ocsetup IIS-ManagementService Разрешите Remote Management

В HKLM\Software\Microsoft\WebManagement\Server выставить EnableRemoteManagement в 1

Запустить Management Service Net start wmsvc

Page 17: Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер

Другие IIS Features в Server Core IIS-NetFxExtensibility

Поддержка .NET framework модулей расширения

IIS-PowerShellProvider IIS PowerShell cmdlets

IIS-FTPExtensibility IIS-WebDAV WCF-HTTP-Activation

Page 18: Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер

Демо

Page 19: Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер

Установка PowerShell Start /w ocsetup

MicrosoftWindowsPowerShell PowerShell cmdlets

Server Manager cmdlets Start /w ocsetup ServerManager-PSH-Cmdlets add-pssnapin Microsoft.windows.servermanager Cmdlet’ы: add-windowsfeature, get-windowsfeature и

remove-windowsfeature Best Practice Analyzer cmdlets

Start /w ocsetup BestPractices-PSH-Cmdlets add-module BestPractices Cmdlet’ы: get-bparesult, invoke-bpamodel и set-

bparesult

Page 20: Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер

Демо

Page 21: Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер

Server Core Coding Best Practices

Создавайте единый бинарник для Server и Server Core

Идеальный вариантНе делайте зависимостей GUIДля native code, используйте минимальный уровень Win32 APIsДля managed code, ограничитесь Server Core subsetТестируйте на Server Core

Работающий, но не идеальный вариант

Делайте GUI зависимостиПроверяйте что запущенно на Server CoreЕсли да, то отключайте GUIТестируйте на Server Core

Page 22: Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер

Определение Server Core

Вызывайте GetProductInfo API

Value Meaning

PRODUCT_DATACENTER_SERVER0x00000008

Server Datacenter Edition (full installation)

PRODUCT_DATACENTER_SERVER_CORE0x0000000C

Server Datacenter Edition (Server Core installation)

PRODUCT_ENTERPRISE_SERVER0x0000000A

Server Enterprise Edition (full installation)

PRODUCT_ENTERPRISE_SERVER_CORE0x0000000E

Server Enterprise Edition (Server Core installation)

PRODUCT_STANDARD_SERVER0x00000007

Server Standard Edition (full installation)

PRODUCT_STANDARD_SERVER_CORE 0x0000000D

Server Standard Edition (Server Core installation)

Page 23: Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер

Определение Server Core

InstallationType Registry entry HKLM\Software\Microsoft\Windows NT\

CurrentVersion Возможные значения Client, Server и

ServerCore

Page 24: Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер

Ограничения Server Core

Нет Explorer Shell, Task Bar и System TrayНет Internet Explorer

Http.sys включенНет Audio/Video/MultimediaНет MMCНет common dialog box :

Browse buttons в MSIsOpen/Save/Save as

Page 25: Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер

Installation Best Practices

Server Core включает поддержку Windows Installer (MSI)

Добавьте поддержкуUnattended install/quiet

32 bit инсталляторы и Custom Actions требуют ServerCore-WOW64

Page 26: Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер

Вопросы