307 Chapter 20 Installing Linux 308 Networking: A Beginner’s Guide A key component of Linux’s success has been the remarkable improvement in installation tools. What once was a mildly frightening process many years back has now become almost trivial. Most default configurations in which Linux is installed are already capable of creating a server. This is, unfortunately, due to a slightly naïve design decision: A server serves everything, ranging from disk services to mail. Often, all of these services are turned on from the start (depending on the distribution you are using and whether it was installed as a workstation or a server). As you know, most servers are dedicated to performing one or two tasks, and any other installed services simply take up memory and slow performance. This chapter discusses the installation process of Fedora Linux as it pertains to servers. This process has two objectives: to differentiate servers from client workstations and to streamline a server’s operation based on its dedicated purpose. You may be wondering why of all of the available Linux distributions, I chose to focus on Fedora. The answer is simple: Fedora is both popular and technically sound. It is friendly to a lot of different types of users and serves many uses. (That the entire distribution is available free from the Internet is also a plus!) As you become more experienced with Linux, you might find other distributions interesting and should look into them. After all, one of the war cries of Linux users everywhere is that freedom of choice is crucial. You should never feel locked into a proprietary system. Configuring Computer Hardware for Linux Before you get into the actual installation phase, you need to consider the hardware on which the system will run and how the server will best configured to provide the services you need from it. Let’s start by examining hardware issues. Hardware Compatibility As with any operating system, determining which hardware configurations work before starting an installation process is prudent. Each commercial vendor publishes a list of compatible hardware and makes that list available on its web site. Be sure you obtain the latest versions of these lists so you are confident that the vendor fully supports the hardware you are using. In general, most popular Intel-based configurations work without difficulty. Red Hat’s certified hardware compatibility list is at http://bugzilla .redhat.com/hwcert. For Novell’s SUSE Linux. you can search compatibility at http:// developer.novell.com/yessearch/Search.jsp. TIP Some computer manufacturers sell computers with Linux preloaded on them. When you purchase a computer like this, you can usually be confident that the computer manufacturer has ensured that the hardware is fully compatible with the installed Linux version, and that the appropriate Linux drivers are loaded and work properly. 309 Chapter 20: Installing Linux Because Fedora is a fast-moving distribution, and because development is occurring at a breakneck pace, there is no hardware list available for Fedora Linux. However, you can read more about hardware compatibility with Fedora at http://fedoraproject.org/ wiki/HCL. Note also that, generally speaking, hardware that works with Red Hat Linux will typically work with Fedora. A general suggestion that applies to all operating systems is to avoid bleeding- edge hardware and software configurations. Although these appear impressive, they have not undergone the maturing process that some of the slightly older hardware has experienced. For servers, the temptation to use a bleeding-edge configuration usually isn’t an issue because a server has no need for the latest and greatest toys, such as fancy video cards. After all, the main goal is to provide a highly available server for the network’s users, not to play the latest games. Server Design When a system becomes a server, its stability, availability, and performance are significant issues. These three issues are usually addressed through the purchase of more hardware, which is unfortunate. Paying thousands of dollars extra to get a system capable of achieving all three objectives when the desired level of performance could have been attained from existing hardware with a little tuning is a waste. With Linux, achieving these objectives without overspending is not hard. Even better, the gains are outstanding! The most significant design decision that you must make when managing a server configuration is not technical, but administrative. You should design a server not to be friendly to casual users. This means without any cute multimedia tools, sound card support, or fancy web browsers (when possible). In fact, your organization should make a rule that casual use of a server is strictly prohibited. This rule should apply not only to site users, but to site administrators as well. Another important aspect of designing a server is making sure that it has a good environment. As a systems administrator, you must ensure the physical safety of your servers by keeping them in a separate, physically secure room. The only access to the servers for nonadministrative personnel should be through the network. The server room itself should be well ventilated, cool, and locked. Failing to ensure such a physical environment is an accident waiting to happen. Systems that overheat and helpful users who “think” they know how to fix problems can be as great a danger (arguably an even greater danger) to server stability as bad software. Moreover, Linux is particularly vulnerable to hacking at its command prompt. Once the system is well secured behind locked doors, installing battery backup is also crucial. This backup serves two key purposes. The first purpose is to keep the system running during a power failure so that it can gracefully shut down, thereby avoiding the loss of any files. The second is to ensure that voltage spikes, drops, and various noises don’t interfere with the health of your system. 310 Networking: A Beginner’s Guide To improve your server situation, you can take the following specific actions: N Take advantage of the fact that the graphical user interface (GUI) is uncoupled from the core operating system and avoid starting X Window System unless someone needs to sit on the console and run an application. After all, X Window System, like any other application, requires memory and CPU time to work, both of which are better off going to the server processes instead. N Determine which functions you want the server to perform and disable all other functions. Not only are unused functions a waste of memory and CPU time, but they are also just another security issue that you need to address. N Linux, unlike some other operating systems, enables you to choose the features that you want in the kernel. The default kernel you get is already reasonably well tuned, so you shouldn’t need to adjust it. If you do need to change a feature or upgrade a kernel, though, be picky about what you add and what you leave out. Make sure that you need a feature before including it. Server Uptime All this chatter about taking care of servers and making sure that silly things don’t cause them to crash stems from a longstanding UNIX philosophy: Uptime is good. More uptime is better. The uptime command tells the user how long the system has been running since its last boot, how many users are currently logged in, and how much load the system is experiencing. The latter two statistics are useful measures necessary for daily system health and long-term planning. For example, if server load has been staying consistently high, you should consider a more capable server. But the all-important number is how long the server has been running since its last reboot. Long uptimes are a sign of proper care, maintenance, and, from a practical standpoint, system stability. You often find UNIX administrators boasting about their server’s uptimes the way you hear car buffs boast about horsepower. This focus on uptime is also why you hear UNIX administrators cursing at Windows installations that require a reboot for every little change. In contrast, you’ll be hard-pressed to find any changes to a UNIX system that require a reboot in order to take effect. Dual-Booting Issues If you are new to Linux, you might not be ready to commit the use of a complete system for the sake of “test driving.” Because the people who built Linux understand that we live in a heterogeneous world, all distributions of Linux have been designed so that they can be installed on separate partitions of your hard disk, while leaving other partitions alone. Typically, this means that Microsoft Windows can coexist on a computer that also can run Linux. Additionally, many Linux distributions can be 311 Chapter 20: Installing Linux run from a bootable “live” CD-ROM, which lets you run a fully functional build of the Linux distribution, without affecting your computer’s existing installed operating system. If you like the Linux distribution, there is usually a simple procedure you can run from within the live CD environment to install that distribution to the hard disk. Because the focus of this chapter is server installations, this section will not cover the details of building a dual-boot system. Anyone with a little experience in creating partitions on a disk should be able to figure out how to build such a system. If you are having difficulty, you can refer to the installation guide that came with your distribution or one of the many beginners’ guides to Linux. To repartition a system that has already had Windows installed on it, without needing to reformat the disk and rebuild from scratch, you can use a commercial software program such as Norton’s PartitionMagic. Installing Fedora Linux This section describes how to install Fedora Linux (version 10) on a stand-alone system. The section takes a liberal approach to the process, installing all the tools possibly relevant to server operations. Before you begin the actual installation procedure, you need to decide how you will run the installation program. Choosing an Installation Method With the improved connectivity and speed of both local area networks and Internet connections, an increasingly popular option is to perform installations over the network, rather than using a local CD-ROM. Network installations can be a great convenience when installing a large number of hosts. TIP In UNIX (or Linux) parlance, a host is any computer on a network, regardless of whether the computer is functioning as a server or as a workstation. Typically, server installations aren’t well suited to being automated, because each server usually has a unique task and thus a slightly different configuration. For example, a server dedicated to handling logging information sent to it over the network will have especially large partitions set up for the appropriate logging directories. This is in contrast to a file server that performs no logging of its own. Because servers are not usually set up using a “one-size-fits-all” approach, the focus in this section is exclusively on the technique for installing a system from a CD-ROM. After you have gone through the installation process from a CD-ROM once, you will find performing the network-based installations straightforward. . process many years back has now become almost trivial. Most default configurations in which Linux is installed are already capable of creating a server. This is, unfortunately, due to a slightly. start by examining hardware issues. Hardware Compatibility As with any operating system, determining which hardware configurations work before starting an installation process is prudent. Each. loaded and work properly. 309 Chapter 20: Installing Linux Because Fedora is a fast-moving distribution, and because development is occurring at a breakneck pace, there is no hardware list available