Pro Linux System Administration Learn to Build Systems for Your Business Using Free and Open Source Software — Second Edition — Dennis Matotek James Turnbull Peter Lieverdink Pro Linux System Administration Learn to Build Systems for Your Business Using Free and Open Source Software Second Edition Dennis Matotek James Turnbull Peter Lieverdink Pro Linux System Administration: Learn to Build Systems for Your Business Using Free and Open Source Software Dennis Matotek James Turnbull Peter Lieverdink Footscray, Victoria, Brooklyn, New York, North Melbourne, Victoria, Australia United States Australia ISBN-13 (pbk): 978-1-4842-2007-8 ISBN-13 (electronic): 978-1-4842-2008-5 DOI 10.1007/978-1-4842-2008-5 Library of Congress Control Number: 2017935471 Copyright © 2017 by Dennis Matotek, James Turnbull and Peter Lieverdink This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein. Managing Director: Welmoed Spahr Editorial Director: Todd Green Acquisitions Editor: Louise Corrigan Development Editor: James Markham Technical Reviewer: Sander van Vugt Coordinating Editor: Nancy Chen Copy Editors: Lori Jacobs and Kim Wimpsett Compositor: SPi Global Indexer: SPi Global Artist: SPi Global Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail [email protected], or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation. For information on translations, please e-mail [email protected], or visit www.apress.com/rights-permissions. Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales web page at www.apress.com/bulk-sales. Any source code or other supplementary material referenced by the author in this book is available to readers on GitHub via the book's product page, located at www.apress.com/9781484220078. For more detailed information, please visit www.apress.com/source-code. Printed on acid-free paper To Bianca, Ziggy, Anika, Othello, plus the cute little chickens. And special thanks to Sander whose knowledge and advice were invaluable on this book. —Dennis Contents at a Glance About the Authors ���������������������������������������������������������������������������������������������������xxi About the Technical Reviewer ������������������������������������������������������������������������������xxiii ■ Part I: The Beginning ��������������������������������������������������������������������������1 ■ Chapter 1: Introducing Linux ���������������������������������������������������������������������������������3 ■ Chapter 2: Installing Linux ����������������������������������������������������������������������������������11 ■ Chapter 3: Introducing VirtualBox, Git, and Vagrant ��������������������������������������������73 ■ Chapter 4: Linux Basics ���������������������������������������������������������������������������������������99 ■ Chapter 5: Users and Groups �����������������������������������������������������������������������������147 ■ Chapter 6: Startup and Services ������������������������������������������������������������������������181 ■ Chapter 7: Networking and Firewalls ����������������������������������������������������������������217 ■ Chapter 8: Package Management ����������������������������������������������������������������������297 ■ Chapter 9: Storage Management and Disaster Recovery ����������������������������������357 ■ Part II: Making Linux Work for You �������������������������������������������������415 ■ Chapter 10: Infrastructure Services: NTP, DNS, DHCP, and SSH �������������������������417 ■ Chapter 11: Web and SQL Services ��������������������������������������������������������������������473 ■ Chapter 12: Mail Services ���������������������������������������������������������������������������������525 ■ Chapter 13: File Sharing and Printing ���������������������������������������������������������������595 ■ Chapter 14: Backup and Recovery ��������������������������������������������������������������������635 ■ Chapter 15: Networking with VPNs �������������������������������������������������������������������701 ■ Chapter 16: Directory Services ��������������������������������������������������������������������������733 v ■ Contents at a GlanCe ■ Chapter 17: Performance Monitoring and Optimization ������������������������������������799 ■ Chapter 18: Logging and Monitoring �����������������������������������������������������������������839 ■ Chapter 19: Configuration Management ������������������������������������������������������������911 Index ���������������������������������������������������������������������������������������������������������������������983 vi Contents About the Authors ���������������������������������������������������������������������������������������������������xxi About the Technical Reviewer ������������������������������������������������������������������������������xxiii ■ Part I: The Beginning ��������������������������������������������������������������������������1 ■ Chapter 1: Introducing Linux ���������������������������������������������������������������������������������3 Linux Distributions �����������������������������������������������������������������������������������������������������������3 Red Hat Enterprise Linux ������������������������������������������������������������������������������������������������������������������������4 CentOS ����������������������������������������������������������������������������������������������������������������������������������������������������5 The Fedora Project ���������������������������������������������������������������������������������������������������������������������������������5 Debian Linux �������������������������������������������������������������������������������������������������������������������������������������������5 Ubuntu ����������������������������������������������������������������������������������������������������������������������������������������������������5 Gentoo ����������������������������������������������������������������������������������������������������������������������������������������������������6 So Which Distribution Should You Choose? ��������������������������������������������������������������������������������������������6 So Which Distributions Does This Book Cover? ��������������������������������������������������������������������������������������7 Picking Hardware �������������������������������������������������������������������������������������������������������������7 Supported Hardware ��������������������������������������������������������������������������������������������������������8 Getting the Software ��������������������������������������������������������������������������������������������������������8 Getting Support ����������������������������������������������������������������������������������������������������������������9 Summary ������������������������������������������������������������������������������������������������������������������������10 ■ Chapter 2: Installing Linux ����������������������������������������������������������������������������������11 LiveCDs and Virtual Machines ����������������������������������������������������������������������������������������12 LiveCDs �������������������������������������������������������������������������������������������������������������������������������������������������12 Virtual Machines �����������������������������������������������������������������������������������������������������������������������������������12 vii ■ Contents CentOS Server Installation ���������������������������������������������������������������������������������������������13 Ubuntu Installation ���������������������������������������������������������������������������������������������������������53 Troubleshooting ��������������������������������������������������������������������������������������������������������������71 Diagnostic Information �������������������������������������������������������������������������������������������������������������������������71 Restarting Your Installation �������������������������������������������������������������������������������������������������������������������71 Troubleshooting Resources ������������������������������������������������������������������������������������������������������������������71 Summary ������������������������������������������������������������������������������������������������������������������������72 ■ Chapter 3: Introducing VirtualBox, Git, and Vagrant ��������������������������������������������73 VirtualBox Installation ����������������������������������������������������������������������������������������������������74 Licensing ����������������������������������������������������������������������������������������������������������������������������������������������74 Creating a New VirtualBox Machine �����������������������������������������������������������������������������������������������������75 Installing Git ������������������������������������������������������������������������������������������������������������������������������������������82 Git Basics ����������������������������������������������������������������������������������������������������������������������������������������������86 Introducing Vagrant ������������������������������������������������������������������������������������������������������������������������������87 Installing Vagrant ����������������������������������������������������������������������������������������������������������������������������������88 Vagrant Concepts ���������������������������������������������������������������������������������������������������������������������������������88 Getting Started with Vagrant ����������������������������������������������������������������������������������������������������������������89 Summary ������������������������������������������������������������������������������������������������������������������������97 ■ Chapter 4: Linux Basics ���������������������������������������������������������������������������������������99 Getting Started ���������������������������������������������������������������������������������������������������������������99 Logging In �������������������������������������������������������������������������������������������������������������������������������������������100 Linux vs� Microsoft Windows ����������������������������������������������������������������������������������������102 The GUI Desktop ���������������������������������������������������������������������������������������������������������������������������������103 The Command Line �����������������������������������������������������������������������������������������������������������������������������104 Shells ��������������������������������������������������������������������������������������������������������������������������������������������������106 Command-Line Prompt �����������������������������������������������������������������������������������������������������������������������107 Typing Your First Command ����������������������������������������������������������������������������������������������������������������108 Remote Access �������������������������������������������������������������������������������������������������������������110 Using SSH �������������������������������������������������������������������������������������������������������������������������������������������110 viii ■ Contents Getting Help ������������������������������������������������������������������������������������������������������������������112 Users and Groups ���������������������������������������������������������������������������������������������������������114 Services and Processes �����������������������������������������������������������������������������������������������114 Packages ����������������������������������������������������������������������������������������������������������������������117 Files and Filesystems ���������������������������������������������������������������������������������������������������117 File Types and Permissions ����������������������������������������������������������������������������������������������������������������122 Links ���������������������������������������������������������������������������������������������������������������������������������������������������129 Users, Groups, and Ownership �����������������������������������������������������������������������������������������������������������130 Size and Space �����������������������������������������������������������������������������������������������������������������������������������130 Date and Time �������������������������������������������������������������������������������������������������������������������������������������131 Working with Files ��������������������������������������������������������������������������������������������������������132 Reading Files ��������������������������������������������������������������������������������������������������������������������������������������132 Searching for Files ������������������������������������������������������������������������������������������������������������������������������137 Copying Files ��������������������������������������������������������������������������������������������������������������������������������������138 Moving and Renaming Files ���������������������������������������������������������������������������������������������������������������141 Deleting Files ��������������������������������������������������������������������������������������������������������������������������������������142 Linking Files ���������������������������������������������������������������������������������������������������������������������������������������142 Editing Files ����������������������������������������������������������������������������������������������������������������������������������������143 Summary ����������������������������������������������������������������������������������������������������������������������145 ■ Chapter 5: Users and Groups �����������������������������������������������������������������������������147 What Happens When You Log In? ���������������������������������������������������������������������������������147 Working with Users and Groups �����������������������������������������������������������������������������������148 Introducing sudo ���������������������������������������������������������������������������������������������������������������������������������149 Creating Users ������������������������������������������������������������������������������������������������������������������������������������150 Creating Groups ����������������������������������������������������������������������������������������������������������������������������������153 Deleting Users and Groups �����������������������������������������������������������������������������������������������������������������156 Managing Users and Groups via the GUI ��������������������������������������������������������������������������������������������157 Passwords ������������������������������������������������������������������������������������������������������������������������������������������160 Password Aging ����������������������������������������������������������������������������������������������������������������������������������161 Disabling Users �����������������������������������������������������������������������������������������������������������������������������������163 ix ■ Contents Storing User Data �������������������������������������������������������������������������������������������������������������������������������164 Storing Group Data �����������������������������������������������������������������������������������������������������������������������������166 Configuring Your Shell and Environment ��������������������������������������������������������������������������������������������167 Controlling Access to Your Host ������������������������������������������������������������������������������������170 Configuring PAM ���������������������������������������������������������������������������������������������������������������������������������170 More about sudo ����������������������������������������������������������������������������������������������������������174 Configuring sudo ��������������������������������������������������������������������������������������������������������������������������������175 Summary ����������������������������������������������������������������������������������������������������������������������180 ■ Chapter 6: Startup and Services ������������������������������������������������������������������������181 What Happens When Your Host Starts? ������������������������������������������������������������������������181 Powering On ���������������������������������������������������������������������������������������������������������������������������������������181 Boot Loaders ���������������������������������������������������������������������������������������������������������������������������������������184 Starting the Operating System �����������������������������������������������������������������������������������������������������������185 Understanding the GRUB2 Boot Loader ������������������������������������������������������������������������186 Using the GRUB2 Menu �����������������������������������������������������������������������������������������������������������������������186 Configuring GRUB2 �����������������������������������������������������������������������������������������������������������������������������188 Securing Your Boot Loader �����������������������������������������������������������������������������������������������������������������192 What Happens After You Boot? �������������������������������������������������������������������������������������193 Understanding Systemd ���������������������������������������������������������������������������������������������������������������������194 Upstart: Ubuntu’s Init ��������������������������������������������������������������������������������������������������������������������������198 Remembering SystemV ����������������������������������������������������������������������������������������������������������������������200 Managing Services �������������������������������������������������������������������������������������������������������203 Managing Services with Systemd ������������������������������������������������������������������������������������������������������204 Shutting Down and Rebooting Your Linux Host ������������������������������������������������������������210 Scheduling Services and Commands ���������������������������������������������������������������������������210 Systemd Timers ����������������������������������������������������������������������������������������������������������������������������������211 Introducing Cron ���������������������������������������������������������������������������������������������������������������������������������212 Summary ����������������������������������������������������������������������������������������������������������������������216 x