| Acknowledgments | xvii |
| Introduction | xix |
| PART I MICROSOFT WINDOWS 2000 WEB ADMINISTRATION FUNDAMENTALS | |
| 1 Overview of Microsoft Web Services | 3 |
| Choosing Hardware | 4 |
| Using IIS | 6 |
| Installing IIS Components and Default Sites | 6 |
| Understanding Authentication Enhancements | 8 |
| Installing Internet Services and Service-Related Accounts | 8 |
| Web Administration Tools and Techniques | 9 |
| Managing Resources with Key Administration Tools | 9 |
| Installing Administration Tools | 10 |
| Web Administration Techniques | 11 |
| 2 Core IIS Administration | 17 |
| Working with IIS and URLs | 17 |
| Understanding the IIS Architecture | 17 |
| Understanding URLs | 19 |
| Internet Information Services Snap-In Essentials | 22 |
| Starting and Using the Internet Information Services Snap-In | 22 |
| Connecting To Other Servers | 24 |
| Starting, Stopping, and Restarting All Internet Services | 25 |
| Starting, Stopping, and Pausing Individual Resources | 27 |
| Rebooting IIS Servers | 28 |
| Managing IIS Services | 29 |
| Core IIS Services | 30 |
| Starting, Stopping, and Pausing IIS Services | 30 |
| Configuring Service Startup | 31 |
| Configuring Service Recovery | 32 |
| Configuring IIS Backup and Recovery | 33 |
| Storing a Server’s Configuration | 33 |
| Creating IIS Configuration Backups | 35 |
| Restoring IIS from Backup Configurations | 36 |
| Rebuilding Corrupted IIS Installations | 36 |
| Deleting Backup Configurations | 37 |
| PART II WEB SERVER ADMINISTRATION | |
| 3 Configuring Web Sites and Servers | 41 |
| Web Site Naming and Identification | 41 |
| Understanding IP Addresses and Name Resolution | 41 |
| Understanding Web Site Identifiers | 43 |
| Hosting Multiple Sites on a Single Server | 43 |
| Checking the Computer Name and IP Address of Servers | 46 |
| Managing Master Web Service Properties | 48 |
| Creating Web Sites | 48 |
| Managing Web Site Properties | 52 |
| Configuring a Site’s Home Directory | 52 |
| Configuring Ports, IP Addresses, and Host Names Used by Web Sites | 53 |
| Configuring Multiple Identities for a Single Web Site | 55 |
| Restricting Incoming Connections and Setting Time-Out Values | 56 |
| Configuring HTTP Keep-Alives | 57 |
| Managing Directories | 58 |
| Understanding Physical and Virtual Directory Structures | 58 |
| Creating Physical Directories | 59 |
| Creating Virtual Directories | 59 |
| Linking IISAdmin, IISHelp, and Other System Directories | 60 |
| Modifying Directory Properties | 61 |
| Renaming Directories | 61 |
| Deleting Directories | 62 |
| Managing Web Content | 62 |
| Opening and Browsing Files | 62 |
| Modifying the IIS Properties of Files | 62 |
| Renaming Files | 63 |
| Deleting Files | 63 |
| Redirecting Browser Requests | 63 |
| Redirecting Requests to Other Directories or Web Sites | 64 |
| Redirecting All Requests to Another Web Site | 65 |
| Retrieving Files from a Network Share | 65 |
| Redirecting Requests to Applications | 66 |
| Customizing Browser Redirection | 67 |
| 4 Customizing Internet Information Services | 71 |
| Essentials for Working with IIS Applications | 71 |
| Understanding ISAPI Applications | 72 |
| Understanding ASP Applications | 74 |
| Defining Custom Applications | 75 |
| Using and Running Applications | 77 |
| Managing Custom IIS Applications | 80 |
| Creating Pooled and Nonpooled Applications | 80 |
| Configuring Application Mappings and Caching | 82 |
| Managing Session State | 85 |
| Controlling Application Buffering | 87 |
| Setting Parent Paths, Default ASP Language, and ASP Script Time-Out | 88 |
| Enabling and Disabling Application Debugging | 89 |
| Configuring Application Error Messages | 89 |
| Unloading Isolated Applications | 89 |
| Deleting IIS Applications | 90 |
| Managing Custom ISAPI Filters | 90 |
| Viewing and Configuring Global Filters | 90 |
| Viewing and Configuring Local Filters | 91 |
| Customizing Web Site Content and HTTP Headers | 92 |
| Configuring Default Documents | 92 |
| Configuring Document Footers | 93 |
| Using Content Expiration and Preventing Browser Caching | 94 |
| Using Custom HTTP Headers | 95 |
| Using Content Ratings | 96 |
| Customizing Web Server Error Messages | 98 |
| Understanding Status Codes and Error Messages | 98 |
| Managing Custom Error Settings | 100 |
| Using MIME and Configuring Custom File Types | 103 |
| Understanding MIME | 103 |
| Viewing and Configuring MIME Types for All Web Sites on a Server | 105 |
| Viewing and Configuring MIME Types for Individual Sites and Directories | 106 |
| Additional Customization Tips | 106 |
| Using Update Sites to Manage Outages | 107 |
| Using Jump Pages for Advertising | 108 |
| Handling 404 Errors and Preventing Dead Ends | 109 |
| 5 Managing Web Server Security | 111 |
| Managing Windows Security | 111 |
| Working with User and Group Accounts | 112 |
| IIS User and Group Essentials | 112 |
| Working with File and Folder Permissions | 116 |
| Working with Group Policies | 121 |
| Managing IIS Security | 127 |
| Setting Web Server Permissions | 127 |
| Configuring Distributed Authoring and Versioning | 132 |
| Setting Authentication Modes | 133 |
| Configuring IP Address and Domain Name Restrictions | 137 |
| Configuring Web Site Operators | 140 |
| More Tips for Enhancing Web Server Security | 142 |
| Using Firewalls | 142 |
| Renaming the Administrator Account | 142 |
| Disabling the Default Web Site | 142 |
| Disabling Remote Administration from the Web | 143 |
| Disabling Directory Browsing | 143 |
| Creating Legal Notices | 143 |
| Applying Service Packs, Hot Fixes, and Templates | 144 |
| Removing the IISADMPWD Virtual Directory | 146 |
| Checking for Malicious Input in Forms and Query Strings | 146 |
| Removing Unused Application Mappings | 147 |
| 6 Managing Microsoft Certificate Services and SSL | 149 |
| Understanding SSL | 149 |
| Using SSL Encryption | 149 |
| Using SSL Certificates | 151 |
| Understanding SSL Encryption Strength | 153 |
| Working with Microsoft Certificate Services | 154 |
| Understanding Certificate Services | 154 |
| Installing Certificate Services | 155 |
| Accessing Certificate Services in a Browser | 158 |
| Starting and Stopping Certificate Services | 159 |
| Backing Up and Restoring the CA | 160 |
| Approving and Declining Pending Certificate Requests | 163 |
| Generating Certificates Manually in the Certification Authority Snap-In | 163 |
| Revoking Certificates | 164 |
| Reviewing and Renewing the Root CA Certificate | 165 |
| Creating and Installing Certificates | 166 |
| Creating Certificate Requests | 167 |
| Submitting Certificate Requests to Third-Party Authorities | 170 |
| Submitting Certificate Requests to Certificate Services | 172 |
| Processing Pending Requests and Installing Site Certificates | 174 |
| Deleting Pending Certificate Requests | 175 |
| Working with SSL | 175 |
| Configuring SSL Ports | 175 |
| Adding the CA Certificate to the Client Browser’s Root Store | 177 |
| Confirming that SSL Is Correctly Enabled | 179 |
| Resolving SSL Problems | 179 |
| Managing Site Certificates in the Internet Information Services Snap-In | 180 |
| Viewing and Modifying Issued Certificates | 180 |
| Renewing, Removing, and Replacing Certificates | 182 |
| Exporting Site Certificates | 183 |
| Ignoring, Accepting, and Requiring Client Certificates | 184 |
| Requiring SSL for All Communications | 185 |
| PART III ESSENTIAL SERVICES ADMINISTRATION | |
| 7 Managing FTP Servers | 189 |
| Understanding FTP | 189 |
| FTP Essentials | 189 |
| Controlling FTP Server Access | 190 |
| Working with FTP Sessions | 191 |
| FTP Site Naming and Identification | 193 |
| Managing Master FTP Service Properties | 194 |
| Creating FTP sites | 194 |
| Managing FTP Sites | 196 |
| Configuring an FTP Site’s Home Directory | 197 |
| Configuring Ports and IP Addresses Used by FTP Sites | 198 |
| Restricting Incoming Connections and Setting Time-Out Values | 199 |
| Creating Physical Directories for FTP Sites | 200 |
| Creating Virtual Directories for FTP Sites | 201 |
| Redirecting Requests to a Network Share | 202 |
| Setting the Directory Listing Style | 202 |
| Setting Welcome, Exit, and Maximum Connection Messages | 202 |
| Managing FTP User Sessions | 203 |
| Viewing FTP User Sessions | 203 |
| Viewing the Total Number of Connected Users | 204 |
| Terminating FTP User Sessions | 205 |
| Managing FTP Server Security | 205 |
| Managing Anonymous Connections | 206 |
| Configuring Windows Permissions on FTP Servers | 208 |
| Configuring FTP Server Permissions | 208 |
| Configuring IP Address and Domain Name Restrictions | 210 |
| Configuring FTP Site Operators | 213 |
| 8 Configuring and Maintaining SMTP | 215 |
| Using SMTP | 215 |
| Understanding E-Mail Domain Usage | 216 |
| Understanding the Mailroot | 217 |
| Understanding Mail Processing | 218 |
| Core SMTP Administration | 219 |
| Creating SMTP Virtual Servers | 219 |
| Configuring Ports and IP Addresses Used by SMTP Servers | 221 |
| Configuring Multiple Identities for SMTP Virtual Servers | 222 |
| Monitoring SMTP Virtual Server Health | 223 |
| Managing User Sessions | 224 |
| Configuring Service Domains | 224 |
| Viewing Configured Service Domains | 224 |
| Working with Local Domains | 225 |
| Working with Remote Domains | 227 |
| Configuring Smart Hosts for Remote Domains | 232 |
| Renaming and Deleting Service Domains | 233 |
| Handling Incoming Connections | 234 |
| Securing Access by IP Address, Subnet, or Domain | 234 |
| Controlling Secure Communications for Incoming Connections | 235 |
| Controlling Authentication for Incoming Connections | 236 |
| Restricting Incoming Connections and Setting Time-Out Values | 238 |
| Handling Outgoing Connections | 239 |
| Configuring Outbound Security | 239 |
| Controlling Outgoing Connections | 240 |
| Configuring Outgoing Message Limits for SMTP | 241 |
| Handling Nondelivery, Bad Mail, and Unresolved Recipients | 243 |
| Setting and Removing Relay Restrictions | 243 |
| Managing Message Delivery | 245 |
| Setting Outbound Retry Intervals, Delay Notification, and Expiration Time-Out | 245 |
| Setting Message Hop Count | 247 |
| Setting Domain Name Options | 247 |
| Configuring Reverse DNS Lookups | 248 |
| Routing Outgoing Messages to Smart Hosts | 249 |
| 9 Administering the Indexing Service | 251 |
| Getting Started with the Indexing Service | 252 |
| Using the Indexing Service | 252 |
| Indexing Service Essentials | 255 |
| Searching Catalogs | 258 |
| Core Indexing Service Administration | 260 |
| Setting Web Resources to Index | 260 |
| Viewing and Creating Catalogs | 261 |
| Viewing Indexing Status | 261 |
| Starting, Stopping, and Pausing the Indexing Service | 263 |
| Setting Indexing Service Properties | 263 |
| Optimizing Indexing Service Performance | 265 |
| Managing Catalogs | 268 |
| Viewing Catalog Properties and Directories Being Indexed | 268 |
| Adding Physical Directories to a Catalog | 268 |
| Forcing Full and Incremental Directory Rescans | 270 |
| Starting, Stopping, and Pausing Individual Catalogs | 270 |
| Merging Catalogs | 271 |
| Specifying Web or NNTP Sites to Include in Catalogs | 271 |
| Testing Catalogs with Queries | 272 |
| PART IV PERFORMANCE, OPTIMIZATION, AND MAINTENANCE | |
| 10 Performance Tuning and Monitoring | 277 |
| Monitoring IIS Performance and Activity | 277 |
| Why Monitor IIS? | 277 |
| Getting Ready to Monitor | 278 |
| Monitoring Tools and Resources | 279 |
| Detecting and Resolving IIS Errors | 279 |
| Examining the Access Logs | 280 |
| Examining the Event Logs | 281 |
| Monitoring IIS Performance | 284 |
| Choosing Counters to Monitor | 284 |
| Creating and Managing Performance Monitor Logs | 289 |
| Replaying Performance Logs | 294 |
| Configuring Alerts for Performance Counters | 295 |
| Tuning Web Server Performance | 297 |
| Monitoring and Tuning Memory Usage | 298 |
| Monitoring and Tuning Processor Usage | 301 |
| Monitoring and Tuning Disk I/O | 303 |
| Monitoring and Tuning Network Bandwidth and Connectivity | 304 |
| 11 Tracking User Access and Logging | 309 |
| Tracking Statistics:The Big Picture | 309 |
| Working with the NCSA Common Log File Format | 310 |
| Working with the Microsoft IIS Log File Format | 314 |
| Working with the W3C Extended Log File Format | 316 |
| Working with ODBC Logging | 319 |
| Understanding Logging | 320 |
| Configuring Logging for HTTP, SMTP, and FTP | 322 |
| Configuring NCSA Common Log File Format | 322 |
| Configuring Microsoft IIS Log File Format | 323 |
| Configuring W3C Extended Log File Format | 325 |
| Configuring ODBC Logging | 327 |
| Disabling Logging | 331 |
| 12 IIS Optimization and the Metabase | 333 |
| Strategies for Improving IIS Performance | 333 |
| Removing Unnecessary Applications and Services | 333 |
| Optimizing Content Usage | 334 |
| Optimizing ISAPI and ASP Applications | 336 |
| Optimizing IIS Caching and Queuing | 337 |
| Configuring Automatic Restarts of IIS | 338 |
| Managing IIS Registry Settings | 339 |
| Working with the Registry | 339 |
| Controlling IIS Through the Registry | 341 |
| Controlling Indexing Service Through the Registry | 342 |
| Controlling Secure Sockets Layer Through the Registry | 343 |
| Managing IIS Metabase Settings | 344 |
| Examining and Editing the Metabase | 344 |
| Modifying Metabase Properties | 345 |
| Scripting the Metabase | 348 |
| INDEX | 353 |