| How to Become a Hacker |
|
vii | |
| Preface |
|
xi | |
| Server Basics |
|
1 | (2) |
|
Removing Unnecessary Services |
|
|
3 | (3) |
|
Forgoing the Console Login |
|
|
6 | (1) |
|
|
|
7 | (1) |
|
Creating a Persistent Daemon with init |
|
|
8 | (2) |
|
n>&m: Swap Standard Output and Standard Error |
|
|
10 | (2) |
|
Building Complex Command Lines |
|
|
12 | (3) |
|
Working with Tricky Files in xargs |
|
|
15 | (2) |
|
Immutable Files in ext2/ext3 |
|
|
17 | (1) |
|
|
|
18 | (1) |
|
At Home in Your Shell Environment |
|
|
19 | (3) |
|
Finding and Eliminating setuid/setgid Binaries |
|
|
22 | (3) |
|
|
|
25 | (2) |
|
Using a Makefile to Automate Admin Tasks |
|
|
27 | (2) |
|
Brute Forcing Your New Domain Name |
|
|
29 | (1) |
|
Playing Hunt the Disk Hog |
|
|
29 | (2) |
|
|
|
31 | (3) |
|
Manipulating Processes Symbolically with procps |
|
|
34 | (1) |
|
Managing System Resources per Process |
|
|
35 | (2) |
|
Cleaning Up after Ex-Users |
|
|
37 | (2) |
|
Eliminating Unnecessary Drivers from the Kernel |
|
|
39 | (3) |
|
Using Large Amounts of RAM |
|
|
42 | (1) |
|
hdparm: Fine Tune IDE Drive Parameters |
|
|
43 | (3) |
| Revision Control |
|
46 | (17) |
|
|
|
47 | (1) |
|
Checking Out a Previous Revision in RCS |
|
|
48 | (1) |
|
Tracking Changes with rcs2log |
|
|
49 | (2) |
|
|
|
51 | (3) |
|
CVS: Checking Out a Module |
|
|
54 | (1) |
|
CVS: Updating Your Working Copy |
|
|
54 | (1) |
|
|
|
55 | (1) |
|
CVS: Making Changes to a Module |
|
|
56 | (1) |
|
|
|
57 | (1) |
|
CVS: Adding and Removing Files and Directories |
|
|
57 | (1) |
|
CVS: Branching Development |
|
|
58 | (1) |
|
CVS: Watching and Locking Files |
|
|
59 | (1) |
|
|
|
60 | (1) |
|
CVS: Anonymous Repositories |
|
|
61 | (2) |
| Backups |
|
63 | (24) |
|
Backing Up with tar over ssh |
|
|
64 | (1) |
|
|
|
65 | (1) |
|
|
|
66 | (6) |
|
Backing Up Your Boot Sector |
|
|
72 | (1) |
|
Keeping Parts of Filesystems in sync with rsync |
|
|
73 | (5) |
|
Automated Snapshot-Style Incremental Backups with rsync |
|
|
78 | (6) |
|
Working with ISOs and CDR/CDRWs |
|
|
84 | (1) |
|
Burning a CD Without Creating an ISO File |
|
|
85 | (2) |
| Networking |
|
87 | (23) |
|
Creating a Firewall from the Command Line of any Server |
|
|
87 | (3) |
|
|
|
90 | (1) |
|
|
|
91 | (2) |
|
Forwarding TCP Ports to Arbitrary Machines |
|
|
93 | (1) |
|
Using Custom Chains in iptables |
|
|
94 | (2) |
|
Tunneling: IPIP Encapsulation |
|
|
96 | (2) |
|
Tunneling: GRE Encapsulation |
|
|
98 | (1) |
|
Using vtun over ssh to Circumvent NAT |
|
|
99 | (6) |
|
Automatic vtund.conf Generator |
|
|
105 | (5) |
| Monitoring |
|
110 | (29) |
|
|
|
110 | (3) |
|
|
|
113 | (1) |
|
What's Holding That Port Open? |
|
|
114 | (1) |
|
Checking On Open Files and Sockets with lsof |
|
|
115 | (3) |
|
Monitor System Resources with top |
|
|
118 | (1) |
|
Constant Load Average Display in the Titlebar |
|
|
119 | (2) |
|
Network Monitoring with ngrep |
|
|
121 | (2) |
|
Scanning Your Own Machines with nmap |
|
|
123 | (1) |
|
|
|
124 | (2) |
|
|
|
126 | (3) |
|
Running ntop for Real-Time Network Stats |
|
|
129 | (2) |
|
Monitoring Web Traffic in Real Time with httptop |
|
|
131 | (8) |
| SSH |
|
139 | (10) |
|
Quick Logins with ssh Client Keys |
|
|
139 | (2) |
|
|
|
141 | (1) |
|
Using ssh-Agent Effectively |
|
|
142 | (2) |
|
Running the ssh-Agent in a GUI |
|
|
144 | (1) |
|
|
|
145 | (1) |
|
Forwarding Ports over ssh |
|
|
146 | (3) |
| Scripting |
|
149 | (8) |
|
Get Settled in Quickly with movein.sh |
|
|
149 | (2) |
|
Global Search and Replace with Perl |
|
|
151 | (2) |
|
Mincing Your Data into Arbitrary Chunks (in bash) |
|
|
153 | (2) |
|
Colorized Log Analysis in Your Terminal |
|
|
155 | (2) |
| Information Servers |
|
157 | (56) |
|
Running BIND in a chroot Jail |
|
|
158 | (2) |
|
|
|
160 | (5) |
|
Setting Up Caching DNS with Authority for Local Domains |
|
|
165 | (2) |
|
Distributing Server Load with Round-Robin DNS |
|
|
167 | (1) |
|
Running Your Own Top-Level Domain |
|
|
168 | (1) |
|
Monitoring MySQL Health with mtop |
|
|
169 | (3) |
|
Setting Up Replication in MySQL |
|
|
172 | (3) |
|
Restoring a Single Table from a Large MySQL Dump |
|
|
175 | (1) |
|
|
|
175 | (3) |
|
Using proftpd with a mysql Authentication Source |
|
|
178 | (2) |
|
Optimizing glibc, linuxthreads, and the Kernel for a Super MySQL Server |
|
|
180 | (2) |
|
|
|
182 | (3) |
|
Display the Full Filename in Indexes |
|
|
185 | (1) |
|
Quick Configuration Changes with IfDefine |
|
|
186 | (2) |
|
Simplistic Ad Referral Tracking |
|
|
188 | (3) |
|
Mimicking FTP Servers with Apache |
|
|
191 | (2) |
|
Rotate and compress Apache Server Logs |
|
|
193 | (1) |
|
Generating an SSL cert and Certificate Signing Request |
|
|
194 | (2) |
|
|
|
196 | (2) |
|
Distributing Your CA to Client Browsers |
|
|
198 | (3) |
|
Serving multiple sites with the same DocumentRoot |
|
|
201 | (2) |
|
Delivering Content Based on the Query String Using mod_rewrite |
|
|
203 | (1) |
|
Using mod_proxy on Apache for Speed |
|
|
204 | (2) |
|
Distributing Load with Apache RewriteMap |
|
|
206 | (2) |
|
Ultrahosting: Mass Web Site Hosting with Wildcards, Proxy, and Rewrite |
|
|
208 | (5) |
| Index |
|
213 | |