<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Vishal Vasu&#039;s Tech Talk &#187; Windows Server</title>
	<atom:link href="http://www.vishalvasu.com/category/windows-server/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.vishalvasu.com</link>
	<description>Opening Doors to Windows Technology</description>
	<lastBuildDate>Wed, 02 Jun 2010 12:49:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Backup Exchange Server 2007 on Windows 2008 using NTBackup</title>
		<link>http://www.vishalvasu.com/backup-exchange-server-2007-on-windows-2008-using-ntbackup/</link>
		<comments>http://www.vishalvasu.com/backup-exchange-server-2007-on-windows-2008-using-ntbackup/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 08:40:30 +0000</pubDate>
		<dc:creator>Vishal Vasu</dc:creator>
				<category><![CDATA[Exchange Server]]></category>
		<category><![CDATA[Windows Server]]></category>
		<category><![CDATA[exchange 2007]]></category>
		<category><![CDATA[windows server 2008]]></category>

		<guid isPermaLink="false">http://www.vishalvasu.com/?p=226</guid>
		<description><![CDATA[All those System Administrators running their Exchange Server 2007 on a Windows 2003 (64-bit) server have the previlage to get access to the traditional NTBackup utility to backup their exchange stores. But those who are running their Exchange Server 2007 on Windows 2008 (64-bit) must have faced the dilema of which tool to use to [...]]]></description>
			<content:encoded><![CDATA[<p>All those System Administrators running their Exchange Server 2007 on a Windows 2003 (64-bit) server have the previlage to get access to the traditional NTBackup utility to backup their exchange stores. But those who are running their Exchange Server 2007 on Windows 2008 (64-bit) must have faced the dilema of which tool to use to backup their mail stores. This is because Windows Server Backup in Windows Server 2008 no longer supports Exchange-aware backups or restores. In order to back up and restore Exchange Server 2007 Service Pack 1 (SP1) on Windows Server 2008, you must use an Exchange-aware application that supports the Volume Shadow Copy Service (VSS) writer for Exchange 2007, such as Microsoft System Center Data Protection Manager, a third-party Exchange-aware VSS-based application, or a third-party Exchange-aware application that uses the streaming backup APIs locally on the Exchange server to make a backup locally on the Exchange server.</p>
<p>What does all this mean? Nothing but shelling out extra $$$ to invest in a backup solution unless you are interested in a very simple backup solution to assure that the logs get truncated and you have backup copies which you can restore. Here is a basic hack which can help one save a couple of $$$.</p>
<p><strong><span style="text-decoration: underline;">Step #1</span></strong></p>
<p>Get access to a Windows 2003 R2 Server which is running a 64-bit OS. Assuming that you are not running your production Exchange Server 2007 in 32-bit environment, we require the 64-bit version library files. If you do not have a one handy, you can get the source files and then expand the DLL&#8217;s or install one in a virtual environment.</p>
<p><strong><span style="text-decoration: underline;">Step #2</span></strong></p>
<p>Copy the <strong>ntbackup.exe, ntmsapi.dll, and vssapi.dll</strong> files from <strong>C:\windows\system32</strong> into a new folder on your Exchange Server 2007 running on Windows 2008. I created a folder called NTBackup under Program Files and placed them there.</p>
<div class="wp-caption alignnone" style="width: 606px"><img src="http://www.vishalvasu.com/uploaded_images/ntbackup-exchange2007-01.gif" alt="NT Backup Exchange 2007" width="596" height="333" /><p class="wp-caption-text">NT Backup Exchange 2007</p></div>
<p><strong><span style="text-decoration: underline;">Step # 3</span></strong></p>
<p>Right click Ntbackup.exe and choose <strong>&#8220;Run as administrator&#8221;</strong>.</p>
<p><img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/ntbackup-exchange2007-02.gif" alt="" width="596" height="333" /></p>
<p>Your should see the Exchange Server Information Store as part of your backup wizard.</p>
<p><img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/ntbackup-exchange2007-03.gif" alt="" width="641" height="478" /></p>
<p>Select the Information Stores that you want to backup. Choose the Backup media or filename and the path where you want to store your backups. Once you have finished the configuration, click on <strong>Start Backup</strong> and the exchange store backups should start.</p>
<p><img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/ntbackup-exchange2007-04.gif" alt="" width="358" height="397" /></p>
<p>Once the backup is complete, you should see all the transaction logs getting truncated (hope circular logging is not enabled) and also the mail store would be stamped with the Last Full Backup date and time stamp.</p>
<p>One thing to note though: you cannot back up a storage group in a Standby Continuous Replication (SCR) environment. Backups of storage group copies are available for Local Continuous Replication (LCR) or Cluster Continuous Replication only.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vishalvasu.com/backup-exchange-server-2007-on-windows-2008-using-ntbackup/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Securing Microsoft SQL Server</title>
		<link>http://www.vishalvasu.com/securing-microsoft-sql-server/</link>
		<comments>http://www.vishalvasu.com/securing-microsoft-sql-server/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 08:30:21 +0000</pubDate>
		<dc:creator>Vishal Vasu</dc:creator>
				<category><![CDATA[Windows Server]]></category>
		<category><![CDATA[MS SQL]]></category>

		<guid isPermaLink="false">http://www.vishalvasu.com/?p=220</guid>
		<description><![CDATA[Here is a quick check list for System Engineers and Data Base Administrators to lock down MS SQL Server and secure the database server:
Communication: If possible and if budget permits, do not expose the SQL Server directly to the Internet. Allow the communication from a web server to the SQL database server over an internal [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a quick check list for System Engineers and Data Base Administrators to lock down MS SQL Server and secure the database server:</p>
<p><strong>Communication:</strong> If possible and if budget permits, do not expose the SQL Server directly to the Internet. Allow the communication from a web server to the SQL database server over an internal IP address.</p>
<p><strong>Strong Passwords:</strong> Ensure that the server uses a strong password for the &#8220;sa&#8221; account. Use a combination of letters, numbers and symbols. This make it difficult for Brute Force hacks to guess the password.</p>
<p><strong>Authentication:</strong> Keep this to Windows Authentication if possible and avoid setting SQL to run under Mixed Mode. Windows Authentication will require SQL server to check the Active Directory and moreover the logins will not be stored in the SQL server.</p>
<p><strong>Service Packs and Updates:</strong> Make sure that the SQL Server is always patched with the latest Service Pack and Security Updates. This ensures that the latest security vulnerabilities are addressed and blocked.</p>
<p><strong>Service Accounts:</strong> Run both MSSQLSERVER and SQLSERVERAGENT under the Domain User permissions. Do not run them under any Administrator account. This ensures very less damage in case the user account or the server is compromised.</p>
<p><strong>Block Ports:</strong> If there is no need to expose the MS SQL Server to the Internet, block port 1433 and 1434 at the firewall. This means that the SQL Server will not be accessible from the Internet, thus making it hard for outside attackers to reach to the server. It also prevents worms and viruses.</p>
<p><strong>Backups:</strong> Encrypt and compress the backup files. Put a password on the backups and store them to a safe location. Do not keep them on the server.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vishalvasu.com/securing-microsoft-sql-server/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Automate Patch Management with WSUS</title>
		<link>http://www.vishalvasu.com/automate-patch-management-with-wsus/</link>
		<comments>http://www.vishalvasu.com/automate-patch-management-with-wsus/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 08:18:57 +0000</pubDate>
		<dc:creator>Vishal Vasu</dc:creator>
				<category><![CDATA[Windows Server]]></category>
		<category><![CDATA[patch management]]></category>
		<category><![CDATA[windows 2003]]></category>
		<category><![CDATA[windows server 2008]]></category>

		<guid isPermaLink="false">http://www.vishalvasu.com/?p=205</guid>
		<description><![CDATA[Patching the Windows Operating System in an organization with multiple desktops and many flavors of operating systems is a mammoth task. It is vital for any Systems Administrator to ensure all systems are properly patched and updated to safe guard against virus, worms, and Trojans. The biggest challenge in running Windows Update on individual machines [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-size: small; font-family: Calibri;">Patching the Windows Operating System in an organization with multiple desktops and many flavors of operating systems is a mammoth task. It is vital for any Systems Administrator to ensure all systems are properly patched and updated to safe guard against virus, worms, and Trojans. The biggest challenge in running Windows Update on individual machines is the inconvenience of visiting each desktop and approving the updates manually. Moreover, the amount of bandwidth used at each desktop to download the updates is huge not to forget the lack of centralized reporting.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-size: small; font-family: Calibri;">So why do we need a centralized patch management policy? Well, the answer is simple &#8211; the systems are prone to risks and threats when exposed to the Internet or medias like USB pen drives, wireless networks and devices, etc. We all, at some point, might have experienced or read about the havoc caused by Blaster or the Sasser worms. Today software vendors have stepped up the releases of emergency and critical updates in a formalized manner to encounter these threats. Microsoft&#8217;s Patch Tuesday is a good example that highlights that. To learn more about this program, <a href="http://www.microsoft.com/technet/security/bulletin/advance.mspx" target="_blank">click here</a>. </span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-size: small; font-family: Calibri;">WSUS from Microsoft is a boon to Network and System Administrators in this scenario. WSUS (Windows Server Update Services) is basically designed to run on a company&#8217;s network and automate the process of patching. This free product from Microsoft does a fair job of streamlining the overall patch management process of an organization with centralized reporting. For a Network or System Administrator it is just a simple task of installing the WSUS server on a system and then configures all Desktops to use the WSUS server for software updates. This can be easily achieved by creating a group policy and linking the policy to the correct OU using Group Policy Editor. The Desktops would automatically announce their current status to the WSUS server with details like which patches are needed to be installed, which patches have failed to install, which patches have been successfully installed, etc.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-size: 11pt; line-height: 115%; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">In a nutshell, WSUS seems to be a good product especially when there is no price tag attached to it and starting with WSUS 3.0 the reports have also improved over its predecessor.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vishalvasu.com/automate-patch-management-with-wsus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing Exchange Server 2007 SP1 on Windows Server 2008 for coexistence with Exchange Server 2003</title>
		<link>http://www.vishalvasu.com/installing-exchange-server-2007-sp1-on-windows-server-2008-for-coexistence-with-exchange-server-2003/</link>
		<comments>http://www.vishalvasu.com/installing-exchange-server-2007-sp1-on-windows-server-2008-for-coexistence-with-exchange-server-2003/#comments</comments>
		<pubDate>Sat, 09 May 2009 10:24:46 +0000</pubDate>
		<dc:creator>Vishal Vasu</dc:creator>
				<category><![CDATA[Exchange Server]]></category>
		<category><![CDATA[Windows Server]]></category>
		<category><![CDATA[exchange 2003]]></category>
		<category><![CDATA[exchange 2007]]></category>
		<category><![CDATA[windows server 2008]]></category>

		<guid isPermaLink="false">http://www.vishalvasu.com/?p=183</guid>
		<description><![CDATA[In this article I&#8217;ve tried to explain how to install or upgrade an organization running on Exchange Server 2003 to Exchange Server 2007 SP1 on a Windows 2008 Server. In the next post I&#8217;ll be talking about some post install configurations and then after how to remove Exchange 2003 from the organization once everything is migrated [...]]]></description>
			<content:encoded><![CDATA[<p>In this article I&#8217;ve tried to explain how to install or upgrade an organization running on Exchange Server 2003 to Exchange Server 2007 SP1 on a Windows 2008 Server. In the next post I&#8217;ll be talking about some post install configurations and then after how to remove Exchange 2003 from the organization once everything is migrated to Exchange 2007.</p>
<p>There is no in-place upgrade supported with Exchange 2007 and so the only option is to upgrade to Exchange Server 2007 by adding it to the current Exchange 2003 organization and then moving all the resources from Exchange 2003 to Exchange 2007 and thereafter removing the Exchange 2003 Server. This means that we have no option but to perform a migration. So let&#8217;s get on with it.</p>
<p><strong><span style="text-decoration: underline;">Prerequisites</span></strong></p>
<p>The first step is to prepare our new Windows 2008 server so that it is ready for Exchange Server 2007 installation. Please note that we are talking about the 64-bit version of Exchange Server 2007 SP1 as the 32-bit version is not supported in production environment.</p>
<p>We will need the following components installed before we proceed:</p>
<ul>
<li>.Net Framework version 2.0 and 3.0</li>
<li>.Net Framework version 2.0 update or Service Pack 1</li>
<li>IIS 7 (various components)</li>
</ul>
<p><img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/exch-07-01.jpg" alt="" width="519" height="281" /> </p>
<ul>
<li>Windows PowerShell</li>
<li> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/exch-07-02.jpg" alt="" width="549" height="192" /></li>
<li>MMC -Microsoft Management Console 3.0 (installed by default so can be skipped)</li>
</ul>
<p>The following components should not be installed (were required in Exchange 2003):</p>
<ul>
<li>Network News Transfer Protocol (NNTP)</li>
<li>Simple Mail Transfer Protocol (SMTP)</li>
</ul>
<p>Once we have installed the prerequisites, let&#8217;s proceed towards the installation.</p>
<p><strong><span style="text-decoration: underline;">Installation Process</span></strong></p>
<p>We are going to install all Exchange Server Roles (HUB, CAS and MAILBOX) on one single box except for the Edge Transport Role. Let&#8217;s start by first preparing the Active Directory for Exchange 2007. Actually, the installer would do this automatically, but I like to perform this manually so that we can see what&#8217;s happening and understand it better. Here is what we will do before we run the installer of Exchange 2007:</p>
<ul>
<li>Prepare the schema for legacy Exchange permissions. This is because we are migrating from Exchange 2003 in the current organization.</li>
<li>Prepare Schema</li>
<li>Prepare Active Directory</li>
<li>Prepare the Domain</li>
</ul>
<p>The first thing that we do is to update the schema for legacy permissions. In order to do this we must login to the Domain Controller which is the Schema Master at the forest root and run the command from there.</p>
<p>Type <span style="color: #3366ff;"><strong><em>Setup /PrepareLegacyExchangePermissions</em></strong> </span>and press <strong>Enter</strong>.</p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/exch-07-03.jpg" alt="" width="550" height="203" /></p>
<p>This must be run as an Exchange Admin account and also ensure that you are in the local server&#8217;s Administrator group. The safest thing to do is to add the user account you are logged in with to the Enterprise Administrators Group, Schema Administrator Group and Domain Administrators Group. Also, the domain should be able to communicate with all other domains in the forest and we should all ample time for the replication to finish once this command is run.</p>
<p>Next, we will proceed towards updating the Schema from the Windows 2008 Server.  Type <strong><em><span style="color: #3366ff;">Setup /PrepareSchema</span> </em></strong>and press <strong>Enter</strong>.</p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/exch-07-04.jpg" alt="" width="550" height="262" /></p>
<p>We can see that the task failed with an error on the server. This is because the Remote Server Administration Tools were not installed. We can do this using the GUI but I&#8217;ve used the command line. Type <strong><em><span style="color: #3366ff;">ServerManagerCmd -I RSAT-ADDS</span></em></strong> and press <strong>Enter</strong>.</p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/exch-07-05.jpg" alt="" width="550" height="273" /></p>
<p>Here we go, the Remote Server Administration Tools have been installed and we need to reboot our Windows 2008 server before proceeding further.</p>
<p>Once the server has rebooted, let&#8217;s try preparing the Schema once again. Type the command that we used earlier &#8211; <strong><em><span style="color: #3366ff;">Setup /PrepareSchema</span></em></strong> and press <strong>Enter</strong>.</p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/exch-07-06.jpg" alt="" width="550" height="273" /></p>
<p>This time the task completed without error. Let&#8217;s move on.</p>
<p>Type <em><strong><span style="color: #3366ff;">Setup /PrepareAD</span></strong></em> to proceed with the Active Directory preparation.</p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/exch-07-07.jpg" alt="" width="550" height="273" /></p>
<p>Once this is completed, move on with preparing the domain.</p>
<p>Type <strong><em><span style="color: #3366ff;">Setup /PrepareDomain</span></em></strong> and press <strong>Enter</strong>.<br />
<span style="color: #ff0000;"><strong>Note:</strong> this setup can be skipped if you do not have multiple domains within the forest.</span></p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/exch-07-08.jpg" alt="" width="550" height="273" /></p>
<p>Great, we are done with preparing our Active Directory for Exchange Server 2007 SP1 installation and now we can run the installer. If you have geographically dispersed domains, please allow enough time for replication to happen over the WAN links.</p>
<p>So, with the Active Directory now ready, we are ready to complete the installation. Start the setup. The first screen that we see is as under:</p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/exch-07-09.jpg" alt="" width="550" height="413" /></p>
<p>Since we have already taken care of the prerequisites, we can directly proceed to Step-4 i.e. Install Microsoft Exchange Server 2007 SP1. <strong>Click</strong> on it and we will be presented with the standard EULA.</p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/exch-07-010.jpg" alt="" width="550" height="480" /></p>
<p>Accept the License Agreement and click <strong>Next</strong>.</p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/exch-07-011.jpg" alt="" width="550" height="480" /></p>
<p>We now have a choice of a Typical Installation or a Custom Installation. Since I like to see what configuration options are available, I always tend to choose the Custom option. Also, for this example, we are going to install the Exchange server in the <strong>D:</strong> drive instead of the <strong>C:</strong> drive. You can change the path to your liking here. Once the selections are done, click <strong>Next</strong>.</p>
<p>The next screen allows us to choose which roles we want to install.</p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/exch-07-012.jpg" alt="" width="550" height="480" /></p>
<p>We will choose all the three main roles i.e. Mailbox Role, Client Access Role (CAS) and Hub Transport Role (HUB). I&#8217;m not choosing the Unified Messaging Role (UM) as I intend to do a separate article on this in the near future.</p>
<p>Once the selections have been done, click <strong>Next</strong>.</p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/exch-07-013.jpg" alt="" width="550" height="480" /></p>
<p>Here we go. The installer now prompts for the Mail Flow setting. Since we have an Exchange 2003 server we will need to browse and select the same so as to enable it as a Bridgehead server in the routing group. Once selected, click <strong>Next</strong>.</p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/exch-07-015.jpg" alt="" width="550" height="480" /></p>
<p>In the Readiness Check page, wait for all the readiness checks to complete and then click <strong>Install</strong>.</p>
<p>The installation process takes some time so it would be a good idea to sit back and relax over a cup of coffee. During the installation process, if we open up the System Manager on Exchange Server 2003, we will notice a new routing group.</p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/exch-07-014.jpg" alt="" width="339" height="133" /></p>
<p>Once the installation process completes, we now have a working environment of the new Exchange Server 2007 SP1. The process of installing Exchange 2007 on a Windows 2008 server is fairly simple.</p>
<p><img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/exch-07-016.jpg" alt="" width="550" height="480" /></p>
<p>To verify the installation, open the new Exchange Management Shell and type <strong><em><span style="color: #3366ff;">Get-ExchangeServer</span></em></strong>. A list of all Exchange 2007 server roles that we installed would be displayed. It is a good idea now to open up the Management Console of Exchange and run the Exchange Best Practices Analyzer. It will give a good idea about the deployment and would help in determining if the configuration has been done in accordance to the Microsoft best practices.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vishalvasu.com/installing-exchange-server-2007-sp1-on-windows-server-2008-for-coexistence-with-exchange-server-2003/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>How to Install Perl on IIS</title>
		<link>http://www.vishalvasu.com/how-to-install-perl-on-iis/</link>
		<comments>http://www.vishalvasu.com/how-to-install-perl-on-iis/#comments</comments>
		<pubDate>Sat, 02 May 2009 13:12:23 +0000</pubDate>
		<dc:creator>Vishal Vasu</dc:creator>
				<category><![CDATA[Windows Server]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[windows 2003]]></category>

		<guid isPermaLink="false">http://www.vishalvasu.com/?p=174</guid>
		<description><![CDATA[ActivePerl is a complete, ready-to-install Perl distribution for Windows and includes Perl Core, Perl Package Manager, Installers, Online Documentation, Windows Version Extras, Perl for ISAPI, PerlEx, PerlScript and PerlEz.
 
It is recommended to have 90MB hard disk space for a typical install. To get started, download the latest version of Perl from ActiveState (http://www.activestate.com)

Once the download process [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">ActivePerl is a complete, ready-to-install Perl distribution for Windows and includes Perl Core, Perl Package Manager, Installers, Online Documentation, Windows Version Extras, Perl for ISAPI, PerlEx, PerlScript and PerlEz.</span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"> </p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">It is recommended to have 90MB hard disk space for a typical install. </span><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">To get started, download the latest version of Perl from <strong style="mso-bidi-font-weight: normal">ActiveState (</strong></span><a href="http://www.activestate.com/"><strong style="mso-bidi-font-weight: normal"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"><span style="color: #0000ff;">http://www.activestate.com</span></span></strong></a><strong style="mso-bidi-font-weight: normal"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">)</span></strong></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><strong style="mso-bidi-font-weight: normal"></strong></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><strong style="mso-bidi-font-weight: normal"></strong><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">Once the download process has completed, double click on the program to begin the installation process.</span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"> </p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"> <span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"><img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/perl01.gif" alt="" width="503" height="389" /></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"> </p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt; TEXT-ALIGN: justify"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">C</span><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">hoose <strong style="mso-bidi-font-weight: normal">Next</strong> to continue. You will be presented with the standard license agreement.</span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/perl02.gif" alt="" width="503" height="389" /></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">Accept the <strong style="mso-bidi-font-weight: normal">End-User License Agreement</strong> and choose <strong style="mso-bidi-font-weight: normal">Next</strong> to continue.</span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"> </span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"> <span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/perl03.gif" alt="" width="503" height="389" /></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">You can change the installation path to match your setup from here. For this example, we have used F:\Perl. You can even choose not to install the <strong>Examples</strong> files if you want. Once the selections have been done, click <strong style="mso-bidi-font-weight: normal">Next</strong> to continue.</span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"> </p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">On the next screen in the setup wizard, verify that the following choices are selected:</span></p>
<p class="MsoListParagraphCxSpFirst" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">  </span></span></span><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">Add Perl to the PATH environment variable</span></p>
<p class="MsoListParagraphCxSpMiddle" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">  </span></span></span><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">Create Perl file extension association</span></p>
<p class="MsoListParagraphCxSpLast" style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"><span style="mso-list: Ignore">·<span style="FONT: 7pt 'Times New Roman'">  </span></span></span><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">Create IIS script mapping for Perl</span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"> </span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">Click <strong>Next</strong> to continue to the review screen in the setup wizard.</span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"><img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/perl04.gif" alt="" width="503" height="389" /></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">Click <strong style="mso-bidi-font-weight: normal">Install</strong> to begin the installation process. </span><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">The installation will take a few minutes and once the installation is done click <strong style="mso-bidi-font-weight: normal">Finish</strong> to complete the installation process. That&#8217;s it, Perl has been installed and integrated with IIS.</span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"> </p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">To verify that the Perl path is set correctly and available to IIS, <strong style="mso-bidi-font-weight: normal">Right Click</strong> on <strong style="mso-bidi-font-weight: normal">My Computer</strong> and select <strong style="mso-bidi-font-weight: normal">Properties.</strong></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"><img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/perl05.gif" alt="" width="239" height="231" /></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"> </p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">Select the <strong style="mso-bidi-font-weight: normal">Environment Variables</strong> from the <strong style="mso-bidi-font-weight: normal">Advanced</strong> tab and verify the path listed under <strong style="mso-bidi-font-weight: normal">System Variables</strong>.</span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"><img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/perl06.gif" alt="" width="388" height="427" /></span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"> </p>
<p class="MsoNormal" style="MARGIN: 0in 0in 0pt"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">Choose <strong style="mso-bidi-font-weight: normal">OK</strong> to close the current window. We have successfully installed Perl.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vishalvasu.com/how-to-install-perl-on-iis/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Batch File to Automate Basic Disk Check and Defrag in Windows</title>
		<link>http://www.vishalvasu.com/batch-file-to-automate-basic-disk-check-and-defrag-in-windows/</link>
		<comments>http://www.vishalvasu.com/batch-file-to-automate-basic-disk-check-and-defrag-in-windows/#comments</comments>
		<pubDate>Sun, 12 Apr 2009 08:31:06 +0000</pubDate>
		<dc:creator>Vishal Vasu</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Windows Server]]></category>
		<category><![CDATA[windows 2003]]></category>

		<guid isPermaLink="false">http://www.vishalvasu.com/?p=152</guid>
		<description><![CDATA[Since I maintain and administer lot of Windows and Exchange Servers, running basic disk checks and defrag on the servers manually is simply impossible. To achieve the goal, I had a small batch file written which automates this task for me.
To start with, create a folder on the machine that you want to automate this [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-size: small; font-family: Calibri;">Since I maintain and administer lot of Windows and Exchange Servers, running basic disk checks and defrag on the servers manually is simply impossible. To achieve the goal, I had a small batch file written which automates this task for me.</span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;"><span style="font-size: small; font-family: Calibri;">To start with, create a folder on the machine that you want to automate this on. I named my folder as “MaintenanceScripts”. The next step was to write the batch file with the content given below and save it as “ChecknDefrag.bat”.</span></p>
<pre class="MsoNormal" style="margin: 0in 0in 10pt;">@Echo Off
REM ***************************************************************************
REM *<span style="mso-tab-count: 10">                                                          </span><span style="mso-spacerun: yes">               </span>*
REM *<span style="mso-tab-count: 3">      </span>AUTOMATED DISK CHECK AND DEFRAGMENTATION SCRIPT<span style="mso-tab-count: 1">    </span><span style="mso-tab-count: 1">                </span>*
REM *<span style="mso-tab-count: 12">                                                                         </span>*
REM ***************************************************************************</pre>
<pre class="MsoNormal" style="MARGIN: 0in 0in 10pt">REM chkdsk and defrag automation
REM Read the Drive Letter from the file
for /F "eol= tokens=1 delims=( " %%i in (DriveLetter.txt) do set DrvLtr=%%i&amp; call :dsKchk</pre>
<pre class="MsoNormal" style="MARGIN: 0in 0in 10pt">:dsKchk
If %DrvLtr% == end goto :eof
echo. &gt;&gt; diskcheck.rtf
echo. &gt;&gt; diskcheck.rtf
echo ******************************************************** &gt;&gt; diskcheck.rtf
echo CHECK DATE and TIME for %DrvLtr% &gt;&gt; diskcheck.rtf
date /t &gt;&gt; diskcheck.rtf
time /t &gt;&gt; diskcheck.rtf
echo ******************************************************** &gt;&gt; diskcheck.rtf
echo. &gt;&gt; diskcheck.rtf
echo. &gt;&gt; diskcheck.rtf
echo RUNNING DISK CHECK ON %DrvLtr% ....
chkdsk %DrvLtr% &gt;&gt; diskcheck.rtf
goto :defrag</pre>
<pre class="MsoNormal" style="MARGIN: 0in 0in 10pt">:defrag
echo. &gt;&gt; defrag.rtf
echo. &gt;&gt; defrag.rtf
echo ******************************************************** &gt;&gt; defrag.rtf
echo CHECK DATE and TIME for %DrvLtr% &gt;&gt; defrag.rtf
date /t &gt;&gt; defrag.rtf
time /t &gt;&gt; defrag.rtf
echo ******************************************************** &gt;&gt; defrag.rtf
echo. &gt;&gt; defrag.rtf
echo. &gt;&gt; defrag.rtf
echo RUNNING DISK DEFRAGMENTATION ON %DrvLtr% ....
defrag %DrvLtr% -b &gt;&gt; defrag.rtf
defrag %DrvLtr% -f &gt;&gt; defrag.rtf

:EOF</pre>
<p class="MsoNormal" style="MARGIN: 0in 0in 10pt"><span style="font-size: small; font-family: Calibri;">The above batch file checks for a file called “DriveLetter.txt” in the same folder from where the script it going to run from. You can change it to your liking. It also saves the report of the disk check to a file called “diskcheck.rtf” and for defrag to a file called “defrag.rtf”. I choose RTF so that I can open it in MS Word or any other application to see a nice formatted output.</span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 10pt"><span style="font-size: small; font-family: Calibri;">Next, we create a file called “DriveLetter.txt” in the same folder where we saved the Batch File and add all the drive letters that we want the script to check:</span></p>
<pre class="MsoNormal" style="MARGIN: 0in 0in 10pt">C:
end</pre>
<p class="MsoNormal" style="MARGIN: 0in 0in 10pt"><span style="font-size: small; font-family: Calibri;">You can add more disks to the above file by writing the drive letters to the text file – one drive per line.</span></p>
<p class="MsoNormal" style="MARGIN: 0in 0in 10pt"><span style="font-size: small; font-family: Calibri;">Run the batch file once and wait for it to finish. Once it finishes its run, you can open the RTF files and see the results. If you are satisfied that everything is working fine with the batch files, you can now move towards scheduling the batch file to run at off-peak hours.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vishalvasu.com/batch-file-to-automate-basic-disk-check-and-defrag-in-windows/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>DDOS attacks and Windows 2003 Servers</title>
		<link>http://www.vishalvasu.com/ddos-attacks-and-windows-2003-servers/</link>
		<comments>http://www.vishalvasu.com/ddos-attacks-and-windows-2003-servers/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 17:23:30 +0000</pubDate>
		<dc:creator>Vishal Vasu</dc:creator>
				<category><![CDATA[Windows Server]]></category>
		<category><![CDATA[windows 2003]]></category>

		<guid isPermaLink="false">http://www.vishalvasu.com/wordpress/?p=55</guid>
		<description><![CDATA[I&#8217;ve come across many postings on forums where admins are talking about being hit by DDOS attacks and the servers going down. I&#8217;ve been replying to those threads, but I think its time for me to discuss it at length here.
Basically, DDOS means a Distributed Denial of Service attack which are targeted towards a computer, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve come across many postings on forums where admins are talking about being hit by DDOS attacks and the servers going down. I&#8217;ve been replying to those threads, but I think its time for me to discuss it at length here.</p>
<p>Basically, DDOS means a Distributed Denial of Service attack which are targeted towards a computer, server or a device to make it unavailable on the network. Lot of malicious traffic is directed towards a server or a service which blocks the bandwidth/network. Here are some steps Windows administrators can go through to prevent or fight against it:</p>
<p>- Keep your servers/computers updated with the latest patches, service packs and updates.<br />
- Harden the TCP/IP stack. Here is an article from Microsoft which talk about it: <a href="http://support.microsoft.com/default.aspx/kb/324270"><span style="color: #225588;">http://support.microsoft.com/default.aspx/kb/324270</span></a><br />
- Check with your Data Center to find out what infrastructure security is in place. They may be having a system in place where the DDoS traffic can be routed through a DDoS Mitigation Service. This filters out the attack traffic and allows the legitimate traffic to continue to its original destination.<br />
- If the budget permits, get a good hardware firewall installed in your infrastructure network. If not, then you can also go in for some software based firewall which can filter packets. In the worst case, at least have your Windows Basic Firewall configured.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vishalvasu.com/ddos-attacks-and-windows-2003-servers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Install PHP 5.x on IIS 6.0</title>
		<link>http://www.vishalvasu.com/how-to-install-php-5x-on-iis-60/</link>
		<comments>http://www.vishalvasu.com/how-to-install-php-5x-on-iis-60/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 09:40:20 +0000</pubDate>
		<dc:creator>Vishal Vasu</dc:creator>
				<category><![CDATA[Windows Server]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[windows 2003]]></category>

		<guid isPermaLink="false">http://www.vishalvasu.com/?p=116</guid>
		<description><![CDATA[Start by creating a directory into which you will extract the downloaded PHP files. In this example I&#8217;m going to use C:\PHP as my installation directory. Then extract the files from the zip into C:\PHP. Please check the PHP website for latest PHP release.
If you need to use the additional PECL modules then extract the files from [...]]]></description>
			<content:encoded><![CDATA[<p>Start by creating a directory into which you will extract the downloaded PHP files. In this example I&#8217;m going to use <strong>C:\PHP</strong> as my installation directory. Then extract the files from the zip into <strong>C:\PHP</strong>. Please check the <a href="http://www.php.net/downloads.php" target="_blank">PHP website </a>for latest PHP release.</p>
<p>If you need to use the additional PECL modules then extract the files from the PECL Zip into the <strong>C:\PHP\ext</strong> directory.</p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/install_php_01.jpg" alt="" width="384" height="166" /></p>
<p>Next locate the file <strong>&#8216;php.ini-recommended&#8217;</strong> in <strong>C:\PHP</strong> and rename it to <strong>&#8216;php.ini&#8217;</strong> (without the quotes of course)<br />
 <img class="aligncenter" src="http://www.vishalvasu.com/uploaded_images/install_php_02.jpg" alt="" width="697" height="446" /><br />
Open the <strong>&#8216;php.ini&#8217;</strong> file and find the line which reads <strong>extension_dir = &#8220;./&#8221;</strong> and change it to <strong>extension_dir = &#8220;C:\PHP\ext&#8221;</strong>. This tells PHP where the various extensions are located. If you open the default PHP.INI file which ships with the ZIP file you can see that the default path in the <strong>&#8216;php.ini-recommended&#8217;</strong> file points to the wrong location, so you need to change it.</p>
<p>You also need to add the location of your PHP directory to the server&#8217;s PATH environment variable so that Windows knows where to look for any PHP related executables (such as the PHP extension DLL‘s). To do this Right-click on <strong>My Computer</strong>, click <strong>Properties</strong> and on the <strong>Advanced</strong> tab click <strong>Environment Variables</strong>. In the <strong>Environment Variables </strong>dialog box, under <strong>System Variables</strong> highlight the <strong>Path</strong> variable and click <strong>Edit</strong>.</p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/install_php_03.jpg" alt="" width="388" height="427" /></p>
<p>Add <strong>&#8216;;C:\PHP&#8217;</strong> (be sure to include the semi-colon separator) as shown here and click <strong>OK</strong>. You will need to re-boot the server for this change to take effect as system variables are loaded when the server starts up.</p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/install_php_04.jpg" alt="" width="351" height="144" /></p>
<p>If you browse through the <strong>&#8216;php.ini&#8217;</strong> file you will see an entry describing the <strong>&#8216;cgi.force_redirect&#8217;</strong> property. You will also see a statement telling you that if you are using IIS you &#8216;MUST&#8217; turn this off. However, this only applies if you are using the CGI version of PHP (i.e. php-cgi.exe) Since we are using the ISAPI version of PHP we can safely ignore this.</p>
<p><strong><span style="text-decoration: underline;">Configuring IIS (Only if required)</span></strong></p>
<p>There are a few simple steps you need to take in order to get PHP working under IIS 6.0</p>
<p>First we need to create and then enable an appropriate <strong>Web Service Extension</strong> so that IIS will both recognize and allow PHP files to be processed by the appropriate script engine.</p>
<p>You can use the Internet Information Services (IIS) Manager GUI method to perform this task but there is a much quicker way of doing this; namely using the <strong>&#8216;iisext.vbs&#8217;</strong> Command-Line Administration Script, which you will find in <strong>C:\Windows\system32</strong> by default.</p>
<p>Assuming you are using the same directory structure as I am in this walkthrough you can simply copy and paste the following line of text and execute it at a command prompt from <strong>C:\Windows\system32</strong> :</p>
<p><strong><span style="color: #ff0000;">cscript iisext.vbs /AddFile c:\PHP\php5isapi.dll 1 PHPISAPI 1 &#8220;PHP ISAPI&#8221;</span></strong></p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/install_php_05.jpg" alt="" width="672" height="335" /></p>
<p>As you can see, this script creates a new <strong>Web Service Extension</strong> named <strong>&#8220;PHP ISAPI&#8221;</strong> with a status of <strong>Allowed</strong>.<br />
 <img class="aligncenter" src="http://www.vishalvasu.com/uploaded_images/install_php_06.jpg" alt="" width="692" height="503" /></p>
<p>The IIS 6.0 Command-Line Administration Scripts are very powerful and flexible tools and I would recommend using them wherever possible.</p>
<p>OK, now we are ready to test our PHP installation. Start by creating a simple PHP test file. Open <strong>Notepad</strong> on the server and copy the following line into a new text file:<strong> <span style="color: #ff0000;">&lt;?php phpinfo(); ?&gt;</span></strong></p>
<p>Save the file as <strong>index.php</strong> in the root of the test web site. Next create a new default document type of <strong>index.php</strong> on the test web site (this step is optional but it just makes browsing a bit easier)</p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/install_php_07.jpg" alt="" width="465" height="462" /></p>
<p>Browse the site and you should see the standard PHP configuration details page</p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/install_php_08.jpg" alt="" width="589" height="533" /></p>
<p>However, if you look carefully at the above page you will notice it is indicating that my &#8216;php.ini&#8217; file is actually located in <strong>&#8216;C:\WINDOWS&#8217;</strong> even though there is no such file in my <strong>C:\WINDOWS</strong> directory. This is because the <strong>&#8216;php5isapi.dll&#8217;</strong> file is actually compiled with this location as its default value. A number of existing PHP and IIS tutorials suggest that you should copy the <strong>&#8216;php.ini&#8217;</strong> file to the <strong>C:\WINDOWS</strong> directory &#8211; but what if you don&#8217;t want to do that?</p>
<p>Well, you don&#8217;t have to because PHP allows you to actually configure a custom value for the <strong>&#8216;php.ini&#8217;</strong> file location. There are a number of ways to do this but perhaps the simplest is to configure the PHPRC environment variable.</p>
<p>To demonstrate how this works I am going to create a new folder called <strong>&#8216;C:\inifile&#8217;</strong> and instruct PHP to read its configuration data from the &#8216;php.ini&#8217; file in this location (in practice you may prefer to leave your <strong>&#8216;php.ini&#8217;</strong> file in the C:\PHP directory)</p>
<p>In order to do this I need to create a new System environment variable named <strong>&#8216;PHPRC&#8217; </strong>and provide the appropriate values. Right-click on <strong>My Computer</strong>, click <strong>Properties</strong> and on the <strong>Advanced</strong> tab click <strong>Environment Variables</strong>.</p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/install_php_09.jpg" alt="" width="423" height="483" /></p>
<p>In the <strong>Environment Variables</strong> dialog box, under <strong>System Variables</strong> click <strong>New</strong>. In the <strong>New System Variable</strong> dialog box type <strong>PHPRC</strong> for the variable name and then enter the desired path to your <strong>&#8216;php.ini&#8217;</strong> file&#8217;s location.</p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/install_php_010.jpg" alt="" width="351" height="144" /></p>
<p>Then click <strong>OK </strong>and you will see that a new <strong>System environment variable</strong> has been created. In order for this to take effect you need to re-boot the server at this stage.</p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/install_php_011.jpg" alt="" width="388" height="427" /></p>
<p><strong><span style="color: #ff0000;">#Note</span></strong><br />
<span style="color: #ff0000;">As an alternative, you can edit the registry and specify the location of your configuration file. The main benefit of the registry edit method is that it doesn&#8217;t require a re-boot &#8211; in testing this method I found that any changes made would take effect once the application pool serving the web site was recycled. However, choose whichever method you feel most comfortable with and which fits your requirements.</span></p>
<p>Now if we browse the site we can see that PHP is indeed looking for its &#8216;php.ini&#8217; file in the <strong>&#8216;C:\inifile&#8217;</strong> location which I specified previously.</p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/install_php_012.jpg" alt="" width="656" height="510" /></p>
<p>And that&#8217;s it. You should now have a working installation of PHP running on IIS 6.0.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vishalvasu.com/how-to-install-php-5x-on-iis-60/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Securing IIS 6.0 Web Server on Windows 2003</title>
		<link>http://www.vishalvasu.com/securing-iis-60-web-server-on-windows-2003/</link>
		<comments>http://www.vishalvasu.com/securing-iis-60-web-server-on-windows-2003/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 14:34:18 +0000</pubDate>
		<dc:creator>Vishal Vasu</dc:creator>
				<category><![CDATA[Windows Server]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[windows 2003]]></category>

		<guid isPermaLink="false">http://www.vishalvasu.com/?p=109</guid>
		<description><![CDATA[This article focuses on how some simple steps can help server administrators block hack attacks on an IIS 6.0 Web Server running on Windows 2003.
Hacking a Web Server
With the advent of Windows 2003 and IIS 6.0 there was a sharp turn in the way hosting services were being provided on Windows platform few years back. [...]]]></description>
			<content:encoded><![CDATA[<p>This article focuses on how some simple steps can help server administrators block hack attacks on an IIS 6.0 Web Server running on Windows 2003.</p>
<p><strong>Hacking a Web Server<br />
</strong>With the advent of Windows 2003 and IIS 6.0 there was a sharp turn in the way hosting services were being provided on Windows platform few years back. Today, web servers running on Internet Information Services 6.0 (IIS 6.0) are highly popular worldwide – thanks to the .NET and AJAX revolution for designing web applications. Unfortunately, this also makes IIS web servers a popular target amongst hacking groups and almost every day we read about the new exploits being traced out and patched. That does not mean that Windows is not as secured as Linux. In fact, it’s good that we see so many patches being released for Windows platform as it clearly shows that the vulnerabilities have been identified and blocked.</p>
<p>Many server administrators have a hard time coping up with patch management on multiple servers thus making it easy for hackers to find a vulnerable web server on the Internet. One good way I have found to ensure servers are patched is to use Nagios to run an external script on a remote host, in turn alerting on the big screen which servers need patches and a reboot after the patch has been applied. In other words, it is not a difficult task for an intruder to gain access to a vulnerable server if the web server is not secured and then compromise it further to an extent that there is no option left for the administrator but to do a fresh OS install and restore from backups.<br />
Many tools are available on the Internet which allows an experienced or a beginner hacker to identify an exploit and gain access to a web server. The most common of them are:</p>
<p><strong>IPP (Internet Printing Protocol)</strong> &#8211; which makes use of the IPP buffer overflow. The hacking application sends out an actual string that overflows the stack and opens up a window to execute custom shell code. It connects the CMD.EXE file to a specified port on the attacker’s side and the hacker is provided with a command shell and system access.</p>
<p><strong>UNICODE and CGI-Decode –</strong> where the hacker uses the browser on his or her computer to run malicious scripts on the targeted server. The script is executed using the IUSR_&lt;computername&gt; account also called the “anonymous account” in IIS. Using this type of scripts a directory transversal attack can be performed to gain further access to the system.</p>
<p>Over these years, I’ve seen that most of the time, attacks on a IIS web server result due to poor administration, lack of patch management, bad configuration of security, etc. It is not the OS or the application to blame but the basic configuration of the server is the main culprit. I’ve outlined below a checklist with an explanation to each item. These if followed correctly would help prevent lot of web attacks on an IIS web server.</p>
<p><strong>Secure the Operating System<br />
</strong>The first step is to secure the operating system which runs the web server. Ensure that the Windows 2003 Server is running the latest service pack which includes a number of key security enhancements.</p>
<p><strong>Always use NTFS File System<br />
</strong>NTFS file system provides granular control over user permissions and lets you give users only access to what they absolutely need on a file or inside a folder.</p>
<p><strong>Remove Unwanted Applications and Services<br />
</strong>The more applications and services that you run on a server, the larger the attack surface for a potential intruder. For example, if you do not need File and Printer sharing capabilities on your shared hosting platform, disable that service.</p>
<p><strong>Use Least Privileged Accounts for Service<br />
</strong>Always use the local system account for starting services. By default Windows Server 2003 has reduced the need for service accounts in many instances, but they are still necessary for some third-party applications. Use local system accounts in this case rather than using a domain account. Using a local system account means you are containing a breach to a single server.</p>
<p><strong>Rename Administrator and Disable Guest<br />
</strong>Ensure that the default account called Guest is disabled even though this is a less privileged account. Moreover, the Administrator account is the favorite targets for hackers and most of the malicious scripts out there use this to exploit and vulnerable server. Rename the administrator account to something else so that the scripts or programs that have a check for these accounts hard-coded fail.</p>
<p><strong>Disable NetBIOS over TCP/IP and SMB<br />
</strong>NetBIOS is a broadcast-based, non-routable and insecure protocol, and it scales poorly mostly because it was designed with a flat namespace.  Web servers and Domain Name System (DNS) servers do not require NetBIOS and Server Message Block (SMB). This protocol should be disabled to reduce the threat of user enumeration.<br />
To disable NetBIOS over TCP/IP, right click the network connection facing the Internet and select Properties. Open the Advanced TCP/IP settings and go to the WINS tab. The option for disabling NetBIOS TCP/IP should be visible now. To disable SMB, simply uncheck the File and Print Sharing for Microsoft Networks and Client for Microsoft Networks. A word of caution though – if you are using network shares to store content skip this. Only perform this if you are sure that your Web Server is a stand-alone server.</p>
<p><strong>Schedule Patch Management<br />
</strong>Make a plan for patch management and stick to it. Subscribe to Microsoft Security Notification Service (<a href="http://www.microsoft.com/technet/security/bulletin/notify.asp">http://www.microsoft.com/technet/security/bulletin/notify.asp</a>)  to stay updated on the latest release of patches and updates from Microsoft. Configure your server’s Automatic Update to notify you on availability of new patches if you would like to review them before installation.</p>
<p><strong>Run MBSA Scan<br />
</strong>This is one of the best way to identify security issues on your servers. Download the Microsoft Base Line Security tool and run it on the server. It will give you details of security issues with user accounts, permissions, missing patches and updates and much more.</p>
<p>That’s it to the basic of securing the operating system. There are more fixes which can be performed for further securing the server but they are beyond the scope of this article. Let’s now move on to securing the IIS web server.<br />
IIS 6.0 when setup is secured by default. When we say this, it means that when a fresh installation of IIS is done, it prevents scripts from running on the web server unless specified. When IIS is first installed, it serves only HTML pages and all dynamic content is blocked by default. This means that the web server will not serve or parse dynamic pages like ASP, ASP.NET, etc. Since that is not what a web server is meant to do, the default configuration is changed to allow these extensions.</p>
<p>Listed below are some basic points that guide you to securing the web server further:</p>
<ul>
<li><strong>Latest Patches and Updates<br />
</strong>Ensure that the latest patches, updates and service packs have been installed for .NET Framework. These patches and updates fix lot of issues which enhances the security of the web server.</li>
<li><strong>Isolate Operating System<br />
</strong>Do not run your web server from the default InetPub folder. If you have the option to partition your hard disks then use the C: drive for Operating System files and store all your client web sites on another partition. Relocate web root directories and virtual directories to a non-system partition to help protect against directory traversal attacks.</li>
<li><strong>IISLockDown Tool<br />
</strong>There are some benefits to this tool and there are some drawbacks, however, so use it cautiously. If your web server interacts with other servers, test the lockdown tool to make sure it is configured so that connectivity to backend services is not lost.</li>
<li><strong>Permissions for Web Content<br />
</strong>Ensure that Script Source Access is never enabled under a web site’s property. If this option is enabled, users can access source files. If Read is selected, source can be read; if Write is selected, source can be written to. To ensure that it is disabled, open IIS, right click the Websites folder and select Properties. Clear the check box if it is enabled and propagate it to all child websites.</li>
<li><strong>Enable Only Required Web Server Extensions<br />
</strong>IIS 6.0 by default does not allow any dynamic content to be parsed. To allow a dynamic page to be executed, you need to enable the relevant extension from the Web Service Extensions property page. Always ensure that “All Unknown CGI Extensions” and “All Unknown ISAPI Extensions” are disabled all the time. If WebDAV and Internet Data Connector are not required, disable that too.</li>
<li><strong>Disable Parent Paths<br />
</strong>This is the worst of all and thanks to Microsoft, it is disabled in IIS 6.0 by default. The Parent Paths option permits programmers to use &#8220;..&#8221; in calls to functions by allowing paths that are relative to the current directory using the ..\notation. Setting this property to True may constitute a security risk because an include path can access critical or confidential files outside the root directory of the application. Since most of the programmers and third-party readymade applications use this notation, I leave it up to you to decide if this needs to be enabled or disabled. The workaround to Parent Paths is to use the Server.MapPath option in your dynamic scripts.</li>
<li><strong>Disable Default Web Site<br />
</strong>If not required, stop the Default Web Site which is created when IIS 6.0 is installed or change the property of Default Web Site to run on a specific IP address along with a Host Header. Never keep it running on All Unassigned as most of the ready-made hacking packages identify a vulnerable web server from IP address rather than a domain name. If your Default Web Site is running on All Unassigned, it means that it can serve content over an IP address in the URL rather than the domain name.</li>
<li><strong>Use Application Isolation<br />
</strong>I like this feature in IIS 6.0 which allows you to isolate applications in application pools. By creating new application pools and assigning web sites and applications to them, you can make your server more efficient and reliable as it ensures that other applications or sites do not get affected due to a faulty application running under that pool.</li>
</ul>
<p><strong>Summary<br />
</strong>All of the aforementioned IIS tips and tools are natively available in Windows. Don&#8217;t forget to try just one at a time before you test your Web accessibility. It could be disastrous if all of these were implemented at the same time making you wonder what is causing a problem in case you start having issues.</p>
<p>One final tip: Go to your Web server and Run “netstat –an” (without quotes) at the command line. Observe how many different IP addresses are trying to gain connectivity to your machine, mostly via port 80. If you see that you have IP addresses established at a number of higher ports, then you&#8217;ve already got a bit of investigating to do.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vishalvasu.com/securing-iis-60-web-server-on-windows-2003/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Install IIS 6.0 Web Server</title>
		<link>http://www.vishalvasu.com/how-to-install-iis-60-web-server/</link>
		<comments>http://www.vishalvasu.com/how-to-install-iis-60-web-server/#comments</comments>
		<pubDate>Fri, 04 Jul 2008 09:12:44 +0000</pubDate>
		<dc:creator>Vishal Vasu</dc:creator>
				<category><![CDATA[Windows Server]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[windows 2003]]></category>

		<guid isPermaLink="false">http://www.vishalvasu.com/?p=112</guid>
		<description><![CDATA[When you start your server, you should see the Manage Your Server wizard. If you don’t display this by default, you can go to Administrative Tools and click on Manage Your Server. When the wizard opens, click on Add or Remove a Role.
 
Click Next and let the server detect your settings, then choose Custom Configuration [...]]]></description>
			<content:encoded><![CDATA[<p>When you start your server, you should see the <strong>Manage Your Server wizard</strong>. If you don’t display this by default, you can go to <strong>Administrative Tools</strong> and click on <strong>Manage Your Server</strong>. When the wizard opens, click on <strong>Add or Remove a Role</strong>.<br />
 <img class="aligncenter" src="http://www.vishalvasu.com/uploaded_images/install_iis_01.jpg" alt="" width="581" height="156" /></p>
<p>Click <strong>Next</strong> and let the server detect your settings, then choose <strong>Custom Configuration</strong> and click <strong>Next.</strong> Choose the <strong>Application Server Role</strong> from the list and click <strong>Next</strong>.</p>
<p>Since many applications require ASP.NET today, we’re going to choose to Enable ASP.NET. In addition, we will not choose to enable FrontPage Extensions at this time though.</p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/install_iis_02.jpg" alt="" width="580" height="435" /></p>
<p>Note: In order to publish .NET applications from VisualStudio, you may want to enable FrontPage Extensions to start with.</p>
<p>Moving ahead, once we’ve selected what we want, we click <strong>Next</strong> to set up the role. Just let the wizard run until you see the finish button, then click <strong>Finish</strong>.</p>
<p>Once you’ve installed the Application Server role to your server, you’ll naturally want to check and see if it works. The Manage Your Server wizard should now show the Application Server role installed, so click on <strong>Manage This Application Server</strong>.</p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/install_iis_03.jpg" alt="" width="582" height="149" /></p>
<p>This brings up the Application Server Management Console (MMC). Expand the Internet Information Services (IIS) Manager, then expand your server (local computer), and then the Web Sites folder. You should see the Default Web Site listed as shown below, and it shouldn’t say &#8220;Stopped&#8221;. If it does, you need to troubleshoot using the <strong>Event Viewer</strong>.</p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/install_iis_04.jpg" alt="" width="578" height="434" /></p>
<p>For now, ignore the files and folders listed in your default web site, we just want to run a test and ensure that IIS is running and serving a web page. On the server itself, launch Internet Explorer (IE) and browse to <a href="http://localhost/"><strong>http://localhost/</strong></a>. You should see the “Under Construction” web page if the server is running correctly.</p>
<p><img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/install_iis_05.jpg" alt="" width="582" height="124" /> </p>
<p>Okay, at this point you have a working IIS installation. Go back to the <strong>Application Server Management Console</strong> and right-click on the <strong>Default Web Site</strong>. Choose <strong>Properties</strong> to bring up the web site properties dialog. Then click on the <strong>Home Directory</strong> tab and ensure that the <strong>Default Site</strong> is set to the path shown below.</p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/install_iis_06.jpg" alt="" width="463" height="261" /></p>
<p>Because of the security enhancements in Windows Server 2003 and IIS 6, ASP pages are not enabled by default. Yes, we did install the server for ASP.NET, but ASP and ASP.NET isn’t the same thing.</p>
<p>In IIS 6, technologies like ASP, ASP.NET and so on are called Web Service Extensions. The same is true of Server Side Includes, PERL/CGI scripting, PHP and a host of other add-ons to web servers. Since many web sites run ASP (Active Server Pages), let’s activate ASP.</p>
<p>In the <strong>Application Server Management Console</strong>, click on the <strong>Web Service Extensions</strong> folder underneath the server name. You should see that Active Server Pages are Prohibited, this is the default configuration of IIS.</p>
<p> <img class="alignnone" src="http://www.vishalvasu.com/uploaded_images/install_iis_07.jpg" alt="" width="582" height="162" /></p>
<p>Simply set the extension to <strong>Allowed</strong> and the web server will start serving ASP pages. Repeat this for <strong>Server Side Includes</strong> too. This is required so that client pages parse the &lt;include&gt; variable in a page.</p>
<p>Last but not the least &#8211; you may probably want to shift your default web site as well as other web sites that you are going to host on the server off the System Partition (the one where the OS is installed). It&#8217;s always a good idea to shift the web site content to a different drive.</p>
<p>That’s it for the basic clean IIS 6.0 installation.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vishalvasu.com/how-to-install-iis-60-web-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
