Introduction |
|
xxxiii | |
|
|
1 | (58) |
|
Chapter 1 Starting with Linux |
|
|
3 | (24) |
|
Understanding What Linux Is |
|
|
4 | (1) |
|
Understanding How Linux Differs from Other Operating Systems |
|
|
5 | (1) |
|
|
6 | (9) |
|
Free-flowing UNIX culture at Bell Labs |
|
|
7 | (2) |
|
|
9 | (1) |
|
Berkeley Software Distribution arrives |
|
|
9 | (1) |
|
UNIX Laboratory and commercialization |
|
|
9 | (2) |
|
GNU transitions UNIX to freedom |
|
|
11 | (1) |
|
|
12 | (1) |
|
Linus builds the missing piece |
|
|
13 | (1) |
|
OSI open source definition |
|
|
14 | (1) |
|
Understanding How Linux Distributions Emerged |
|
|
15 | (4) |
|
Choosing a Red Hat distribution |
|
|
16 | (1) |
|
Using Red Hat Enterprise Linux |
|
|
17 | (1) |
|
|
18 | (1) |
|
Choosing Ubuntu or another Debian distribution |
|
|
18 | (1) |
|
Finding Professional Opportunities with Linux Today |
|
|
19 | (5) |
|
Understanding how companies make money with Linux |
|
|
20 | (1) |
|
Becoming Red Hat Certified |
|
|
21 | (1) |
|
|
22 | (1) |
|
|
23 | (1) |
|
|
24 | (3) |
|
Chapter 2 Creating the Perfect Linux Desktop |
|
|
27 | (32) |
|
Understanding Linux Desktop Technology |
|
|
28 | (2) |
|
Starting with the Fedora GNOME Desktop Live CD |
|
|
30 | (1) |
|
Using the GNOME 3 Desktop |
|
|
31 | (15) |
|
After the computer boots up |
|
|
31 | (1) |
|
Navigating with the mouse |
|
|
32 | (4) |
|
Navigating with the keyboard |
|
|
36 | (2) |
|
Setting up the GNOME 3 desktop |
|
|
38 | (1) |
|
Extending the GNOME 3 desktop |
|
|
39 | (1) |
|
Using GNOME shell extensions |
|
|
39 | (1) |
|
Using the GNOME Tweak Tool |
|
|
40 | (2) |
|
Starting with desktop applications |
|
|
42 | (1) |
|
Managing files and folders with Nautilus |
|
|
42 | (2) |
|
Installing and managing additional software |
|
|
44 | (1) |
|
Playing music with Rhythmbox |
|
|
45 | (1) |
|
Stopping the GNOME 3 desktop |
|
|
46 | (1) |
|
Using the GNOME 2 Desktop |
|
|
46 | (11) |
|
Using the Metacity window manager |
|
|
48 | (1) |
|
Changing GNOME appearance |
|
|
49 | (1) |
|
|
50 | (1) |
|
Using the Applications and System menus |
|
|
51 | (1) |
|
|
51 | (1) |
|
|
52 | (1) |
|
Adding an application launcher |
|
|
52 | (1) |
|
|
53 | (1) |
|
Changing panel properties |
|
|
53 | (1) |
|
|
54 | (3) |
|
|
57 | (1) |
|
|
57 | (2) |
|
Part II Becoming a Linux Power User |
|
|
59 | (104) |
|
Chapter 3 Using the Shell |
|
|
61 | (32) |
|
About Shells and Terminal Windows |
|
|
62 | (3) |
|
|
63 | (1) |
|
|
64 | (1) |
|
|
65 | (1) |
|
|
65 | (1) |
|
|
66 | (6) |
|
Understanding command syntax |
|
|
67 | (3) |
|
|
70 | (2) |
|
Recalling Commands Using Command History |
|
|
72 | (6) |
|
|
73 | (2) |
|
|
75 | (1) |
|
|
76 | (2) |
|
Connecting and Expanding Commands |
|
|
78 | (3) |
|
|
78 | (1) |
|
|
79 | (1) |
|
|
79 | (1) |
|
|
80 | (1) |
|
Expanding arithmetic expressions |
|
|
80 | (1) |
|
|
81 | (1) |
|
|
81 | (3) |
|
Creating and using aliases |
|
|
83 | (1) |
|
|
84 | (1) |
|
Creating Your Shell Environment |
|
|
84 | (4) |
|
|
84 | (1) |
|
|
85 | (2) |
|
Adding environment variables |
|
|
87 | (1) |
|
Getting Information About Commands |
|
|
88 | (2) |
|
|
90 | (1) |
|
|
90 | (3) |
|
Chapter 4 Moving Around the Filesystem |
|
|
93 | (20) |
|
Using Basic Filesystem Commands |
|
|
96 | (2) |
|
Using Metacharacters and Operators |
|
|
98 | (3) |
|
Using file-matching metacharacters |
|
|
98 | (1) |
|
Using file-redirection metacharacters |
|
|
99 | (2) |
|
Using brace expansion characters |
|
|
101 | (1) |
|
Listing Files and Directories |
|
|
101 | (4) |
|
Understanding File Permissions and Ownership |
|
|
105 | (5) |
|
Changing permissions with chmod (numbers) |
|
|
107 | (1) |
|
Changing permissions with chmod (letters) |
|
|
107 | (1) |
|
Setting default file permission with umask |
|
|
108 | (1) |
|
|
109 | (1) |
|
Moving, Copying, and Removing Files |
|
|
110 | (1) |
|
|
111 | (1) |
|
|
112 | (1) |
|
Chapter 5 Working with Text Files |
|
|
113 | (18) |
|
Editing Files with vim and vi |
|
|
113 | (8) |
|
|
115 | (1) |
|
|
115 | (1) |
|
Moving around in the text |
|
|
116 | (1) |
|
Deleting, copying, and changing text |
|
|
117 | (1) |
|
|
118 | (1) |
|
|
118 | (1) |
|
|
118 | (1) |
|
Skipping around in the file |
|
|
119 | (1) |
|
|
120 | (1) |
|
|
120 | (1) |
|
Learning more about vi and vim |
|
|
120 | (1) |
|
|
121 | (8) |
|
Using locate to find files by name |
|
|
121 | (1) |
|
Searching for files with find |
|
|
122 | (1) |
|
|
123 | (1) |
|
|
124 | (1) |
|
|
124 | (1) |
|
Finding files by permission |
|
|
125 | (1) |
|
Finding files by date and time |
|
|
126 | (1) |
|
Using not and or when finding files |
|
|
126 | (1) |
|
Finding files and executing commands |
|
|
127 | (1) |
|
Searching in files with grep |
|
|
128 | (1) |
|
|
129 | (1) |
|
|
130 | (1) |
|
Chapter 6 Managing Running Processes |
|
|
131 | (14) |
|
|
131 | (1) |
|
|
132 | (5) |
|
Listing processes with ps |
|
|
132 | (2) |
|
Listing and changing processes with top |
|
|
134 | (1) |
|
Listing processes with System Monitor |
|
|
135 | (2) |
|
Managing Background and Foreground Processes |
|
|
137 | (3) |
|
Starting background processes |
|
|
138 | (1) |
|
Using foreground and background commands |
|
|
139 | (1) |
|
Killing and Renicing Processes |
|
|
140 | (3) |
|
Killing processes with kill and killall |
|
|
140 | (1) |
|
Using kill to signal processes by PID |
|
|
141 | (1) |
|
Using killall to signal processes by name |
|
|
141 | (1) |
|
Setting processor priority with nice and renice |
|
|
142 | (1) |
|
|
143 | (1) |
|
|
143 | (2) |
|
Chapter 7 Writing Simple Shell Scripts |
|
|
145 | (18) |
|
Understanding Shell Scripts |
|
|
145 | (16) |
|
Executing and debugging shell scripts |
|
|
146 | (1) |
|
Understanding shell variables |
|
|
147 | (1) |
|
Special shell positional parameters |
|
|
148 | (1) |
|
|
149 | (1) |
|
Parameter expansion in bash |
|
|
149 | (1) |
|
Performing arithmetic in shell scripts |
|
|
150 | (1) |
|
Using programming constructs in shell scripts |
|
|
151 | (1) |
|
The "if ... then" statements |
|
|
151 | (3) |
|
|
154 | (1) |
|
|
155 | (1) |
|
The "while ... do" and "until ... do" loops |
|
|
156 | (1) |
|
Trying some useful text manipulation programs |
|
|
157 | (1) |
|
The general regular expression parser |
|
|
157 | (1) |
|
Remove sections of lines of text (cut) |
|
|
158 | (1) |
|
Translate or delete characters (tr) |
|
|
158 | (1) |
|
|
158 | (1) |
|
Using simple shell scripts |
|
|
159 | (1) |
|
|
159 | (1) |
|
|
160 | (1) |
|
|
161 | (1) |
|
|
161 | (2) |
|
Part III Becoming a Linux System Administrator |
|
|
163 | (142) |
|
Chapter 8 Learning System Administration |
|
|
165 | (26) |
|
Understanding System Administration |
|
|
165 | (2) |
|
Using Graphical Administration Tools |
|
|
167 | (2) |
|
Using the root User Account |
|
|
169 | (5) |
|
Becoming root from the shell (su command) |
|
|
170 | (1) |
|
Allowing administrative access via the GUI |
|
|
171 | (1) |
|
Gaining administrative access with sudo |
|
|
172 | (2) |
|
Exploring Administrative Commands, Configuration Files, and Log Files |
|
|
174 | (6) |
|
|
174 | (1) |
|
Administrative configuration files |
|
|
175 | (4) |
|
|
179 | (1) |
|
Using Other Administrative Accounts |
|
|
180 | (1) |
|
Checking and Configuring Hardware |
|
|
181 | (7) |
|
|
182 | (2) |
|
Managing removable hardware |
|
|
184 | (2) |
|
Working with loadable modules |
|
|
186 | (1) |
|
|
187 | (1) |
|
|
187 | (1) |
|
|
188 | (1) |
|
|
188 | (1) |
|
|
189 | (2) |
|
Chapter 9 Installing Linux |
|
|
191 | (36) |
|
|
192 | (1) |
|
Installing Fedora from a Live CD |
|
|
193 | (6) |
|
Installing Red Hat Enterprise Linux from Installation Media |
|
|
199 | (3) |
|
Installing Linux in the Enterprise |
|
|
202 | (2) |
|
Exploring Common Installation Topics |
|
|
204 | (6) |
|
Upgrading or installing from scratch |
|
|
204 | (1) |
|
|
205 | (1) |
|
Installing Linux to run virtually |
|
|
206 | (1) |
|
Using installation boot options |
|
|
207 | (1) |
|
Boot options for disabling features |
|
|
207 | (1) |
|
Boot options for video problems |
|
|
208 | (1) |
|
Boot options for special installation types |
|
|
208 | (1) |
|
Boot options for kickstarts and remote repositories |
|
|
209 | (1) |
|
Miscellaneous boot options |
|
|
210 | (1) |
|
Using specialized storage |
|
|
210 | (1) |
|
|
211 | (7) |
|
Understanding different partition types |
|
|
212 | (1) |
|
Partitioning during Fedora installation |
|
|
212 | (4) |
|
Reasons for different partitioning schemes |
|
|
216 | (1) |
|
Tips for creating partitions |
|
|
216 | (2) |
|
Using the GRUB boot loader |
|
|
218 | (6) |
|
Using GRUB Legacy (version 1) |
|
|
218 | (5) |
|
|
223 | (1) |
|
|
224 | (1) |
|
|
225 | (2) |
|
Chapter 10 Getting and Managing Software |
|
|
227 | (26) |
|
Managing Software with PackageKit |
|
|
227 | (4) |
|
Enabling repositories and getting updates |
|
|
228 | (1) |
|
|
229 | (1) |
|
Installing and removing packages |
|
|
230 | (1) |
|
|
231 | (1) |
|
Understanding Linux RPM Software Packaging |
|
|
231 | (4) |
|
Understanding RPM packaging |
|
|
232 | (1) |
|
|
233 | (1) |
|
|
234 | (1) |
|
|
234 | (1) |
|
Managing RPM Packages with YUM |
|
|
235 | (11) |
|
Understanding how yum works |
|
|
235 | (1) |
|
|
236 | (1) |
|
2 Checking /etc/sysconfig/rhn/up2date (RHEL only) |
|
|
237 | (1) |
|
3 Checking /etc/yum.repos.d/*.repo files |
|
|
237 | (1) |
|
4 Downloading RPM packages and metadata from a YUM repository |
|
|
238 | (1) |
|
5 RPM packages installed to Linux file system |
|
|
238 | (1) |
|
6 Store YUM repository metadata to local RPM database |
|
|
238 | (1) |
|
Using YUM with third-party software repositories |
|
|
239 | (1) |
|
Managing software with the YUM command |
|
|
240 | (1) |
|
|
240 | (2) |
|
Installing and removing packages |
|
|
242 | (1) |
|
|
243 | (1) |
|
Updating groups of packages |
|
|
244 | (1) |
|
Maintaining your RPM package database and cache |
|
|
245 | (1) |
|
Downloading RPMs from a yum repository |
|
|
246 | (1) |
|
Installing, Querying, and Verifying Software with the rpm Command |
|
|
246 | (4) |
|
Installing and removing packages with rpm |
|
|
247 | (1) |
|
|
247 | (2) |
|
|
249 | (1) |
|
Managing Software in the Enterprise |
|
|
250 | (1) |
|
|
251 | (1) |
|
|
252 | (1) |
|
Chapter 11 Managing User Accounts |
|
|
253 | (24) |
|
|
253 | (9) |
|
Adding users with useradd |
|
|
256 | (3) |
|
|
259 | (1) |
|
Modifying users with usermod |
|
|
260 | (1) |
|
Deleting users with userdel |
|
|
261 | (1) |
|
Understanding Group Accounts |
|
|
262 | (2) |
|
|
262 | (1) |
|
|
263 | (1) |
|
Managing Users in the Enterprise |
|
|
264 | (8) |
|
Setting permissions with Access Control Lists |
|
|
265 | (1) |
|
Setting ACLs with setfacl |
|
|
265 | (2) |
|
|
267 | (1) |
|
|
268 | (2) |
|
Adding directories for users to collaborate |
|
|
270 | (1) |
|
Creating group collaboration directories (set GID bit) |
|
|
270 | (1) |
|
Creating restricted deletion directories (sticky bit) |
|
|
271 | (1) |
|
Centralizing User Accounts |
|
|
272 | (2) |
|
Using the Authentication Configuration window |
|
|
273 | (1) |
|
|
274 | (1) |
|
|
275 | (2) |
|
Chapter 12 Managing Disks and Filesystems |
|
|
277 | (28) |
|
Understanding Disk Storage |
|
|
277 | (2) |
|
|
279 | (9) |
|
|
280 | (1) |
|
Creating a single-partition disk |
|
|
281 | (3) |
|
Creating a multiple-partition disk |
|
|
284 | (4) |
|
Using Logical Volume Management Partitions |
|
|
288 | (5) |
|
|
288 | (3) |
|
Creating LVM logical volumes |
|
|
291 | (2) |
|
Growing LVM logical volumes |
|
|
293 | (1) |
|
|
293 | (9) |
|
|
294 | (2) |
|
|
296 | (1) |
|
|
297 | (1) |
|
Using the fstab file to define mountable file systems |
|
|
297 | (3) |
|
Using the mount command to mount file systems |
|
|
300 | (1) |
|
Mounting a disk image in loopback |
|
|
301 | (1) |
|
|
301 | (1) |
|
Using the mkfs Command to Create a Filesystem |
|
|
302 | (1) |
|
|
303 | (1) |
|
|
303 | (2) |
|
Part IV Becoming a Linux Server Administrator |
|
|
305 | (266) |
|
Chapter 13 Understanding Server Administration |
|
|
307 | (30) |
|
Starting with Server Administration |
|
|
308 | (7) |
|
Step 1 Install the server |
|
|
308 | (2) |
|
Step 2 Configure the server |
|
|
310 | (1) |
|
Using configuration files |
|
|
310 | (1) |
|
Checking the default configuration |
|
|
310 | (1) |
|
|
311 | (1) |
|
|
312 | (1) |
|
|
313 | (1) |
|
|
313 | (1) |
|
|
313 | (1) |
|
|
313 | (1) |
|
Security settings in configuration files |
|
|
314 | (1) |
|
Step 5 Monitor the server |
|
|
314 | (1) |
|
|
314 | (1) |
|
Run system activity reports |
|
|
314 | (1) |
|
Keep system software up to date |
|
|
314 | (1) |
|
Check the filesystem for signs of crackers |
|
|
315 | (1) |
|
Managing Remote Access with the Secure Shell Service |
|
|
315 | (10) |
|
Starting the openssh-server service |
|
|
316 | (1) |
|
|
317 | (1) |
|
Using ssh for remote login |
|
|
318 | (1) |
|
Using ssh for remote execution |
|
|
319 | (1) |
|
Copying files between systems with scp and rsync |
|
|
320 | (3) |
|
Interactive copying with sftp |
|
|
323 | (1) |
|
Using key-based (passwordless) authentication |
|
|
323 | (2) |
|
Configuring System Logging |
|
|
325 | (5) |
|
Enabling system logging with rsyslog |
|
|
325 | (1) |
|
Understanding the rsyslog.conf file |
|
|
326 | (1) |
|
Understanding the messages log file |
|
|
327 | (1) |
|
Setting up and using a loghost with rsyslogd |
|
|
328 | (1) |
|
Watching logs with logwatch |
|
|
329 | (1) |
|
Checking System Resources with sar |
|
|
330 | (2) |
|
|
332 | (2) |
|
Displaying system space with df |
|
|
332 | (1) |
|
Checking disk usage with du |
|
|
333 | (1) |
|
Finding disk consumption with find |
|
|
333 | (1) |
|
|
334 | (1) |
|
|
335 | (2) |
|
Chapter 14 Administering Networking |
|
|
337 | (28) |
|
Configuring Networking for Desktops |
|
|
338 | (10) |
|
Checking your network interfaces |
|
|
340 | (1) |
|
Checking your network from NetworkManager |
|
|
340 | (2) |
|
Checking your network from the command line |
|
|
342 | (3) |
|
Configuring network interfaces |
|
|
345 | (2) |
|
Configuring a network proxy connection |
|
|
347 | (1) |
|
Configuring Networking for Servers |
|
|
348 | (11) |
|
Using system-config-network |
|
|
349 | (1) |
|
Choosing device configuration |
|
|
350 | (1) |
|
Choosing DNS configuration |
|
|
351 | (1) |
|
Understanding networking configuration files |
|
|
351 | (1) |
|
|
352 | (1) |
|
|
353 | (3) |
|
Setting alias network interfaces |
|
|
356 | (1) |
|
Setting up Ethernet channel bonding |
|
|
357 | (1) |
|
|
358 | (1) |
|
Configuring Networking in the Enterprise |
|
|
359 | (4) |
|
Configuring Linux as a router |
|
|
359 | (1) |
|
Configuring Linux as a DHCP server |
|
|
360 | (1) |
|
Configuring Linux as a DNS server |
|
|
361 | (1) |
|
Configuring Linux as a proxy server |
|
|
361 | (1) |
|
Configuring VLANs in Linux |
|
|
362 | (1) |
|
|
363 | (1) |
|
|
363 | (2) |
|
Chapter 15 Starting and Stopping Services |
|
|
365 | (50) |
|
Understanding the Linux init Daemon |
|
|
365 | (25) |
|
Understanding the classic init daemons |
|
|
367 | (8) |
|
Understanding the Upstart init daemon |
|
|
375 | (1) |
|
Learning Upstart init daemon basics |
|
|
375 | (3) |
|
Learning Upstart's backward compatibility to SysVinit |
|
|
378 | (4) |
|
Understanding systemd init |
|
|
382 | (1) |
|
|
382 | (6) |
|
Learning systemd's backward compatibility to SysVinit |
|
|
388 | (2) |
|
|
390 | (4) |
|
Auditing the classic SysVinit daemon |
|
|
391 | (1) |
|
Auditing the Upstart init daemon |
|
|
392 | (1) |
|
Auditing the systemd init |
|
|
393 | (1) |
|
Stopping and Starting Services |
|
|
394 | (6) |
|
Stopping and starting the classic SysVinit daemon |
|
|
395 | (1) |
|
Stopping and starting the Upstart init daemon |
|
|
396 | (1) |
|
Stopping and starting the systemd daemon |
|
|
397 | (1) |
|
Stopping a service with systemd |
|
|
397 | (1) |
|
Starting a service with systemd |
|
|
398 | (1) |
|
Restarting a service with systemd |
|
|
398 | (1) |
|
Reloading a service with systemd |
|
|
399 | (1) |
|
Configuring Persistent Services |
|
|
400 | (4) |
|
Configuring the classic SysVinit daemon persistent services |
|
|
400 | (1) |
|
Configuring Upstart init daemon persistent services |
|
|
401 | (1) |
|
Configuring systemd init persistent services |
|
|
402 | (1) |
|
Enabling a service with systemd |
|
|
402 | (1) |
|
Disabling (removing) a service with systemd |
|
|
402 | (2) |
|
Configuring a Default runlevel or target unit |
|
|
404 | (2) |
|
Configuring the classic SysVinit daemon default runlevel |
|
|
404 | (1) |
|
Configuring the Upstart init daemon default runlevel |
|
|
404 | (1) |
|
Configuring the systemd init default target unit |
|
|
405 | (1) |
|
Adding New or Customized Services |
|
|
406 | (7) |
|
Adding new services to classic SysVinit daemon |
|
|
406 | (1) |
|
Step 1 Create a new or customized service script file |
|
|
406 | (1) |
|
Step 2 Move the service script |
|
|
407 | (1) |
|
Step 3 Add the service to runlevels |
|
|
407 | (1) |
|
Adding new services to the Upstart init daemon |
|
|
408 | (2) |
|
Adding new services to systemd init |
|
|
410 | (1) |
|
Step 1 Create a new or customized service configuration unit file |
|
|
410 | (1) |
|
Step 2 Move the service configuration unit file |
|
|
411 | (1) |
|
Step 3 Add the service to the Wants directory |
|
|
412 | (1) |
|
|
413 | (1) |
|
|
413 | (2) |
|
Chapter 16 Configuring a Print Server |
|
|
415 | (24) |
|
Common UNIX Printing System |
|
|
415 | (2) |
|
|
417 | (10) |
|
Adding a printer automatically |
|
|
417 | (1) |
|
Using web-based CUPS administration |
|
|
418 | (2) |
|
Using the Printer Configuration window |
|
|
420 | (1) |
|
Configuring local printers with the Printer Configuration window |
|
|
421 | (3) |
|
Configuring remote printers |
|
|
424 | (1) |
|
Adding a remote CUPS printer |
|
|
425 | (1) |
|
Adding a remote UNIX (LDP/LPR) printer |
|
|
425 | (1) |
|
Adding a Windows (SMB) printer |
|
|
426 | (1) |
|
Working with CUPS Printing |
|
|
427 | (4) |
|
Configuring the CUPS server (cupsd.conf) |
|
|
427 | (2) |
|
|
429 | (1) |
|
Configuring CUPS printer options manually |
|
|
429 | (2) |
|
|
431 | (2) |
|
|
431 | (1) |
|
|
431 | (1) |
|
Removing print jobs with lprm |
|
|
432 | (1) |
|
Configuring Print Servers |
|
|
433 | (4) |
|
Configuring a shared CUPS printer |
|
|
433 | (2) |
|
Configuring a shared Samba printer |
|
|
435 | (1) |
|
Understanding smb.conf for printing |
|
|
435 | (1) |
|
|
436 | (1) |
|
|
437 | (1) |
|
|
437 | (2) |
|
Chapter 17 Configuring a Web Server |
|
|
439 | (28) |
|
Understanding the Apache Web Server |
|
|
439 | (1) |
|
Getting and Installing Your Web Server |
|
|
440 | (3) |
|
Understanding the httpd package |
|
|
440 | (3) |
|
|
443 | (1) |
|
|
443 | (17) |
|
|
444 | (1) |
|
Apache file permissions and ownership |
|
|
445 | (1) |
|
|
445 | (1) |
|
|
445 | (1) |
|
Understanding the Apache configuration files |
|
|
446 | (1) |
|
|
447 | (2) |
|
Understanding default settings |
|
|
449 | (2) |
|
Adding a virtual host to Apache |
|
|
451 | (2) |
|
Allowing users to publish their own web content |
|
|
453 | (2) |
|
Securing your web traffic with SSL/TLS |
|
|
455 | (1) |
|
Understanding how SSL is configured |
|
|
456 | (2) |
|
Generating an SSL key and self-signed certificate |
|
|
458 | (1) |
|
Generating a certificate signing request |
|
|
459 | (1) |
|
Troubleshooting Your Web Server |
|
|
460 | (4) |
|
Checking for configuration errors |
|
|
460 | (3) |
|
Accessing forbidden and server internal errors |
|
|
463 | (1) |
|
|
464 | (1) |
|
|
464 | (3) |
|
Chapter 18 Configuring an FTP Server |
|
|
467 | (20) |
|
|
467 | (2) |
|
Installing the vsftpd FTP Server |
|
|
469 | (1) |
|
Starting the vsftpd Service |
|
|
470 | (2) |
|
|
472 | (5) |
|
Opening up your firewall for FTP |
|
|
473 | (1) |
|
Allowing FTP access in TCP wrappers |
|
|
474 | (1) |
|
Configuring SELinux for your FTP server |
|
|
475 | (1) |
|
Relating Linux file permissions to vsftpd |
|
|
476 | (1) |
|
Configuring Your FTP Server |
|
|
477 | (4) |
|
|
477 | (1) |
|
|
478 | (1) |
|
Setting up vsftpd for the Internet |
|
|
479 | (2) |
|
Using FTP Clients to Connect to Your Server |
|
|
481 | (4) |
|
Accessing an FTP server from Firefox |
|
|
481 | (1) |
|
Accessing an FTP server with the lftp command |
|
|
482 | (2) |
|
|
484 | (1) |
|
|
485 | (1) |
|
|
485 | (2) |
|
Chapter 19 Configuring a Windows File Sharing (Samba) Server |
|
|
487 | (28) |
|
|
487 | (1) |
|
|
488 | (2) |
|
Starting and Stopping Samba |
|
|
490 | (4) |
|
Starting the Samba (smb) service |
|
|
490 | (2) |
|
Starting the NetBIOS (nmbd) name server |
|
|
492 | (1) |
|
Stopping the Samba (smb) and NetBIOS (nmb) services |
|
|
493 | (1) |
|
|
494 | (4) |
|
Configuring firewalls for Samba |
|
|
495 | (1) |
|
Configuring SELinux for Samba |
|
|
496 | (1) |
|
Setting SELinux Booleans for Samba |
|
|
496 | (1) |
|
Setting SELinux file contexts for Samba |
|
|
497 | (1) |
|
Configuring Samba host/user permissions |
|
|
498 | (1) |
|
|
498 | (5) |
|
Using system-config-samba |
|
|
498 | (1) |
|
Choosing Samba server settings |
|
|
499 | (1) |
|
Configuring Samba user accounts |
|
|
500 | (1) |
|
Creating a Samba shared folder |
|
|
501 | (1) |
|
|
502 | (1) |
|
Configuring Samba in the smb.conf file |
|
|
503 | (6) |
|
Configuring the [ global] section |
|
|
504 | (1) |
|
Configuring the [ homes] section |
|
|
505 | (1) |
|
Configuring the [ printers] section |
|
|
506 | (1) |
|
Creating custom shared directories |
|
|
507 | (2) |
|
|
509 | (3) |
|
Accessing Samba shares in Linux |
|
|
509 | (3) |
|
Accessing Samba shares in Windows |
|
|
512 | (1) |
|
Using Samba in the Enterprise |
|
|
512 | (1) |
|
|
513 | (1) |
|
|
513 | (2) |
|
Chapter 20 Configuring an NFS File Server |
|
|
515 | (24) |
|
|
517 | (1) |
|
|
518 | (1) |
|
|
519 | (4) |
|
Configuring the /etc/exports file |
|
|
520 | (1) |
|
Hostnames in /etc/exports |
|
|
521 | (1) |
|
Access options in /etc/exports |
|
|
522 | (1) |
|
User mapping options in /etc/exports |
|
|
522 | (1) |
|
Exporting the shared filesystems |
|
|
523 | (1) |
|
|
523 | (4) |
|
Opening up your firewall for NFS |
|
|
524 | (1) |
|
Allowing NFS access in TCP wrappers |
|
|
525 | (1) |
|
Configuring SELinux for your NFS server |
|
|
526 | (1) |
|
|
527 | (8) |
|
|
527 | (1) |
|
Manually mounting an NFS filesystem |
|
|
527 | (1) |
|
Mounting an NFS filesystem at boot time |
|
|
528 | (1) |
|
Mounting noauto filesystems |
|
|
529 | (1) |
|
|
530 | (2) |
|
Using autofs to mount NFS filesystems on demand |
|
|
532 | (1) |
|
Automounting to the /net directory |
|
|
532 | (1) |
|
Automounting home directories |
|
|
533 | (2) |
|
Unmounting NFS filesystems |
|
|
535 | (1) |
|
|
536 | (1) |
|
|
536 | (3) |
|
Chapter 21 Troubleshooting Linux |
|
|
539 | (32) |
|
|
539 | (12) |
|
|
540 | (1) |
|
Troubleshooting BIOS setup |
|
|
541 | (1) |
|
Troubleshooting boot order |
|
|
542 | (1) |
|
Troubleshooting the GRUB boot loader |
|
|
542 | (3) |
|
|
545 | (1) |
|
Troubleshooting the init process |
|
|
546 | (1) |
|
Troubleshooting rc.sysinit |
|
|
546 | (1) |
|
Troubleshooting runlevel processes |
|
|
547 | (4) |
|
Troubleshooting Software Packages |
|
|
551 | (5) |
|
Fixing RPM databases and cache |
|
|
555 | (1) |
|
Troubleshooting Networking |
|
|
556 | (7) |
|
Troubleshooting outgoing connections |
|
|
556 | (1) |
|
|
557 | (1) |
|
Check physical connections |
|
|
557 | (1) |
|
|
557 | (1) |
|
Check hostname resolution |
|
|
558 | (2) |
|
Troubleshooting incoming connections |
|
|
560 | (1) |
|
Check if the client can reach your system at all |
|
|
560 | (1) |
|
Check if the service is available to the client |
|
|
560 | (1) |
|
Check the firewall on the server |
|
|
561 | (1) |
|
Check the service on the server |
|
|
562 | (1) |
|
|
563 | (5) |
|
|
563 | (3) |
|
Checking for memory problems |
|
|
566 | (1) |
|
Dealing with memory problems |
|
|
567 | (1) |
|
Troubleshooting in Rescue Mode |
|
|
568 | (1) |
|
|
569 | (1) |
|
|
570 | (1) |
|
Part V Learning Linux Security Techniques |
|
|
571 | (146) |
|
Chapter 22 Understanding Basic Linux Security |
|
|
573 | (42) |
|
Introducing the Security Process Lifecycle |
|
|
573 | (2) |
|
Examining the Planning Phase |
|
|
575 | (3) |
|
Choosing an access control model |
|
|
575 | (1) |
|
Discretionary Access Control |
|
|
575 | (1) |
|
|
576 | (1) |
|
Role Based Access Control |
|
|
576 | (1) |
|
Using security checklists |
|
|
577 | (1) |
|
|
577 | (1) |
|
Industry security checklists |
|
|
578 | (1) |
|
Entering the Implementation Phase |
|
|
578 | (18) |
|
Implementing physical security |
|
|
578 | (1) |
|
Implementing disaster recovery |
|
|
579 | (1) |
|
|
580 | (1) |
|
One user per user account |
|
|
580 | (1) |
|
No logins to the root account |
|
|
581 | (1) |
|
Setting expiration dates on temporary accounts |
|
|
582 | (1) |
|
Removing unused user accounts |
|
|
583 | (2) |
|
|
585 | (1) |
|
|
585 | (1) |
|
Setting and changing passwords |
|
|
586 | (1) |
|
Enforcing best password practices |
|
|
587 | (3) |
|
Understanding the password files and password hashes |
|
|
590 | (1) |
|
|
591 | (1) |
|
Managing dangerous filesystem permissions |
|
|
591 | (1) |
|
Securing the password files |
|
|
592 | (2) |
|
Locking down the filesystem |
|
|
594 | (1) |
|
Managing software and services |
|
|
595 | (1) |
|
Removing unused software and services |
|
|
595 | (1) |
|
Updating software packages |
|
|
596 | (1) |
|
|
596 | (1) |
|
Working in the Monitoring Phase |
|
|
596 | (15) |
|
|
596 | (4) |
|
|
600 | (1) |
|
Detecting counterfeit new accounts and privileges |
|
|
600 | (2) |
|
Detecting bad account passwords |
|
|
602 | (1) |
|
Monitoring the filesystem |
|
|
603 | (1) |
|
Verifying software packages |
|
|
604 | (1) |
|
|
605 | (1) |
|
Detecting viruses and rootkits |
|
|
606 | (2) |
|
|
608 | (3) |
|
Working in the Audit/Review Phase |
|
|
611 | (1) |
|
Conducting compliance reviews |
|
|
611 | (1) |
|
Conducting security reviews |
|
|
612 | (1) |
|
|
612 | (1) |
|
|
613 | (2) |
|
Chapter 23 Understanding Advanced Linux Security |
|
|
615 | (44) |
|
Implementing Linux Security with Cryptography |
|
|
615 | (20) |
|
|
616 | (2) |
|
Understanding encryption/decryption |
|
|
618 | (1) |
|
Understanding cryptographic ciphers |
|
|
618 | (1) |
|
Understanding cryptographic cipher keys |
|
|
619 | (6) |
|
Understanding digital signatures |
|
|
625 | (2) |
|
Implementing Linux cryptography |
|
|
627 | (1) |
|
|
627 | (1) |
|
Encrypting a Linux filesystem |
|
|
628 | (2) |
|
Encrypting a Linux directory |
|
|
630 | (3) |
|
|
633 | (1) |
|
Encrypting Linux miscellaneous |
|
|
634 | (1) |
|
Implementing Linux Security with PAM |
|
|
635 | (21) |
|
Understanding the PAM authentication process |
|
|
636 | (2) |
|
Understanding PAM contexts |
|
|
638 | (1) |
|
Understanding PAM control flags |
|
|
638 | (1) |
|
Understanding PAM modules |
|
|
639 | (1) |
|
Understanding PAM system event configuration files |
|
|
640 | (1) |
|
Administering PAM on your Linux system |
|
|
641 | (1) |
|
Managing PAM-aware application configuration files |
|
|
641 | (1) |
|
Managing PAM system event configuration files |
|
|
642 | (2) |
|
Implementing resources limits with PAM |
|
|
644 | (2) |
|
Implementing time restrictions with PAM |
|
|
646 | (2) |
|
Enforcing good passwords with PAM |
|
|
648 | (4) |
|
Encouraging sudo use with PAM |
|
|
652 | (1) |
|
Locking accounts with PAM |
|
|
653 | (2) |
|
Obtaining more information on PAM |
|
|
655 | (1) |
|
|
656 | (1) |
|
|
656 | (3) |
|
Chapter 24 Enhancing Linux Security with SELinux |
|
|
659 | (30) |
|
Understanding SELinux Benefits |
|
|
659 | (2) |
|
Understanding How SELinux Works |
|
|
661 | (8) |
|
Understanding Type Enforcement |
|
|
661 | (1) |
|
Understanding Multi-Level Security |
|
|
662 | (1) |
|
Implementing SELinux security models |
|
|
663 | (1) |
|
Understanding SELinux Operational Modes |
|
|
663 | (1) |
|
Understanding SELinux security contexts |
|
|
664 | (3) |
|
Understanding SELinux Policy types |
|
|
667 | (1) |
|
Understanding SELinux Policy rule packages |
|
|
668 | (1) |
|
|
669 | (10) |
|
Setting the SELinux Operational Mode |
|
|
670 | (2) |
|
Setting the SELinux Policy type |
|
|
672 | (1) |
|
Managing SELinux security contexts |
|
|
673 | (1) |
|
Managing the user security context |
|
|
674 | (1) |
|
Managing the file security context |
|
|
675 | (1) |
|
Managing the process security context |
|
|
676 | (1) |
|
Managing SELinux policy rule packages |
|
|
676 | (2) |
|
Managing SELinux via Booleans |
|
|
678 | (1) |
|
Monitoring and Troubleshooting SELinux |
|
|
679 | (5) |
|
Understanding SELinux logging |
|
|
679 | (1) |
|
Reviewing SELinux messages in the audit log |
|
|
680 | (1) |
|
Reviewing SELinux messages in the messages log |
|
|
680 | (2) |
|
Troubleshooting SELinux logging |
|
|
682 | (1) |
|
Troubleshooting common SELinux problems |
|
|
682 | (1) |
|
Using a non-standard directory for a service |
|
|
683 | (1) |
|
Using a non-standard port for a service |
|
|
683 | (1) |
|
Moving files and losing security context labels |
|
|
684 | (1) |
|
|
684 | (1) |
|
|
684 | (1) |
|
Obtaining More Information on SELinux |
|
|
685 | (1) |
|
|
686 | (1) |
|
|
686 | (3) |
|
Chapter 25 Securing Linux on a Network |
|
|
689 | (28) |
|
Auditing Network Services |
|
|
690 | (12) |
|
Evaluating access to network services |
|
|
692 | (1) |
|
Using nmap to create a network services list |
|
|
692 | (3) |
|
Using nmap to audit your network services advertisements |
|
|
695 | (4) |
|
Controlling access to network services |
|
|
699 | (3) |
|
|
702 | (13) |
|
|
702 | (1) |
|
|
703 | (1) |
|
Understanding the iptables utility |
|
|
703 | (4) |
|
Using the iptables utility |
|
|
707 | (8) |
|
|
715 | (1) |
|
|
716 | (1) |
|
|
717 | (66) |
|
|
719 | (10) |
|
|
720 | (1) |
|
Getting Red Hat Enterprise Linux |
|
|
721 | (1) |
|
|
722 | (2) |
|
Creating Linux CDs and DVDs |
|
|
724 | (1) |
|
Burning CDs/DVDs in Windows |
|
|
724 | (1) |
|
Burning CDs/DVDs on a Mac OS X system |
|
|
724 | (1) |
|
Burning CDs/DVDs in Linux |
|
|
725 | (1) |
|
Burning CDs from a Linux desktop |
|
|
725 | (1) |
|
Burning CDs from a Linux command line |
|
|
726 | (1) |
|
Booting Linux from a USB Drive |
|
|
727 | (2) |
|
Appendix B Exercise Answers |
|
|
729 | (54) |
|
Chapter 2 Creating the Perfect Linux Desktop |
|
|
729 | (3) |
|
Chapter 3 Using the Shell |
|
|
732 | (2) |
|
Chapter 4 Moving Around the Filesystem |
|
|
734 | (1) |
|
Chapter 5 Working with Text Files |
|
|
735 | (2) |
|
Chapter 6 Managing Running Processes |
|
|
737 | (1) |
|
Chapter 7 Writing Simple Shell Scripts |
|
|
738 | (2) |
|
Chapter 8 Learning System Administration |
|
|
740 | (3) |
|
Chapter 9 Installing Linux |
|
|
743 | (2) |
|
Chapter 10 Getting and Managing Software |
|
|
745 | (1) |
|
Chapter 11 Managing User Accounts |
|
|
746 | (4) |
|
Chapter 12 Managing Disks and Filesystems |
|
|
750 | (2) |
|
Chapter 13 Understanding Server Administration |
|
|
752 | (3) |
|
Chapter 14 Administering Networking |
|
|
755 | (3) |
|
Chapter 15 Starting and Stopping Services |
|
|
758 | (3) |
|
Chapter 16 Configuring a Print Server |
|
|
761 | (2) |
|
Chapter 17 Configuring a Web Server |
|
|
763 | (3) |
|
Chapter 18 Configuring an FTP Server |
|
|
766 | (3) |
|
Chapter 19 Configuring a Windows File Sharing (Samba) Server |
|
|
769 | (3) |
|
Chapter 20 Configuring an NFS File Server |
|
|
772 | (2) |
|
Chapter 21 Troubleshooting Linux |
|
|
774 | (2) |
|
Chapter 22 Understanding Basic Linux Security |
|
|
776 | (1) |
|
Chapter 23 Understanding Advanced Linux Security |
|
|
777 | (2) |
|
Chapter 24 Enhancing Linux Security with SELinux |
|
|
779 | (2) |
|
Chapter 25 Securing Linux on a Network |
|
|
781 | (2) |
Index |
|
783 | |