Deploying and Managing a Customized Web Server on Server Core

Deploying and Managing a
Customized Web Server on
Server Core
Fabio Yeon
Software Developer Engineer
Robert McMurray
Program Manager
Agenda
Introduction to Server Core
IIS 7.0 on Server Core
Installation and Setup
Remote management options
Modules overview
Best practices
Q&A
Server Core
Introduction
Server Core SKU takes Win2008 a step further
GUI programs and tools are not installed or patched
Reduces resource footprint for OS
Minimizes attack surface
Note: Managed code support is not available
Great for dedicated or appliance type of scenarios
Vertical applications
Specialized, easily deployed turnkey solutions
Server Core
Running IIS 7.0
IIS 7.0 on Server Core
Most IIS 7.0 features available
Componentized and flexible setup
Install only what you really need
No .NET Extensibility or ASP.NET
Ultimate low footprint web server
Lower memory requirement
Lean OS configuration
Minimize attack surface
Server Core
Web Server Scenarios
Static file web hosting (images, Office documents, etc.)
FastCGI with PHP, Perl, etc.
Classic ASP applications
CGI/ISAPI applications
Web-based appliance management
Server Core
Managing IIS 7.0
Managing Server Core
Full fidelity with non-GUI based IIS 7.0 configuration
management
Command line
Scripting
Remote PowerShell
Editing ApplicationHost.config and Web.config files
No GUI shell or manage-code management
Installing IIS 7.0 features:
OCList
Provides full list of features and dependencies
OCSetup <component>
Installs component (plus dependencies)
Demo
Building a static web server
Fabio Yeon
Software Developer
IIS 7.0
Creating Specialized Web Servers
Componentization for Deployments
IIS 7.0’s componentized architecture allows for
complete customization of the Web server
Lightweight, static image server to full-featured Web
server
Rich administration and remoting story to allow for
appliance-like simplicity in management
Replace modules with customized implementations
(example: authorization provider)
Creating Specialized Web Servers
Componentization for Security
Provides maximum attack surface reduction
Binaries are only installed when features are added
Patches for IIS features that are not installed are only
installed to the installation repository
IIS 7.0 Modules & Features
Server Components
Core Components
Security
BasicAuthModule
Application
Development
Health and
Diagnostics
NetFxExtensibility
DigestAuthModule
HttpLoggingModule
ISAPIModule
FTP Publishing
FTPServer
FTPManagement
CustomLoggingModule
WindowsAuthModule
ISAPIFilterModule
RequestMonitorModule
CertificateAuthModule
CGIModule
HTTPTracingModule
AnonymousAuthModule
FastCGIModule
ODBCLogging
IPSecurityModule
ServerSideIncludeModule
LoggingLibraries
UrlAuthorizationModule
Performance
HTTPStaticCompression
HTTPDynamicCompression
ASP
RequestFilteringModule
ASP.NET
Management
ManagementConsole
Common HTTP Web Server Components
StaticFileModule
DefaultDocumentModule
HttpRedirect
DirectoryListingModule
CustomErrorModule
ManagementScripting
ManagementService
Metabase
WMICompatibility
Windows Process Activation Service
ProcessModel
NetFxEnvironment
ConfigurationAPI
LegacyScripts
LegacySnap-in
Demo
Building an application server
Fabio Yeon
Software Developer
IIS 7.0
Server Core
Remote Management
Setting up management:
SCRegEdit.wsf
Netsh / Netdom
Managing server core remotely:
Remote Desktop
MMC
WinRM and WinRS
Most useful for running arbitrary command remotely
Lose strong-type and error handling abilities of other
options
Installing IIS remotely
OCList and OCSetup can run remotely through WinRM/WinRS
Server Core
IIS 7.0 Remote Scripting
Microsoft.Web.Administration (MWA)
Managed code can be run at master management machine,
underlying COM objects are connected via DCOM
WMI
All objects can be remotely accessed
Microsoft.ApplicationHost.AdminManager (ahadmin)
JScript/VBScript using DCOM
PowerShell (using WMI/MWA)
Not yet directly remotable, but can use WMI and MWA from it
WinRM / WinRS
Use with OCList, OCSetup, AppCmd, etc.
Demo
Managing IIS 7.0 remotely
Fabio Yeon
Software Developer
IIS 7.0
IIS 7.0 Modules for Server Core
Deployment Considerations
Application Development
Classic ASP
CGI/FastCGI (i.e. PHP)
Native-code modules
Performance
Static and Dynamic Compression
Output Caching
Security
Authentication and Url Authorization
Request Filtering
Diagnostics
Failed Request Tracing
Request Monitoring
Best Practices
Configuring Remote Management
Firewall rules need to be set up for Remote Desktop,
WinRM/WinRS, MMC (Remote Administration), etc.
IIS-Specific Considerations
Minimize attack surface (hackers can’t exploit what’s not there)
Use OCSetup to remove modules to ensure the binaries are taken
off the box
Use security-sensitive modules: Request filtering, Url
authorization
Utilize features like Failed Request Tracing to diagnose issues
Check that you have all the required modules for your
application (Always test your application after removing
modules)
Session Summary
During this presentation we discussed the following IIS
7.0 topics on Windows Server 2008 Core:
Installation and Setup of IIS 7.0
Remote Management Options for IIS 7.0
IIS 7.0 Modular Design and Minimal Deployment
Best Practices for IIS 7.0 on Server Core
IIS.NET
Home for the IIS Community!
In-depth technical articles and samples
Connect with other IIS experts on blogs & forums
Free advice and assistance in forums
Download center with IIS solutions
Related Content
The following walkthroughs for IIS 7.0 are available on
the www.iis.net web site:
Installing IIS 7.0 from a command-line
Build a Custom IIS7 Server
IIS7 on Server Core
Getting Started with AppCmd.exe
Administering IIS7 on Server Core Installations of Windows
Server 2008
IIS 7.0 at ITForum: Session Schedule
Tuesday
Location
IIS 7.0 for IT Pros (WSI204)
09:00 - 10:15
Tent 1
13:30 - 14:45
Room 115
Managing Web Farms on IIS (WSI302)
15:15 - 16:30
Wednesday
10:45 - 12:00
Room 134
Securing Internet Information Services 7 (WSI03-IS)
Room 121
Remotely Managing for IIS 7.0 (WSI309)
13:30 - 14:45
Room 115
Publishing Content to IIS 7.0 (WSI308)
09:00 - 10:15
Room 131
Troubleshooting Web Sites on IIS 7.0 (WSI02-IS)
10:45 - 12:00
Room 125
Running PHP on Windows Server 2008 (WSI307)
15:45 - 17:00
Room 115
Customized Web Server on Server Core (WSI311)
Friday
09:00 - 10:15
Room 115
Managing IIS 7.0 Through Scripting (WSI310)
10:45 - 12:00
Room 134
Securing Internet Information Services 7 (WSI03-IS)
12:15 - 13:00
Room 116
Deliver Rich Media on Windows Server 2008 (WSI01-PD)
13:30 - 14:45
Room 133
Q&A with the IIS Product Team (WSI04-IS)
Thursday
Q&A
Fabio Yeon
Software Developer Engineer
Robert McMurray
Program Manager
Resources
Technical Communities, Webcasts, Blogs, Chats &
User Groups
http://www.microsoft.com/communities/default.mspx
learn
Microsoft Learning and Certification
http://www.microsoft.com/learning/default.mspx
support
connect
Microsoft Developer Network (MSDN) & TechNet
http://microsoft.com/msdn
http://microsoft.com/technet
Trial Software and Virtual Labs
http://www.microsoft.com/technet/downloads/trials/default.
mspx
subscribe
TechNet Library
Knowledge
Base Forums
TechNet Magazine
Security bulletins
User Groups
Newsgroups
New, as a pilot for 2007, the Breakout sessions will be
available post event, in the TechEd Video Library, via the
My Event page of the website
E-learning Product
Evaluations Videos
Webcasts V-labs
Blogs
MVPs
Certification Chats
Visit TechNet in the ATE Pavilion and get a FREE 60-day subscription to TechNet Plus!
Complete your evaluation on the My Event pages
of the website at the CommNet or the Feedback
Terminals to win!
All attendees who submit
a session feedback form
within 12 hours after the
session ends will have the
chance to win the very latest
HTC 'Touch' smartphone
complete with Windows
Mobile® 6 Professional
© 2007 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only.
MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.