Introduction |
|
xxiii | |
|
Part I Getting Familiar with Red Hat Enterprise Linux |
|
|
1 | (66) |
|
Chapter 1 Getting Started with Red Hat Enterprise Linux |
|
|
3 | (38) |
|
Linux, Open Source, and Red Hat |
|
|
4 | (3) |
|
|
4 | (1) |
|
|
5 | (1) |
|
|
6 | (1) |
|
Red Hat Enterprise Linux and Related Products |
|
|
7 | (2) |
|
Red Hat Enterprise Linux Server Edition |
|
|
7 | (1) |
|
Red Hat Enterprise Linux Workstation Edition |
|
|
8 | (1) |
|
|
8 | (1) |
|
|
9 | (1) |
|
Red Hat Enterprise Virtualization |
|
|
9 | (1) |
|
J Boss Enterprise Middleware |
|
|
9 | (1) |
|
|
9 | (1) |
|
Installing Red Hat Enterprise Linux Server |
|
|
9 | (24) |
|
Exploring the GNOME User Interface |
|
|
33 | (6) |
|
Exploring the Applications Menu |
|
|
34 | (1) |
|
Exploring the Places Menu |
|
|
35 | (1) |
|
Exploring the System Menu |
|
|
36 | (3) |
|
|
39 | (2) |
|
Chapter 2 Finding Your Way on the Command Line |
|
|
41 | (26) |
|
Working with the Bash Shell |
|
|
42 | (3) |
|
|
42 | (1) |
|
Useful Bash Key Sequences |
|
|
43 | (1) |
|
Working with Bash History |
|
|
44 | (1) |
|
Performing Basic File System Management Tasks |
|
|
45 | (5) |
|
|
45 | (1) |
|
|
46 | (4) |
|
|
50 | (5) |
|
|
50 | (1) |
|
|
51 | (4) |
|
|
55 | (1) |
|
|
56 | (5) |
|
|
57 | (1) |
|
|
57 | (1) |
|
|
58 | (1) |
|
|
58 | (1) |
|
|
58 | (1) |
|
Using sed for the Replacement of Text |
|
|
59 | (2) |
|
|
61 | (5) |
|
|
61 | (4) |
|
|
65 | (1) |
|
Getting Information on Installed Packages |
|
|
65 | (1) |
|
|
66 | (1) |
|
Part II Administering Red Hat Enterprise Linux |
|
|
67 | (120) |
|
Chapter 3 Performing Daily System Administration Tasks |
|
|
69 | (30) |
|
Performing Job Management Tasks |
|
|
70 | (2) |
|
System and Process Monitoring and Management |
|
|
72 | (10) |
|
Managing Processes with ps |
|
|
73 | (1) |
|
Sending Signals to Processes with the kill Command |
|
|
74 | (2) |
|
Using top to Show Current System Activity |
|
|
76 | (4) |
|
Managing Process Niceness |
|
|
80 | (2) |
|
|
82 | (1) |
|
|
83 | (4) |
|
|
87 | (1) |
|
|
88 | (1) |
|
|
89 | (2) |
|
Setting Up System Logging |
|
|
91 | (7) |
|
|
92 | (2) |
|
|
94 | (2) |
|
|
96 | (2) |
|
|
98 | (1) |
|
Chapter 4 Managing Software |
|
|
99 | (22) |
|
|
100 | (1) |
|
Understanding Meta Package Handlers |
|
|
101 | (8) |
|
Creating Your Own Repositories |
|
|
103 | (1) |
|
|
104 | (2) |
|
|
106 | (3) |
|
Installing Software with Yum |
|
|
109 | (6) |
|
|
115 | (3) |
|
Extracting Files from RPM Packages |
|
|
118 | (1) |
|
|
119 | (2) |
|
Chapter 5 Configuring and Managing Storage |
|
|
121 | (34) |
|
Understanding Partitions and Logical Volumes |
|
|
122 | (1) |
|
|
123 | (6) |
|
|
129 | (6) |
|
|
129 | (2) |
|
|
131 | (1) |
|
Changing File System Properties |
|
|
132 | (2) |
|
Checking the File System Integrity |
|
|
134 | (1) |
|
Mounting File Systems Automatically Through fstab |
|
|
135 | (4) |
|
Working with Logical Volumes |
|
|
139 | (10) |
|
|
139 | (4) |
|
|
143 | (3) |
|
|
146 | (3) |
|
Replacing Failing Storage Devices |
|
|
149 | (1) |
|
|
149 | (2) |
|
Working with Encrypted Volumes |
|
|
151 | (3) |
|
|
154 | (1) |
|
Chapter 6 Connecting to the Network |
|
|
155 | (32) |
|
Understanding Network Manager |
|
|
156 | (8) |
|
Working with Services and Runlevels |
|
|
156 | (2) |
|
Configuring the Network with Network Manager |
|
|
158 | (2) |
|
Working with system-config-network |
|
|
160 | (1) |
|
Understanding Network Manager Configuration Files |
|
|
161 | (3) |
|
Understanding Network Service Scripts |
|
|
164 | (1) |
|
Configuring Networking from the Command Line |
|
|
164 | (5) |
|
Troubleshooting Networking |
|
|
169 | (4) |
|
|
173 | (1) |
|
|
174 | (9) |
|
|
175 | (2) |
|
|
177 | (1) |
|
Using PuTTY on Windows Machines |
|
|
177 | (1) |
|
Configuring Key-Based SSH Authentication |
|
|
178 | (3) |
|
Using Graphical Applications with SSH |
|
|
181 | (1) |
|
Using SSH Port Forwarding |
|
|
182 | (1) |
|
Configuring VNC Server Access |
|
|
183 | (2) |
|
|
185 | (2) |
|
Part III Securing Red Hat Enterprise Linux |
|
|
187 | (126) |
|
Chapter 7 Working with Users, Groups, and Permissions |
|
|
189 | (40) |
|
Managing Users and Groups |
|
|
190 | (11) |
|
Commands for User Management |
|
|
190 | (2) |
|
|
192 | (1) |
|
Modifying and Deleting User Accounts |
|
|
193 | (1) |
|
Behind the Commands: Configuration Files |
|
|
194 | (4) |
|
|
198 | (3) |
|
Using Graphical Tools for User and Group Management |
|
|
201 | (2) |
|
Using External Authentication Sources |
|
|
203 | (5) |
|
Understanding the Authentication Process |
|
|
208 | (1) |
|
|
208 | (1) |
|
|
209 | (3) |
|
Understanding Pluggable Authentication Modules |
|
|
210 | (2) |
|
|
212 | (15) |
|
Understanding the Role of Ownership |
|
|
212 | (2) |
|
Basic Permissions: Read, Write, and Execute |
|
|
214 | (2) |
|
|
216 | (4) |
|
Working with Access Control Lists |
|
|
220 | (5) |
|
Setting Default Permissions with umask |
|
|
225 | (1) |
|
|
226 | (1) |
|
|
227 | (2) |
|
Chapter 8 Understanding and Configuring SELinux |
|
|
229 | (16) |
|
|
230 | (3) |
|
|
231 | (1) |
|
Understanding the Type Context |
|
|
231 | (2) |
|
Selecting the SELinux Mode |
|
|
233 | (2) |
|
Working with SELinux Context Types |
|
|
235 | (2) |
|
Configuring SELinux Policies |
|
|
237 | (1) |
|
Working with SELinux Modules |
|
|
238 | (1) |
|
Setting Up SELinux with system-config-selinux |
|
|
239 | (1) |
|
|
239 | (5) |
|
|
244 | (1) |
|
Chapter 9 Working with KVM Virtualization |
|
|
245 | (24) |
|
Understanding the KVM Virtualization Architecture |
|
|
246 | (2) |
|
Red Hat KVM Virtualization |
|
|
246 | (1) |
|
Red Hat Enterprise Virtualization |
|
|
247 | (1) |
|
Preparing Your Host for KVM Virtualization |
|
|
248 | (1) |
|
Installing a KVM Virtual Machine |
|
|
249 | (6) |
|
Managing KVM Virtual Machines |
|
|
255 | (8) |
|
Managing Virtual Machines with Virtual Machine Manager |
|
|
256 | (6) |
|
Managing Virtual Machines from the virsh Interface |
|
|
262 | (1) |
|
Understanding KVM Networking |
|
|
263 | (5) |
|
|
268 | (1) |
|
Chapter 10 Securing Your Server with iptables |
|
|
269 | (24) |
|
|
270 | (1) |
|
Setting Up a Firewall with system-config-firewall |
|
|
271 | (8) |
|
|
272 | (3) |
|
|
275 | (1) |
|
|
275 | (3) |
|
|
278 | (1) |
|
Setting Up a Firewall with iptables |
|
|
279 | (8) |
|
Understanding Tables, Chains, and Rules |
|
|
280 | (1) |
|
Understanding How a Rule Is Composed |
|
|
280 | (1) |
|
|
281 | (6) |
|
Advanced iptables Configuration |
|
|
287 | (2) |
|
|
287 | (2) |
|
|
289 | (1) |
|
|
289 | (3) |
|
|
292 | (1) |
|
Chapter 11 Setting Up Cryptographic Services |
|
|
293 | (20) |
|
|
294 | (2) |
|
Proof of Authenticity: the Certificate Authority |
|
|
295 | (1) |
|
Managing Certificates with openssl |
|
|
296 | (6) |
|
Creating a Signing Request |
|
|
302 | (1) |
|
Working with GNU Privacy Guard |
|
|
302 | (10) |
|
|
303 | (2) |
|
|
305 | (2) |
|
|
307 | (1) |
|
Encrypting Files with GPG |
|
|
308 | (2) |
|
|
310 | (1) |
|
|
310 | (2) |
|
|
312 | (1) |
|
Part IV Networking Red Hat Enterprise Linux |
|
|
313 | (98) |
|
Chapter 12 Configuring OpenLDAP |
|
|
315 | (18) |
|
|
316 | (2) |
|
Types of Information in OpenLDAP |
|
|
316 | (1) |
|
|
316 | (1) |
|
Replication and Referrals |
|
|
317 | (1) |
|
Configuring a Base OpenLDAP Server |
|
|
318 | (2) |
|
Installing and Configuring OpenLDAP |
|
|
318 | (2) |
|
Populating the OpenLDAP Database |
|
|
320 | (12) |
|
Creating the Base Structure |
|
|
320 | (3) |
|
|
323 | (3) |
|
Managing Linux Users and Groups in LDAP |
|
|
326 | (6) |
|
Using OpenLDAP for Authentication |
|
|
332 | (1) |
|
|
332 | (1) |
|
Chapter 13 Configuring Your Server for File Sharing |
|
|
333 | (22) |
|
|
334 | (4) |
|
|
335 | (2) |
|
|
337 | (1) |
|
Making NFS Mounts Persistent |
|
|
338 | (1) |
|
|
338 | (4) |
|
|
342 | (6) |
|
Setting Up a Samba File Server |
|
|
342 | (3) |
|
|
345 | (1) |
|
Samba Advanced Authentication Options |
|
|
346 | (1) |
|
|
346 | (2) |
|
|
348 | (3) |
|
|
351 | (1) |
|
|
352 | (3) |
|
Chapter 14 Configuring DNS and DHCP |
|
|
355 | (20) |
|
|
356 | (3) |
|
|
356 | (1) |
|
|
357 | (1) |
|
|
358 | (1) |
|
|
359 | (1) |
|
|
359 | (10) |
|
Setting Up a Cache-Only Name Server |
|
|
359 | (2) |
|
Setting Up a Primary Name Server |
|
|
361 | (7) |
|
Setting Up a Secondary Name Server |
|
|
368 | (1) |
|
|
369 | (1) |
|
|
370 | (4) |
|
|
374 | (1) |
|
Chapter 15 Setting Up a Mail Server |
|
|
375 | (10) |
|
Using the Message Transfer Agent |
|
|
376 | (1) |
|
Understanding the Mail Delivery Agent |
|
|
377 | (1) |
|
Understanding the Mail User Agent |
|
|
377 | (1) |
|
Setting Up Postfix as an SMTP Server |
|
|
377 | (6) |
|
|
378 | (2) |
|
|
380 | (2) |
|
|
382 | (1) |
|
Configuring Dovecot for POP and IMAP |
|
|
383 | (1) |
|
|
384 | (1) |
|
|
384 | (1) |
|
Chapter 16 Configuring Apache on Red Hat Enterprise Linux |
|
|
385 | (26) |
|
Configuring the Apache Web Server |
|
|
386 | (10) |
|
|
386 | (1) |
|
Understanding the Apache Configuration Files |
|
|
387 | (6) |
|
|
393 | (1) |
|
|
393 | (2) |
|
|
395 | (1) |
|
Working with Virtual Hosts |
|
|
396 | (3) |
|
Securing the Web Server with TLS Certificates |
|
|
399 | (5) |
|
Configuring Authentication |
|
|
404 | (3) |
|
Setting Up Authentication with .htpasswd |
|
|
405 | (1) |
|
Configuring LDAP Authentication |
|
|
406 | (1) |
|
|
407 | (2) |
|
|
409 | (2) |
|
Part V Advanced Red Hat Enterprise Linux Configuration |
|
|
411 | (166) |
|
Chapter 17 Monitoring and Optimizing Performance |
|
|
413 | (54) |
|
Interpreting What's Going On: The top Utility |
|
|
414 | (6) |
|
|
415 | (2) |
|
Memory Monitoring with top |
|
|
417 | (2) |
|
Process Monitoring with top |
|
|
419 | (1) |
|
Analyzing CPU Performance |
|
|
420 | (5) |
|
Understanding CPU Performance |
|
|
421 | (1) |
|
Context Switches and Interrupts |
|
|
421 | (4) |
|
|
425 | (1) |
|
|
425 | (8) |
|
|
425 | (1) |
|
Active vs. Inactive Memory |
|
|
426 | (1) |
|
|
427 | (3) |
|
Using ps for Analyzing Memory |
|
|
430 | (3) |
|
Monitoring Storage Performance |
|
|
433 | (7) |
|
Understanding Disk Activity |
|
|
434 | (4) |
|
Finding Most Busy Processes with iotop |
|
|
438 | (2) |
|
Setting and Monitoring Drive Activity with hdparm |
|
|
440 | (1) |
|
Understanding Network Performance |
|
|
440 | (6) |
|
|
446 | (20) |
|
Using a Simple Performance Optimization Test |
|
|
447 | (2) |
|
|
449 | (2) |
|
|
451 | (2) |
|
Optimizing Interprocess Communication |
|
|
453 | (2) |
|
Tuning Storage Performance |
|
|
455 | (4) |
|
|
459 | (5) |
|
Optimizing Linux Performance Using cgroups |
|
|
464 | (2) |
|
|
466 | (1) |
|
Chapter 18 Introducing Bash Shell Scripting |
|
|
467 | (38) |
|
|
468 | (4) |
|
Elements of a Good Shell Script |
|
|
468 | (3) |
|
|
471 | (1) |
|
Working with Variables and Input |
|
|
472 | (17) |
|
|
472 | (2) |
|
Variables, Subshells, and Sourcing |
|
|
474 | (2) |
|
Working with Script Arguments |
|
|
476 | (4) |
|
|
480 | (2) |
|
Using Command Substitution |
|
|
482 | (1) |
|
|
483 | (2) |
|
Changing Variable Content with Pattern Matching |
|
|
485 | (4) |
|
|
489 | (2) |
|
|
491 | (12) |
|
|
493 | (3) |
|
|
496 | (2) |
|
|
498 | (1) |
|
|
499 | (1) |
|
|
500 | (3) |
|
|
503 | (2) |
|
Chapter 19 Understanding and Troubleshooting the Boot Procedure |
|
|
505 | (24) |
|
Introduction to Troubleshooting the Boot Procedure |
|
|
506 | (1) |
|
Configuring Booting with GRUB |
|
|
507 | (9) |
|
Understanding the grub.conf Configuration File |
|
|
507 | (3) |
|
|
510 | (3) |
|
Using the GRUB Command Line |
|
|
513 | (1) |
|
|
514 | (1) |
|
|
514 | (2) |
|
Common Kernel Management Tasks |
|
|
516 | (5) |
|
Analyzing Availability of Kernel Modules |
|
|
517 | (1) |
|
Loading and Unloading Kernel Modules |
|
|
518 | (1) |
|
Loading Kernel Modules with Specific Options |
|
|
519 | (2) |
|
|
521 | (1) |
|
Configuring Service Startup with Upstart |
|
|
521 | (3) |
|
Basic Red Hat Enterprise Linux Troubleshooting |
|
|
524 | (3) |
|
|
527 | (2) |
|
Chapter 20 Introducing High-Availability Clustering |
|
|
529 | (32) |
|
Understanding High-Availability Clustering |
|
|
530 | (5) |
|
The Workings of High Availability |
|
|
530 | (1) |
|
High-Availability Requirements |
|
|
531 | (3) |
|
Red Hat High-Availability Add-on Software Components |
|
|
534 | (1) |
|
Configuring Cluster-Based Services |
|
|
535 | (6) |
|
|
535 | (2) |
|
Setting Up Shared Storage |
|
|
537 | (4) |
|
Installing the Red Hat High Availability Add-On |
|
|
541 | (13) |
|
Building the Initial State of the Cluster |
|
|
542 | (4) |
|
Configuring Additional Cluster Properties |
|
|
546 | (3) |
|
Configuring a Quorum Disk |
|
|
549 | (2) |
|
|
551 | (3) |
|
Creating Resources and Services |
|
|
554 | (5) |
|
Troubleshooting a Nonoperational Cluster |
|
|
558 | (1) |
|
Configuring GFS2 File Systems |
|
|
559 | (1) |
|
|
560 | (1) |
|
Chapter 21 Setting Up an Installation Server |
|
|
561 | (16) |
|
Configuring a Network Server As an Installation Server |
|
|
562 | (1) |
|
Setting Up a TFTP and DHCP Server for PXE Boot |
|
|
563 | (5) |
|
Installing the TFTP Server |
|
|
564 | (1) |
|
Configuring DHCP for PXE Boot |
|
|
565 | (1) |
|
Creating the TFTP PXE Server Content |
|
|
565 | (3) |
|
Creating a Kickstart File |
|
|
568 | (8) |
|
Using a Kickstart File to Perform an Automated Installation |
|
|
568 | (2) |
|
Modifying the Kickstart File with system-config-kickstart |
|
|
570 | (3) |
|
Making Manual Modifications to the Kickstart File |
|
|
573 | (3) |
|
|
576 | (1) |
Appendix A Hands-On Labs |
|
577 | (12) |
Appendix B Answers to Hands-On Labs |
|
589 | (18) |
Glossary |
|
607 | (18) |
Index |
|
625 | |