This course explores installation, configuration and maintenance of Linux systems. The course focuses on issues universal to every workstation and server. The course material is designed to provide extensive hands-on experience. Topics include: installation and configuration; the boot process; user and group administration; filesystem administration, including quotas, FACLs, RAID and LVM; task automation; client networking; SELinux; software management; log files; troubleshooting; and Apache/Tomcat
Current Version: A00
Prerequisites:
Students should already be comfortable working in a Linux or Unix environment. Fundamentals such as the Linux filesystem, process management, and how to edit files will not be covered in class. An understanding of network concepts, and the TCP/IP protocol suite is helpful. These skills are taught in the GL120 "Linux Fundamentals" course
Supported Distributions:
Red Hat Enterprise Linux 6
Course Outline:
- Linux Hardware Discovery, Interaction, and Control
- Hardware Discovery Tools
- Hardware and System Clock
- Console
- Virtual Terminals
- Serial Ports
- SCSI Devices
- USB Devices
- USB Configuration
- Common UNIX Printing System
- Defining a Printer
- Managing Optical Media
- Tape Libraries
- Managing Linux Device Files
- Kernel Hardware Info – /sys/
- /sys/ Structure
- udev
- Kernel Modules
- Configuring Kernel Components and Modules
- Handling Module Dependencies
- Configuring the Kernel via /proc/
- Adjusting Kernel Options
- Configuring Print Queues
- Introduction to Troubleshooting Labs
- Troubleshooting Practice: Kernel Modules
- Boot Process and SysV Init
- Booting Linux on PCs
- GRUB Configuration
- Boot Parameters
- Initial ramdisk
- /sbin/init
- System Init Styles
- Linux Runlevels
- /etc/inittab
- /etc/rc.d/rc.sysinit
- Runlevel Implementation
- System Configuration Files
- RHEL6 Configuration Utilities
- Typical SysV Init Script
- The /etc/rc.local File
- Managing Daemons
- Controlling Service Startup
- Shutdown and Reboot
- Boot Process
- GRUB Command Line
- Basic GRUB Security
- Managing Services With chkconfig
- Troubleshooting Practice: Boot Process
- Software Maintenance
- Managing Software
- RPM Features
- RPM Architecture
- RPM Package Files
- Working With RPMs
- Querying and Verifying with rpm
- Updating the Kernel RPM
- Dealing With RPM & YUM Digest Changes
- Yum Plugins
- YUM Repositories
- YUM Repository Groups
- Compiling/Installing from Source
- Manually Installed Shared Libraries
- Installing Source RPM Packages
- Managing Software with RPM
- Creating a Custom RPM Repository
- Querying the RPM Database
- Installing Software via RPM & Source and Rebuilding SRPMs
- Filesystem Administration
- Partitioning Disks with fdisk
- Partitioning Disks with parted
- Filesystem Creation
- Mounting Filesystems
- Filesystem Maintenance
- Persistent Block Devices
- Resizing Filesystems
- Swap
- Filesystem Structures
- Determining Disk Usage With df and du
- Configuring Disk Quotas
- Setting Quotas
- Viewing and Monitoring Quotas
- Filesystem Attributes
- Backup Software
- Backup Examples
- Creating and Managing Filesystems
- Hot Adding Swap
- Setting User Quotas
- Using rsync and ssh for Backups
- Using tar and cpio for Backups
- Using dump and restore for Backups
- Creating ISO Images for Backups
- LVM & RAID
- Logical Volume Management
- Implementing LVM
- Creating Logical Volumes
- Manipulating VGs & LVs
- Advanced LVM Concepts
- system-config-lvm
- RAID Concepts
- Array Creation with mdadm
- Software RAID Monitoring
- Software RAID Control and Display
- Creating and Managing LVM Volumes
- Creating and Managing a RAID-5 Array
- Remote Storage Administration
- Remote Storage Overview
- Remote Filesystem Protocols
- Remote Block Device Protocols
- File Sharing via NFS
- NFSv4
- NFS Clients
- NFS Server Configuration
- Implementing NFSv4
- AutoFS
- AutoFS Configuration
- Accessing Windows/Samba Shares from Linux
- SAN Multipathing
- Multipath Configuration
- Multipathing Best Practices
- Using autofs
- NFS Server Configuration
- User/Group Administration
- User and Group Concepts
- User Administration
- Modifying Accounts
- Group Administration
- Password Aging
- Default User Files
- Controlling Logins
- Manual DS Client Configuration
- system-config-authentication
- System Security Services Daemon (SSSD)
- User and Group Administration
- Using LDAP for Centralized User Accounts
- Troubleshooting Practice: Account Management
- Using NIS for Centralized User Accounts
- Pluggable Authentication Modules (PAM)
- PAM Overview
- PAM Module Types
- PAM Order of Processing
- PAM Control Statements
- PAM Modules
- pam_unix
- pam_nologin.so
- pam_limits.so
- pam_wheel.so
- pam_xauth.so
- Restricting superuser access to wheel group membership
- Using pam_nologin to Restrict Logins
- Setting Limits with the pam_limits Modules
- Using pam_limits to Restrict Simultaneous Logins
- Security Administration
- Security Concepts
- Tightening Default Security
- Security Advisories
- File Access Control Lists
- Manipulating FACLs
- Viewing FACLs
- Backing Up FACLs
- File Creation Permissions with umask
- User Private Group Scheme
- Alternatives to UPG
- Basic Firewall Activation
- User Private Groups
- Using Filesystem ACLs
- Basic Networking
- IPv4 Fundamentals
- TCP/UDP Fundamentals
- Linux Network Interfaces
- Ethernet Hardware Tools
- Network Configuration with ip Command
- Configuring Routing Tables
- IP to MAC Address Mapping with ARP
- Starting and Stopping Interfaces
- NetworkManager
- DNS Clients
- DHCP Clients
- system-config-network{tui,cmd}
- Network Diagnostics
- Information from netstat and ss
- Managing Network-Wide Time
- Continual Time Sync with NTP
- Configuring NTP Clients
- Useful NTP Commands
- Network Discovery
- Basic Client Networking
- NTP Client Configuration
- Advanced Networking
- Multiple IP Addresses
- Configuring a DHCP server
- Enabling IPv6
- Interface Bonding
- Interface Bridging
- 802.1q VLANS
- Tuning Kernel Network Settings
- Multiple IP Addresses Per Network Interface
- Configuring IPv6
- Troubleshooting Practice: Networking
- Log File Administration
- System Logging
- Rsyslog
- /etc/rsyslog.conf
- Log Management
- Log Anomaly Detector
- Setting up a Full Debug Logfile
- Remote Syslog Configuration
- Monitoring & Troubleshooting
- System Status - Memory
- System Status - I/O
- System Status - CPU
- Performance Trending with sar
- Process Accounting
- Troubleshooting Basics: The Process
- Troubleshooting Basics: The Tools
- strace and ltrace
- Common Problems
- Troubleshooting Incorrect File Permissions
- Inability to Boot
- Typos in Configuration Files
- Corrupt Filesystems
- RHEL6 Rescue Environment
- Recovering Damaged MBR
- Using BSD Process Accounting
- Apache
- HTTP Operation
- Apache Architecture
- Dynamic Shared Objects
- Adding Modules to Apache
- Apache Configuration Files
- httpd.conf - Server Settings
- httpd.conf - Main Configuration
- HTTP Virtual Servers
- Virtual Hosting DNS Implications
- httpd.conf - VirtualHost Configuration
- Port and IP based Virtual Hosts
- Name-based Virtual Host
- Apache Logging
- Log Analysis
- Apache Architecture
- Apache Content
- Configuring Virtual Hosts
- Apache Server-Side Scripting Administration
- Dynamic HTTP Content
- Java Servlets and JSP
- Apache's Tomcat
- Installing Java SDK
- Installing Tomcat Manually
- Using Tomcat with Apache
- Apache's Tomcat
- Pre-Installation Considerations
- Pre-Installation Considerations
- Hardware Compatibility
- Multi-OS Booting
- Partition Considerations
- Filesystem Planning
- Selecting a Filesystem
- Installing RHEL6
- Anaconda: An Overview
- Anaconda: Booting the System
- Anaconda: Common Boot Options
- Anaconda: Loading Anaconda and Packages
- Anaconda: Storage Options
- Anaconda: Troubleshooting
- FirstBoot
- Kickstart
- A Typical Install
- Linux Installation
- Automating Installation with Kickstart
- SELinux
- SELinux Security Framework
- SELinux Modes
- SELinux Commands
- Choosing an SELinux Policy
- SELinux Booleans
- Permissive Domains
- SELinux Policy Tools
- Exploring SELinux Modes
- SELinux File Contexts