Practical UNIX and Internet Security

Preface Part I. Computer Security Basics 1. Introduction: Some Fundamental Questions What Is Computer Security? What Is an Operating System? What Is a Deployment Environment? 2. Unix History and Lineage History of Unix Security and Unix Role of This Book 3. Policies and Guidelines Planning Your Security Needs Risk Assessment Cost-Benefit Analysis and Best Practices Policy Compliance Audits Outsourcing Options The Problem with Security Through Obscurity Part II. Security Building Blocks 4. Users, Passwords, and Authentication Logging in with Usernames and Passwords The Care and Feeding of Passwords How Unix Implements Passwords Network Account and Authorization Systems Pluggable Authentication Modules (PAM) 5. Users, Groups, and the Superuser Users and Groups The Superuser (root) The su Command: Changing Who You Claim to Be Restrictions on the Superuser 6. Filesystems and Security Understanding Filesystems File Attributes and Permissions chmod: Changing a File's Permissions The umask SUID and SGID Device Files Changing a File's Owner or Group 7. Cryptography Basics Understanding Cryptography Symmetric Key Algorithms Public Key Algorithms Message Digest Functions 8. Physical Security for Servers Planning for the Forgotten Threats Protecting Computer Hardware Preventing Theft Protecting Your Data Story: A Failed Site Inspection 9. Personnel Security Background Checks On the Job Departure Other People Part III. Network and Internet Security 10. Modems and Dialup Security Modems: Theory of Operation Modems and Security Modems and Unix Additional Security for Modems 11. TCP/IP Networks Networking IP: The Internet Protocol IP Security 12. Securing TCP and UDP Services Understanding Unix Internet Servers and Services Controlling Access to Servers Primary Unix Network Services Managing Services Securely Putting It All Together: An Example 13. Sun RPC Remote Procedure Call (RPC) Secure RPC (AUTH_DES) 14. Network-Based Authentication Systems Sun's Network Information Service (NIS) Sun's NIS+ Kerberos LDAP Other Network Authentication Systems 15. Network Filesystems Understanding NFS Server-Side NFS Security Client-Side NFS Security Improving NFS Security Some Last Comments on NFS Understanding SMB 16. Secure Programming Techniques One Bug Can Ruin Your Whole Day . Tips on Avoiding Security-Related Bugs Tips on Writing Network Programs Tips on Writing SUID/SGID Programs Using chroot( ) Tips on Using Passwords Tips on Generating Random Numbers Part IV. Secure Operations 17. Keeping Up to Date Software Management Systems Updating System Software 18. Backups Why Make Backups? Backing Up System Files Software for Backups 19. Defending Accounts Dangerous Accounts Monitoring File Format Restricting Logins Managing Dormant Accounts Protecting the root Account One-Time Passwords Administrative Techniques for Conventional Passwords Intrusion Detection Systems 20. Integrity Management The Need for Integrity Protecting Integrity Detecting Changes After the Fact Integrity-Checking Tools 21. Auditing, Logging, and Forensics Unix Log File Utilities Process Accounting: The acct/pacct File Program-Specific Log Files Designing a Site-Wide Log Policy Handwritten Logs Managing Log Files Unix Forensics Part V. Handling Security Incidents 22. Discovering a Break-in Prelude Discovering an Intruder Cleaning Up After the Intruder Case Studies 23. Protecting Against Programmed Threats Programmed Threats: Definitions Damage Authors Entry Protecting Yourself Preventing Attacks 24. Denial of Service Attacks and Solutions Types of Attacks Destructive Attacks Overload Attacks Network Denial of Service Attacks 25. Computer Crime Your Legal Options After a Break-in Criminal Hazards Criminal Subject Matter 26. Who Do You Trust? Can You Trust Your Computer? Can You Trust Your Suppliers? Can You Trust People? Part VI. Appendixes A. Unix Security Checklist B. Unix Processes C. Paper Sources D. Electronic Resources E. Organizations Index