Deploying Ubuntu Server Edition

Course Outline

Topic 0: Getting Started in the Virtual Training Environment

(applicable to virtual classroom training only)

  • Introduction to the environment used for the course and the labs

  • Architecture of the virtual training environment

  • Introduction to Moodle

  • Introduction to Spreed

    • Interacting with fellow students and the instructor

    • Giving feedback to the instructor

    • Using audio (computer-based, or dial-in)

    • Testing your connection speed

  • ssh login to the virtual machine environment

    • Ssh client recommendations for windows and macintosh users

    • Accessing your virtual machines

    • Using 'screen' to switch between machines (Ctrl-A commands)

Topic 1: Installation

  • Installation

    • Checking hardware requirements

    • Choosing, download and burning an installation CD

    • Running the installer

    • “Expert mode” installation

    • Partitioning: (guided, manual, LVM)

    • Software selection

    • Why is there no root account?

  • Troubleshooting installations

    • ACPI issues

    • CD problems

    • Saving installation logs

    • Diagnosing boot failures

  • Logical Volumes

    • The benefits of logical volumes

    • Architecture

    • Creating physical volumes, volume groups and logical volumes

    • Extending logical volumes

  • Time synchronisation

Topic 2: Debian Package Management

  • What is a Debian package?

  • Low-level package management

    • Installing, listing and removing packages with dpkg

    • Package configuration and re-configuration

  • High-level package management

    • Repository structure: pockets and components

    • The advanced packaging toolkit (APT)

    • Specifying the location of repositories

    • Package dependencies

    • Meta-packages and virtual packages

  • Repository management

    • Creating a local repository

    • Configuring a proxy server

    • Mirroring a repository

Topic 3: Virtualization and Deployment

  • Virtualization

    • Setting up a KVM host

    • Virtual machine management using libvirt

    • Creating a guest

    • Building machine images with ubuntu-vm-builder

    • Creating virtual appliances with JeOS

  • Automated installation

    • Kickstart and pre-seeding

    • Creating a kickstart file

    • Making a kickstart file available to the target installation

    • Installing from a local server

    • Cloning and its limitations

  • Automating Updates

  • Server management using Landscape

    • Obtaining a Landscape account

    • Configuring and registering a Landscape client

    • Accessing a Landscape account

Topic 4: Security, Integrity and Performance

  • User-level security

    • Living without a root login

    • sudo and the sudoers file

    • Ubuntu group memberships and privileges

    • Configuring PAM to enforce password strength

    • Encrypting partitions using the dm-crypt device mapper

  • Constructing a firewall

    • netfilter and iptables

    • Simplifying firewall construction with ufw

    • Testing firewalls with nmap

  • Mandatory access control with AppArmor

    • Discretionary vs Mandatory access control

    • Creating an AppArmor profile

    • Setting enforce mode and complain mode

  • Intrusion detection

    • Verifying file system integrity with AIDE

    • Monitoring log files with logwatch

  • Configuring ssh authentication

  • Configuration management with etckeeper

  • Backup tools and strategies

    • Multi-level backup strategies

    • Using rsync for backups

    • Centralised backup with backuppc and bacula

  • System monitoring and performance tuning

    • Monitoring memory and disk usage

    • Centralised monitoring with nagios and munin

    • Kernel parameter tuning

    • Application-specific tuning

Topic 5: Directory Service and Authentication

  • OpenLDAP

    • OpenLDAP components and architecture

    • Installation and initial configuration

    • Command-line tools (ldapadd and friends)

    • Secure LDAP

    • LDAP with user account management

    • Configuring a client to use LDAP for authentication

    • Replicating an LDAP directory

  • Kerberos

    • Setting up a Key Distribution Centre

    • Primary and secondary servers

    • Adding principals: Hosts, services, users, admin

    • Using LDAP as the backend

  • Active Directory integration

  • Likewise Open

  • Joining a domain

  • Logging in as an A-D user