Book Description
Product Description
In the fast-moving world of computers, things are always changing. Since the first edition of this strong-selling book appeared two years ago, network security techniques and tools have evolved rapidly to meet new and more sophisticated threats that pop up with alarming regularity. The second edition offers both new and thoroughly updated hacks for Linux, Windows, OpenBSD, and Mac OS X servers that not only enable readers to secure TCP/IP-based services, but helps them implement a good deal of clever host-based security techniques as well.
This second edition of Network Security Hacks offers 125 concise and practical hacks, including more information for Windows administrators, hacks for wireless networking (such as setting up a captive portal and securing against rogue hotspots), and techniques to ensure privacy and anonymity, including ways to evade network traffic analysis, encrypt email and files, and protect against phishing attacks. System administrators looking for reliable answers will also find concise examples of applied encryption, intrusion detection, logging, trending and incident response.
In fact, this "roll up your sleeves and get busy" security book features updated tips, tricks & techniques across the board to ensure that it provides the most current information for all of the major server software packages. These hacks are quick, clever, and devilishly effective.
From the Publisher
and practical hacks, including more information for Windows administrators,
hacks for wireless networking (such as setting up a captive portal and
securing against rogue hotspots), and techniques to ensure privacy and
anonymity, including ways to evade network traffic analysis, encrypt email
and files, and protect against phishing attacks. System administrators
looking for reliable answers will also find concise examples of applied
encryption, intrusion detection, logging, trending and incident response
About the Author
Andrew Lockhart is originally from South Carolina, but currently resides in northern Colorado where he spends his time trying to learn the black art of auditing disassembled binaries and trying to keep from freezing to death. He holds a BS in computer science from Colorado State University and has done security consulting for small businesses in the area. He currently works at a Fortune 100 company when not writing. In his free time he works on Snort-Wireless, a project intended to add wireless intrusion detection popular OpenSource IDS Snort.
Excerpted from Network Security Hacks by Andrew Lockhart. Copyright © 2004. Reprinted by permission. All rights reserved.
When Unix mode-based permissions just arent enough, use an ACL.
Most of the time, the traditional Unix file permission system fits the bill just fine. But in a highly collaborative environment with multiple people needing access to files, this scheme can become unwieldy. Access control lists, otherwise known as ACLs (pronounced to rhyme with "hackles"), are a feature that is relatively new to the Linux operating system, but has been available in FreeBSD and Solaris for some time. While ACLs do not inherently add "more security" to a system, they do reduce the complexity of managing permissions. ACLs provide new ways to apply file and directory permissions without resorting to the creation of unnecessary groups.
ACLs are stored as extended attributes within the filesystem metadata. As the name implies, they allow you to define lists that either grant or deny access to a given file based on the criteria you provide. However, ACLs do not abandon the traditional permission system completely. ACLs may be specified for both users and groups and are still separated into the realms of read, write, and execute access. In addition, a control list may be defined for any user or group that does not correspond to any of the user or group ACLs, much like the "other" mode bits of a file. Access control lists also have what is called an ACL mask, which acts as a permission mask for all ACLs that specifically mention a user and a group. This is similar to a umask, but not quite the same. For instance, if you set the ACL mask to r--, any ACLs that pertain to a specific user or group and are looser in permissions (e.g., rw-) will effectively become r--. Directories also may contain a default ACL, which specifies the initial ACLs of files and subdirectories created within them.
To modify or remove ACLs, use the setfacl command. To modify an ACL, the -m option is used, followed by an ACL specification and a filename or list of filenames. You can delete an ACL by using the -x option and specifying an ACL or list of ACLs.
There are three general forms of an ACL: one for users, another for groups, and one for others. Lets look at them here:
# User ACL See for yourself by creating a file and then modifying its base ACL: $ touch myfile From this example, you can also see that multiple ACLs can be listed by separating them with commas. You can also specify ACLs for an arbitrary number of groups or users: $ touch foo Now if you changed the mask to r--, the ACLs for jlope and wine would effectively become r-- as well: $ setfacl -m m:r-- foo user::rwuser: As mentioned earlier, directories can have default ACLs that will automatically be applied to files that are created within the directory. Default ACLs are set by prepending a d: to the ACL that you want to set: $ mkdir mydir default:user:jlope:rwx As you may have noticed from the previous examples, you can list ACLs by using the getfacl command. This command is pretty straightforward and has only a few options. The most useful is the -R option, which allows you to list ACLs recursively and works very much like ls R.
--This text refers to an out of print or unavailable edition of this title.
u:[user]:
# Group ACL
g:[group]:
# Other ACL
o:
$ ls -l myfile
-rw-rw-r-- 1 andrew andrew 0 Oct 13 15:57 myfile
$ setfacl -m u::---,g::---,o:--- myfile
$ ls -l myfile
---------- 1 andrew andrew 0 Oct 13 15:57 myfile
$ setfacl -m u:jlope:rwx,g:wine:rwx ,o:--- foo
$ getfacl foo
# file: foo
# owner: andrew
# group: andrew
user::rwuser:
jlope:rwx
group::---
group:wine:rwx
mask::rwx
other::---
$ getfacl foo
# file: foo
# owner: andrew
# group: andrew
jlope:rwx #effective:r--
group::---
group:wine:rwx #effective:r--
mask::r--
other::---
$ setfacl -m d:u:jlope:rwx mydir
$ getfacl mydir# file: mydir
# owner: andrew
# group: andrew
user::rwx
group::---
other::---
default:user::rwx
default:group::---
default:mask::rwx
default:other::---
$ touch mydir/bar
$ getfacl mydir/bar
# file: mydir/bar
# owner: andrew
# group: andrew
user::rwuser:
jlope:rwx #effective:rwgroup::---
mask::rwother::---