<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Network Administration</title>
    <link rel="alternate" type="text/html" href="http://www.setup32.com/network-administration/" />
    <link rel="self" type="application/atom+xml" href="http://www.setup32.com/network-administration/atom.xml" />
   <id>tag:www.setup32.com,2008:/network-administration//2</id>
    <link rel="service.post" type="application/atom+xml" href="http://www.setup32.com/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=2" title="Network Administration" />
    <updated>2008-05-16T13:11:50Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.2</generator>
 
<entry>
    <title>Determining the cause of Windows server hang</title>
    <link rel="alternate" type="text/html" href="http://www.setup32.com/network-administration/windows-server-2003/determining-cause-server-hang.php" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.setup32.com/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=625" title="Determining the cause of Windows server hang" />
    <id>tag:www.setup32.com,2008:/network-administration//2.625</id>
    
    <published>2008-05-16T12:52:48Z</published>
    <updated>2008-05-16T13:11:50Z</updated>
    
    <summary>Previously in this series, we talked about why Windows server hangs occur and how to prepare to resolve the problem using a tool called the Windows Kernel Debugger, or Windbg. In this article, we&apos;ll finish up by learning how to analyze the crash dump and fixing the issue....</summary>
    <author>
        <name>Julian</name>
        
    </author>
            <category term="10. Windows Server 2003" />
    
    <content type="html" xml:lang="en" xml:base="http://www.setup32.com/network-administration/">
        <![CDATA[<p>Previously in this series, we talked about <a href="http://www.setup32.com/network-administration/windows-server-2003/windows-2003-troubleshooting-1.php">why Windows server hangs occur</a> and <a href="http://www.setup32.com/network-administration/windows-server-2003/preparing-troubleshoot-windows-2003.php">how to prepare to resolve the problem</a> using a tool called the Windows Kernel Debugger, or Windbg. In this article, we'll finish up by learning how to analyze the crash dump and fixing the issue.</p>]]>
        <![CDATA[<p>After you have captured a forced crash dump, you are ready to begin using Windbg to determine what caused the hang. The following sections will explore the appropriate Windbg commands to use depending on the type of hang.</p>

<p>You can invoke Windbg two ways. One way is from the Windows Start menu:</p>

<pre>    <strong>Start | All Programs | Debugging Tools for Windows | Windbg</strong></pre>

<p>The other is from the DOS command prompt:</p>

<pre>    <strong>C:\ > windbg</strong></pre>

<p>In Windbg, use the File pulldown menu to select Open Crash Dump, specifying the location of the dumpfile. This can be accomplished in one step from the command prompt by using the -z option:</p>

<pre>    <strong>C:\> windbg -z memory.dmp</strong></pre>

<p>Be sure to watch out for any warnings from Windbg indicating a truncated or inconsistent set-bit count. Messages like this may indicate the dumpfile is corrupt or missing data:</p>

<pre>********************************************************************************
WARNING: Dump file has been truncated. Data may be missing.
********************************************************************************
WARNING: Dump file has inconsistent set-bit count. Data may be missing.
********************************************************************************</pre>

<p>Windbg does a good job of pointing out problems with asterisks (*), so be sure to pay particular attention whenever you see them in the output. By default, the debugger output is displayed in the main window with a one-line command prompt at the bottom.</p>

<p>No matter what sort of hang your server has encountered, the first command that should be used in Windbg is this:</p>

<pre>    <strong>!analyze -v -hang</strong></pre>

<p>The <strong>!analyze</strong> command will perform a preliminary analysis of the dump and provide a "best guess" for what caused the crash. In the case of a forced dump, the analysis will typically point to the i8042prt.sys or kbdhid.sys driver because that is the driver that initiated the crash. You will also notice the bugcheck type is a 0xE2, indicating a manually initiated crash as seen in Figure 1.</p>

<p><img alt="Example of a manually initiated crash." src="http://www.setup32.com/network-administration/upload/2008/05/hs_1_thumb.jpg" width="440" height="235" /><br />
Figure 1.</p>

<p>In addition to providing a best guess for the cause of the crash, the <strong>!analyze</strong> command will also check for blocking locks and set the processor, process, thread and register context to the current ones at the time of the crash. Subsequent commands will use this context for their execution.</p>

<p>Once you have executed the !analyze command, the commands in Table 1 will help determine the footprint or circumstances that existed when the crash was forced. Be sure to focus on the current process, current thread, stack trace, virtual and physical memory usage, and locking information. We will take a closer look at these commands in subsequent sections.</p>

<p>Windbg commands for analyzing server hangs.</p>

<p>!process - Display current process information<br />
!thread - Display current thread information<br />
!running -it - Display currently executing threads on all CPUs<br />
!vm -  Display virtual memory usage<br />
!poolused - Display paged and non-paged pool usage<br />
!memusage - Display physical memory usage<br />
!locks - Display kernel locks held<br />
!stacks - Display summary of threads, states and function<br />
kv - Display current threads stack trace</p>

<p><strong>High-priority compute-bound threads</strong></p>

<p>Identifying the current process (!process) and the current thread (!thread) can prove useful if the server hung because of a high-priority runaway, compute-bound thread. Use the !running -it command, as it will list all the currently executing threads across all the processors. Processes and threads can be assigned various levels of priorities that can preempt other processes and threads.</p>

<p><strong>System resource depletion</strong></p>

<p>If you suspect a system resource depletion caused the hang, use the !vm, !poolused and !memusage commands. These commands display the virtual and physical memory usage at the time of the hang. Be sure to watch for any asterisks flagged by Windbg as illustrated in Figure 2.</p>

<p><img alt="Example of the !vm command illustrating excessive paged pool usage" src="http://www.setup32.com/network-administration/upload/2008/05/hs_2_thumb.jpg" width="440" height="249" /><br />
Figure 2.</p>

<p>To determine if paged pool or non-paged pool has been depleted, compare the "usage" to the "maximum" value as circled in red above. If the usage is relatively close to the maximum value, then there is a high likelihood that pool depletion caused the hang. You would then use the !poolused command to focus in on which pool data structure was responsible. The !poolused command has several flags to sort the paged or non-paged data structures according to their usage (see the online debugger help for more information on the command syntax and usage).</p>

<p>It is worth mentioning that pool statistics can also be acquired by several tools without the need for a memory dump. You can use Perfmon to collect general paged and non-paged performance statistics. Poolmon and Poolsnap are free tools from Microsoft that capture more granular specifics on the actual pool data structures. Finally, note that it is possible to tune paged pool on x86 servers by tweaking two registry values (PagedPoolSize and PoolUsageMaximum). For further details on tuning paged pool, check out Microsoft <a href="http://support.microsoft.com/kb/312362/en-us">KB article 312362</a>.</p>

<p><strong>Deadlock and spinlock hangs</strong></p>

<p>Use the !locks command if you suspect a deadlock hang. As explained earlier, a deadlock exists when one thread owns an exclusive lock on a resource that another thread wants, and that thread exclusively owns a resource that the initial thread wants. There are several variants of a deadlock scenario, but there must be waiter threads that stall as a result. In Figure 3, you can see a potential deadlock scenario where we have an exclusively owned lock on a resource that has numerous waiters.</p>

<p>You will notice under the list of threads for the resource that one has an asterisk next to it. This thread is the one that owns the exclusive lock for the resource. So, the question to be answered is, what is causing the owning thread to stall and not release the lock for the other waiters to acquire? Therefore, the next command to issue would be a !thread command on the owning thread to determine why it is stalled.</p>

<p><img alt="Example of a potential deadlock scenario" src="http://www.setup32.com/network-administration/upload/2008/05/hs_3_thumb.jpg" width="440" height="170" /><br />
Figure 3</p>

<p>Figure 4 shows the output of a !thread command on the owner. It reveals that it is stalled waiting for an I/O request packet (IRP) to complete from the QAFilter.sys driver. This particular case is a known issue caused by a deadlock with the QAFilter driver documented in Microsoft KB article 906194. Note that QAFilter and NmSvFsf are not standard Microsoft drivers, so symbols are not available for them from the Microsoft symbol server.</p>

<p><img alt="Example stack trace with outstanding IRP from QAFilter.sys" src="http://www.setup32.com/network-administration/upload/2008/05/hs_4_thumb.jpg" width="440" height="257" /><br />
Figure 4</p>

<p>A spinlock hang is very similar to a deadlock condition except that processors are involved instead of threads. A data structure called a spinlock is used to synchronize access to other data structures or a critical section. Only one processor can own a particular spinlock at a time. The other processors that want to acquire the spinlock will wait (or spin) until the spinlock is released. In a spinlock scenario, multiple processors all want to acquire the same spinlock at an elevated IRQL, causing a perceived system hang.</p>

<p>To troubleshoot a spinlock hang, examine each processor to determine what function is executing at the time. Use the ~# command -- where # is the processor number (0, 1, 2 …) -- to change context between processors. You will notice that the debugger's kd prompt changes to reflect the processor number that currently has context.</p>

<p>Then use the !thread or kv command to determine the stack trace of the current thread to see what function was executing. In a true spinlock scenario, all processors except one will be executing a spinlock acquire function. Finally, to determine the culprit (driver) responsible for the spinlock condition, look down the stack trace for the last driver to call the spinlock acquire function. See Figure 5 for an example of a stack trace illustrating a spinlock hang initiated by the XYZDrv.sys driver.</p>

<p><img alt="Example of a stack trace illustrating driver trying to acquire a spinlock" src="http://www.setup32.com/network-administration/upload/2008/05/hs_5_thumb.jpg" width="440" height="238" /><br />
Figure 5</p>

<p>Finally, the command !stacks is very useful to determine which threads are executing and the states of those threads (running, ready, blocked, etc.). In the example of the spinlock hang, !stacks was extremely useful in illustrating how threads currently running on the various processors were all trying to acquire spinlocks except for the current thread that was executing the bugcheck code. Figure 6 shows an example of the !stacks command and the pertinent output.</p>

<p><img alt="Example of the !stacks command" src="http://www.setup32.com/network-administration/upload/2008/05/hs_6_thumb.jpg" width="440" height="119" /><br />
Figure 6</p>

<p>And there you have it. Troubleshooting non-responsive Windows servers can be very perplexing. Fortunately, the Windows operating system has matured over the years and now offers a variety of features and tools to help determine what causes servers to hang. By forcing a crash dump and using Windbg to analyze it, you can typically isolate the hang to a particular application or system resource. Plus, if the problem requires further analysis from Microsoft, you will have the memory dump they will need to troubleshoot the issue.</p>]]>
    </content>
</entry>
<entry>
    <title>Preparing to troubleshoot a hung Windows server</title>
    <link rel="alternate" type="text/html" href="http://www.setup32.com/network-administration/windows-server-2003/preparing-troubleshoot-windows-2003.php" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.setup32.com/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=624" title="Preparing to troubleshoot a hung Windows server" />
    <id>tag:www.setup32.com,2008:/network-administration//2.624</id>
    
    <published>2008-05-16T12:36:08Z</published>
    <updated>2008-07-19T10:25:27Z</updated>
    
    <summary>Previously in this series, we looked at some of the reasons why server hangs occur in a network. Now that you have a little background, let&apos;s look at the preparation process for resolving the problem using a tool called the Windows Kernel Debugger, or Windbg....</summary>
    <author>
        <name>Julian</name>
        
    </author>
            <category term="10. Windows Server 2003" />
    
    <content type="html" xml:lang="en" xml:base="http://www.setup32.com/network-administration/">
        <![CDATA[<p>Previously in this series, we looked at some of the reasons <a href="http://www.setup32.com/network-administration/windows-server-2003/windows-2003-troubleshooting-1.php">why server hangs occur</a> in a network. Now that you have a little background, let's look at the preparation process for resolving the problem using a tool called the Windows Kernel Debugger, or Windbg.</p>]]>
        <![CDATA[<p><strong>Preparation</strong></p>

<p>When troubleshooting a hung Windows server, there are several things that need to be done up front to prepare for collecting data. A forced crash dump may only be necessary if other means of troubleshooting prove unsuccessful. The first thing administrators should always do is run MPS Reports to collect event logs and other pertinent information. Close examination of system and application event logs may reveal a pattern of particular entries occurring prior to each hang. If the problem starts with a slow down or performance issue, you should collect Perfmon data as described in <a href="http://support.microsoft.com/kb/248345/en-us">Microsoft Knowledge Base article 248345</a>.</p>

<p>Once you determine that a forced crash dump is necessary, update the appropriate registry entries per KB article 244139 or 927069 and reboot the server. Also, ensure you have properly configured the dump file type as previously mentioned in KB article 254649. Finally, be sure that your pagefile.sys is sufficiently sized to accommodate a memory dump and that you have enough free space on the disk where the memory.dmp will be located, per KB article <a href="http://support.microsoft.com/kb/886429/en-us">886429</a>.</p>

<p><strong>Installing Windbg and setting the symbol path</strong></p>

<p>In addition to configuring the server to generate a memory dump, you have to install the Windows Kernel Debugger and establish the symbol path. Do that on a separate server from the one that you are troubleshooting. You can download the Windbg kit free from Microsoft, and the kind of kit you choose depends on the architecture you are installing it on: (x86 or x64/IA64). Each is capable of reading a dump from a different architecture (i.e., 32-bit Windbg can read a 64-bit dump and vice versa).</p>

<p>Once Windbg is installed, be sure to establish the symbol path as documented in KB article 311503. Setting up the symbol path allows the debugger to translate memory references to meaningful functions and variable names. This will allow you to look at a stack trace and determine what routines were executing at the time of the hang.</p>

<p>Once you have all this set up, you are ready to analyze a crash dump. Use the appropriate keystrokes, Web GUI, Management Processor TC command or NMI button to initiate the forced crash as previously described. Be sure to allow sufficient time for the contents of memory to write to the pagefile.sys. If you have trouble getting the crash dump created, be aware that there are several reasons why a crash dump may not be captured as expected (see KB article <a href="http://support.microsoft.com/kb/130536/en-us">130536</a>).</p>

<p>Now you are ready to determine the cause of the server hang. In the final part of this series, I'll explain how to use Windbg to analyze a forced crash as a means of resolving the problem.</p>]]>
    </content>
</entry>
<entry>
    <title>Windows 2003 Troubleshooting: Why do Windows servers hang?</title>
    <link rel="alternate" type="text/html" href="http://www.setup32.com/network-administration/windows-server-2003/windows-2003-troubleshooting-1.php" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.setup32.com/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=623" title="Windows 2003 Troubleshooting: Why do Windows servers hang?" />
    <id>tag:www.setup32.com,2008:/network-administration//2.623</id>
    
    <published>2008-05-16T12:24:55Z</published>
    <updated>2008-05-16T12:50:40Z</updated>
    
    <summary>Troubleshooting a hung or nonresponsive Windows server can be a challenging endeavor. Simply hitting the reset button is no longer a tolerated option as more companies use these servers for business-critical operations. This three-part series will explore the reasons why a Windows server may hang and provide a cookbook approach...</summary>
    <author>
        <name>Julian</name>
        
    </author>
            <category term="10. Windows Server 2003" />
    
    <content type="html" xml:lang="en" xml:base="http://www.setup32.com/network-administration/">
        <![CDATA[<p>Troubleshooting a hung or nonresponsive Windows server can be a challenging endeavor. Simply hitting the reset button is no longer a tolerated option as more companies use these servers for business-critical operations. This three-part series will explore the reasons why a Windows server may hang and provide a cookbook approach to diagnosing the underlying issues with the<strong> Windows Kernel Debugger</strong> (Windbg).</p>]]>
        <![CDATA[<p><strong>Background</strong></p>

<p>When Microsoft released the early versions of its server operating system (Windows NT 3.5x and NT4), there was no easy way to troubleshoot a hung server. Other mainstream operating systems, such as Digital Equipment Corp.'s VAX/VMS, offered ways to manually intervene by forcing a crash dump whereby the server's state could be captured at the time of the hang. This dump could then be analyzed to determine why the server hung. The only option for early Windows platforms, however, was to reset the box.</p>

<p>As Windows servers became more predominant in the business world, hitting the reset button became unacceptable. As a result, in Windows 2000 Server and later versions, it became possible to force a crash dump to assist with determining why the server hung. Microsoft introduced this feature in <a href="http://support.microsoft.com/kb/244139/en-us">Knowledge Base article 244139</a>. It allows a keystroke combination (right CTRL+SCROLL LOCK twice) to generate a crash dump on PS/2-type keyboards. Microsoft extended this feature in Windows Server 2003 with a hotfix to the Kbdhid.sys driver to accommodate USB-type keyboards.</p>

<p>Several other options now exist to force a crash dump. Microsoft provides the Windows Special Administrative Console (SAC) Crashdump command as part of Windows Emergency Management Services (EMS), which allows for "headless" servers with no local graphical console. Vendor-specific options also exist to force a crash dump including the HP Integrity server's Management Processor TC (transfer of control) command, an NMI (non-maskable interrupt) button on some Integrity models, or the Integrated Lights Out (iLO) virtual NMI button. We'll take a closer look at each of these options later in the series.</p>

<p><strong>Why a server hangs</strong></p>

<p>There are a variety of reasons why a server may hang, including both hardware and software issues. The most common hardware reason for a server hang is spurious interrupts by a failing device. For example, a network interface controller (NIC) may have a bad component or be attached to a bad cable causing false interrupts to occur. These interrupts occur at an elevated interrupt request level (IRQL) dominating the attention of the processor(s), leaving lower priority requests (user level) unanswered. As a result, the server appears to be hung.</p>

<p>Another example of a hardware-induced hang involves storage requests going unanswered. For example, consider a case where a disk drive fails, causing outstanding I/O requests to be queued up. Eventually, these pending requests trigger a cascading effect of user and system threads to hang, leading to a system-wide outage.</p>

<p>More often, however, server hangs are a result of software issues. These issues come in several flavors, including:</p>

<p><strong>System resource depletion (e.g., out of memory pool)</strong> -- The most common type of software hang, this typically is the result of a memory leak by a driver or kernel mode thread. Resource depletion can also result from exceeding architectural limits of paged and nonpaged memory pools (typically experienced on an x86 32-bit operating system).</p>

<p><strong>Deadlock conditions</strong> -- A deadlock occurs when contention exists for common resources between two or more threads. For example, a deadlock exists when one thread owns an exclusive lock on a resource that another thread wants, and that thread exclusively owns a resource that the initial thread wants.</p>

<p><strong>Spinlock conditions</strong> -- Spinlock hangs are similar to deadlocks, but involve contention for a spinlock that is used to synchronize access to data structures in a multi-processor environment. Other permutations of these conditions include a driver holding a lock while performing other activities for an extended period of time. Actual examples of deadlock and spinlock hangs will be provided later.</p>

<p><strong>High-priority, compute-bound threads</strong> -- A software hang can also occur if high-priority, compute-bound thread(s) are dominating the processors. Since the Windows operating system permits varying levels of thread priority, one or more threads may execute at a higher priority than typical user threads. The result is that applications and users at normal priority are starved for CPU time, causing a perceived software hang.</p>

<p><strong>The big picture</strong></p>

<p>So, as you can see, there are numerous reasons why a server may hang. To give you a better idea of what happens when you force a crash to generate a memory dump, and subsequently analyze the crash to determine what caused the hang, see Figure 1 below.</p>

<p>Starting on the left-hand side, you can see the server crashes or hangs. In the event of a crash, the server would generate a memory dump if the dumpfile and pagefile are properly configured (see Microsoft Knowledge Base articles <a href="http://support.microsoft.com/kb/254649/en-us">254649</a>, <a href="http://support.microsoft.com/kb/197379/en-us">197379</a> and <a href="http://support.microsoft.com/kb/889654/en-us">889654</a>).</p>

<p>In the event of a hang, manual intervention would be required to force a crash dump as previously described. In either case, the content of memory is written to the pagefile.sys before the server is rebooted. During the reboot, the pagefile.sys is written to the memory.dmp file. Finally, once the server has rebooted, you can use the <strong>Windows Kernel Debugger</strong> (Windbg) to analyze the memory dump using a symbol server (as documented in KB article 311503) to translate memory references to meaningful functions and variables.</p>

<p><img alt="Overview of memory dump process and analysis" src="http://www.setup32.com/network-administration/upload/2008/05/hung_server_1.gif" width="450" height="202" /><br />
Figure 1: Overview of memory dump process and analysis</p>

<p>Now that you have a better idea of why server hangs occur, the next article in this series will look at the <a href="http://www.setup32.com/network-administration/windows-server-2003/preparing-troubleshoot-windows-2003.php">preparation process for troubleshooting a hung Windows server</a>.</p>]]>
    </content>
</entry>
<entry>
    <title>10 things you can do when Windows XP won&apos;t boot</title>
    <link rel="alternate" type="text/html" href="http://www.setup32.com/network-administration/windows-xp/10-things-windows-xp-wont-boot.php" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.setup32.com/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=621" title="10 things you can do when Windows XP won't boot" />
    <id>tag:www.setup32.com,2008:/network-administration//2.621</id>
    
    <published>2008-04-23T09:17:15Z</published>
    <updated>2008-04-23T09:55:55Z</updated>
    
    <summary>When your computer hardware appears to power up okay, but the Windows XP operating system won&apos;t boot properly, you have to begin a troubleshooting expedition that includes getting into the operating system, determining the problem, and then fixing it. To help you get started on this expedition, here are 10...</summary>
    <author>
        <name>Julian</name>
        
    </author>
            <category term="03. Windows XP" />
    
    <content type="html" xml:lang="en" xml:base="http://www.setup32.com/network-administration/">
        <![CDATA[<p>When your computer hardware appears to power up okay, but the Windows XP operating system won't boot properly, you have to begin a troubleshooting expedition that includes getting into the operating system, determining the problem, and then fixing it. To help you get started on this expedition, here are 10 things you can do when Windows XP won't boot.</p>]]>
        <![CDATA[<h3>1. Use a Windows startup disk</h3>
<p>One of the first things you should reach for when troubleshooting a Windows 
XP boot problem is a Windows startup disk. This floppy disk can come in handy if 
the problem is being caused when either the startup record for the active 
partition or the files that the operating system uses to start Windows have 
become corrupted.<br />
To create a Windows startup disk, insert a floppy disk into the drive of a 
similarly configured, working Windows XP system, launch My Computer, right-click 
the floppy disk icon, and select the Format command from the context menu. When 
you see the Format dialog box, leave all the default settings as they are and 
click the Start button. Once the format operation is complete, close the Format 
dialog box to return to My Computer, double-click the drive C icon to access the 
root directory, and copy the following three files to the floppy disk:</p>
<ul>
	<li>Boot.ini</li>
	<li>NTLDR</li>
	<li>Ntdetect.com</li>
</ul>
<p>After you create the Windows startup disk, insert it into the floppy drive on 
the afflicted system and press [Ctrl][Alt][Delete] to reboot the computer. When 
you boot from the Windows startup disk, the computer will bypass the active 
partition and boot files on the hard disk and attempt to start Windows XP 
normally.</p>
<h3>2. Use Last Known Good Configuration</h3>
<p>You can also try to boot the operating system with the Last Known Good 
Configuration feature. This feature will allow you to undo any changes that 
caused problems in the CurrentControlSet registry key, which defines hardware 
and driver settings. The Last Known Good Configuration feature replaces the 
contents of the CurrentControlSet registry key with a backup copy that was last 
used to successfully start up the operating system.</p>
<p>To use the Last Known Good Configuration feature, first restart the computer 
by pressing [Ctrl][Alt][Delete]. When you see the message Please select the 
operating system to start or hear the single beep, press [F8] to display the 
Windows Advanced Options menu. Select the Last Known Good Configuration item 
from the menu and press [Enter].</p>
<p>Keep in mind that you get only one shot with the Last Known Good 
Configuration feature. In other words, if it fails to revive your Windows XP on 
the first attempt, the backup copy is also corrupt.</p>
<h3>3. Use System Restore</h3>
<p>Another tool that might be helpful when Windows XP won&#39;t boot is System 
Restore. System Restore runs in the background as a service and continually 
monitors system-critical components for changes. When it detects an impending 
change, System Restore immediately makes backup copies, called restore points, 
of these critical components before the change occurs. In addition, System 
Restore is configured by default to create restore points every 24 hours.</p>
<p>To use System Restore, first restart the computer by pressing 
[Ctrl][Alt][Delete]. When you see the message Please select the operating system 
to start or hear the single beep, press [F8] to display the Windows Advanced 
Options menu. Now, select the Safe Mode item from the menu and press [Enter].</p>
<p>Once Windows XP boots into Safe mode, click the Start button, access the
<strong>All Programs | Accessories | System Tools</strong> menu, and select 
System Restore. Because you&#39;re running in Safe mode, the only option on the 
opening screen of the System Restore wizard is Restore My Computer To An Earlier 
Time, and it&#39;s selected by default, so just click Next. Then, follow along with 
the wizard to select a restore point and begin the restoration procedure.</p>
<h3>4. Use Recovery Console</h3>
<p>When a Windows XP boot problem is severe, you&#39;ll need to use a more drastic 
approach. The Windows XP CD is bootable and will provide you with access to a 
tool called Recovery Console.</p>
<p>To boot from the Windows XP CD, insert it into the CD-ROM drive on the 
problem system and press [Ctrl][Alt][Delete] to reboot the computer. Once the 
system begins booting from the CD, simply follow the prompts that will allow the 
loading of the basic files needed to run Setup. When you see the Welcome To 
Setup screen, shown in Figure A, press R to start the Recovery Console.</p>
<p><img alt="xpboot1.jpg" src="http://www.setup32.com/network-administration/upload/2008/04/xpboot1.jpg" width="512" height="278" /><br>Figure A</p>
<p>You&#39;ll then see a Recovery Console menu, like the one shown in Figure B. It 
displays the folder containing the operating system&#39;s files and prompts you to 
choose the operating system you want to log on to. Just press the menu number on 
the keyboard, and you&#39;ll be prompted to enter the Administrator&#39;s password. 
You&#39;ll then find yourself at the main Recovery Console prompt.</p>
<p><img alt="xpboot2.jpg" src="http://www.setup32.com/network-administration/upload/2008/04/xpboot2.jpg" width="535" height="220" /><br>Figure B</p>
<h3>5. Fix a corrupt Boot.ini</h3>
<p>As the Windows XP operating system begins to load, the Ntldr program refers 
to the Boot.ini file to determine where the operating system files reside and 
which options to enable as the operating system continues to load. So if there&#39;s 
a problem rooted in the Boot.ini file, it can render Windows XP incapable of 
booting correctly.<br />
If you suspect that Windows XP won&#39;t boot because Boot.ini has been corrupted, 
you can use the special Recovery Console version of the Bootcfg tool to fix it. 
Of course, you must first boot the system with the Windows XP CD and access the 
Recovery Console as described in #4.</p>
<p>To use the Bootcfg tool, from the Recovery Console command prompt, type
<strong>Bootcfg /parameter</strong><br />
Where /parameter is one of the required parameters listed in the table below.</p>
<ul>
	<li><strong>/Add</strong> -Scans the disk for all Windows installations and 
	allows you to add any new ones to the Boot.ini file.</li>
	<li><strong>/Scan </strong>- Scans the disk for all Windows installations.</li>
	<li><strong>/List</strong> - Lists each entry in the Boot.ini file.</li>
	<li><strong>/Default </strong>- Sets the default operating system as the 
	main boot entry.</li>
	<li><strong>/Rebuild </strong>- Completely re-creates the Boot.ini file. The 
	user must confirm each step.</li>
	<li><strong>/Redirect</strong> - Allows the boot operation to be redirected 
	to a specific port when using the Headless Administration feature. The 
	Redirect parameter takes two parameters of its own: [Port Baudrate ] | 
	UseBiosSettings].</li>
	<li><strong>/Disableredirect</strong> - Disables the redirection.</li>
</ul>
<h3>6. Fix a corrupt partition boot sector</h3>
<p>The partition boot sector is a small section of the hard disk partition that 
contains information about the operating system&#39;s file system (NTFS or FAT32), 
as well as a very small machine language program that is crucial in assisting 
the operating system as it loads.</p>
<p>If you suspect that Windows XP won&#39;t boot because the partition boot sector 
has been corrupted, you can use a special Recovery Console tool called Fixboot 
to fix it. Start by booting the system with the Windows XP CD and accessing the 
Recovery Console as described in #4.</p>
<p>To use the Fixboot tool, from the Recovery Console command prompt, type
<strong>Fixboot [drive]:</strong> where [<em>drive</em>] is the letter of the 
drive to which you want to write a new partition boot sector.</p>
<h3>7. Fix a corrupt master boot record</h3>
<p>The master boot record occupies the first sector on the hard disk and is 
responsible for initiating the Windows boot procedure. The master boot record 
contains the partition table for the disk as well as a small program called the 
master boot code, which is responsible for locating the active, or bootable, 
partition, in the partition table. Once this occurs, the partition boot sector 
takes over and begins loading Windows. If the master boot record is corrupt, the 
partition boot sector can&#39;t do its job and Windows won&#39;t boot.</p>
<p>If you suspect Windows XP won&#39;t boot because the master boot record has been 
corrupted, you can use the Recovery Console tool <strong>Fixmbr</strong> to fix it. First, boot 
the system with the Windows XP CD and access the Recovery Console as described 
in #4.</p>
<p>To use the Fixmbr tool, from the Recovery Console command prompt, type
<strong>Fixmbr [device_name]</strong> where [<em>device_name</em>] is the device 
pathname of the drive to which you want to write a new master boot record. </p>
<p>For example, the device pathname format for a standard bootable drive C 
configuration would look like this: <strong>\Device\HardDisk0</strong></p>
<h3>8. Disable automatic restart</h3>
<p>When Windows XP encounters a fatal error, the default setting for handling 
such an error is to automatically reboot the system. If the error occurs while 
Windows XP is booting, the operating system will become stuck in a reboot 
cycle - rebooting over and over instead of starting up normally. In that case, 
you&#39;ll need to disable the option for automatically restarting on system 
failure.</p>
<p>When Windows XP begins to boot up and you see the message Please select the 
operating system to start or hear the single beep, press [F8] to display the 
Windows Advanced Options Menu. Then, select the Disable The Automatic Restart On 
System Failure item and press [Enter]. Now, Windows XP will hang up when it 
encounters the error and with any luck, it will display a stop message you can 
use to diagnose the problem.</p>
<h3>9. Restore from a backup</h3>
<p>If you can&#39;t seem to repair a Windows XP system that won&#39;t boot and you have 
a recent backup, you can restore the system from the backup media. The method 
you use to restore the system will depend on what backup utility you used, so 
you&#39;ll need to follow the utility&#39;s instructions on how to perform a restore 
operation.</p>
<h3>10. Perform an in-place upgrade</h3>
<p>If you can&#39;t repair a Windows XP system that won&#39;t boot and you don&#39;t have a 
recent backup, you can perform an in-place upgrade. Doing so reinstalls the 
operating system into the same folder, just as if you were upgrading from one 
version of Windows to another. An in-place upgrade will usually solve most, if 
not all, Windows boot problems.</p>
<p>Performing a Windows XP in-place upgrade is pretty straightforward. To begin, 
insert the Windows XP CD into the drive, restart your system, and boot from the 
CD. Once the initial preparation is complete, you&#39;ll see the Windows XP Setup 
screen (shown earlier in Figure A). Press [Enter] to launch the Windows XP Setup 
procedure. In a moment, you&#39;ll see the License Agreement page and will need to 
press [F8] to acknowledge that you agree. Setup will then search the hard disk 
looking for a previous installation of Windows XP. When it finds the previous 
installation, you&#39;ll see a second Windows XP Setup screen, as shown in Figure C 
on the next page.</p>
<p>This screen will prompt you to press R to repair the selected installation or 
to press [Esc] to install a fresh copy of Windows XP. In this case, initiating a 
repair operation is synonymous with performing an in-place upgrade, so you&#39;ll 
need to press R. When you do so, Setup will examine the disk drives in the 
system. It will then begin performing the in-place upgrade.</p>
<p>Keep in mind that after you perform an in-place upgrade or repair 
installation, you must reinstall all updates to Windows.</p>
<p><img alt="xpboot3.jpg" src="http://www.setup32.com/network-administration/upload/2008/04/xpboot3.jpg" width="659" height="315" /><br />Figure C</p>]]>
    </content>
</entry>
<entry>
    <title>10 ways to benchmark your Active Directory environment</title>
    <link rel="alternate" type="text/html" href="http://www.setup32.com/network-administration/windows-server-2003/benchmark-active-directory.php" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.setup32.com/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=620" title="10 ways to benchmark your Active Directory environment" />
    <id>tag:www.setup32.com,2008:/network-administration//2.620</id>
    
    <published>2008-04-02T10:00:54Z</published>
    <updated>2008-04-02T10:11:29Z</updated>
    
    <summary>Active Directory Services is the going standard for account provisioning, basic system management, and DNS authority in most environments. But having some accountability to determine what has changed over time can be a challenge. Here are some strategies for achieving accountability in your Active Directory environment. They&apos;ll help supplement your...</summary>
    <author>
        <name>Julian</name>
        
    </author>
            <category term="10. Windows Server 2003" />
    
    <content type="html" xml:lang="en" xml:base="http://www.setup32.com/network-administration/">
        <![CDATA[<p>Active Directory Services is the going standard for account provisioning, basic system management, and DNS authority in most environments. But having some accountability to determine what has changed over time can be a challenge. Here are some strategies for achieving accountability in your Active Directory environment. They'll help supplement your existing strategies, give you an extra dimension for testing, and provide a strong set of data to determine what has changed when you're troubleshooting issues.</p>]]>
        <![CDATA[<p><strong>#1: Export with CSVDE</strong></p>

<p>Many Active Directory (AD) tools can be used at various levels to gather information about the current state. CSVDE is a favorite of mine because it is relatively quick and can be iterated through a scheduled task and the output is workable in Excel. I export certain organizational units (OUs) monthly as a record of the membership of user accounts. With this record, I can see what has changed in diagnosing issues that initially may not make much sense. This is especially helpful with a large AD environment.</p>

<p><strong>#2: Copy for the quick test</strong></p>

<p>I have had great success copying users to temporary user accounts to test permissions within Active Directory. This makes one key assumption that most, if not all, permissions are assigned via group membership. When group membership is the main mechanism for deploying access, copying users to test access in roles like service accounts, task accounts, and other restrictive operations, the copied user account is a quick and easy way to test without affecting the user in question. Be sure to perform the requisite housecleaning and remove the copied accounts.</p>

<p><strong>#3: Have a copy of the domain available for testing</strong></p>

<p>Core changes to an Active Directory installation are difficult to test and simulate. A development domain is good, but usually not configured exactly as in use on the live domain. Having a domain for testing that is exactly like your live domain makes testing schema extensions, Group Policy changes, and new security polices a breeze.</p>

<p>There are two principle ways to get this test environment created. The first is to create a new domain controller in the domain, then move it to a test network. Once in the test network, remove the domain controller from the live domain. When it is in the test network, the other domain controllers won't be available, but if it has all of the requisite roles, it can process logon requests and be the test environment for the changes or policies in question. The other strategy is to use a system conversion tool, such as Symantec BackupExec System Recovery, Symantec Ghost, Acronis True Image, VMware Converter, or PlateSpin PowerConvert, to take a snapshot of the domain controller in varyious ways and transport it to a physical or virtual test environment.</p>

<p><strong>#4: LDIFDE for the whole thing!</strong></p>

<p>The LDIFDE export tool can be helpful to move the entire domain out and have it available for importing. I would not recommend this as a backup and restore mechanism. But to create an exact replica of the live domain as described above, the LDIFDE tool can be the vehicle to export your domain to the test environment and keep it up to date. My issue with test domains is that they stray from the live environment, and keeping them current is important. You can export your entire domain as is with this easy one-liner:</p>

<p><strong>LDIFDE -f C:domain-out.file</strong></p>

<p>LDIFDE can interpret this file in an import, and it's readable in a text editor. It's easy to blur the differences between LDIFDE and CSVDE when you read their descriptions, but I like CSVDE because you can export by a particular organizational unit (OU). This is handy, as LDIFDE will take the entire directory, which includes user accounts as well as printers, computer accounts, domain controllers, and other Active Directory objects. LDIFDE will tend to have a larger export file because of its scope.</p>

<p><strong>#5: Save queries in Active Directory</strong></p>

<p>Don't we all breeze right through this first option of Active Directory Users And Computers? Having a saved query can help administrators repeat mundane tasks and easily detect policy violations. I frequently run queries for disabled user accounts that have not logged in within 60 days. </p>

<p>An AD query result set is a list of objects that meet the selected criteria. With this set, you can perform large scale account operations, such as deleting accounts, adding a group, moving to an account, and enabling or disabling an account. You can also perform mass operations on Exchange accounts from the results of a query.</p>

<p><strong>#6: Use DSGET for AD object details</strong></p>

<p>While CSVDE and LDIFDE are good for large collections of data, the DSGET command is the detail-oriented alternative. DSGET is the object tool for the Active Directory service command series, including DSADD, DSQUERY, DSMOVE, DSRM, and DSMOD. DSGET fits well in the space of documenting and benchmarking your AD installation because you can get information specifically for objects within the domain. Each object type in the directory is available to run from DSGET. You may find yourself wanting to use DSQUERY in conjunction with DSGET to save the hassle of working with the directory distinguished names.</p>

<p><strong>#7: Export Group Policy objects</strong></p>

<p>Managing Group Policy objects in AD is a challenging feat as well. How difficult is it to determine an issue with a complicated Group Policy? Exporting the Group Policy is a way to benchmark the configuration from a point in time. The Windows Resource Kit tool ADMX.EXE allows for an export of Group Policy objects from AD for archival and comparison purposes.</p>

<p><strong>#8: Export your AD-integrated DNS zone</strong></p>

<p>If your IP addressing is managed or tracked within Active Directory, you can export the zone that contains your domain systems. This will enable you to see how the addresses are used and where your domain systems are addressed across all networks in the domain. The DNSCMD command is the best utility to perform this export. The command to export a DNS zone for the sample WS2K3DEV.LOCAL zone from the DC001 server would be:</p>

<pre>DNSCMD DC001 /zoneprint WS2K3DEV.LOCAL</pre>

<p>You can optionally direct the command to a file for the archival. While you can also use DNSCMD for importing and modifications, the output functionality is very useful in the course of benchmarking the AD environment. The relevant output from this command is about the third line from the bottom. The output for individual systems and their addressing (in the form of DNS A records) is shown below:</p>

<pre>DC001 [Aging:3569020] 3600 A  192.168.1.100</pre>

<p><strong>#9: Document with ADFind.exe</strong></p>

<p>ADFind.exe provides a great way to take a quick snapshot outside Active Directory Users And Computers and outside of normal administrative rights situations. ADFind does not require special domain privileges or permissions through the Delegation Of Control wizard. So you can comfortably have your AD environment documented by computer operators, temporary employees, junior administrators, or anyone else whom you are not 100 percent comfortable giving additional rights.</p>

<p>Using ADFind is a little different than using the normal tools, as it is not a Microsoft tool. But a quick jog through the usage section of the Joeware Web site will have you making queries in no time at all. Here is an example I performed on a test domain (WS2K3DEV.LOCAL):</p>

<pre>adfind -b dc=WS2K3DEV,DC=LOCAL -f "objectcategory=computer"</pre>

<p>All computer accounts are returned, and they have a format like the following sample result:</p>

<pre>dn:CN=VM-SERVER1,OU=VServers,DC=WS2K3DEV,DC=LOCAL

<p>>objectClass: top<br />
>objectClass: person<br />
>objectClass: organizationalPerson<br />
>objectClass: user<br />
>objectClass: computer<br />
>cn: VM-SERVER1<br />
>distinguishedName: CN=VM-SERVER1,OU=VServers,DC=WS2K3DEV,DC=LOCAL<br />
>instanceType: 4<br />
>whenCreated: 20071109010719.0Z<br />
>whenChanged: 20071109010838.0Z<br />
>displayName: VM-SERVER1$<br />
>uSNCreated: 98317<br />
>uSNChanged: 98336<br />
>name: VM-SERVER1<br />
>objectGUID: {305864AA-98F3-4F0C-A813-5832F73F7BD1}<br />
>userAccountControl: 4096<br />
>badPwdCount: 0<br />
>codePage: 0<br />
>countryCode: 0<br />
>badPasswordTime: 0<br />
>lastLogoff: 0<br />
>lastLogon: 128390526426562500<br />
>localPolicyFlags: 0<br />
>pwdLastSet: 128390440401406250<br />
>primaryGroupID: 515<br />
>objectSid: S-1-5-21-1529256218-1546654017-687563949-1123<br />
>accountExpires: 9223372036854775807<br />
>logonCount: 5<br />
>sAMAccountName: VM-SERVER1$<br />
>sAMAccountType: 805306369<br />
>operatingSystem: Windows Server 2003<br />
>operatingSystemVersion: 5.2 (3790)<br />
>operatingSystemServicePack: Service Pack 2<br />
>dNSHostName: VM-SERVER1.WS2K3DEV.LOCAL<br />
>servicePrincipalName: HOST/VM-SERVER1<br />
>servicePrincipalName: HOST/VM-SERVER1.WS2K3DEV.LOCAL<br />
>objectCategory: CN=Computer,CN=Schema,CN=Configuration,DC=WS2K3DEV,DC=LOCAL<br />
>isCriticalSystemObject: FALSE<br />
>dSCorePropagationData: 20071109010838.0Z<br />
>dSCorePropagationData: 20071109010838.0Z<br />
>dSCorePropagationData: 20071109010838.0Z<br />
>dSCorePropagationData: 16010108151056.0Z</pre></p>

<p>As with any good tool or procedure, I recommend learning the ropes in a test environment. While it is generally a query and lookup tool, you want to be sure of any load placed on your domain controllers for big queries or exports. Using these tools in a test environment first can ensure no surprises while running in the live domain.</p>

<p><strong>#10: Minimize security group sprawl</strong></p>

<p>We all agree that assigning permissions via group membership is the best practice for most situations. However, having too many groups in your AD environment poses a management challenge of its own. I have found it useful to determine which groups have either no members or very few members and to consider removal or consolidation. I generally do this with the CSVDE command within the organizational unit that contains the groups in question for a quick view of the membership inventory. In this fashion, the lesser groups will pave the way for simpler administration.</p>]]>
    </content>
</entry>
<entry>
    <title>Microsoft Eschews Patch, Gives Exploit Code for IIS 5.0 Bug</title>
    <link rel="alternate" type="text/html" href="http://www.setup32.com/network-administration/internet-information-services/microsoft-eschews-patch-gives-.php" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.setup32.com/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=568" title="Microsoft Eschews Patch, Gives Exploit Code for IIS 5.0 Bug" />
    <id>tag:www.setup32.com,2007:/network-administration//2.568</id>
    
    <published>2007-06-07T07:48:37Z</published>
    <updated>2007-06-07T07:54:53Z</updated>
    
    <summary>Saying that an Internet Information Server exploit is due to a feature, not a flaw, Microsoft has published exploit code for the flaw but no workaround or patch....</summary>
    <author>
        <name>Vihren</name>
        
    </author>
            <category term="08. Internet Information Services" />
    
    <content type="html" xml:lang="en" xml:base="http://www.setup32.com/network-administration/">
        <![CDATA[<p>Saying that an Internet Information Server exploit is due to a feature, not a flaw, Microsoft has published exploit code for the flaw but no workaround or patch. </p>]]>
        <![CDATA[<p>
The exploit, which was discovered on Dec. 15, 2006, and made public at the end of May, works against IIS 5.x. By design, versions 5.x allow bypass of basic authentication by using the "hit highlight" feature. The hit-highlighting feature can be used by an unauthorized user to grab documents to which he or she has no privileges.
</p><p>
At the very least, this leaves IIS 5.x users vulnerable to data interception. And while the exploit hasn't been used to take over systems to date, that could well change, according to Swa Frantzen of the Internet Storm Center.
</p><p>
The ability to execute code is "unexplored, but hinted about," Frantzen wrote in a blog post on SANS' Internet Storm Center security alert site. 
</p><p>
The ISC has tracked public exploits that apparently focus on leaking protected information. 
</p><p>
According to Microsoft, which has written up the issue in its Knowledge Base article 328832, hit-highlighting with Webhits.dll only relies on the Microsoft Windows NT ACL (Access Control List) configuration on 5.x versions.
</p><p>
Microsoft "strongly [recommends] that all users upgrade to IIS (Internet Information Services) version 6.0 running on Microsoft Windows Server 2003. IIS 6.0 significantly increases Web infrastructure security," the company wrote in its KB article. 
</p><p>
Microsoft is currently shipping IIS 6.0 of the Internet Information Services Server for Windows Server 2003. Microsoft is up to IIS 7.0 for Windows Vista and IIS 5.1 for        Windows XP Professional. 
</p><p>
What are the security issues with Microsoft's "Surface"?  
</p><p>
Yet, in spite of urging upgrading in order to gain improved security, Microsoft is treating the bug as a nonissue, providing no workaround nor indications that it will patch versions 5.0 and 5.1. "This behavior is by design," the KB article asserts. 
</p><p>

<p>Rather than supply a patch or workaround, Microsoft published six steps to reproduce the exploit—a response that is "a bit atypical," according to Frantzen. "Microsoft is telling the world how to exploit their products being used by their customers. Not that the worst of those interested in it did not already know, but the one thing we need from Microsoft is not the exploit, but the patch or at least a decent work-around," Frantzen wrote. <br />
</p><p><br />
The only defensive information Microsoft gives is to urge users to upgrade to 6.0—an upgrade that's neither free nor easy, Frantzen pointed out. He provided these possible workarounds:</p>

</p><p>
If you don't use the Web hits functionality, a simple workaround would be to remove the script mapping for .htw files. Without a script mapping, IIS should treat the file as static content. 
</p><p>
Try to use application-level firewalls (filters). If you have the infrastructure it can be a temporary measure till you can upgrade IIS, solving the actual problem. 
</p><p>
URLScan, a URL filter by Microsoft can be used to stop access to .htw files and is reported by some SANS-ISC readers as being effective. 
</p><p>
Manage rights on the confidential files or directories themselves. 
</p><p>
Upgrade to Apache or another Web server, with or without a (cross) upgrade of the OS. 
</p><p>
Scramble an upgrade to Windows 2003, potentially on more potent hardware. 

</p><p>
Frantzen advised IIS 5.x users that failing to find "null.htw" in a document root directory doesn't mean much—the exploit doesn't need the file.
</p><p>
Microsoft hadn't delivered a statement by the time this story posted.
</p>
<p>
Source: Lisa Vaas - eWEEK 
</p>]]>
    </content>
</entry>
<entry>
    <title>Active Directory: Questions and Answers</title>
    <link rel="alternate" type="text/html" href="http://www.setup32.com/network-administration/active-directory/active-directory-faqs.php" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.setup32.com/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=471" title="Active Directory: Questions and Answers" />
    <id>tag:www.setup32.com,2006:/network-administration//2.471</id>
    
    <published>2006-11-28T20:49:39Z</published>
    <updated>2008-05-16T13:11:45Z</updated>
    
    <summary>What is the difference between Windows 2000 Active Directory and Windows 2003 Active Directory? Is there any difference in 2000 Group Polices and 2003 Group Polices? What is meant by ADS and ADS services in Windows 2003? Windows 2003 Active Directory introduced a number of new security features, as well...</summary>
    <author>
        <name>Julian</name>
        
    </author>
            <category term="01. Windows 2000 Server" />
            <category term="04. Active Directory" />
            <category term="10. Windows Server 2003" />
    
    <content type="html" xml:lang="en" xml:base="http://www.setup32.com/network-administration/">
        <![CDATA[<p><strong>What is the difference between Windows 2000 Active Directory and Windows 2003 Active Directory? Is there any difference in 2000 Group Polices and 2003 Group Polices? What is meant by ADS and ADS services in Windows 2003?</strong></p>

<p>Windows 2003 Active Directory introduced a number of new security features, as well as convenience features such as the ability to rename a domain controller and even an entire domain - see <a href="http://www.microsoft.com/windowsserver2003/evaluation/overview/technologies/activedirectory.mspx">Microsoft's website</a> for more details.</p>

<p>Windows Server 2003 also introduced numerous changes to the default settings that can be affected by Group Policy - you can see a detailed list of each available setting and which OS is required to support it by downloading the <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=7821C32F-DA15-438D-8E48-45915CD2BC14&displaylang=en">Group Policy Settings Reference</a>.</p>

<p>ADS stands for Automated Deployment Services, and is used to quickly roll out identically-configured servers in large-scale enterprise environments. You can get more information from the <a href="http://www.microsoft.com/windowsserver2003/technologies/management/ads/default.mspx">ADS homepage</a>.</p>

<p>Related article: <a href="http://www.setup32.com/resource-guides/windows-2000-server/installation-and-configuration/active-directory/active-directory-windows-2000-2003.php">Active Directory for Windows 2000 and 2003: What's the difference?</a></p>]]>
        <![CDATA[<p><strong>The benefits of AD over NT4 directory services</strong></p>

<p>Active Directory marked a shift in the way that Microsoft manages directory services, moving from the flat and fairly restrictive namespaces used by NT4 domains and moving to an actual hierarchical directory structure. There's a sample chapter from the <a href="http://www.setup32.com/subject/windows-2000.html">Windows 2000</a> technical reference <a href="http://www.microsoft.com/mspress/books/sampchap/3173.asp">available here</a> that will give you a good introduction into the major differences between the NT4 and Active Directory directory services.</p>

<p><strong>I want to setup a DNS server and Active Directory domain. What do I do first? If I install the DNS service first and name the zone 'name.org' can I name the AD domain 'name.org' too?</strong></p>

<p>Not only can you have a <a href="http://www.setup32.com/subject/dns.html">DNS</a> zone and an Active Directory domain with the same name, it's actually the preferred way to go if at all possible. You can install and configure DNS before installing <a href="http://www.setup32.com/subject/active-directory.html">Active Directory</a>, or you can allow the Active Directory Installation Wizard (dcpromo) itself install DNS on your server in the background.</p>

<p><strong>What is the best way to migrate Exchange 2000 mailboxes to Exchange 2003?</strong></p>

<p>The nice folks at MSExchange.org have put together a pretty <a href="http://www.msexchange.org/tutorials/Migrating-Exchange2000-Exchange-2003-Hardware.html">detailed tutorial</a> on how to migrate from Exchange 2000 to Exchange 2003 on new hardware. The MSExchange site also hosts online forums that are frequented by Exchange MVPs who can help you with any specific errors that you run into along the way.</p>

<p><strong>How do I design two Active Directory domains in a client network?</strong></p>

<p>For <a href="http://www.setup32.com/subject/windows-2003.html">Windows Server 2003</a>, your best bet is going to be the <a href="http://www.microsoft.com/windowsserver2003/techinfo/reskit/deploykit.mspx">Deployment Kit</a>. The section on "Deploying Network Services" will assist you in designing and installing your DNS servers, and the section on "Designing and Deploying Directory and Security Services" will assist you with deploying Active Directory and configuring trust relationships.</p>

<p><strong>What is difference between ADS and domain controller?</strong></p>

<p>ADS is the Automated Deployment Service, which is used to quickly image, deploy, and administer servers and domain controllers on a large scale. You can find more information at the <a href="http://www.microsoft.com/windowsserver2003/technologies/management/ads/default.mspx">ADS Technology Center</a>.</p>

<p><strong>How can I modify the path of all my users' home directory within Active Directory using a vbs logon script?</strong></p>

<p>Check out the source code from Robbie Allen's "<a href="http://rallenhome.com/books/adcookbook/code.html">Active Directory Cookbook</a>". Recipe 6.4 shows you how to modify a property value for multiple users. Essentially, you select a container such as an <a href="http://www.setup32.com/subject/organizational-unit.html">OU</a> or a domain and then use a FOR loop to loop through each user object in that container.</p>

<p><strong>How do I determine if user accounts have local administrative access?</strong></p>

<p>You can use the <strong>net localgroup administrators</strong> command on each workstation (probably in a login script so that it records its information to a central file for later review). This command will enumerate the members of the Administrators group on each machine you run it on. Alternately, you can use the Restricted Groups feature of <a href="http://www.setup32.com/subject/group-policies.html">Group Policy</a> to restrict the membership of Administrators to only those users you want to belong.</p>

<p><strong>Why am I having trouble printing with XP domain users?</strong></p>

<p>In most cases, the inability to print or access resources in situations like this one will boil down to an issue with name resolution, either DNS or WINS/NetBIOS. Be sure that your Windows XP clients' wireless connections are configured with the correct DNS and WINS name servers, as well as with the appropriate <a href="http://www.setup32.com/subject/netbios.html">NetBIOS over TCP/IP</a> settings. Compare your wireless settings to your wired LAN settings and look for any discrepancies that may indicate where the functional difference may lie.</p>

<p><strong>I am upgrading from NT to 2003. The only things that are NT are the PDC and BDCs; everything else is 2000 or 2003 member servers. My question is, when I upgrade my NT domain controllers to 2003, will I need to do anything else to my Windows 2000/2003 member servers that were in the NT domain?</strong></p>

<p>Your existing member servers, regardless of operating system, will simply become member servers in your upgraded AD domain. If you will be using Organizational Units and Group Policy (and I hope you are), you'll probably want to move them to a specific OU for administration and policy application, since they'll be in the default "Computers" container immediately following the upgrade. </p>

<p><strong>How do I use Registry keys to remove a user from a group?</strong></p>

<p>In Windows Server 2003, you can use the <strong>dsmod</strong> command-line utility with the <strong>-delmbr</strong> switch to remove a group member from the command line. You should also look into the freeware utilities available from www.joeware.net . ADFind and ADMod are indispensable tools in my arsenal when it comes to searching and modifying Active Directory.</p>

<p><strong>Why are my NT4 clients failing to connect to the Windows 2000 domain?</strong></p>

<p>Since NT4 relies on NetBIOS for name resolution, verify that your WINS server (you do have a WINS server running, yes?) contains the records that you expect for the 2000 domain controller, and that your clients have the correct address configured for the WINS server.</p>]]>
    </content>
</entry>
<entry>
    <title>Four steps to secured VoIP</title>
    <link rel="alternate" type="text/html" href="http://www.setup32.com/network-administration/voip/secured-voip.php" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.setup32.com/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=451" title="Four steps to secured VoIP" />
    <id>tag:www.setup32.com,2006:/network-administration//2.451</id>
    
    <published>2006-11-21T00:15:22Z</published>
    <updated>2006-11-21T00:20:48Z</updated>
    
    <summary>Securing Voice over IP (VoIP) doesn&apos;t have to be a challenge for small and medium-sized businesses (SMBs). VoIP is basically a phone call over the Internet. It offers the same promises - and pitfalls - as the Internet. The promises are cheap and easy communication over a readily available and...</summary>
    <author>
        <name>Julian</name>
        
    </author>
            <category term="11. Security" />
            <category term="12. VoIP" />
    
    <content type="html" xml:lang="en" xml:base="http://www.setup32.com/network-administration/">
        <![CDATA[<p>Securing Voice over IP (VoIP) doesn't have to be a challenge for small and medium-sized businesses (SMBs).</p>

<p>VoIP is basically a phone call over the Internet. It offers the same promises - and pitfalls - as the Internet. The promises are cheap and easy communication over a readily available and easy-to-use public network - the Internet. The pitfalls are the same security weaknesses of that network, which wasn't originally designed for security - or phone calls, for that matter.</p>]]>
        <![CDATA[<p>But it's not as scary as it seems for cash-strapped SMBs with limited IT staffs. Most of the tuning required to secure VoIP involves the same efforts as hardening Internet and Web connections your company probably already has in place. And most of that work can be handled by your existing network staff, even without a dedicated information security department.</p>

<p>Even if your SMB doesn't host its own Web site or Internet service, like a larger enterprise, it still has connections to the Internet through conventional routers. Handling VoIP for them should be a snap.</p>

<p><strong>Security comes first</strong></p>

<p>Before delving into the four best practices for securing VoIP and how to apply them to SMBs, be aware of the overall security issues around VoIP.</p>

<p>There are three major security concerns around VoIP, and they're the same security issues as those for IP traffic, in general. The three issues are:</p>

<p>   1. Lack of authentication.<br />
   2. Spoofing, and exposure of unencrypted data.<br />
   3. Unwanted traffic similar to email spam, which in the VoIP world is called SPIT, or spam over Internet telephony.</p>

<p>VoIP can also serve as an entry point into your company, just like any other Internet connection, for viruses, spyware and malware. But this isn't a specific problem of VoIP. Denial-of-service (DoS) attacks are also possible via VoIP but, again, this is a general IP protocol issue and not just a VoIP concern.</p>

<p>IP traffic isn't authenticated. It moves freely over the Internet and can come from anywhere. This is a problem inherent in the TCP/IP protocol. For VoIP, it means a malicious user could fake, or spoof, your company's IP address and appear on the caller ID of an unsuspecting customer. This tactic is known as VoIP phishing, which, like its email counterpart, is meant to entice customers to give up confidential account information over the phone to thieves posing as your company employees.</p>

<p>IP traffic moves in the clear by default. It can be easily picked up by conventional packet sniffers like Wireshark (formerly Ethereal), dsniff, Ettercap and their ilk. Any conversations on your new shiny VoIP phones can be eavesdropped by sniffing unencrypted traffic traveling over the Internet. Unlike regular phone lines, which require some effort to tap through the phone company, VoIP can potentially expose your SMB to the whole world just by being on the Internet.</p>

<p>And, just as spam is delivered via email, junk voicemail messages can be pumped into your company through VoIP, clogging your SMB's phones with SPIT. This is in addition to a DoS attack against your company, just like any other from the Internet, through your VoIP connection.</p>

<p>So, what's an SMB to do to protect itself from the dangers of VoIP? Here are four suggestions:</p>

<p>   1. First, run all your VoIP traffic through a separate Internet connection and separate voice and data traffic into their own network segments. Use a VLAN to separate voice and data. This can prevent an attack via the data stream from the Internet leaking into your voice system, using your VoIP network to attack your primary network. Set up separate servers dedicated just to VoIP traffic and firewall them apart from the rest of your network. For VoIP connections between different buildings, use a virtual private network (VPN) to authenticate users to prevent spoofing.</p>

<p>   2. Second, avoid cheap VoIP systems that can be installed on an ordinary desktop or workstation. As tempting as it might be to a cost-conscious SMB, these systems are highly insecure since they can be easily compromised and used as a back door into your network. Go for a real VoIP system from a major provider like Vonage Holdings Corp. or Avaya Inc., which integrates with your existing routers and can be handled by your existing network staff.</p>

<p>   3. Third, encrypt any VoIP traffic to keep it confidential and prevent eavesdropping by network sniffers. VoIP encryption is getting better but it can just as easily be set at the router or gateway level and then tunneled through IPSec. This should put less of a strain on your SMB staff members, who may already be setting up these types of connections for your VPN.</p>

<p>   4. Lastly, put VoIP servers in a secure physical location, as you would for your other networking equipment. Ideally, if space permits, the equipment should be in its own equipment room separate from that other networking equipment.</p>

<p>Like the rest of your network servers, baseline security controls should be in place for your VoIP system. Here's how:</p>

<p>    * Make sure all routers and servers hosting your VoIP system have been hardened and all unnecessary services turned off and ports closed.<br />
    * Restrict access to VoIP servers to only system administrators and log and monitor all access.<br />
    * Use intrusion detection systems to monitor malicious attempts to access your VoIP network.<br />
    * Employ a defense-in-depth of strategy with multiple layers of security, including dedicated VoIP-ready firewalls.</p>

<p>Implementing VoIP is not as scary, or as much of a burden, as it seems. Most of the tasks for securing VoIP can be handled by your existing IT staff, since it is already integrated into your network. </p>]]>
    </content>
</entry>
<entry>
    <title>Define server roles, counterattack zero-day threats</title>
    <link rel="alternate" type="text/html" href="http://www.setup32.com/network-administration/security/zero-day-server-roles.php" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.setup32.com/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=450" title="Define server roles, counterattack zero-day threats" />
    <id>tag:www.setup32.com,2006:/network-administration//2.450</id>
    
    <published>2006-11-18T18:01:26Z</published>
    <updated>2006-11-18T18:04:54Z</updated>
    
    <summary>Zero-day exploits are an unsettling issue for any administrator who is concerned with security. A zero-day exploit is an exploit against a previously undiscovered and undocumented vulnerability. The problem with zero-day exploits is that you are trying to protect the system against security holes that may or may not even...</summary>
    <author>
        <name>Julian</name>
        
    </author>
            <category term="10. Windows Server 2003" />
            <category term="11. Security" />
    
    <content type="html" xml:lang="en" xml:base="http://www.setup32.com/network-administration/">
        <![CDATA[<p>Zero-day exploits are an unsettling issue for any administrator who is concerned with security. A zero-day exploit is an exploit against a previously undiscovered and undocumented vulnerability. The problem with zero-day exploits is that you are trying to protect the system against security holes that may or may not even exist. This means that you can't just apply a security patch to prevent the vulnerability from being exploited, because no one except for the hacker who exploits the vulnerability knows about it.</p>]]>
        <![CDATA[<p>While you can't usually rely on patching as a mechanism for protecting you from zero-day exploits, there are some things you can do to harden your server and make your system far less susceptible to these types of attacks.</p>

<p>By far the most effective countermeasure against a zero-day exploit is to reduce the attack surface on your systems. Imagine a hacker launching a zero-day exploit against a previously undiscovered security hole in Internet Information Server (IIS). Depending on the nature of the vulnerability, such an attack could be catastrophic if IIS is installed.</p>

<p>That's why it's a good security practice to take a role-based approach in regards to your servers. Try specifically defining the tasks that each server on your network is required to perform. By doing so, you can easily determine which system components are and are not required in order to perform the necessary tasks. For example, if a server is acting solely as a file server, then there is no reason why it would need to run components like IIS or the Print Spooler service.</p>

<p>It is best to configure each server so it performs only a single task. That way, you not only reduce the server's attack surface, but you also make it far easier to determine which system components are required in order for the server to do its job. </p>

<p>More on zero-day threats<br />
<a href="http://www.setup32.com/network-administration/security/zero-day-network-services.php">Harden your network services and contain zero-day threats</a><br />
<a href="http://www.setup32.com/network-administration/security/zero-day-threats-virtual-servers.php">Eliminate zero-day threats with virtual server technology</a></p>]]>
    </content>
</entry>
<entry>
    <title>Harden your network services and contain zero-day threats</title>
    <link rel="alternate" type="text/html" href="http://www.setup32.com/network-administration/security/zero-day-network-services.php" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.setup32.com/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=449" title="Harden your network services and contain zero-day threats" />
    <id>tag:www.setup32.com,2006:/network-administration//2.449</id>
    
    <published>2006-11-18T17:58:17Z</published>
    <updated>2006-11-18T18:05:33Z</updated>
    
    <summary>We all dread the thought of zero-day threats; they arrive and you have no vaccine for them. These exploits are all too common in recent months and years. Fortunately, there are some common sense steps you can take to harden your network layer against these threats....</summary>
    <author>
        <name>Julian</name>
        
    </author>
            <category term="10. Windows Server 2003" />
            <category term="11. Security" />
    
    <content type="html" xml:lang="en" xml:base="http://www.setup32.com/network-administration/">
        <![CDATA[<p>We all dread the thought of zero-day threats; they arrive and you have no vaccine for them. These exploits are all too common in recent months and years. Fortunately, there are some common sense steps you can take to harden your network layer against these threats.</p>]]>
        <![CDATA[<p>You may not know exactly what the exploit is, but you can certainly deploy some protective elements like these that might stop such a problem in its tracks:</p>

<p><strong>Use virtual LANs (VLANs), if possible, to segregate some areas of your network.</strong><br />
VLANs are essentially multiple logical boundaries created within one physical network. VLANs are an easy way to divide critical areas of your network from others. For instance, you could have one VLAN for servers and another for client machines, or you could segregate machines based on department, or any other scheme you choose. Creating a VLAN in and of itself doesn't necessarily create a layer of protection, but it forms the basis for any number of other hardening techniques, and it provides a way to limit the scope of more stringent security procedures to only the most critical areas of a network.</p>

<p><strong>Implement Internet Protocol Security (IPsec) to protect the contents of individual transmissions.</strong><br />
IPsec encapsulates communications in a layer of encryption that is difficult to break, but it also allows you to restrict communications to and from certain machines based on whether their machine certificates are signed and valid. By doing this, the machines restricted by IPsec would simply ignore it, even if an exploit was introduced into your network. Using IPsec in this way also forms the basis for using network access control, covered later in this list.</p>

<p><strong>Deploy an intrusion detection system (IDS).</strong><br />
Intrusion detection systems often use heuristics that can detect malicious activity on your network before an actual definition is created by antivirus and anti-malware vendors. IDSes also provide a foundation for forensic analysis in case you care to examine how an exploit entered your network (should one actually penetrate your defenses).</p>

<p><strong>Employ perimeter protection, like a stateful firewall.</strong><br />
This almost goes without saying (which is why I put it midway through the list), but perimeter defense is the first, best and most effective way to protect against zero-day exploits in a variety of forms. To help prevent your network from being a vector of delivery for a nasty vulnerability, deploy a firewall immediately. Better yet, deploy a better firewall than the one you have now, and perform regular audits of that firewall if you aren't doing audits already.</p>

<p><strong>Introduce network access control to prevent rogue machines from gaining access to the wire.</strong><br />
One of the easiest and arguably most prevalent ways for nefarious software or Internet users to creep onto your network is not through holes in your firewall, nor brute-force password attacks nor anything else that might occur at your corporate headquarters or campus. It's through your mobile users -- when they try to connect to your business network while on the road and through visitors on your campus trying to attach themselves to your network. Neither of these categories of machines are subject to your (hopefully) stringent security policies, and that's a problem. Network access control products, like Cisco's NAC, NAQC in Windows Server 2003 and the possible inclusion of network access point (NAP) in the upcoming Longhorn Server are all good ways to close this attack vector.</p>

<p><strong>Lock down wireless access points and use a security scheme like Wi-Fi Protected Access or WPA2 for maximum protection against wireless-based attacks.</strong><br />
Simply using media access control (MAC) filtering and not broadcasting your service set identifier (SSID) are methods that just don't cut it anymore in a corporate setting. WEP has been cracked numerous times and even the most junior cracker will have no trouble gaining access to your wireless network protected only by WEP. Look into WPA2 to really filter out the bad guys.</p>]]>
    </content>
</entry>
<entry>
    <title>Eliminate zero-day threats with virtual server technology</title>
    <link rel="alternate" type="text/html" href="http://www.setup32.com/network-administration/security/zero-day-threats-virtual-servers.php" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.setup32.com/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=448" title="Eliminate zero-day threats with virtual server technology" />
    <id>tag:www.setup32.com,2006:/network-administration//2.448</id>
    
    <published>2006-11-18T17:54:30Z</published>
    <updated>2006-11-18T18:06:08Z</updated>
    
    <summary>One solution when fighting zero-day attacks is to take advantage of virtual server technology. If you have several server roles that require a minimal amount of system resources, you could consolidate those roles onto a single physical server that is hosting multiple virtual servers. Doing so provides better security than...</summary>
    <author>
        <name>Julian</name>
        
    </author>
            <category term="10. Windows Server 2003" />
            <category term="11. Security" />
    
    <content type="html" xml:lang="en" xml:base="http://www.setup32.com/network-administration/">
        <![CDATA[<p>One solution when fighting zero-day attacks is to take advantage of virtual server technology. If you have several server roles that require a minimal amount of system resources, you could consolidate those roles onto a single physical server that is hosting multiple virtual servers. Doing so provides better security than hosting all of the server roles under a common operating system (OS) because each virtual OS functions as an isolated environment.</p>]]>
        <![CDATA[<p>Using virtual servers is also more cost effective than using separate physical boxes for each server. Not only do you save money on hardware, but you also save on licenses: Windows Server 2003 R2 is licensed to run up to four virtual instances of Windows Server on each physical server.</p>

<p>Whether you choose to use physical or virtual servers, the real trick is to figure out exactly which components you do and do not need on each server. Only then can you remove unnecessary components and disable unnecessary services. (Disabling unnecessary services and uninstalling unnecessary components also tends to increase the server's performance.)</p>

<p>Fortunately, it's not as difficult as it sounds. Microsoft has created a document called the Windows Server 2003 Security Guide, which helps you figure out which components are necessary for your situation. The guide takes a role-based approach to server security and discusses at length which components are required for servers acting in various roles. You can access the <a href="http://www.microsoft.com/technet/security/prodtech/windowsserver2003/w2003hg/sgch00.mspx">Windows security guide on Microsoft's TechNet site</a>.</p>

<p>Although the Windows Server 2003 Security Guide is a rather extensive document, it does not cover every possible scenario. The good news is that Microsoft has published similar guides pertaining to most of its server products. For example, suppose that one of the servers in your organization is running Exchange Server 2003. The Windows Server 2003 Security Guide does not address the procedure for hardening an Exchange Server. It does, however, contain a baseline procedure for hardening a member server. You can use the baseline policy as a starting point and then refer to the <a href="http://www.microsoft.com/downloads/details.aspx?familyid=6A80711F-E5C9-4AEF-9A44-504DB09B9065&displaylang=en">Microsoft Exchange Server 2003 Security Hardening Guide</a> for specific Exchange Server requirements.</p>

<p>I can't provide the links for all of the security guides -- there are just too many of them. But, you can easily find any of these guides by performing a simple query using the product name and the words SECURITY GUIDE in either Google or directly on the Microsoft Web site.</p>

<p>The most effective countermeasure against zero-day exploits involves reducing the attack surface of the computer that you are trying to protect. Keep in mind that you should always exercise security in depth. In other words, don't depend solely on a limited attack surface to protect you against a zero-day exploit. Adhere to standard security best practices, such as keeping systems patched, keeping antivirus software up to date, using strong passwords and working with the lowest possible user privileges. </p>]]>
    </content>
</entry>
<entry>
    <title>Permitting Ping: ICMP Exceptions</title>
    <link rel="alternate" type="text/html" href="http://www.setup32.com/network-administration/networking/permitting-ping-icmp.php" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.setup32.com/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=445" title="Permitting Ping: ICMP Exceptions" />
    <id>tag:www.setup32.com,2006:/network-administration//2.445</id>
    
    <published>2006-11-16T18:42:13Z</published>
    <updated>2006-11-16T18:50:16Z</updated>
    
    <summary>When Windows Firewall first appeared in XP SP2, I started getting odd questions on email. They all went something like, &quot;Hey, something&apos;s weird on my system now that I&apos;m running SP2. I&apos;ve got two computers, A and B. A can ping B, but B can&apos;t ping A. What&apos;s going on?&quot;...</summary>
    <author>
        <name>Julian</name>
        
    </author>
            <category term="01. Windows 2000 Server" />
            <category term="02. Windows 2000 Professional" />
            <category term="03. Windows XP" />
            <category term="05. Networking" />
            <category term="10. Windows Server 2003" />
    
    <content type="html" xml:lang="en" xml:base="http://www.setup32.com/network-administration/">
        <![CDATA[<p>When Windows Firewall first appeared in XP SP2, I started getting odd questions on email. They all went something like, "Hey, something's weird on my system now that I'm running SP2. I've got two computers, A and B. A can ping B, but B can't ping A. What's going on?" What was going on was that system A was running XP SP2 with Windows Firewall enabled by default, and system B was a Windows 2000 system without any firewalls.</p>]]>
        <![CDATA[<p>When A pinged B, then the firewall on A said, "Ah, we're pinging B; when the response comes back, I'll let it through," but when A pings B, then B says "Auugh! An unsolicited transmission! No doubt it's some blackguard worm, I'd better block it!"</p>

<p>Ping's the most basic troubleshooting tool in many a networker's arsenal, and it's a pain to try to do network troubleshooting in a network that's blocked all pings, as I discussed back in the DEP chapter. But pings are useful to more than folks trying to troubleshoot; several network protocols need ping to operate correctly. For example, part of group policy processing on a client needs an answer to the question, "Am I dialed up or directly connected via a high-speed network to my domain controller?" If the client's dialed up, then the client skips software installation (installing Word over a 56 Kbps connection wouldn't be fun), folder redirection (ditto), and login scripts. But how to know whether a system's dialed up or LAN-connected? Well, believe it or not, your system pings the domain controller, times how long it takes for the response, and guesses the connection speed from there. Of course, a DC with a ping-ignoring firewall in place never responds, and so every system in the network thinks it's dialed up, and that's not good, so let's see how to allow ICMP messages through WF.</p>

<p><strong>Allowing Ping from the GUI</strong></p>

<p>To open the door for pings from the GUI, bring up the Windows Firewall applet in Control Panel as you've done before: Start > Control Panel > Windows Firewall, and then click the Advanced tab. Click the <strong>Settings</strong> button in the ICMP section.</p>

<p>You see several different settings to allow different things in ICMP with check boxes next to them. You may have to check them all in some cases, but in my experience the only thing I tend to need is ICMP's incoming echo request. I've checked that box in the screen shot. To allow ping responses, check <strong>Allow Incoming Echo Request</strong> and click OK, then click OK to clear the WF property page. You'll then be able to ping the web server from the XP box, if you're following along in the examples.</p>

<p>Once you've opened up ICMP responses, a <strong>netsh firewall show state</strong> won't reflect any changes. But add <strong>verbose=enable</strong>, and you'll get a lot more information, including this:</p>

<pre>
ICMP settings for all network interfaces:

<p>Mode	Type	Description<br />
Disable 	2 	Allow outbound packet too big<br />
Disable 	3	Allow outbound destination unreachable<br />
Disable 	4	Allow outbound source quench<br />
Disable 	5	Allow redirect<br />
Enable 		8	Allow inbound echo request<br />
Disable 	9 	Allow inbound router request<br />
Disable 	11	Allow outbound time exceeded<br />
Disable 	12	Allow outbound parameter problem<br />
Disable 	13	Allow inbound timestamp request<br />
Disable 	17	Allow inbound mask request</pre></p>

<p>Notice the line with Enable 8 Allow inbound echo request; that's the one that shows you that this system will respond to pings.</p>

<p><strong>Allowing Ping from the Command Line</strong></p>

<p>Next, let's see how to allow ICMP echoes from the command line. (If you're following the examples, then go back to the Advanced tab and uncheck the box in ICMP Exceptions that allowed ICMP echoes.) To enable ICMP echoes from the command line, you'd type</p>

<pre>netsh firewall set icmpsetting 8 enable</pre>

<p>The 8 means "ICMP echo"; to see all of the other numeric values and what they correspond to in ICMP-ese, type <strong>netsh firewall set icmpsetting /?</strong>. (Again, I've never found a use for them.) Alternatively, you can open up the whole set of ICMP responses with</p>

<pre>netsh firewall set icmpsetting all enable</pre>

<p>After executing either command, the web server will again respond to pings. To disable either ICMP echo or all ICMP responses, just replace enable with disable on the command line. To stop ICMP echo so as to be able to reopen it again with a group policy setting, then, you'd type</p>

<pre>netsh firewall set icmpsetting 8 disable</pre>

<p><strong>Allowing Ping from Group Policy settings</strong></p>

<p>To allow ICMP echoes from group policy, return to the Group Policy Editor and the Standard Profile folder under Windows Firewall. Open up the setting Windows Firewall: Allow ICMP Exceptions.</p>

<p>Yours will probably have the <strong>Not Configured</strong> radio button clicked; I've clicked the <strong>Enabled</strong> radio button so you can more easily see the options. (Oddly enough, there's a scroll bar in this dialog box, but scrolling up or down doesn't show any more options, so you're not missing anything!)</p>

<p>The setting you're looking for here is <strong>Allow Inbound Echo Request</strong>. After clicking <strong>Enabled</strong> in your dialog box, check the box next to <strong>Allow Inbound Echo Request</strong> and then click OK. Again, the pings will flow freely. As before, <strong>netsh firewall show state</strong> won't show any difference without the verbose=enable parameter except to reveal in the Group policy version = Windows Firewall that group policy settings are somewhere afoot. As before, any attempts to override the group policy setting via command line or GUI will be ignored. </p>]]>
    </content>
</entry>
<entry>
    <title>Eight daily steps to a more secure network</title>
    <link rel="alternate" type="text/html" href="http://www.setup32.com/network-administration/networking/eight-steps-secure-network.php" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.setup32.com/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=443" title="Eight daily steps to a more secure network" />
    <id>tag:www.setup32.com,2006:/network-administration//2.443</id>
    
    <published>2006-11-16T18:07:04Z</published>
    <updated>2006-11-21T00:21:12Z</updated>
    
    <summary>While many companies have a 9-to-5 security staff, hackers don&apos;t punch a clock. However, your network can still remain secure in the 16 hours in-between - you just need to focus activities to provide maximum coverage for the network....</summary>
    <author>
        <name>Julian</name>
        
    </author>
            <category term="05. Networking" />
            <category term="11. Security" />
    
    <content type="html" xml:lang="en" xml:base="http://www.setup32.com/network-administration/">
        <![CDATA[<p>While many companies have a 9-to-5 security staff, hackers don't punch a clock. However, your network can still remain secure in the 16 hours in-between - you just need to focus activities to provide maximum coverage for the network.</p>]]>
        <![CDATA[<p>In today's connected world, hacking is a 24/7 business. Whether approaching it as a job or a hobby, hackers don't punch a clock.</p>

<p>While many companies don't have the budget for 24/7 security managers, that doesn't mean you should just give up on security. If your security staff, or your one security staff member, is on a 9-to-5 schedule, your network can still remain secure in the 16 hours in-between - you just need to focus activities to provide maximum coverage for the network.</p>

<p>Develop a methodical, comprehensive task list that provides the most efficient means of securing your network. To jump-start your planning, here are eight simple tasks you should make sure to check off every day.<br />
<strong><br />
After arriving at work, get some coffee, check your e-mail, and do the following:</strong></p>

<p>1. <strong>Verify the current connections</strong>: There's nothing like catching malicious behavior while it's occurring. Inspect all the connections going through your firewall -- both in and out. Look for anomalies and investigate them; this could include outbound FTP or inbound Telnet/SSH sessions. You're looking for things that aren't normal.</p>

<p>2. <strong>Look at network traffic statistics</strong>: How much activity took place while you weren't there? What type of traffic was it, and what was the destination and source?</p>

<p>3. <strong>Look at your antivirus logs</strong>: Did a virus hit your e-mail system last night? Are the antivirus signatures up to date?</p>

<p>4. <strong>Read the security logs on your domain servers</strong>: Did the system lock out any accounts last night? Pay special attention to any accounts with administrator access. Verify that lockouts were human error - and not part of a breach attempt.</p>

<p>5. <strong>Check for new security patches</strong>: Determine whether any of your vendors released patches for any software in your baseline. (If you don't have a baseline, I highly recommend developing one.) If a new patch is available, read the release notes thoroughly. Then, make a decision or recommendation whether to implement it now or wait for scheduled system downtime.</p>

<p><strong>When you arrive back from lunch, there's still a lot left to do:</strong></p>

<p>1. <strong>Meet and brief</strong>: Managers like to know what's going on, so don't wait for them to ask -- tell them. Meet and brief on anything that occurred during the evening and the actions you've taken so far. This is also a good time to pitch new ideas; such as tools that could help you defend the network or staff training.</p>

<p>2. <strong>Check more logs</strong>: Take an in-depth look at IDS and firewall logs. Who on the Internet is knocking on your door? What are they looking for? Who on the inside of your network is doing something they shouldn't be?. If you find unauthorised and/or illegal activity, report it immediately, and take action to stop it.</p>

<p>3. <strong>Turn knowledge into action</strong>: Now that you know what went on while you weren't there, develop an action plan to prevent the behavior in the future. Do you need to adjust your firewall rules? Is your IDS catching and reporting the proper events? Do you need to archive logs to save space on your servers? Do you need to give a final briefing on any actions that occurred during the last 24 hours?</p>

<p><strong>Final thoughts</strong></p>

<p>A lot of companies don't run 24/7 security operations, and sometimes you might find yourself as the only person providing security for a network. While it's easy to get caught up in events and miss important items on your security checklist, you'll never know what you're missing if you don't create a list in the first place. Network security shouldn't be reactionary -- don't wait for events to drive you into action.</p>

<p>The above list isn't complete, but it's a starting point. Create your own security to-do list that's specific to your organisation's needs, and keep your security on track.</p>

<p>---</p>

<p><em>Mike Mullins has served as an assistant network administrator and a network security administrator for the U.S. Secret Service and the Defense Information Systems Agency. He is currently the director of operations for the Southern Theater Network Operations and Security Center.</em></p>]]>
    </content>
</entry>
<entry>
    <title>What you need to know about OSPF</title>
    <link rel="alternate" type="text/html" href="http://www.setup32.com/network-administration/networking/know-ospf.php" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.setup32.com/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=434" title="What you need to know about OSPF" />
    <id>tag:www.setup32.com,2006:/network-administration//2.434</id>
    
    <published>2006-11-09T11:36:39Z</published>
    <updated>2006-11-09T11:47:20Z</updated>
    
    <summary>As I mentioned in the &quot;What you need to know about EIGRP&quot; article, EIGRP and Open Shortest Path First (OSPF) are the two most popular routing protocols for today&apos;s midsize and large companies—both offer a huge breadth of features that can cover just about any routing scenario such companies would...</summary>
    <author>
        <name>Julian</name>
        
    </author>
            <category term="05. Networking" />
    
    <content type="html" xml:lang="en" xml:base="http://www.setup32.com/network-administration/">
        <![CDATA[<p>As I mentioned in the "<a href="http://www.setup32.com/network-administration/networking/know-eigrp.php">What you need to know about EIGRP</a>" article, EIGRP and Open Shortest Path First (OSPF) are the two most popular routing protocols for today's midsize and large companies—both offer a huge breadth of features that can cover just about any routing scenario such companies would need. That article answered some common questions about EIGRP, but what about OSPF?</p>]]>
        <![CDATA[<h2>Review the OSPF basics</h2>

<p>OSPF is an internal routing protocol. (While primarily used inside a single company, it can span multiple sites.) Based on RFC 2328, it's an open standard. Because of this, OSPF is available on Microsoft's Windows Server 2003 OS, Linux, and many other network devices - unlike Cisco's EIGRP routing protocol. Like other dynamic routing protocols, OSPF enables routers to disclose their available routes to other routers.</p>

<p>OSPF is a link-state routing protocol that runs Dijkstra's algorithm to calculate the shortest path to other networks. Taking the bandwidth of the network links into account, it uses cost as its metric. OSPF works by developing adjacencies with its neighbors, periodically sending hello packets to neighbors, flooding changes to neighbors when a link's status changes, and sending "paranoia updates" to neighbors of all recent link state changes every 30 minutes.</p>

<p>While OSPF is an excellent routing protocol for networks of all sizes, one of its weaknesses is that it can be quite complex to configure. On the other hand, it offers more features than simpler protocols such as RIP.</p>

<p>Here are some of OSPF's strengths:</p>

<p>    * It converges quickly, compared to a distance-vector protocol.<br />
    * Routing update packets are small, as it doesn't send the entire routing table.<br />
    * It's not prone to routing loops.<br />
    * It scales very well for large networks.<br />
    * It recognizes the bandwidth of a link and takes this into account in link selection.<br />
    * It supports variable-length subnet masks (VLSM) or Classless Inter-Domain Routing (CIDR).<br />
    * It supports a long list of optional features that many others don't.</p>

<p><strong>Configure OSPF</strong></p>

<p>Some may find OSPF configuration intimidating, so let's look at how to make it easy. Let's start with a basic network: Our network example has two routers - one in San Diego (192.168.1.0 /24) and one in Dallas (192.168.2.0 /24). Between these two routers, there's a point-to-point T1 circuit with IP network address 1.1.1.0/30. The San Diego router's WAN interface is 1.1.1.1, and the Dallas router's WAN interface is 1.1.1.2.</p>

<p>We'll begin by configuring the router in San Diego. The first step to configuring OSPF is to use the router ospf command when in Global Configuration Mode. Here's an example:</p>

<pre>Router(config)# router ospf {process number}
Router(config-router)#</pre>

<p>While it doesn't matter which process number you use, I recommend keeping it the same on all OSPF routers on your network. I usually use 100 to keep everything simple. However, if you use different process numbers, OSPF will still work and exchange all routes - unlike EIGRP.</p>

<p>After entering OSPF Configuration Mode, the most common next step is to specify which networks OSPF will advertise, which you can do using the network command. Here's an example:</p>

<pre>Router(config-router)# network 192.168.1.0 0.0.0.255 area 0
Router(config-router)# network 1.1.1.0 0.0.0.3 area 0</pre>

<p>The first parameter is the network ID, and the second parameter is the inverse mask. The inverse mask - or wildcard mask - is the inverse of the subnet mask. It tells OSPF what range of interfaces the IP addresses given will apply to. Therefore, you can have one network statement that covers multiple interfaces.</p>

<p>You also need to specify the area, which is how OSPF organizes networks. All traffic must flow through area 0. In a small network, it's logical to put all networks in area 0, as we did in the example.</p>

<p>After you've configured each side of the network, the routers will exchange routes and form adjacencies. You should see a statement in the log file or console that looks something like the following:</p>

<pre>*Mar  1 02:53:33.370: %OSPF-5-ADJCHG: Process 100, Nbr 1.1.1.1 
  on Ethernet0/0 from LOADING to FULL, Loading Done</pre>

<p>To make sure you see these types of messages, use the log-adjacency-changes command in your OSPF router configuration. This command causes OSPF to enter information into the router's log file whenever it loses or regains connectivity with its neighbors. Here's an example:</p>

<pre>Router(config-router)# log-adjacency-changes</pre>

<p><strong>Check the status of OSPF</strong></p>

<p>After you've configured OSPF, you need to know how to check its status. Here are some common OSPF commands, along with links to their Cisco documentation and sample output from our example:</p>

<p>* <a href="http://www.cisco.com/univercd/cc/td/doc/product/software/ios124/124cr/hirp_r/rte_osph.htm#wp1001842">show ip ospf</a><br />
* <a href="http://www.cisco.com/univercd/cc/td/doc/product/software/ios124/124cr/hirp_r/rte_osph.htm#wp1003453">show ip ospf neighbor</a><br />
* <a href="http://www.cisco.com/univercd/cc/td/doc/product/software/ios124/124cr/hirp_r/rte_osph.htm#wp1003339">show ip ospf interface</a><br />
* <a href="http://www.cisco.com/univercd/cc/td/doc/product/software/ios124/124cr/hirp_r/rte_pih.htm#wp1127379">show ip route ospf</a></p>

<p>For more information on OSPF, see <a href="http://www.cisco.com/warp/public/104/1.html">Cisco's OSPF Design Guide</a> and <a href="http://www.cisco.com/univercd/cc/td/doc/product/software/ios124/124cg/hirp_c/ch15/index.htm">Cisco's OSPF Documentation</a>.</p>]]>
    </content>
</entry>
<entry>
    <title>What you need to know about EIGRP</title>
    <link rel="alternate" type="text/html" href="http://www.setup32.com/network-administration/networking/know-eigrp.php" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.setup32.com/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=433" title="What you need to know about EIGRP" />
    <id>tag:www.setup32.com,2006:/network-administration//2.433</id>
    
    <published>2006-11-09T11:21:05Z</published>
    <updated>2006-11-09T11:36:18Z</updated>
    
    <summary>When it comes to internal routing protocols, the two most popular in use today at midsize and large companies are Enhanced Interior Gateway Routing Protocol (EIGRP) and Open Shortest Path First (OSPF). Both of these routing protocols offer a huge breadth of features that can cover just about any routing...</summary>
    <author>
        <name>Julian</name>
        
    </author>
            <category term="05. Networking" />
    
    <content type="html" xml:lang="en" xml:base="http://www.setup32.com/network-administration/">
        <![CDATA[<p>When it comes to internal routing protocols, the two most popular in use today at midsize and large companies are Enhanced Interior Gateway Routing Protocol (EIGRP) and Open Shortest Path First (OSPF). Both of these routing protocols offer a huge breadth of features that can cover just about any routing scenario that a midsize or large company would require.</p>]]>
        <![CDATA[<p>Not very familiar with EIGRP? Let's look at some common things every network administrator needs to know.</p>

<h2>Know the EIGRP basics</h2>

<p>Let's start with the fundamentals of EIGRP and discuss how to configure this protocol.</p>

<p><strong>What type of routing protocol is EIGRP?</strong><br />
EIGRP is a hybrid-distance-vector routing protocol. It's primarily a distance-vector routing protocol, but it also uses the same composite metrics as Interior Gateway Routing Protocol (IGRP). EIGRP uses the Diffusing-Update Algorithm (DUAL) to perform look-free routing and calculate the shortest path.</p>

<p><strong>How does EIGRP work?</strong><br />
With EIGRP, two routers form a neighbor relationship and exchange routes. Hello packets ("keepalives") are present between the two routers; they serve to let each side know if the other goes down or if the link between them goes down.</p>

<p>Typically, these keepalives between neighbors are multicast packets. The type of multicast used is Reliable Transport Protocol (RTP), and communication takes place using the reserved IP address 224.0.0.10.</p>

<p><strong>How do I configure EIGRP?</strong><br />
Like OSPF, EIGRP uses autonomous system numbers to identify areas of the network that are under a single administrative domain. In other words, these network areas are under the control of a single part of the company or a certain group.</p>

<p>To activate EIGRP on your router and enter its Configuration Mode, use the router eigrp command while in Global Configuration Mode. Here's an example:</p>

<pre>Router(config)# router eigrp {AS number}
Router(config-router)#</pre>

<p>It doesn't matter which Autonomous System (AS) number you use - as long as it's the same on all routers that will be talking to each other. Valid options for the AS number are 1 to 65535. While you can configure more than one AS on a single router, Cisco doesn't recommend this approach</p>

<p>After entering the EIGRP Configuration Mode, a network administrator's most common task is to specify which networks EIGRP will advertise. You can accomplish this using the network command. Here's an example:</p>

<pre>Router(config-router)# network 10.0.0.0 0.255.255.255</pre>

<p>The first parameter is the network IP address; the second parameter is the inverse mask. The inverse mask (or wildcard mask) is the inverse of the subnet mask.</p>

<p>This command is similar to the OSPF network command. It tells OSPF which range of interfaces the specified IP addresses will apply to. So, you can have one network statement that covers multiple interfaces. However, unlike OSPF, EIGRP does not use areas.</p>

<p><strong>How do I see what's going on with EIGRP?</strong><br />
After you've configured EIGRP, you need to know how to check its status. Here's a list of the most common EIGRP commands as well as links to their Cisco documentation:</p>

<p>* <a href="http://www.cisco.com/en/US/products/sw/iosswrel/ps1828/products_command_reference_chapter09186a00800ca5a9.html#wp1018589">show ip eigrp neighbors</a><br />
* <a href="http://www.cisco.com/en/US/products/sw/iosswrel/ps1828/products_command_reference_chapter09186a00800ca5a9.html#wp1018485">show ip eigrp interfaces</a><br />
* <a href="http://www.cisco.com/en/US/products/sw/iosswrel/ps1828/products_command_reference_chapter09186a00800ca5a9.html#wp1021269">show ip eigrp topology</a><br />
* <a href="http://www.cisco.com/en/US/products/sw/iosswrel/ps1828/products_command_reference_chapter09186a00800ca5a9.html#wp1018815">show ip eigrp traffic</a></p>

<p><strong>Study the vocabulary</strong></p>

<p>Now that you know how to configure EIGRP and you're familiar with common commands, let's define some words you may run across while working with EIGRP.</p>

<p><strong>What is the topology table?</strong><br />
Essentially, the topology table is the EIGRP database of available routes received from neighbors. It shows the metric for these routes as well as the feasible distance to these networks. The topology table contains a lot of information about successors, feasible successors, and feasible distance.</p>

<p><strong>What is a successor?</strong><br />
A successor is the neighbor with the best path to a destination.</p>

<p><strong>What is a feasible successor?</strong><br />
A feasible successor is the neighbor or neighbors that have other loop-free paths to a destination that aren't a preferred as the successor's path.</p>

<p><strong>What is the feasible distance?</strong><br />
The feasible distance is the metric of a network advertised by the connected neighbor plus the cost to get there.</p>

<p><strong>What is an adjacency?</strong><br />
An adjacency is when two neighbors form a relationship and are exchanging routes.</p>

<h2>Get more specific</h2>

<p>Now let's take a look at some specifics about using EIGRP.</p>

<p><strong>Does EIGRP use split horizon?</strong><br />
Split horizon is a loop-prevention method. Essentially, when using split horizon, a routing protocol tries to prevent a routing loop. It does this by not advertising a route from an interface from which it received an advertisement for that route.</p>

<p>EIGRP uses split horizon, but you can disable it if necessary. To do so, use the no ip split-horizon eigrp {AS number} command. Keep in mind that the no ip split-horizoncommand doesn't affect EIGRP, as it would RIP. Link-state routing protocols such as OSPF and the Intermediate System-to-Intermediate System (IS-IS) protocol don't use split horizon.</p>

<p><strong>Does EIGRP support VLSM or CIDR?</strong><br />
EIGRP carries the subnet mask in the routing update, and it does support both variable length subnet masks (VLSM) and Classless Inter-Domain Routing (CIDR). In other words, you can subnet your network from the classful boundaries (where a class A network is 10.0.0.0 with a 255.0.0.0 subnet mask, etc.), and EIGRP will work fine. (Lack of support for VLSM and CIDR are limitations of RIP and IGRP.)</p>

<p>By default, EIGRP summarizes networks at the classful boundaries. You can disable this by using the no auto-summary command in Router Configuration Mode.</p>

<p><strong>What is the administrative distance (AD) and routing table code for EIGRP?</strong><br />
An entry in the routing table for EIGRP looks something like the following:</p>

<pre>D       10.93.103.0/24 [90/5542656] via 10.226.100.1, 00:30:54, Serial5/0</pre>

<p>The D at the beginning tells you that this is EIGRP. The 90 is the administrative distance for this EIGRP route. This is the default administrative distance for EIGRP.</p>

<p><strong>What happens when EIGRP is "stuck in active"?</strong><br />
"Stuck in active" is a common issue with EIGRP. In fact, it's so common that Cisco has an acronym for it: SIA. Cisco has also created a <a href="http://www.cisco.com/en/US/customer/tech/tk365/technologies_tech_note09186a008010f016.shtml">support page for SIA</a>; however, Cisco login information is required.</p>

<p>Essentially, SIA occurs when an EIGRP router doesn't receive a query reply sent to its neighbor after three minutes. When this happens, you'll see "DUAL-3-SIA" in the log file. Troubleshooting this can be quite complex, so I would refer to the Cisco documentations.</p>]]>
    </content>
</entry>

</feed> 

