Linux Training Overview
This highly technical course focuses on properly securing machines running the Linux operating systems. A broad range of general security techniques such as user/group policies, and file integrity checking are covered. Advanced security technologies are taught such as Kerberos, SELinux, and the hardening of popular applications such as Apache, databases, and email systems. At the end of the course, students have an excellent understanding of the potential security vulnerabilities -- know how to audit existing machines, and best practices how to securely deploy new Linux servers.
Linux Training Prerequisites
Individuals planning to take this class should have strong Linux system administration experience. Students should be comfortable with concepts and tasks such as editing text files inUnix and starting and stopping services/daemons. A good grasp of networking concepts will be helpful.
Linux Training Course duration
40 Hours
Linux Training Course outline
Section 1 Security Concepts
- Basic Security Principles
- RHEL/FC/SLES/SL Default Install
- RH/SUSE Firewall Options and File Security
- Minimization - Discovery
- Service Discovery
- Hardening
- Security Concepts
Lab 1 - Security Concepts
- Discovering what software packages are installed and removing unneeded packages
- Using lokkit for firewall configuration
- Identification of running services and removing unneeded services
- Increasing security using system calls and chroot
Section 2 Probing, Mapping and Scanning for Vulnerabilities
- The Security Environment
- Stealth Reconnaissance
- The WHOIS database
- Interrogating DNS
- Discovering Available Hosts and Applications
- Reconnaissance with SNMP
- Discovery of RPC Services
- Enumerating NFS Shares
- Nessus Insecurity Scanner and Installation
Lab 2 - Probing, Mapping and Nessus
- Discovery of listening services and remote stack fingerprinting
- Installing, configuring and testing Nessus insecurity scanner
Section 3 Password Security and PAM
- Unix Passwords
- Password Aging
- Auditing Passwords
- PAM Implementation, Management, and Control Statements
- PAM Modules
- pam_stack.so, pam_unix.so, pam_unix2.so, pam_cracklib.so, pam_pwcheck.so, pam_env.so,
- pam_xauth..so, pam_tally.so, pam_wheel.so, pam_limits.so, pam_nologin.so, pam_deny.so,
- pam_securetty.so, pam_time.so, pam_access.so, pam_listfile.so, pam_lastlog.so, pam_warn.so,
- pam_console.so, pam_resmgr.so, and pam_devperm.so
- User Device Access: resmgr
Lab 3 - Pluggable Authentication Modules
- Auditing user password quality
- Creating additional dictionaries for use with cracklib
- Working with PAM modules
- Limiting access activities of users and accounts
Section 4 Secure network time protocol (NTP)
- The Importance of Time
- Time Measurements and Synchronization Methods
- NTP Evolution
- Time Server Hierarchy
- Operational Modes
- NTP Clients
- Configuring NTP Clients and Servers
- Securing NTP
- NTP Packet Integrity
- Useful NTP Commands
Lab 4 - Secure NTP
- Configuring NTP peering
- Configuring strong authentication on a NTP server
- Defining Access Control Lists (ACLs) for secure access to NTP server
Section 5 Kerberos Concepts
- The Computing Landscape
- Common Security Problems
- Account Proliferation
- The Kerberos Solution
- Kerberos History, Implementations, and Concepts
- Kerberos Principals, Safeguards, and Components
- Authentication Process and Identification Types
- Logging In
- Gaining and Using Privileges
Section 6 Kerberos Components
- Kerberos Components
- Kerberos Principal Review
- Kerberized Services Review and Clients
- KDC Server Daemons
- Configuration Files
- Utilities Overview
- Kerberos SysV Init Scripts
Section 7 Implementing Kerberos
- Plan Topology and Implementation
- Kerberos 5 Client and Server Software
- Synchronize Clocks
- Creating and Configuring the Master KDC
- KDC Logging
- Specifying [realms] and [domain_realm]
- Allow Administrative Access
- Create KDC Databases and Administrators
- Install Keys for Services and Start Services
- Add Host Principals and Common Service Principals
- Configure Slave KDCs
- Client Configuration
- Install krb5.conf on Clients
- Client PAM Configuration
- Install Client Host Keys
Lab 7-Implementing Kerberos
- Configuring a master KDC
- Configuring a slave KDC
- Configuring a Kerberos client
Section 8 Administrating and Using Kerberos
- Administrative Tasks
- Key Tables
- Managing Keytabs
- Principals and Managing Principals
- MIT Principal Policy
- Viewing Principals
- MIT Managing Policies
- Goals for Users
- Signing Into Kerberos
- Ticket types and Viewing Tickets
- GUI Kerberos Ticket Management
- Removing Tickets
- Passwords and Changing Passwords
- Giving Others Access
- Using Kerberized Services
- Kerberized FTP
- Enabling Kerberized Services
- OpenSSH and Kerberos
Lab 8 - Using Kerberized Clients
- System configuration for use of kerberized client and server applications
- Using the kerberized telnet to connect via a ticket and encrypt the data for the session
- Exploring the utility and behavior of forwardable tickets
- Configuring an OpenSSH server and client to accept and use Kerberos Authentication
- Testing Kerberos authentication with OpenSSH
Section 9 Securing the filesystem
- Filesystem Mount Options
- NFS Properties and NFS Export Option
- NFSv4 and GSSAPI Auth
- Implementing NFSv4
- File Encryption with GPG and OpenSSL
- Encrypted Loopback FS
Lab 9 - Filesystem Security, and File Encryption
- Modification of filesystem mounting options to increase system security
- Configuring and securing an NFS share
- Encrypting and decrypting files using GPG and openssl
- Setting up a NFSv4 share with GSSAPI/Kerberos authentication
Section 10 Tripwire
- Host Intrusion Detection
- Using RPM as an IDS
- TripWire History and Concepts
- TripWire Installation, Policies, and Configuration
- TripWire Commands and General Operation
Lab 10 - File integrity checking with rpm / TripWire
- Verifying the integrity of files on the system and files in a directory
- Configuring TripWire to monitor files and report changes
Section 11 Securing Apache
- Apache Overview
- RH/SUSE Default Configuration
- Configuring CGI
- Turning off unneeded modules
- Configuration Delegation and Scope
- ACL by IP Address
- HTTP User Authentication
- Standard Auth Modules
- HTTP Digest Authentication
- Authentication via SQL, LDAP, and Kerberos
- Scrubbing HTTP Headers
- Metering HTTP Bandwidth
Lab 11- Securing Apache
- Increasing security and optimizing Apache by disabling unneeded modules
- Removing Apache and PHP version from HTTP headers
- Setting up virtual hosts
- Creating CGI scripts to "deface" another's files and setting permissions against exploit
- Showing files can be read by virtual host users and employing "suexec" to protect against access
- Configuring and testing mod_auth_kerb
Section 12 Securing PostgreSQL
- PostgreSQL Overview and Default Configuration
- Configuring SSL
- Authentication Methods and Advanced Authentication
- Ident-based Authentication
Lab 12- Securing PostgreSQL
- Configuring PostgreSQL to accept remote TCP connections
- Configuring PostgreSQL to support strong authentication via SSL
- Configuring PostgreSQL to support Kerberos
- Setting up and configuring a web based multi-user PHP calendaring application that uses PostgreSQL
- Configuring Apache to support Kerberos authentication and to require SSL
Section 13 Securing EMail Systems
- SMTP Overview and Implementations
- Selecting an MTA
- Security Considerations
- Postfix Overview
- Chrooting Postfix
- Connections and Relays
- SMTP AUTH & StartTLS/SSL
- Secure Cyrus IMAP Config
- Using GSSAPI/Kerberos Auth
Lab 13 - Securing Email
- Configuring a system to use Postfix
- Configuring Postfix to listen on the network and accept mail
- Modifying Postfix’s SysV Init script to setup and maintain the proper environment for chrooting Postfix daemons each time it starts
- Configuring Postfix to chroot some of its daemons
- Configuring Postfix to use SMTP AUTH via PAM for secure relaying
- Configuring Postfix to support STARTTLS to secure SMTP AUTH
- Configuring Cyrus IMAP with SSL/TLS for IMAPS and POP3 access
- Configuring Postfix to deliver mail to Cyrus IMAP
- Setting up Evolution to test Postfix and Cyrus IMAP
- Generating Kerberos principals for Cyrus IMAP and Postfix
- Re-Configuring Cyrus IMAP and Postfix to perform GSSAPI/Kerberos authentication
- Re-Configuring Evolution to preform GSSAPI/Kerberos authentication
Section 14 SELinux Concepts
- DAC vs. MAC
- Shortcomings of Traditional UNIX Security
- SELinux Goals, Terms, and Logical Architecture
- SELinux in Action
- Activating and Interfacing SELinux
- SELinux Commands and Roles
- Modified System Utilities
Lab 14 - SELinux Concepts
- Installing and initializing SELinux
- Working with several SELinux management commands to see how roles and contexts are used on the system
Section 15 SELinux Policy
- SELinux Policies Review
- Choosing a Policy
- Compiled Policy Files
- Policy Source Files
- M4 Macro Language
- File Context Files (*.fc)
- Type Enforcement Files (*.te)
- Booleans
- Graphical Policy Tools
- Policy Analysis
- Policy Customization
- Troubleshooting SELinux Problems
Lab 15 - SELinux Policy
- Enabling Strict Policy
- Changing roles on the system
- Understanding the difference between how context labels are treated with the cp and mv commands
- Setting SELinux Boolean Values
- Modifying the default policy so that users can do a directory listing in /var/log