4444_FM_final.qxd 1/5/05 12:39 AM Page i Hardening Linux JAMES TURNBULL 4444_FM_final.qxd 1/5/05 12:39 AM Page ii Hardening Linux Copyright © 2005 by James Turnbull All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner and the publisher. ISBN (pbk): 1-59059-444-4 Printed and bound in the United States of America 9 8 7 6 5 4 3 2 1 Trademarked names may appear in this book. Rather than use atrademark symbol with every occurrence of atrademarked name, we use the names only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. Lead Editor: Jim Sumser Technical Reviewer: Judith Myerson Editorial Board: Steve Anglin, Dan Appleman, Ewan Buckingham, Gary Cornell, Tony Davis, Jason Gilmore, Chris Mills, Dominic Shakeshaft, Jim Sumser Project Manager: Kylie Johnston Copy Edit Manager: Nicole LeClerc Copy Editor: Kim Wimpsett Production Manager: Kari Brooks-Copony Production Editor: Kelly Winquist Compositor: Linda Weidemann Proofreader: Lori Bring Indexer: Kevin Broccoli Artist: Kinetic Publishing Services, LLC Cover Designer: Kurt Krames Manufacturing Manager: Tom Debolski Distributed to the book trade in the United States by Springer-Verlag New York, Inc., 233 Spring Street, 6th Floor, New York, NY 10013, and outside the United States by Springer-Verlag GmbH & Co. KG, Tiergartenstr. 17, 69112 Heidelberg, Germany. In the United States: phone 1-800-SPRINGER, fax 201-348-4505, e-mail [email protected], or visit http://www.springer-ny.com. Outside the United States: fax +49 6221 345229, e-mail [email protected], or visit http://www.springer.de. For information on translations, please contact Apress directly at 2560 Ninth Street, Suite 219, Berkeley, CA 94710. Phone 510-549-5930, fax 510-549-5939, e-mail [email protected], or visit http://www.apress.com. The information in this book is distributed on an “as is” basis, without warranty. Although every precau- tion has been taken in the preparation of this work, neither the author(s) nor Apress shall have any liabil- ity to any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly by the information contained in this work. The source code for this book is available to readers at http://www.apress.comin the Downloads section. 4444_FM_final.qxd 1/5/05 12:39 AM Page iii For Lucinda,who put up with having an absentee husband for many months and without whose love and support Iwould not have been able to write this book. For my grandparents,Alice and Jim Turnbull, whose love and support is greatly missed. 4444_FM_final.qxd 1/5/05 12:39 AM Page iv 4444_FM_final.qxd 1/5/05 12:39 AM Page v Contents at a Glance About the Author. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv About the Technical Reviewer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii Acknowledgments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi CHAPTER 1 Hardening the Basics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 CHAPTER 2 Firewalling Your Hosts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 CHAPTER 3 Securing Connections and Remote Administration. . . . . . . . . . . . . 137 CHAPTER 4 Securing Files and File Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 CHAPTER 5 Understanding Logging and Log Monitoring . . . . . . . . . . . . . . . . . . . 233 CHAPTER 6 Using Tools for Security Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 CHAPTER 7 Securing Your Mail Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 CHAPTER 8 Authenticating and Securing Your Mail . . . . . . . . . . . . . . . . . . . . . . . . 373 CHAPTER 9 Hardening Remote Access to E-mail. . . . . . . . . . . . . . . . . . . . . . . . . . . 403 CHAPTER 10 Securing an FTP Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 CHAPTER 11 Hardening DNS and BIND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463 APPENDIX A The Bastion Host Firewall Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 APPENDIX B BIND Configuration Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 APPENDIX C Checkpoints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525 INDEX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533 v 4444_FM_final.qxd 1/5/05 12:39 AM Page vi 4444_FM_final.qxd 1/5/05 12:39 AM Page vii Contents About the Author. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv About the Technical Reviewer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii Acknowledgments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi (cid:2) CHAPTER 1 Hardening the Basics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Installing Your Distribution Securely. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Some Answers to Common Installation Questions. . . . . . . . . . . . . . . . 2 Install Only What You Need. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Secure Booting,Boot Loaders,and Boot-Time Services . . . . . . . . . . . . . . . 4 Securing Your Boat Loader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Init,Starting Services,and Boot Sequencing . . . . . . . . . . . . . . . . . . . . 8 Consoles,Virtual Terminals,and Login Screens. . . . . . . . . . . . . . . . . . . . . . 15 Securing the Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 The Red Hat Console. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Securing Virtual Terminals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Securing Login Screens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Users and Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Shadow Passwording . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Groups. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Adding Users. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Adding Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Deleting Unnecessary Users and Groups. . . . . . . . . . . . . . . . . . . . . . . 28 Passwords. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Password Aging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 sudo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 User Accounting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Process Accounting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Pluggable Authentication Modules (PAM). . . . . . . . . . . . . . . . . . . . . . . . . . . 46 PAM Module Stacking. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 The PAM “Other”Service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Restricting su Using PAM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 vii 4444_FM_final.qxd 1/5/05 12:39 AM Page viii viii (cid:2) CONTENTS Setting Limits with PAM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Restricting Users to Specific Login Times with PAM. . . . . . . . . . . . . 53 Package Management,File Integrity,and Updating . . . . . . . . . . . . . . . . . . 56 Ensuring File Integrity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Downloading Updates and Patches . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Compilers and Development Tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Removing the Compilers and Development Tools . . . . . . . . . . . . . . . 64 Restricting the Compilers and Development Tools. . . . . . . . . . . . . . . 65 Hardening and Securing Your Kernel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Getting Your Kernel Source. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 The Openwall Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Other Kernel-Hardening Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Keeping Informed About Security. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Security Sites and Mailing Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Vendor and Distribution Security Sites. . . . . . . . . . . . . . . . . . . . . . . . . 76 Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Mailing Lists. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Sites. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 (cid:2) CHAPTER 2 Firewalling Your Hosts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 So,How Does a Linux Firewall Work?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Chains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Policies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Adding Your First Rules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Choosing Filtering Criteria. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 The iptables Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Creating a Basic Firewall. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Creating a Firewall for a Bastion Host. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Securing the Bastion Services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Firewall Logging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Handling ICMP Traffic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Spoofing,Hijacking,and Denial of Service Attacks. . . . . . . . . . . . . 108 iptables and TCP Flags. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Some Final Bastion Host Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Kernel Modules and Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Patch-o-Matic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Kernel Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 Managing iptables and Your Rules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 iptables-save and iptables-restore. . . . . . . . . . . . . . . . . . . . . . . . . . . 130 4444_FM_final.qxd 1/5/05 12:39 AM Page ix (cid:2) CONTENTS ix iptables init Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 Testing and Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 Mailing Lists. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 Sites. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 Books. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 (cid:2) CHAPTER 3 Securing Connections and Remote Administration. . . . . . 137 Public-Key Encryption. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 SSL,TLS,and OpenSSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 Stunnel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 IPSec,VPNs,and Openswan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 inetd and xinetd-Based Connections. . . . . . . . . . . . . . . . . . . . . . . . . 167 Remote Administration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 ssh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 scp and sftp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 ssh-agent and Agent Forwarding . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 The sshd Daemon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 Configuring ssh and sshd. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 Port Forwarding with OpenSSH. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 Forwarding X with OpenSSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 Resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 Mailing Lists. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 Sites. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 (cid:2) CHAPTER 4 Securing Files and File Systems. . . . . . . . . . . . . . . . . . . . . . . . . . 187 Basic File Permissions and File Attributes. . . . . . . . . . . . . . . . . . . . . . . . . . 188 Access Permissions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Ownership. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 Immutable Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 Capabilities and lcap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 Encrypting Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 Securely Mounting File Systems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 Securing Removable Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 Creating an Encrypted File System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 Installing the Userland Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Enabling the Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Encrypting a Loop File System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 Unmounting Your Encrypted File System. . . . . . . . . . . . . . . . . . . . . . 214 Remounting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Description: