Windows administrators who are making the jump to Linux are
often disoriented by how different everything is; not just the terminology, but
the way things work, including many of the same basic types of applications.
Because the geography is so dissimilar, many of the same
things exist in parallel implementations that don't look the same; the way
directory services and authentication are done, for instance. In this article, I'll walk through many of
the common applications and services that Windows provides and discuss their
Linux equivalents.
Directory services and authentication are as important in
Linux as they are in Windows. That said,
Windows admins who are familiar with Active Directory (AD) -- and if you
aren't, you need to be -- may wonder what the Linux equivalent is.
One important thing to understand is that AD serves two
functions in a Windows environment: it provides directory information about
users and objects, and is used to authenticate or authorize those users and
objects to do certain things. Linux has
two separate, but interrelated, entities for accomplish each of those tasks.
The first, directory information, is done through an
implementation of LDAP, such as OpenLDAP. The second, authentication, is done through a
mechanism like Kerberos. The second is usually accessed through the
first in some form (i.e., to talk to Novell eDirectory,
you can use an LDAP call of some kind). The exact implementation of Kerberos
may vary between distributions of Linux, but most any GNU/Linux distributions include
some kind of Kerberos package, either as a client-authentication package or a
server.
A number of different directory service possibilities exist
for Linux, each with their own quirks but all designed to cover the same
territory. If you set up a major professional distribution of Linux, some
variety of directory and authentication service is almost always included. Novell's SuSE
Linux Enterprise Server, for instance, comes with Novell's eDirectory
product, which has some AD-like functions such as being able to automatically
replicate directory information between multiple directory masters. Red Hat Fedora Directory Server
covers much the same territory, and can even export select portions of the
directory to read-only servers; in Active Directory, every directory server has
to copy everything and be read/write.
The most "generic" implementation of LDAP in Linux is
probably OpenLDAP, but it has some limitations; mainly, it can only support one
master catalog server at a time in any given domain. OpenLDAP, being open
source, is also available in a Windows implementation.
Because these are theoretically open standards, it's not
uncommon to see interoperation between Linux and Windows servers; for instance,
in a transitional environment, where you're moving from one architecture to the
next. One example of this might be using a Windows domain controller for the
core Active Directory LDAP repository and have Linux
servers talk to the Windows server to perform Kerberos authentication.
Email
Microsoft Exchange (coupled with Outlook) is the most common
Windows email solution in organizations, and it also provides collaborative
services like calendaring. The single
biggest commercial solution for Linux in this space is also one of Exchange's
biggest direct competitors on Windows as well—none other than IBM's Lotus
Notes. There's great breadth of
adoption and support for Notes, and it should probably be one of the first
choices to consider when making a switch. Version 7 now exists in both Linux
client and server editions for Red Hat and SuSE. I must add, however, that
Notes'quirks are broadly documented.
Other solutions also exist at varying levels of complexity
and commercial support. The Open-Xchange project has both
open-source and commercial implementations, each of which is suited to
different levels of need. Please note that a fast-growing or midsized
organization tends to outgrow the free version fairly quickly. Zimbra is
a similarly-forked project, with a free open-source and a
commercially-supported edition, which mainly uses its own AJAX-driven web
interface, but also works with some proprietary clients such as Outlook and
Novell Evolution.
I should also mention Scalix, a
commercial product also accessible from multiple clients, and Ximian, now Novell Evolution, a
front-end client which integrates with Novell GroupWise, Exchange, and a number
of other backends. If you're working in
a mixed environment, knowing about solutions like this can come in handy.
Network control and
proxying
One of the interesting things about using Linux as a
network-control system -- i.e., a proxy or firewall like ISA Server
Commercial Linux distributions sport some variety of
proxying and network control as a standard feature. The Red Hat Network systems
management platform includes, among many other things, a proxy server of its
own with a web-based management interface.
Not everyone running a database on a Windows server would
use Microsoft SQL Server, but it tends to be a common presence, especially for
users of Windows Small Business Server 2003, where it's one of the standard
options. Many of the database packages that exist on Linux also exist in
Windows implementations and are used fairly commonly there, too. MySQL and PostgreSQL are the two most
commonly-used products, thanks to their highly liberal licensing, their
advanced feature sets, and their broad communities of support; not just for
using the products, but also for migrating to and from other databases.
Applications that have been written from the ground up to
talk to multiple database products will usually include detailed instructions
on how to connect to each database, although they may not have migration tools.
For instance, to move a SQL Server-hosted data package to MySQL, you would
probably need to export the data from one and re-import it on the other. This
would not cover things like stored procedures or other database-specific things
that might need to be rebuilt from the ground up, though. Many major commercial
databases also exist in Linux implementations, such as IBM's DB2 and Oracle, and converting a SQL Server
database into one of those systems can usually be done with good support from
the manufacturers, or from third parties like Ispirer or SwisSQL.
The key thing to remember is that the vast majority of
things you see in Windows have existed in the Unix
world for a long time and, consequently, in the Linux world, too. The Windows
versions are typically derived directly from them. Kerberos, for instance, had
been in use in the Unix world in various ways before
it was adopted as the default authentication protocol in Windows 2000 and
higher. As long as you remember to look for substitutes by function and need -- rather
than by appearance or implementation --you'll be able to cover all the same
territory you did in Windows, and probably more.