Welcome!

Linux Authors: Liz McMillan, Mike Kavis, Hovhannes Avoyan, Yeshim Deniz, Elizabeth White

Related Topics: Linux

Linux: Article

Why Are You Waiting?

Moving from Microsoft IIS to Apache on Linux

Why haven't you already moved your Microsoft Windows IIS server infrastructure to Apache on Linux? Does the idea that something is inexpensive (free) automatically bring to mind the old adage, "You get what you pay for?" Do you fear that your IT staff will not be able to support the new platform? Will you be able to find competent developers to maintain, enhance, and develop new Web sites based on Apache on Linux? Perhaps you have specific technical concerns - all your Web pages were written in ASP (Microsoft Active Server Pages): How can you get these to run on Apache on Linux without a huge investment of time and money?

In this article I attempt to address these concerns and others that might be delaying your decision to move to Apache on Linux. I'll also cover the steps you need to take to make a successful transition once you have decided to make the move.

Why Should You Move?

Patches Anyone?

Many people have heard the "free as in beer" versus "free as in speech" discussions around open source software. While cost is a strong motivator, the number one factor you should consider when contemplating migration from Microsoft IIS to Apache on Linux is the increased security and stability of your Web server. This leads to less downtime and lower maintenance and support costs. Apache has more than 65% of the Web server market and IIS has nearly 21% of the market (Netcraft.com). When it comes to security vulnerabilities, which platform have you heard the most about - IIS or Apache? Wouldn't you expect that the product with the largest market share would have the greatest exposure? I have a general mistrust of statistics, so while this seems to be compelling data, I would encourage you to find out for yourself which of the two Web servers is most secure. Do this by spending some time looking through the vulnerability reports at the major security information clearinghouses. I recommend checking out www.cert.org and www.securityfocus.com. Both have searchable databases of vulnerabilities that you can use to draw your own conclusions.

Free as in Speech

You still have questions. How will I support Apache on Linux? What are my options for maintaining, enhancing, and developing Web sites? This is the area that I feel really weighs in favor of switching to Apache on Linux. There are several important ways that Apache on Linux brings more freedom to your IT investments. The first is probably the most obvious - Apache on Linux gives you a choice of vendors. Doesn't everyone want choice? Isn't that what our day and age is all about? Isn't it ironic then that when it comes to global operating-systems' market share, many companies see their options as Microsoft, Microsoft, and then you also have…Microsoft. At the risk of offending the 200+ Linux distributions out there, I consider at least a half dozen of them enterprise worthy. This gives you a tremendous range of choices, from commercially supported distributions such as SUSE and Red Hat, to community-supported distributions such as Debian and Gentoo. There are third-party companies offering support and training for all of the major Linux distributions. This is empowering. You have choice. You don't like the support you're getting from one vendor? Choose a different one. With large vendors like Novell and IBM offering services and support for Linux, you can have the security of a large organization backing your IT purchases, if you so desire.

What about development? The choices there are even broader. There is a large and growing community of open source technology developers and companies available. A number of technologies are widely accepted as excellent platforms for Web development. There are a plethora of resources available for LAMP (Linux, Apache, MySQL, PHP) and other open source Web technologies. Entire communities have grown up around these technologies. Free support is available not only on the excellent community Web sites (such as www.php.net), but also in a variety of other forums, newsgroups, and mailing lists. Your choice is not limited to free support, however; there are a number of highly reputable companies offering support and training for the development technologies as well.

What if a portion of your Web site is made up of ASP code? Am I recommending that you reinvent the wheel? By no means. There are solutions available for this problem, such as Sun ONE Active Server Pages, as well as other vendors and solutions for migrating ASP and ASP .NET code. Feel free to drop me an e-mail and I can point you to other solutions that fit your specific scenario.

Free as in Beer

Why are more than 65% of the world's Web sites running on Apache servers? Is it because Apache is freely available, open source software or is it because it works really well? One of the most counterintuitive things about Apache on Linux is that free does not mean inferior. The old adage just does not hold true in this case.

How Do I Plan for a Migration?

If you have decided to make the switch to Apache, the single most important thing you can do right now is plan for the move. What Linux distribution do you plan on using? Do you need to purchase new hardware or can you use your existing Windows box (for many applications Linux requires much less processing power than Windows). Do you have Windows ASP or ASP.NET code that needs to be (1) converted, (2) rewritten, or (3) run on Linux? There are many technical issues that need to be addressed when considering reconfiguring your Apache Web server. How will you migrate your passwords, virtual directories, the configuration settings, and your file system hierarchy?

Performing the Migration

I don't have the space in this article to cover an entire migration process, although I hope to do so in a future article. Figure 1 lists the steps required to perform a migration. I cover a portion of one of these steps in some detail, as an example.

Passwords as an Example

Many Web sites include some form of authentication. Web site passwords provide a good example of some of the technical issues to consider when migrating from IIS to Apache.

For years, the main option was what is now called "basic authentication." The client machine would send the password as plain text to the server, which would use whatever method it wanted to validate that password against its password store. As sending a password in clear text across the Internet is not secure, digest authentication was born. Unfortunately, digest authentication came around near the end of the browser wars and didn't quickly gain compliance in every browser. As such, it didn't quite take over as the main secure authentication method, losing to basic authentication over an SSL connection as the main source of security.

One more form of authentication also came out around this time: NTLM authentication. NTLM sends hashes of the password to the Web server in the default Windows password format, much the same as Windows networking does. This can be done without prompting the user for a password when run through IE on the local area network. This format took off as the easiest way to provide Web security over corporate networks. While originally only Microsoft Internet Explorer and Microsoft IIS were also able to speak this way, in recent years the Mozilla (and derivative) browser and Apache (through numerous different modules) are able to speak NTLM.

IIS will verify all passwords in one of two ways: on the local machine, or against the domain controller that the server is connected to. This poses a problem for migration, as neither of these formats will allow us to get the passwords to migrate. (This is really a good security feature, as strong passwords should be a one-way street. If the password can be retrieved, it can be hacked.) If the passwords are stored on the local machine, we can retrieve a password hash. If the passwords are verified against a domain controller, Apache can be made to do that too.

This is one example of a technical issue that you may face when performing your migration. The good news is that there are tools and documented best practices for making this migration seamless.

Once You Are There

As you can see, there are some compelling reasons to consider moving from Microsoft IIS to Apache on Linux. But migrating is not without its concerns. As with many changes, educating yourself, planning the migration, and choosing the right tools are the keys to a successful transition.

Is Microsoft Going to Open Source IIS?

I received a call a couple of weeks ago from an industry analyst asking what I knew about Microsoft's plans to open source IIS. I responded that I hadn't heard anything about it, but if it is true it's probably a good idea.

Whether the rumor is true or not, I cannot imagine that Microsoft will do this. IIS has major challenges maintaining their existing market share. I hear rumblings of Microsoft's desire to eat back into Apache's market, however, they won't be able to do this until they are able to solve their gaping security problems. By then it may be too late.

More Stories By Jon Walker

Jon Walker serves as CTO of Versora, an ISV providing Microsoft to Linux migration software. Mr. Walker recently has co-authored 2 whitepapers with Novell titled Migrating from IS Web Servers to Apache SUSE LINUX Enterprise Server 9.0 and Migrating File and Print Servers from Windows to SUSE LINUX Enterprise Server 9. Prior to Versora, Mr. Walker was CTO/VP of Engineering for Miramar Systems. Software developed under his direction at Miramar has been deployed to over 20 million computers worldwide. Mr. Walker has also served as senior technologist for Nortel and Xing Technology (now Real Networks).

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.