Tribute to Evi |
|
xl | |
Preface |
|
xlii | |
Foreword |
|
xliv | |
Acknowledgments |
|
xlvi | |
Section One: Basic Administration |
|
|
|
3 | (27) |
|
Essential duties of a system administrator |
|
|
4 | (3) |
|
|
4 | (1) |
|
|
4 | (1) |
|
|
4 | (1) |
|
|
4 | (1) |
|
Installing and upgrading software |
|
|
5 | (1) |
|
|
5 | (1) |
|
|
5 | (1) |
|
Maintaining local documentation |
|
|
5 | (1) |
|
Vigilantly monitoring security |
|
|
6 | (1) |
|
|
6 | (1) |
|
|
6 | (1) |
|
|
6 | (1) |
|
|
6 | (1) |
|
|
7 | (1) |
|
|
8 | (1) |
|
Example systems used in this book |
|
|
9 | (3) |
|
Example Linux distributions |
|
|
10 | (1) |
|
Example UNIX distribution |
|
|
11 | (1) |
|
Notation and typographical conventions |
|
|
12 | (1) |
|
|
13 | (1) |
|
Man pages and other on-line documentation |
|
|
14 | (2) |
|
Organization of the man pages |
|
|
14 | (1) |
|
|
15 | (1) |
|
|
15 | (1) |
|
Other authoritative documentation |
|
|
16 | (2) |
|
|
16 | (1) |
|
Package-specific documentation |
|
|
16 | (1) |
|
|
17 | (1) |
|
|
17 | (1) |
|
Other sources of information |
|
|
18 | (1) |
|
|
18 | (1) |
|
HowTos and reference sites |
|
|
19 | (1) |
|
|
19 | (1) |
|
Ways to find and install software |
|
|
19 | (6) |
|
Determining if software is already installed |
|
|
21 | (1) |
|
|
22 | (1) |
|
Building software from source code |
|
|
23 | (1) |
|
Installing from a web script |
|
|
24 | (1) |
|
|
25 | (1) |
|
Specialization and adjacent disciplines |
|
|
26 | (2) |
|
|
26 | (1) |
|
Site reliability engineers |
|
|
27 | (1) |
|
Security operations engineers |
|
|
27 | (1) |
|
|
27 | (1) |
|
|
27 | (1) |
|
Network operations center (NOC) engineers |
|
|
27 | (1) |
|
|
28 | (1) |
|
|
28 | (1) |
|
|
28 | (2) |
|
System administration and DevOps |
|
|
28 | (1) |
|
|
29 | (1) |
|
Chapter 2 Booting and System Management Daemons |
|
|
30 | (35) |
|
|
30 | (2) |
|
|
32 | (3) |
|
|
32 | (1) |
|
|
33 | (1) |
|
|
33 | (2) |
|
|
35 | (1) |
|
GRUB: the GRand Unified Boot loader |
|
|
35 | (4) |
|
|
36 | (1) |
|
|
37 | (1) |
|
|
38 | (1) |
|
|
39 | (2) |
|
|
39 | (1) |
|
|
39 | (1) |
|
|
40 | (1) |
|
|
40 | (1) |
|
System management daemons |
|
|
41 | (2) |
|
|
41 | (1) |
|
|
42 | (1) |
|
|
43 | (1) |
|
|
43 | (14) |
|
inits judged and assigned their proper punishments |
|
|
44 | (1) |
|
|
44 | (1) |
|
|
45 | (1) |
|
systemctl: manage systemd |
|
|
46 | (1) |
|
|
47 | (2) |
|
|
49 | (1) |
|
|
50 | (1) |
|
|
51 | (1) |
|
A more complex unit file example |
|
|
52 | (1) |
|
Local services and customizations |
|
|
53 | (1) |
|
Service and startup control caveats |
|
|
54 | (2) |
|
|
56 | (1) |
|
FreeBSD init and startup scripts |
|
|
57 | (2) |
|
Reboot and shutdown procedures |
|
|
59 | (1) |
|
Shutting down physical systems |
|
|
59 | (1) |
|
Shutting down cloud systems |
|
|
59 | (1) |
|
Stratagems for a nonbooting system |
|
|
60 | (5) |
|
|
61 | (1) |
|
Single-user mode on FreeBSD |
|
|
62 | (1) |
|
Single-user mode with GRUB |
|
|
62 | (1) |
|
Recovery of cloud systems |
|
|
62 | (3) |
|
Chapter 3 Access Control and Rootly Powers |
|
|
65 | (25) |
|
Standard UNIX access control |
|
|
66 | (3) |
|
Filesystem access control |
|
|
66 | (1) |
|
|
67 | (1) |
|
|
67 | (1) |
|
Setuid and setgid execution |
|
|
68 | (1) |
|
Management of the root account |
|
|
69 | (10) |
|
|
69 | (1) |
|
su: substitute user identity |
|
|
70 | (1) |
|
|
70 | (8) |
|
|
71 | (1) |
|
|
72 | (1) |
|
sudo vs. advanced access control |
|
|
73 | (1) |
|
|
74 | (1) |
|
|
74 | (1) |
|
|
75 | (1) |
|
|
75 | (1) |
|
sudo without a control terminal |
|
|
76 | (1) |
|
Site-wide sudo configuration |
|
|
76 | (2) |
|
Disabling the root account |
|
|
78 | (1) |
|
System accounts other than root |
|
|
78 | (1) |
|
Extensions to the standard access control model |
|
|
79 | (4) |
|
Drawbacks of the standard model |
|
|
80 | (1) |
|
PAM: Pluggable Authentication Modules |
|
|
80 | (1) |
|
Kerberos: network cryptographic authentication |
|
|
81 | (1) |
|
Filesystem access control lists |
|
|
81 | (1) |
|
|
82 | (1) |
|
|
82 | (1) |
|
|
83 | (6) |
|
|
84 | (1) |
|
|
84 | (1) |
|
Role-based access control |
|
|
85 | (1) |
|
SELinux: Security-Enhanced Linux |
|
|
85 | (2) |
|
|
87 | (2) |
|
|
89 | (1) |
|
Chapter 4 Process Control |
|
|
90 | (30) |
|
|
90 | (3) |
|
|
91 | (1) |
|
|
91 | (1) |
|
UID and EUID: real and effective user ID |
|
|
92 | (1) |
|
GID and EGID: real and effective group ID |
|
|
92 | (1) |
|
|
93 | (1) |
|
|
93 | (1) |
|
The life cycle of a process |
|
|
93 | (5) |
|
|
94 | (3) |
|
|
97 | (1) |
|
Process and thread states |
|
|
97 | (1) |
|
|
98 | (3) |
|
Interactive monitoring with top |
|
|
101 | (1) |
|
nice and renice: influence scheduling priority |
|
|
102 | (2) |
|
|
104 | (1) |
|
strace and truss: trace signals and system calls |
|
|
105 | (2) |
|
|
107 | (2) |
|
|
109 | (11) |
|
|
109 | (4) |
|
The format of crontab files |
|
|
110 | (2) |
|
|
112 | (1) |
|
|
112 | (1) |
|
|
113 | (1) |
|
|
113 | (5) |
|
Structure of systemd timers |
|
|
114 | (1) |
|
|
114 | (2) |
|
|
116 | (1) |
|
|
117 | (1) |
|
Common uses for scheduled tasks |
|
|
118 | (8) |
|
|
118 | (1) |
|
|
118 | (1) |
|
|
118 | (1) |
|
|
118 | (1) |
|
|
119 | (1) |
|
|
120 | (33) |
|
|
122 | (1) |
|
Filesystem mounting and unmounting |
|
|
122 | (3) |
|
Organization of the file tree |
|
|
125 | (1) |
|
|
126 | (6) |
|
|
129 | (1) |
|
|
129 | (1) |
|
|
129 | (1) |
|
Character and block device files |
|
|
130 | (1) |
|
|
131 | (1) |
|
|
131 | (1) |
|
|
131 | (1) |
|
|
132 | (8) |
|
|
132 | (1) |
|
The setuid and setgid bits |
|
|
133 | (1) |
|
|
134 | (1) |
|
Is: list and inspect files |
|
|
134 | (2) |
|
chmod: change permissions |
|
|
136 | (1) |
|
chown and chgrp: change ownership and group |
|
|
137 | (1) |
|
umask: assign default permissions |
|
|
138 | (1) |
|
|
139 | (1) |
|
|
140 | (13) |
|
|
141 | (1) |
|
|
141 | (1) |
|
|
142 | (1) |
|
|
142 | (1) |
|
|
143 | (1) |
|
|
143 | (4) |
|
Interaction between traditional modes and ACLs |
|
|
144 | (2) |
|
POSIX access determination |
|
|
146 | (1) |
|
|
146 | (1) |
|
|
147 | (7) |
|
NFSv4 entities for which permissions can be specified |
|
|
148 | (1) |
|
NFSv4 access determination |
|
|
149 | (1) |
|
|
149 | (1) |
|
|
150 | (1) |
|
Interactions between ACLs and modes |
|
|
151 | (1) |
|
|
151 | (2) |
|
Chapter 6 Software Installation and Management |
|
|
153 | (29) |
|
Operating system installation |
|
|
154 | (8) |
|
Installing from the network |
|
|
154 | (1) |
|
|
155 | (1) |
|
Using kickstart, the automated installer for Red Hat and CentOS |
|
|
156 | (3) |
|
Setting up a kickstart configuration file |
|
|
156 | (2) |
|
Building a kickstart server |
|
|
158 | (1) |
|
Pointing kickstart at your config file |
|
|
158 | (1) |
|
Automating installation for Debian and Ubuntu |
|
|
159 | (2) |
|
Netbooting with Cobbler, the open source Linux provisioning server |
|
|
161 | (1) |
|
Automating FreeBSD installation |
|
|
161 | (1) |
|
|
162 | (2) |
|
Linux package management systems |
|
|
164 | (2) |
|
|
164 | (2) |
|
dpkg: manage .deb packages |
|
|
166 | (1) |
|
High-level Linux package management systems |
|
|
166 | (9) |
|
|
167 | (2) |
|
|
169 | (1) |
|
APT: the Advanced Package Tool |
|
|
169 | (1) |
|
|
170 | (1) |
|
An example /etc/apt/sources.list file |
|
|
171 | (1) |
|
Creation of a local repository mirror |
|
|
172 | (1) |
|
|
173 | (1) |
|
yum: release management for RPM |
|
|
174 | (1) |
|
FreeBSD software management |
|
|
175 | (3) |
|
|
175 | (1) |
|
pkg: the FreeBSD package manager |
|
|
176 | (1) |
|
|
177 | (1) |
|
Software localization and configuration |
|
|
178 | (3) |
|
Organizing your localization |
|
|
179 | (1) |
|
|
179 | (1) |
|
Limiting the field of play |
|
|
180 | (1) |
|
|
180 | (1) |
|
|
181 | (1) |
|
Chapter 7 Scripting and the Shell |
|
|
182 | (61) |
|
|
183 | (6) |
|
|
183 | (1) |
|
|
184 | (1) |
|
|
184 | (1) |
|
Don't optimize prematurely |
|
|
185 | (1) |
|
Pick the right scripting language |
|
|
186 | (1) |
|
|
187 | (2) |
|
|
189 | (9) |
|
|
190 | (1) |
|
|
190 | (2) |
|
|
192 | (1) |
|
|
193 | (1) |
|
|
194 | (4) |
|
cut: separate lines into fields |
|
|
194 | (1) |
|
|
194 | (1) |
|
|
195 | (1) |
|
wc: count lines, words, and characters |
|
|
196 | (1) |
|
tee: copy input to two places |
|
|
196 | (1) |
|
head and tail: read the beginning or end of a file |
|
|
196 | (1) |
|
|
197 | (1) |
|
|
198 | (11) |
|
|
198 | (1) |
|
|
199 | (2) |
|
|
201 | (1) |
|
|
202 | (1) |
|
Command-line arguments and functions |
|
|
203 | (2) |
|
|
205 | (2) |
|
|
207 | (2) |
|
|
209 | (1) |
|
|
209 | (6) |
|
|
210 | (1) |
|
|
210 | (1) |
|
|
210 | (1) |
|
Example regular expressions |
|
|
211 | (2) |
|
|
213 | (1) |
|
Greediness, laziness, and catastrophic backtracking |
|
|
213 | (2) |
|
|
215 | (8) |
|
|
215 | (1) |
|
|
216 | (1) |
|
|
216 | (2) |
|
Objects, strings, numbers, lists, dictionaries, tuples, and files |
|
|
218 | (2) |
|
|
220 | (1) |
|
|
221 | (2) |
|
|
223 | (6) |
|
|
223 | (1) |
|
|
224 | (1) |
|
|
225 | (2) |
|
Symbols and option hashes |
|
|
227 | (1) |
|
Regular expressions in Ruby |
|
|
227 | (2) |
|
|
229 | (1) |
|
Library and environment management for Python and Ruby |
|
|
229 | (6) |
|
Finding and installing packages |
|
|
229 | (1) |
|
Creating reproducible environments |
|
|
230 | (1) |
|
|
231 | (4) |
|
virtualenv: virtual environments for Python |
|
|
232 | (1) |
|
RVM: the Ruby environment Manager |
|
|
232 | (3) |
|
Revision control with Git |
|
|
235 | (6) |
|
|
236 | (3) |
|
|
239 | (1) |
|
|
239 | (2) |
|
|
241 | (2) |
|
Shells and shell scripting |
|
|
241 | (1) |
|
|
241 | (1) |
|
|
242 | (1) |
|
|
242 | (1) |
|
Chapter 8 User Management |
|
|
243 | (27) |
|
|
244 | (1) |
|
|
245 | (5) |
|
|
245 | (1) |
|
|
246 | (2) |
|
|
248 | (1) |
|
Default GID (group ID) number |
|
|
249 | (1) |
|
|
249 | (1) |
|
|
250 | (1) |
|
|
250 | (1) |
|
The Linux /etc/shadow file |
|
|
250 | (2) |
|
FreeBSD's /etc/master.passwd and /etc/login.conf files |
|
|
252 | (2) |
|
The /etc/master.passwd file |
|
|
252 | (1) |
|
|
253 | (1) |
|
|
254 | (1) |
|
Manual steps for adding users |
|
|
255 | (5) |
|
Editing the passwd and group files |
|
|
256 | (1) |
|
|
257 | (1) |
|
Creating the home directory and installing startup files |
|
|
257 | (2) |
|
Setting home directory permissions and ownerships |
|
|
259 | (1) |
|
Configuring roles and administrative privileges |
|
|
259 | (1) |
|
|
260 | (1) |
|
Scripts for adding users: useradd, adduser, and newusers |
|
|
260 | (4) |
|
|
261 | (1) |
|
adduser on Debian and Ubuntu |
|
|
262 | (1) |
|
|
262 | (1) |
|
newusers on Linux: adding in bulk |
|
|
263 | (1) |
|
Safe removal of a user's account and files |
|
|
264 | (1) |
|
|
265 | (1) |
|
|
266 | (1) |
|
Centralized account management |
|
|
266 | (4) |
|
LDAP and Active Directory |
|
|
267 | (1) |
|
Application-level single sign-on systems |
|
|
267 | (1) |
|
Identity management systems |
|
|
268 | (2) |
|
Chapter 9 Cloud Computing |
|
|
270 | (24) |
|
|
271 | (2) |
|
|
273 | (3) |
|
Public, private, and hybrid clouds |
|
|
273 | (1) |
|
|
274 | (1) |
|
|
275 | (1) |
|
|
275 | (1) |
|
Cloud service fundamentals |
|
|
276 | (7) |
|
|
277 | (1) |
|
Regions and availability zones |
|
|
278 | (1) |
|
|
279 | (1) |
|
|
280 | (1) |
|
|
281 | (1) |
|
Identity and authorization |
|
|
281 | (1) |
|
|
282 | (1) |
|
|
282 | (1) |
|
Clouds: VPS quick start by platform |
|
|
283 | (8) |
|
|
283 | (5) |
|
aws: control AWS subsystems |
|
|
284 | (1) |
|
|
284 | (2) |
|
|
286 | (1) |
|
Stopping and terminating instances |
|
|
287 | (1) |
|
|
288 | (1) |
|
|
288 | (1) |
|
Running an instance on GCE |
|
|
288 | (1) |
|
|
289 | (2) |
|
|
291 | (2) |
|
|
293 | (1) |
|
|
294 | (31) |
|
|
296 | (3) |
|
|
298 | (1) |
|
How to view logs in the systemd journal |
|
|
298 | (1) |
|
|
299 | (3) |
|
Configuring the systemd journal |
|
|
300 | (1) |
|
Adding more filtering options for journalctl |
|
|
301 | (1) |
|
|
301 | (1) |
|
|
302 | (16) |
|
|
303 | (1) |
|
|
304 | (1) |
|
|
304 | (1) |
|
|
305 | (9) |
|
|
306 | (1) |
|
|
307 | (4) |
|
|
311 | (1) |
|
|
312 | (2) |
|
|
314 | (3) |
|
Basic rsyslog configuration |
|
|
314 | (1) |
|
|
315 | (1) |
|
|
316 | (1) |
|
|
317 | (1) |
|
Syslog configuration debugging |
|
|
318 | (1) |
|
Kernel and boot-time logging |
|
|
318 | (1) |
|
Management and rotation of log files |
|
|
319 | (2) |
|
logrotate: cross-platform log management |
|
|
319 | (2) |
|
newsyslog: log management on FreeBSD |
|
|
321 | (1) |
|
Management of logs at scale |
|
|
321 | (2) |
|
|
321 | (1) |
|
|
322 | (1) |
|
|
323 | (1) |
|
|
323 | (2) |
|
Chapter 11 Drivers and the Kernel |
|
|
325 | (35) |
|
Kernel chores for system administrators |
|
|
326 | (1) |
|
|
327 | (1) |
|
|
327 | (1) |
|
|
328 | (1) |
|
Devices and their drivers |
|
|
328 | (11) |
|
Device files and device numbers |
|
|
329 | (1) |
|
Challenges of device file management |
|
|
330 | (1) |
|
Manual creation of device files |
|
|
331 | (1) |
|
Modern device file management |
|
|
331 | (1) |
|
|
331 | (6) |
|
Sysfs: a window into the souls of devices |
|
|
332 | (1) |
|
|
333 | (1) |
|
Rules and persistent names |
|
|
334 | (3) |
|
FreeBSD device management |
|
|
337 | (2) |
|
Devfs: automatic device file configuration |
|
|
337 | (1) |
|
deed: higher-level device management |
|
|
338 | (1) |
|
Linux kernel configuration |
|
|
339 | (5) |
|
Tuning Linux kernel parameters |
|
|
339 | (2) |
|
|
341 | (3) |
|
If it ain't broke, don't fix it |
|
|
341 | (1) |
|
Setting up to build the Linux kernel |
|
|
341 | (1) |
|
Configuring kernel options |
|
|
342 | (1) |
|
Building the kernel binary |
|
|
343 | (1) |
|
Adding a Linux device driver |
|
|
344 | (1) |
|
FreeBSD kernel configuration |
|
|
344 | (2) |
|
Tuning FreeBSD kernel parameters |
|
|
344 | (1) |
|
Building a FreeBSD kernel |
|
|
345 | (1) |
|
|
346 | (2) |
|
Loadable kernel modules in Linux |
|
|
346 | (2) |
|
Loadable kernel modules in FreeBSD |
|
|
348 | (1) |
|
|
348 | (7) |
|
|
349 | (4) |
|
|
353 | (2) |
|
Booting alternate kernels in the cloud |
|
|
355 | (1) |
|
|
356 | (3) |
|
|
356 | (3) |
|
|
359 | (1) |
|
|
359 | (1) |
|
|
360 | (15) |
|
|
361 | (4) |
|
Interfaces to the printing system |
|
|
361 | (1) |
|
|
362 | (1) |
|
Multiple printers and queues |
|
|
363 | (1) |
|
|
363 | (1) |
|
|
363 | (1) |
|
|
364 | (1) |
|
CUPS server administration |
|
|
365 | (4) |
|
Network print server setup |
|
|
365 | (1) |
|
Printer autoconfiguration |
|
|
366 | (1) |
|
Network printer configuration |
|
|
367 | (1) |
|
Printer configuration examples |
|
|
367 | (1) |
|
|
368 | (1) |
|
Other configuration tasks |
|
|
368 | (1) |
|
|
369 | (2) |
|
|
369 | (1) |
|
|
369 | (1) |
|
Direct printing connections |
|
|
370 | (1) |
|
Network printing problems |
|
|
370 | (1) |
|
|
371 | (4) |
Section Two: Networking |
|
|
Chapter 13 TCP/IP Networking |
|
|
375 | (84) |
|
TCP/IP and its relationship to the Internet |
|
|
375 | (1) |
|
|
376 | (1) |
|
Network standards and documentation |
|
|
376 | (8) |
|
|
378 | (1) |
|
|
379 | (2) |
|
Packets and encapsulation |
|
|
381 | (1) |
|
|
382 | (1) |
|
|
382 | (2) |
|
|
384 | (3) |
|
Hardware (MAC) addressing |
|
|
384 | (1) |
|
|
385 | (1) |
|
|
385 | (1) |
|
|
385 | (1) |
|
|
386 | (1) |
|
IP addresses: the gory details |
|
|
387 | (11) |
|
|
387 | (1) |
|
|
388 | (2) |
|
Tricks and tools for subnet arithmetic |
|
|
390 | (1) |
|
CIDR: Classless Inter-Domain Routing |
|
|
391 | (1) |
|
|
392 | (1) |
|
Private addresses and network address translation (NAT) |
|
|
392 | (2) |
|
|
394 | (4) |
|
|
395 | (1) |
|
|
396 | (1) |
|
|
397 | (1) |
|
Stateless address autoconfiguration |
|
|
397 | (1) |
|
|
398 | (1) |
|
|
398 | (1) |
|
|
398 | (3) |
|
|
399 | (2) |
|
|
401 | (1) |
|
IPv4 ARP and IPv6 neighbor discovery |
|
|
401 | (1) |
|
DHCP: the Dynamic Host Configuration Protocol |
|
|
402 | (4) |
|
|
403 | (1) |
|
|
404 | (1) |
|
|
404 | (2) |
|
|
406 | (4) |
|
|
406 | (1) |
|
|
407 | (1) |
|
|
407 | (1) |
|
Broadcast pings and other directed broadcasts |
|
|
407 | (1) |
|
|
408 | (1) |
|
|
408 | (1) |
|
|
409 | (1) |
|
Basic network configuration |
|
|
410 | (7) |
|
Hostname and IP address assignment |
|
|
411 | (1) |
|
Network interface and IP configuration |
|
|
412 | (2) |
|
|
414 | (1) |
|
|
415 | (1) |
|
System-specific network configuration |
|
|
416 | (1) |
|
|
417 | (8) |
|
|
417 | (1) |
|
ip: manually configure a network |
|
|
418 | (1) |
|
Debian and Ubuntu network configuration |
|
|
419 | (1) |
|
Red Hat and CentOS network configuration |
|
|
419 | (2) |
|
Linux network hardware options |
|
|
421 | (1) |
|
|
422 | (2) |
|
Security-related kernel variables |
|
|
424 | (1) |
|
|
425 | (3) |
|
ifconfig: configure network interfaces |
|
|
425 | (1) |
|
FreeBSD network hardware configuration |
|
|
426 | (1) |
|
FreeBSD boot-time network configuration |
|
|
426 | (1) |
|
FreeBSD TCP/IP configuration |
|
|
427 | (1) |
|
|
428 | (9) |
|
ping: check to see if a host is alive |
|
|
429 | (2) |
|
traceroute: trace IP packets |
|
|
431 | (3) |
|
|
434 | (3) |
|
tcpdump: command-line packet sniffer |
|
|
435 | (1) |
|
Wireshark and TShark: tcpdump on steroids |
|
|
436 | (1) |
|
|
437 | (3) |
|
SmokePing: gather ping statistics over time |
|
|
437 | (1) |
|
iPerf: track network performance |
|
|
437 | (1) |
|
Cacti: collect and graph data |
|
|
438 | (2) |
|
|
440 | (8) |
|
Linux iptables: rules, chains, and tables |
|
|
440 | (5) |
|
|
441 | (1) |
|
|
442 | (1) |
|
|
442 | (2) |
|
Linux NAT and packet filtering |
|
|
444 | (1) |
|
IPFilter for UNIX systems |
|
|
445 | (3) |
|
|
448 | (9) |
|
AWS's virtual private cloud (VPC) |
|
|
448 | (7) |
|
Subnets and routing tables |
|
|
449 | (1) |
|
Security groups and NACLs |
|
|
450 | (1) |
|
A sample VPC architecture |
|
|
451 | (1) |
|
Creating a VPC with Terraform |
|
|
452 | (3) |
|
Google Cloud Platform networking |
|
|
455 | (1) |
|
|
456 | (1) |
|
|
457 | (2) |
|
|
457 | (1) |
|
|
458 | (1) |
|
|
458 | (1) |
|
Chapter 14 Physical Networking |
|
|
459 | (22) |
|
Ethernet: the Swiss Army knife of networking |
|
|
460 | (9) |
|
|
460 | (1) |
|
|
461 | (1) |
|
Unshielded twisted-pair cabling |
|
|
462 | (2) |
|
|
464 | (1) |
|
Ethernet connection and expansion |
|
|
465 | (2) |
|
|
465 | (1) |
|
|
465 | (1) |
|
|
466 | (1) |
|
|
467 | (1) |
|
|
467 | (1) |
|
|
468 | (1) |
|
|
468 | (1) |
|
Wireless: Ethernet for nomads |
|
|
469 | (4) |
|
|
469 | (1) |
|
|
470 | (1) |
|
Wireless infrastructure and WAPs |
|
|
470 | (3) |
|
|
471 | (1) |
|
|
472 | (1) |
|
|
472 | (1) |
|
|
473 | (1) |
|
SDN: software-defined networking |
|
|
473 | (1) |
|
Network testing and debugging |
|
|
474 | (1) |
|
|
475 | (1) |
|
|
475 | (1) |
|
|
475 | (1) |
|
|
475 | (1) |
|
|
476 | (2) |
|
Network architecture vs. building architecture |
|
|
477 | (1) |
|
|
477 | (1) |
|
|
478 | (1) |
|
Maintenance and documentation |
|
|
478 | (1) |
|
|
478 | (1) |
|
|
479 | (1) |
|
|
479 | (1) |
|
|
480 | (1) |
|
|
480 | (1) |
|
|
480 | (1) |
|
|
481 | (17) |
|
Packet forwarding: a closer look |
|
|
482 | (3) |
|
Routing daemons and routing protocols |
|
|
485 | (3) |
|
Distance-vector protocols |
|
|
486 | (1) |
|
|
487 | (1) |
|
|
487 | (1) |
|
Interior and exterior protocols |
|
|
488 | (1) |
|
|
488 | (2) |
|
RIP and RIPng: Routing Information Protocol |
|
|
488 | (1) |
|
OSPF: Open Shortest Path First |
|
|
489 | (1) |
|
EIGRP: Enhanced Interior Gateway Routing Protocol |
|
|
490 | (1) |
|
BGP: Border Gateway Protocol |
|
|
490 | (1) |
|
Routing protocol multicast coordination |
|
|
490 | (1) |
|
Routing strategy selection criteria |
|
|
490 | (2) |
|
|
492 | (2) |
|
routed: obsolete RIP implementation |
|
|
492 | (1) |
|
Quagga: mainstream routing daemon |
|
|
493 | (1) |
|
|
494 | (1) |
|
|
494 | (2) |
|
|
496 | (2) |
|
Chapter 16 DNS: The Domain Name System |
|
|
498 | (80) |
|
|
499 | (1) |
|
|
499 | (1) |
|
|
500 | (1) |
|
|
500 | (2) |
|
resolv.conf: client resolver configuration |
|
|
500 | (1) |
|
nsswitch.conf: who do I ask for a name? |
|
|
501 | (1) |
|
|
502 | (1) |
|
Registering a domain name |
|
|
503 | (1) |
|
Creating your own subdomains |
|
|
503 | (1) |
|
|
503 | (9) |
|
|
504 | (1) |
|
Authoritative and caching-only servers |
|
|
505 | (1) |
|
Recursive and nonrecursive servers |
|
|
505 | (1) |
|
|
506 | (1) |
|
|
506 | (2) |
|
|
508 | (1) |
|
Multiple answers and round robin DNS load balancing |
|
|
508 | (1) |
|
Debugging with query tools |
|
|
509 | (3) |
|
|
512 | (13) |
|
Parser commands in zone files |
|
|
512 | (1) |
|
|
513 | (3) |
|
|
516 | (2) |
|
|
518 | (1) |
|
|
519 | (1) |
|
|
519 | (1) |
|
|
520 | (1) |
|
|
521 | (1) |
|
|
522 | (1) |
|
|
523 | (1) |
|
|
524 | (1) |
|
SPF, DKIM, and DMARC records |
|
|
525 | (1) |
|
|
525 | (1) |
|
|
525 | (16) |
|
|
525 | (1) |
|
|
526 | (1) |
|
|
527 | (1) |
|
|
528 | (6) |
|
|
534 | (1) |
|
|
534 | (1) |
|
|
535 | (1) |
|
|
535 | (1) |
|
|
536 | (1) |
|
The statistics-channels statement |
|
|
536 | (1) |
|
|
536 | (4) |
|
Configuring the master server for a zone |
|
|
537 | (1) |
|
Configuring a slave server for a zone |
|
|
538 | (1) |
|
Setting up the root server hints |
|
|
539 | (1) |
|
Setting up a forwarding zone |
|
|
539 | (1) |
|
The controls statement for rndc |
|
|
540 | (1) |
|
Split DNS and the view statement |
|
|
541 | (2) |
|
BIND configuration examples |
|
|
543 | (4) |
|
|
543 | (1) |
|
|
544 | (3) |
|
|
547 | (4) |
|
|
548 | (1) |
|
|
549 | (2) |
|
|
551 | (17) |
|
Access control lists in BIND, revisited |
|
|
552 | (1) |
|
|
553 | (1) |
|
Running in a chrooted jail |
|
|
554 | (1) |
|
Secure server-to-server communication with TSIG and TKEY |
|
|
554 | (1) |
|
|
555 | (2) |
|
|
557 | (1) |
|
|
558 | (1) |
|
|
558 | (2) |
|
|
560 | (1) |
|
|
560 | (2) |
|
|
562 | (2) |
|
The DNSSEC chain of trust |
|
|
564 | (1) |
|
|
565 | (1) |
|
|
566 | (1) |
|
ldns tools, nlnetlabs.nl/projects/ldns |
|
|
566 | (1) |
|
|
566 | (1) |
|
|
567 | (1) |
|
OpenDNSSEC, opendnssec.org |
|
|
567 | (1) |
|
|
567 | (1) |
|
|
568 | (8) |
|
|
568 | (6) |
|
|
569 | (1) |
|
|
570 | (1) |
|
|
570 | (3) |
|
Sample BIND logging configuration |
|
|
573 | (1) |
|
|
573 | (1) |
|
Name server control with rndc |
|
|
574 | (1) |
|
Command-line querying for lame delegations |
|
|
575 | (1) |
|
|
576 | (2) |
|
Books and other documentation |
|
|
577 | (1) |
|
|
577 | (1) |
|
|
577 | (1) |
|
Chapter 17 Single Sign-On |
|
|
578 | (18) |
|
|
579 | (1) |
|
LDAP: "lightweight" directory services |
|
|
580 | (6) |
|
|
580 | (1) |
|
The structure of LDAP data |
|
|
581 | (1) |
|
OpenLDAP: the traditional open source LDAP server |
|
|
582 | (1) |
|
389 Directory Server: alternative open source LDAP server |
|
|
583 | (1) |
|
|
584 | (1) |
|
Conversion of passwd and group files to LDAP |
|
|
585 | (1) |
|
Using directory services for login |
|
|
586 | (8) |
|
|
586 | (3) |
|
Linux Kerberos configuration for AD integration |
|
|
587 | (1) |
|
FreeBSD Kerberos configuration for AD integration |
|
|
587 | (2) |
|
sssd: the System Security Services Daemon |
|
|
589 | (1) |
|
nsswitch.conf: the name service switch |
|
|
590 | (1) |
|
PAM: cooking spray or authentication wonder? |
|
|
590 | (4) |
|
|
591 | (1) |
|
|
592 | (2) |
|
|
594 | (1) |
|
NIS: the Network Information Service |
|
|
594 | (1) |
|
rsync: transfer files securely |
|
|
594 | (1) |
|
|
595 | (1) |
|
Chapter 18 Electronic Mail |
|
|
596 | (78) |
|
|
597 | (3) |
|
|
597 | (1) |
|
|
598 | (1) |
|
|
598 | (1) |
|
|
599 | (1) |
|
|
599 | (1) |
|
|
599 | (1) |
|
Anatomy of a mail message |
|
|
600 | (3) |
|
|
603 | (2) |
|
|
604 | (1) |
|
|
604 | (1) |
|
|
604 | (1) |
|
|
605 | (2) |
|
|
606 | (1) |
|
|
606 | (1) |
|
|
607 | (1) |
|
Message privacy and encryption |
|
|
607 | (1) |
|
|
608 | (4) |
|
Getting aliases from files |
|
|
610 | (1) |
|
|
611 | (1) |
|
|
611 | (1) |
|
Building the hashed alias database |
|
|
612 | (1) |
|
|
612 | (1) |
|
|
613 | (27) |
|
|
614 | (1) |
|
|
615 | (1) |
|
|
616 | (1) |
|
|
617 | (1) |
|
|
617 | (1) |
|
The sendmail configuration pieces |
|
|
618 | (1) |
|
A configuration file built from a sample.mc file |
|
|
619 | (1) |
|
|
620 | (1) |
|
|
620 | (1) |
|
Generic macros and features |
|
|
621 | (5) |
|
|
621 | (1) |
|
|
621 | (1) |
|
|
622 | (1) |
|
|
622 | (1) |
|
|
622 | (1) |
|
|
623 | (1) |
|
always_add_domain feature |
|
|
623 | (1) |
|
|
623 | (1) |
|
|
624 | (1) |
|
|
624 | (1) |
|
|
625 | (1) |
|
MAIL_HUB and SMART_HOST macros |
|
|
626 | (1) |
|
|
626 | (1) |
|
|
627 | (1) |
|
Spam-related features in sendmail |
|
|
628 | (4) |
|
|
629 | (1) |
|
User or site blacklisting |
|
|
630 | (1) |
|
Throttles, rates, and connection limits |
|
|
631 | (1) |
|
|
632 | (6) |
|
|
633 | (1) |
|
|
634 | (1) |
|
Safer mail to files and programs |
|
|
634 | (1) |
|
|
635 | (1) |
|
Running a chrooted sendmail (for the truly paranoid) |
|
|
636 | (1) |
|
Denial of service attacks |
|
|
636 | (1) |
|
TLS: Transport Layer Security |
|
|
637 | (1) |
|
sendmail testing and debugging |
|
|
638 | (2) |
|
|
638 | (1) |
|
|
639 | (1) |
|
|
640 | (18) |
|
|
640 | (2) |
|
|
642 | (1) |
|
|
642 | (1) |
|
Exim configuration language |
|
|
643 | (1) |
|
|
644 | (1) |
|
|
645 | (2) |
|
|
645 | (1) |
|
|
646 | (1) |
|
|
647 | (1) |
|
Access control lists (ACLs) |
|
|
647 | (3) |
|
Content scanning at ACL time |
|
|
650 | (1) |
|
|
651 | (1) |
|
|
652 | (3) |
|
|
653 | (1) |
|
|
653 | (1) |
|
|
653 | (1) |
|
|
654 | (1) |
|
Per-user filtering through .forward files |
|
|
655 | (1) |
|
|
655 | (1) |
|
|
655 | (1) |
|
|
656 | (1) |
|
|
656 | (1) |
|
|
657 | (1) |
|
|
657 | (1) |
|
|
657 | (1) |
|
|
658 | (1) |
|
|
658 | (14) |
|
|
659 | (2) |
|
|
659 | (1) |
|
Managing mail-waiting queues |
|
|
660 | (1) |
|
|
660 | (1) |
|
|
661 | (1) |
|
Postfix commands and documentation |
|
|
661 | (1) |
|
|
661 | (4) |
|
|
662 | (1) |
|
|
662 | (1) |
|
|
662 | (1) |
|
|
663 | (1) |
|
|
663 | (1) |
|
|
664 | (1) |
|
|
665 | (2) |
|
|
666 | (1) |
|
|
667 | (1) |
|
|
667 | (3) |
|
|
669 | (1) |
|
Authentication of clients and encryption |
|
|
670 | (1) |
|
|
670 | (2) |
|
|
671 | (1) |
|
|
671 | (1) |
|
|
672 | (2) |
|
|
672 | (1) |
|
|
672 | (1) |
|
|
672 | (1) |
|
|
673 | (1) |
|
|
674 | (43) |
|
HTTP: the Hypertext Transfer Protocol |
|
|
674 | (8) |
|
Uniform Resource Locators (URLs) |
|
|
675 | (1) |
|
Structure of an HTTP transaction |
|
|
676 | (3) |
|
|
677 | (1) |
|
|
677 | (1) |
|
Headers and the message body |
|
|
678 | (1) |
|
curl: HTTP from the command line |
|
|
679 | (1) |
|
|
680 | (1) |
|
|
681 | (1) |
|
|
681 | (1) |
|
|
682 | (12) |
|
Web servers and HTTP proxy software |
|
|
683 | (1) |
|
|
684 | (2) |
|
|
686 | (3) |
|
|
687 | (1) |
|
|
688 | (1) |
|
|
688 | (1) |
|
|
688 | (1) |
|
|
689 | (1) |
|
Content delivery networks |
|
|
689 | (2) |
|
|
691 | (1) |
|
|
691 | (1) |
|
|
691 | (1) |
|
|
691 | (1) |
|
|
691 | (1) |
|
|
692 | (1) |
|
|
692 | (1) |
|
Application programming interfaces (APIs) |
|
|
692 | (2) |
|
|
694 | (2) |
|
|
694 | (1) |
|
|
695 | (1) |
|
|
695 | (1) |
|
Serverless web applications |
|
|
696 | (1) |
|
|
696 | (8) |
|
|
697 | (1) |
|
httpd configuration logistics |
|
|
698 | (1) |
|
Virtual host configuration |
|
|
699 | (4) |
|
HTTP basic authentication |
|
|
701 | (1) |
|
|
702 | (1) |
|
Running web applications within Apache |
|
|
702 | (1) |
|
|
703 | (1) |
|
|
704 | (6) |
|
Installing and running NGINX |
|
|
704 | (1) |
|
|
705 | (3) |
|
Configuring TLS for NGINX |
|
|
708 | (1) |
|
Load balancing with NGINX |
|
|
708 | (2) |
|
|
710 | (4) |
|
|
711 | (1) |
|
|
712 | (1) |
|
|
712 | (1) |
|
|
713 | (1) |
|
|
714 | (3) |
Section Three: Storage |
|
|
|
717 | (74) |
|
I just want to add a disk! |
|
|
718 | (3) |
|
|
719 | (1) |
|
|
720 | (1) |
|
|
721 | (9) |
|
|
722 | (3) |
|
|
723 | (1) |
|
Failure modes and metrics |
|
|
723 | (1) |
|
|
724 | (1) |
|
Warranties and retirement |
|
|
725 | (1) |
|
|
725 | (3) |
|
|
726 | (1) |
|
Flash memory and controller types |
|
|
726 | (1) |
|
Page clusters and pre-erasing |
|
|
727 | (1) |
|
|
727 | (1) |
|
|
728 | (1) |
|
Advanced Format and 4KiB blocks |
|
|
729 | (1) |
|
Storage hardware interfaces |
|
|
730 | (3) |
|
|
730 | (1) |
|
The PCI Express interface |
|
|
730 | (1) |
|
|
731 | (1) |
|
|
732 | (1) |
|
Attachment and low-level management of drives |
|
|
733 | (6) |
|
Installation verification at the hardware level |
|
|
733 | (1) |
|
|
734 | (1) |
|
|
735 | (1) |
|
Formatting and bad block management |
|
|
735 | (2) |
|
|
737 | (1) |
|
hdparm and camcontrol: set disk and interface parameters |
|
|
738 | (1) |
|
Hard disk monitoring with SMART |
|
|
738 | (1) |
|
The software side of storage: peeling the onion |
|
|
739 | (3) |
|
Elements of a storage system |
|
|
740 | (2) |
|
|
742 | (1) |
|
|
742 | (5) |
|
|
744 | (1) |
|
|
745 | (1) |
|
GPT: GUID partition tables |
|
|
746 | (1) |
|
|
746 | (1) |
|
|
747 | (1) |
|
Logical volume management |
|
|
747 | (6) |
|
Linux logical volume management |
|
|
748 | (5) |
|
|
750 | (1) |
|
|
751 | (2) |
|
FreeBSD logical volume management |
|
|
753 | (1) |
|
RAID: redundant arrays of inexpensive disks |
|
|
753 | (9) |
|
Software vs. hardware RAID |
|
|
753 | (1) |
|
|
754 | (2) |
|
|
756 | (1) |
|
|
757 | (1) |
|
mdadm: Linux software RAID |
|
|
758 | (5) |
|
|
758 | (2) |
|
mdadm.conf: document array configuration |
|
|
760 | (1) |
|
|
761 | (1) |
|
|
762 | (1) |
|
Traditional filesystems: UFS, ext4, and XFS |
|
|
763 | (9) |
|
|
764 | (1) |
|
|
765 | (1) |
|
|
766 | (1) |
|
fsck: check and repair filesystems |
|
|
766 | (1) |
|
|
767 | (1) |
|
Setup for automatic mounting |
|
|
768 | (2) |
|
|
770 | (1) |
|
|
770 | (2) |
|
Next-generation filesystems: ZFS and Btrfs |
|
|
772 | (1) |
|
|
772 | (1) |
|
|
772 | (1) |
|
|
773 | (1) |
|
ZFS: all your storage problems solved |
|
|
773 | (10) |
|
|
774 | (1) |
|
|
774 | (1) |
|
|
775 | (1) |
|
Filesystems and properties |
|
|
776 | (1) |
|
|
777 | (1) |
|
|
778 | (1) |
|
|
779 | (1) |
|
|
780 | (1) |
|
|
781 | (2) |
|
Btrfs: "ZFS lite" for Linux |
|
|
783 | (5) |
|
|
783 | (1) |
|
Setup and storage conversion |
|
|
784 | (2) |
|
|
786 | (1) |
|
|
787 | (1) |
|
|
788 | (1) |
|
|
788 | (2) |
|
|
790 | (1) |
|
Chapter 21 The Network File System |
|
|
791 | (28) |
|
Meet network file services |
|
|
791 | (3) |
|
|
792 | (1) |
|
|
792 | (1) |
|
|
793 | (1) |
|
|
793 | (1) |
|
|
794 | (7) |
|
Protocol versions and history |
|
|
794 | (1) |
|
|
795 | (1) |
|
|
795 | (1) |
|
|
796 | (1) |
|
|
796 | (1) |
|
|
797 | (1) |
|
|
798 | (1) |
|
Identity mapping in version 4 |
|
|
799 | (1) |
|
Root access and the nobody account |
|
|
800 | (1) |
|
Performance considerations in version 4 |
|
|
801 | (1) |
|
|
801 | (6) |
|
|
802 | (2) |
|
|
804 | (2) |
|
|
806 | (1) |
|
|
807 | (3) |
|
Mounting remote filesystems at boot time |
|
|
810 | (1) |
|
Restricting exports to privileged ports |
|
|
810 | (1) |
|
Identity mapping for NFS version 4 |
|
|
810 | (1) |
|
nfsstat: dump NFS statistics |
|
|
811 | (1) |
|
Dedicated NFS file servers |
|
|
812 | (1) |
|
|
812 | (6) |
|
|
814 | (1) |
|
|
814 | (1) |
|
|
815 | (1) |
|
|
815 | (1) |
|
|
816 | (1) |
|
Replicated filesystems and automount |
|
|
816 | (1) |
|
Automatic automounts (V3; all but Linux) |
|
|
817 | (1) |
|
|
817 | (1) |
|
|
818 | (1) |
|
|
819 | (14) |
|
Samba: SMB server for UNIX |
|
|
820 | (1) |
|
Installing and configuring Samba |
|
|
821 | (4) |
|
File sharing with local authentication |
|
|
822 | (1) |
|
File sharing with accounts authenticated by Active Directory |
|
|
822 | (1) |
|
|
823 | (4) |
|
|
823 | (1) |
|
Sharing project directories |
|
|
824 | (1) |
|
|
825 | (1) |
|
|
826 | (1) |
|
|
826 | (1) |
|
|
827 | (2) |
|
Querying Samba's state with smbstatus |
|
|
827 | (1) |
|
Configuring Samba logging |
|
|
828 | (1) |
|
|
829 | (1) |
|
|
829 | (4) |
Section Four: Operations |
|
|
Chapter 23 Configuration Management |
|
|
833 | (67) |
|
Configuration management in a nutshell |
|
|
834 | (1) |
|
Dangers of configuration management |
|
|
834 | (1) |
|
Elements of configuration management |
|
|
835 | (6) |
|
Operations and parameters |
|
|
835 | (2) |
|
|
837 | (1) |
|
|
838 | (1) |
|
|
838 | (1) |
|
|
838 | (1) |
|
Bundles and bundle repositories |
|
|
839 | (1) |
|
|
839 | (1) |
|
Client inventory and registration |
|
|
840 | (1) |
|
Popular CM systems compared |
|
|
841 | (11) |
|
|
842 | (1) |
|
|
842 | (1) |
|
|
843 | (2) |
|
|
845 | (1) |
|
Dependency management options |
|
|
846 | (2) |
|
|
848 | (1) |
|
General comments on Puppet |
|
|
849 | (1) |
|
General comments on Ansible and Salt |
|
|
850 | (1) |
|
|
850 | (2) |
|
|
852 | (19) |
|
|
853 | (2) |
|
|
855 | (2) |
|
|
857 | (1) |
|
|
858 | (1) |
|
Dynamic and computed client groups |
|
|
859 | (1) |
|
|
860 | (2) |
|
|
862 | (1) |
|
|
862 | (1) |
|
|
863 | (1) |
|
|
863 | (1) |
|
Bindings: plays and playbooks |
|
|
864 | (2) |
|
|
866 | (2) |
|
Recommendations for structuring the configuration base |
|
|
868 | (1) |
|
|
869 | (2) |
|
|
871 | (22) |
|
|
873 | (1) |
|
Variable value binding for minions |
|
|
874 | (2) |
|
|
876 | (1) |
|
|
877 | (1) |
|
|
878 | (2) |
|
State IDs and dependencies |
|
|
880 | (2) |
|
State and execution functions |
|
|
882 | (1) |
|
|
883 | (3) |
|
|
886 | (1) |
|
|
886 | (1) |
|
|
887 | (1) |
|
|
888 | (4) |
|
|
892 | (1) |
|
Ansible and Salt compared |
|
|
893 | (2) |
|
Deployment flexibility and scalability |
|
|
893 | (1) |
|
Built-in modules and extensibility |
|
|
894 | (1) |
|
|
894 | (1) |
|
|
895 | (1) |
|
|
895 | (4) |
|
|
899 | (1) |
|
Chapter 24 Virtualization |
|
|
900 | (15) |
|
|
901 | (4) |
|
|
901 | (3) |
|
|
901 | (1) |
|
|
902 | (1) |
|
Hardware-assisted virtualization |
|
|
902 | (1) |
|
|
902 | (1) |
|
|
903 | (1) |
|
Type 1 vs. type 2 hypervisors |
|
|
903 | (1) |
|
|
904 | (1) |
|
|
904 | (1) |
|
|
904 | (1) |
|
Virtualization with Linux |
|
|
905 | (5) |
|
|
906 | (1) |
|
|
907 | (1) |
|
|
908 | (1) |
|
|
909 | (1) |
|
|
910 | (1) |
|
|
910 | (1) |
|
|
911 | (1) |
|
|
911 | (2) |
|
|
913 | (1) |
|
|
914 | (1) |
|
|
915 | (34) |
|
Background and core concepts |
|
|
916 | (3) |
|
|
917 | (1) |
|
|
917 | (1) |
|
|
918 | (1) |
|
Docker: the open source container engine |
|
|
919 | (18) |
|
|
919 | (2) |
|
|
921 | (1) |
|
|
921 | (1) |
|
|
922 | (4) |
|
|
926 | (1) |
|
|
927 | (1) |
|
|
927 | (3) |
|
Namespaces and the bridge network |
|
|
928 | (2) |
|
|
930 | (1) |
|
|
930 | (1) |
|
|
930 | (2) |
|
|
932 | (4) |
|
|
933 | (1) |
|
Building from a Dockerfile |
|
|
933 | (1) |
|
Composing a derived Dockerfile |
|
|
934 | (2) |
|
|
936 | (1) |
|
|
937 | (5) |
|
|
938 | (1) |
|
|
939 | (3) |
|
Restrict access to the daemon |
|
|
939 | (1) |
|
|
940 | (1) |
|
Run processes as unprivileged users |
|
|
940 | (1) |
|
Use a read-only root filesystem |
|
|
941 | (1) |
|
|
941 | (1) |
|
|
941 | (1) |
|
Debugging and troubleshooting |
|
|
942 | (1) |
|
Container clustering and management |
|
|
942 | (6) |
|
A synopsis of container management software |
|
|
944 | (1) |
|
|
944 | (2) |
|
|
946 | (1) |
|
|
947 | (1) |
|
AWS EC2 Container Service |
|
|
947 | (1) |
|
|
948 | (1) |
|
Chapter 26 Continuous Integration and Delivery |
|
|
949 | (32) |
|
|
951 | (4) |
|
|
951 | (2) |
|
|
952 | (1) |
|
|
952 | (1) |
|
|
952 | (1) |
|
Build every integration commit |
|
|
952 | (1) |
|
|
953 | (1) |
|
|
953 | (1) |
|
|
953 | (1) |
|
|
953 | (2) |
|
|
955 | (1) |
|
|
955 | (6) |
|
|
956 | (1) |
|
|
957 | (2) |
|
|
959 | (1) |
|
Zero-downtime deployment techniques |
|
|
960 | (1) |
|
Jenkins: the open source automation server |
|
|
961 | (3) |
|
|
962 | (1) |
|
|
963 | (1) |
|
|
963 | (1) |
|
|
964 | (14) |
|
UlsahGo, a trivial web application |
|
|
966 | (1) |
|
|
966 | (2) |
|
Taking first steps with the Jenkins Pipeline |
|
|
968 | (2) |
|
Building a DigitalOcean image |
|
|
970 | (2) |
|
Provisioning a single system for testing |
|
|
972 | (3) |
|
|
975 | (1) |
|
Deploying UlsahGo to a pair of droplets and a load balancer |
|
|
976 | (1) |
|
Concluding the demonstration pipeline |
|
|
977 | (1) |
|
|
978 | (2) |
|
Containers as a build environment |
|
|
979 | (1) |
|
Container images as build artifacts |
|
|
979 | (1) |
|
|
980 | (1) |
|
|
981 | (59) |
|
|
983 | (1) |
|
How security is compromised |
|
|
983 | (4) |
|
|
983 | (1) |
|
|
984 | (1) |
|
Distributed denial-of-service attacks (DDoS) |
|
|
985 | (1) |
|
|
986 | (1) |
|
Network, system, or application configuration errors |
|
|
986 | (1) |
|
|
987 | (5) |
|
|
987 | (1) |
|
|
988 | (1) |
|
|
989 | (1) |
|
|
989 | (1) |
|
|
989 | (1) |
|
|
990 | (1) |
|
|
991 | (1) |
|
Passwords and multifactor authentication |
|
|
991 | (1) |
|
|
991 | (1) |
|
Application penetration testing |
|
|
992 | (1) |
|
Passwords and user accounts |
|
|
992 | (4) |
|
|
993 | (1) |
|
Password vaults and password escrow |
|
|
993 | (2) |
|
|
995 | (1) |
|
Group logins and shared logins |
|
|
996 | (1) |
|
|
996 | (1) |
|
|
996 | (1) |
|
|
996 | (9) |
|
Nmap: network port scanner |
|
|
996 | (2) |
|
Nessus: next-generation network scanner |
|
|
998 | (1) |
|
Metasploit: penetration testing software |
|
|
999 | (1) |
|
Lynis: on-box security auditing |
|
|
999 | (1) |
|
John the Ripper: finder of insecure passwords |
|
|
1000 | (1) |
|
Bro: the programmable network intrusion detection system |
|
|
1000 | (1) |
|
Snort: the popular network intrusion detection system |
|
|
1001 | (3) |
|
OSSEC: host-based intrusion detection |
|
|
1002 | (1) |
|
|
1002 | (1) |
|
|
1003 | (1) |
|
|
1004 | (1) |
|
Fail2Ban: brute-force attack response system |
|
|
1004 | (1) |
|
|
1005 | (11) |
|
Symmetric key cryptography |
|
|
1005 | (1) |
|
|
1006 | (1) |
|
Public-key infrastructure |
|
|
1007 | (2) |
|
|
1009 | (1) |
|
Cryptographic hash functions |
|
|
1009 | (2) |
|
|
1011 | (1) |
|
Cryptographic software selection |
|
|
1012 | (1) |
|
|
1012 | (2) |
|
Preparing keys and certificates |
|
|
1013 | (1) |
|
|
1014 | (1) |
|
|
1014 | (1) |
|
Kerberos: a unified approach to network security |
|
|
1015 | (1) |
|
|
1016 | (11) |
|
|
1016 | (2) |
|
|
1018 | (1) |
|
Public key authentication |
|
|
1019 | (1) |
|
|
1020 | (2) |
|
Host aliases in -/.ssh/config |
|
|
1022 | (1) |
|
|
1023 | (1) |
|
|
1023 | (1) |
|
|
1024 | (2) |
|
Host key verification with SSHFP |
|
|
1026 | (1) |
|
|
1027 | (1) |
|
Alternatives for secure logins |
|
|
1027 | (1) |
|
|
1027 | (3) |
|
Packet-filtering firewalls |
|
|
1028 | (1) |
|
|
1028 | (1) |
|
Stateful inspection firewalls |
|
|
1029 | (1) |
|
|
1029 | (1) |
|
Virtual private networks (VPNs) |
|
|
1030 | (1) |
|
|
1030 | (1) |
|
All I need is a VPN, right? |
|
|
1031 | (1) |
|
Certifications and standards |
|
|
1031 | (3) |
|
|
1031 | (1) |
|
|
1032 | (2) |
|
|
1032 | (1) |
|
|
1033 | (1) |
|
|
1033 | (1) |
|
|
1034 | (1) |
|
OWASP: the Open Web Application Security Project |
|
|
1034 | (1) |
|
CIS: the Center for Internet Security |
|
|
1034 | (1) |
|
Sources of security information |
|
|
1034 | (3) |
|
SecurityFocus.com, the BugTraq mailing list, and the OSS mailing list. |
|
|
1035 | (1) |
|
|
1035 | (1) |
|
The Verizon Data Breach Investigations Report |
|
|
1035 | (1) |
|
|
1035 | (1) |
|
Distribution-specific security resources |
|
|
1036 | (1) |
|
Other mailing lists and web sites |
|
|
1036 | (1) |
|
When your site has been attacked |
|
|
1037 | (1) |
|
|
1038 | (2) |
|
|
1040 | (30) |
|
An overview of monitoring |
|
|
1041 | (3) |
|
|
1042 | (1) |
|
|
1042 | (1) |
|
|
1043 | (1) |
|
|
1043 | (1) |
|
|
1044 | (1) |
|
|
1044 | (1) |
|
|
1045 | (6) |
|
Open source real-time platforms |
|
|
1046 | (1) |
|
|
1046 | (1) |
|
|
1047 | (1) |
|
Open source time-series platforms |
|
|
1047 | (2) |
|
|
1047 | (1) |
|
|
1048 | (1) |
|
|
1049 | (1) |
|
|
1049 | (1) |
|
Open source charting platforms |
|
|
1049 | (1) |
|
Commercial monitoring platforms |
|
|
1050 | (1) |
|
Hosted monitoring platforms |
|
|
1051 | (1) |
|
|
1051 | (4) |
|
StatsD: generic data submission protocol |
|
|
1052 | (2) |
|
Data harvesting from command output |
|
|
1054 | (1) |
|
|
1055 | (1) |
|
|
1056 | (3) |
|
Commands for systems monitoring |
|
|
1057 | (1) |
|
collectd: generalized system data harvester |
|
|
1057 | (1) |
|
sysdig and dtrace: execution tracers |
|
|
1058 | (1) |
|
|
1059 | (2) |
|
|
1059 | (1) |
|
Supervisor + Munin: a simple option for limited domains |
|
|
1060 | (1) |
|
Commercial application monitoring tools |
|
|
1060 | (1) |
|
|
1061 | (2) |
|
System integrity verification |
|
|
1061 | (1) |
|
Intrusion detection monitoring |
|
|
1062 | (1) |
|
SNMP: the Simple Network Management Protocol |
|
|
1063 | (5) |
|
|
1064 | (1) |
|
|
1065 | (1) |
|
Net-SNMP: tools for servers |
|
|
1065 | (3) |
|
Tips and tricks for monitoring |
|
|
1068 | (1) |
|
|
1069 | (1) |
|
Chapter 29 Performance Analysis |
|
|
1070 | (21) |
|
Performance tuning philosophy |
|
|
1071 | (2) |
|
Ways to improve performance |
|
|
1073 | (1) |
|
Factors that affect performance |
|
|
1074 | (1) |
|
|
1075 | (1) |
|
Analysis of performance problems |
|
|
1076 | (1) |
|
System performance checkup |
|
|
1077 | (11) |
|
Taking stock of your equipment |
|
|
1077 | (2) |
|
Gathering performance data |
|
|
1079 | (1) |
|
|
1079 | (2) |
|
Understanding how the system manages memory |
|
|
1081 | (1) |
|
|
1082 | (2) |
|
|
1084 | (1) |
|
fio: testing storage subsystem performance |
|
|
1085 | (1) |
|
sar: collecting and reporting statistics over time |
|
|
1086 | (1) |
|
Choosing a Linux I/O scheduler |
|
|
1086 | (1) |
|
perf: profiling Linux systems in detail |
|
|
1087 | (1) |
|
Help! My server just got really slow! |
|
|
1088 | (2) |
|
|
1090 | (1) |
|
Chapter 30 Data Center Basics |
|
|
1091 | (14) |
|
|
1092 | (1) |
|
|
1092 | (4) |
|
|
1093 | (1) |
|
|
1094 | (1) |
|
|
1095 | (1) |
|
|
1095 | (1) |
|
|
1096 | (1) |
|
|
1096 | (1) |
|
|
1096 | (5) |
|
|
1097 | (1) |
|
|
1097 | (1) |
|
|
1097 | (1) |
|
|
1098 | (1) |
|
|
1098 | (1) |
|
|
1098 | (1) |
|
Hot aisles and cold aisles |
|
|
1098 | (2) |
|
|
1100 | (1) |
|
|
1100 | (1) |
|
Data center reliability tiers |
|
|
1101 | (1) |
|
|
1102 | (1) |
|
|
1102 | (1) |
|
|
1102 | (1) |
|
|
1102 | (1) |
|
|
1103 | (1) |
|
|
1103 | (1) |
|
|
1104 | (1) |
|
Chapter 31 Methodology, Policy, and Politics |
|
|
1105 | (31) |
|
The grand unified theory: DevOps |
|
|
1106 | (5) |
|
|
1107 | (3) |
|
|
1107 | (1) |
|
|
1108 | (1) |
|
|
1109 | (1) |
|
|
1110 | (1) |
|
|
1110 | (1) |
|
System administration in a DevOps world |
|
|
1110 | (1) |
|
Ticketing and task management systems |
|
|
1111 | (4) |
|
Common functions of ticketing systems |
|
|
1112 | (1) |
|
|
1112 | (1) |
|
User acceptance of ticketing systems |
|
|
1113 | (1) |
|
|
1114 | (1) |
|
|
1114 | (1) |
|
Local documentation maintenance |
|
|
1115 | (3) |
|
|
1116 | (1) |
|
|
1116 | (2) |
|
|
1118 | (1) |
|
|
1119 | (3) |
|
|
1119 | (1) |
|
|
1120 | (1) |
|
|
1121 | (1) |
|
|
1122 | (1) |
|
IT policies and procedures |
|
|
1122 | (3) |
|
The difference between policies and procedures |
|
|
1123 | (1) |
|
|
1124 | (1) |
|
|
1124 | (1) |
|
|
1125 | (2) |
|
Scope and descriptions of services |
|
|
1125 | (1) |
|
Queue prioritization policies |
|
|
1126 | (1) |
|
|
1127 | (1) |
|
Compliance: regulations and standards |
|
|
1127 | (4) |
|
|
1131 | (2) |
|
|
1131 | (1) |
|
|
1132 | (1) |
|
|
1132 | (1) |
|
|
1133 | (1) |
|
Organizations, conferences, and other resources |
|
|
1133 | (2) |
|
|
1135 | (1) |
Index |
|
1136 | (30) |
A Brief History of System Administration |
|
1166 | (10) |
Colophon |
|
1176 | (2) |
About the Contributors |
|
1178 | (1) |
About the Authors |
|
1179 | |