Get in Touch
 Duration 35 hours

Course Outline

Debian Distribution

Understanding Debian

  • Selecting the appropriate Debian version
  • Accessing Debian support and resources
  • The Debian community ecosystem

Console Fundamentals

  • Understanding the shell prompt
  • Using the shell prompt within an X environment
  • Managing the root account and using root privileges (su, sudo, executing programs as root under X)
  • Utilizing GUI-based system administration tools
  • Working with virtual consoles
  • Exiting the command prompt correctly
  • Properly shutting down the system
  • Restoring a stable console state
  • Recommended additional packages for beginners
  • Creating additional user accounts
  • Configuring sudo access

The Filesystem

  • Managing filesystem permissions
  • Controlling default permissions for new files using umask
  • Setting permissions for user groups
  • Understanding timestamps
  • Working with symbolic and hard links
  • Using named pipes (FIFOs)
  • Understanding sockets
  • Handling device files
  • Special device file operations
  • Interacting with procfs and sysfs

Midnight Commander (MC)

  • Customizing the MC interface
  • Launching Midnight Commander
  • Using the file manager within MC
  • Employing command-line shortcuts in MC
  • Using the built-in editor in MC
  • Using the built-in viewer in MC
  • Configuring auto-start features in MC
  • Using the FTP virtual filesystem in MC

Essential Unix-like Work Environment

  • Understanding the login shell
  • Customizing bash settings
  • Using special keyboard strokes
  • Navigating with the pager
  • Setting a default text editor
  • Exiting vim correctly
  • Logging shell activities
  • Essential Unix commands

Basic Shell Command Usage

  • Executing commands and using environment variables
  • Understanding the "$LANG" variable
  • Understanding the "$PATH" variable
  • Understanding the "$HOME" variable
  • Using command-line options
  • Utilizing shell glob patterns
  • Checking command return values
  • Constructing command sequences and using shell redirection
  • Creating command aliases

Unix-like Text Processing

  • Standard Unix text tools
  • Using regular expressions
  • Applying replacement expressions
  • Performing global substitutions with regular expressions
  • Extracting data from text-based tables
  • Script snippets for piping commands

Debian Package Management

Prerequisites for Debian Package Management

  • Configuring packages
  • Basic safety precautions
  • Managing systems with continuous upgrades
  • Fundamentals of Debian archives
  • Understanding package dependencies
  • The workflow of package management events
  • Initial steps when encountering package management issues

Core Package Management Operations

  • Comparing apt-get/apt-cache with aptitude
  • Performing basic package management via the command line
  • Using aptitude interactively
  • Applicable key bindings for aptitude
  • Package views available in aptitude
  • Search options in aptitude
  • Using regex formulas in aptitude
  • Resolving dependencies with aptitude
  • Reviewing package activity logs

Practical Aptitude Examples

  • Listing packages using regex matching on names
  • Browsing packages with regex matching
  • Permanently purging removed packages
  • Organizing auto/manual installation status
  • Performing system-wide upgrades

Advanced Package Management Operations

  • Advanced command-line package management techniques
  • Verifying installed package files
  • Implementing safeguards against package issues
  • Searching package metadata

Internal Mechanics of Debian Package Management

  • Archive metadata structure
  • The top-level "Release" file and authenticity verification
  • Archive-level "Release" files
  • Fetching package metadata
  • Package state tracking in APT
  • Package state tracking in aptitude
  • Local caching of fetched packages
  • Naming conventions for Debian package files
  • Using the dpkg command
  • Using the update-alternative command
  • Using the dpkg-statoverride command
  • Using the dpkg-divert command

Recovering from a Broken System

  • Addressing incompatibilities with legacy user configurations
  • Handling file conflicts between different packages
  • Repairing broken package scripts
  • Using dpkg commands for rescue operations
  • Restoring package selection data

Package Management Tips

  • Strategies for selecting Debian packages
  • Managing packages from mixed archive sources
  • Adjusting candidate package versions
  • Working with Updates and Backports
  • Automating package downloads and upgrades
  • Limiting APT download bandwidth
  • Performing emergency package downgrades
  • Identifying package uploaders
  • Using the equivs package
  • Porting packages to stable systems
  • Configuring proxy servers for APT
  • Managing small public package archives
  • Recording and replicating system configurations
  • Converting or installing non-Debian binary packages
  • Extracting packages without using dpkg
  • Further resources for package management

System Initialization

  • Overview of the bootstrap process
  • BIOS, boot loaders, and mini-Debian systems
  • The concept of runlevels
  • Configuring runlevels
  • Examples of runlevel management
  • Default parameters for init scripts
  • Managing the hostname
  • Filesystem configuration at boot
  • Initializing network interfaces
  • Starting network services
  • Interpreting system messages
  • Interpreting kernel messages
  • The udev subsystem
  • Initializing kernel modules

Authentication and Security

  • Standard Unix authentication methods
  • Managing account and password data
  • Creating strong passwords
  • Generating encrypted passwords
  • Understanding PAM and NSS
  • Configuring files accessed by PAM and NSS
  • Modern centralized system management approaches
  • Why GNU su does not support the wheel group
  • Enforcing stricter password policies
  • Implementing additional access controls
  • Configuring sudo
  • Using SELinux and AppArmor
  • Restricting access to specific server services
  • Securing the authentication process
  • Transmitting passwords securely over the internet
  • Using Secure Shell (SSH)
  • Additional security measures for internet exposure
  • Protecting the root password

Network Configuration

Basic Network Infrastructure

  • Understanding domain names
  • Hostname resolution processes
  • Naming network interfaces
  • LAN network address ranges
  • Network device driver support

Modern Desktop Network Configuration

  • Using GUI-based network configuration tools

Low-Level Network Configuration

  • Using Iproute2 commands
  • Performing safe low-level network operations

Network Optimization

  • Determining the optimal MTU
  • Setting the MTU
  • Optimizing TCP over WAN links

Netfilter Infrastructure

Network Applications

Mail System

  • Fundamentals of modern mail services
  • Mail configuration strategy for workstations

Mail Transport Agent (MTA) and Mail User Agent (MUA)

  • Overview of exim4
  • Basic usage of Mutt (MUA)

Mail Delivery Agent (MDA) with Filtering

  • Configuring maildrop
  • Configuring procmail
  • Redelivering contents from mbox files

POP3/IMAP4 Servers

Remote Access Servers and Utilities (SSH)

  • Fundamentals of SSH
  • Using port forwarding for SMTP/POP3 tunneling
  • Connecting without using remote passwords
  • Interoperating with non-standard SSH clients
  • Setting up ssh-agent
  • Shutting down a remote system via SSH
  • Diagnosing SSH issues

Other Network Application Servers

Other Network Application Clients

Diagnosing System Daemons

The X Window System

  • Setting up the desktop environment
  • Understanding server/client relationships
  • Configuring the X server
  • Starting the X Window System
  • Launching X sessions using gdm
  • Customizing X sessions (traditional method)
  • Customizing X sessions (modern method)
  • Connecting remote X clients via SSH
  • Securing X terminals over the internet
  • Managing X applications
  • Using X office suites
  • Using X utility applications

System Tips

The Screen Program

  • Use cases for screen(1)
  • Key bindings for the screen command

Data Logging and Presentation

  • Managing the log daemon
  • Using log analyzers
  • Cleanly recording shell activities
  • Customizing text data display
  • Customizing time and date display
  • Colorizing shell output
  • Colorizing command prompts
  • Recording editor actions for complex repetitions
  • Capturing graphic images of X applications
  • Tracking changes in configuration files

Data Storage Tips

  • Configuring disk partitions
  • Accessing partitions using UUIDs
  • Filesystem configuration
  • Creating filesystems and checking integrity
  • Optimizing filesystems via mount options
  • Optimizing filesystems via superblock settings
  • Hard disk performance optimization
  • Predicting hard disk failures using SMART
  • Expanding storage space with LVM
  • Expanding storage by mounting additional partitions
  • Expanding storage using symbolic links
  • Expanding storage using aufs

Data Encryption Tips

  • Encrypting removable disks with dm-crypt/LUKS
  • Encrypting swap partitions with dm-crypt
  • Automatically encrypting files with eCryptfs
  • Auto-mounting eCryptfs volumes

Monitoring, Controlling, and Initiating Program Activities

  • Measuring process execution time
  • Managing scheduling priority
  • Using the ps command
  • Using the top command
  • Listing files opened by a specific process
  • Tracing program activities
  • Identifying processes using specific files or sockets
  • Repeating commands at constant intervals
  • Looping command execution over multiple files
  • Launching programs from the GUI
  • Customizing programs to be started automatically
  • Terminating processes
  • Scheduling one-time tasks
  • Scheduling recurring tasks
  • Using the Alt-SysRq key

System Maintenance Tips

  • Identifying logged-in users
  • Sending system-wide warnings
  • Identifying hardware components
  • Configuring hardware
  • Synchronizing system and hardware time
  • Terminal configuration
  • Sound infrastructure setup
  • Disabling screen savers
  • Disabling beep sounds
  • Monitoring memory usage
  • Performing system security and integrity checks

The Kernel

  • Managing kernel parameters
  • Using kernel headers
  • Compiling the kernel and related modules
  • Compiling kernel source: Debian standard method
  • Compiling module source: Debian standard method
  • Managing non-free hardware drivers

Virtualized Systems

  • Virtualization tool suites
  • Virtualization workflows
  • Mounting virtual disk image files
  • Using chroot systems
  • Managing multiple desktop systems

Data Management

Sharing, Copying, and Archiving

  • Archive and compression utilities
  • Copy and synchronization tools
  • Common idioms for archiving
  • Common idioms for copying
  • Common idioms for file selection
  • Backup and recovery strategies
  • Backup utility suites
  • Example system backup script
  • Data backup copy script
  • Handling removable storage devices
  • Sharing data over the network
  • Managing archive media

Binary Data Handling

  • Viewing and editing binary data
  • Manipulating files without mounting disks
  • Data redundancy techniques
  • Data file recovery and forensic analysis
  • Splitting large files into smaller segments
  • Clearing file contents securely
  • Working with dummy files
  • Wiping an entire hard disk
  • Erasing unused areas of a hard disk
  • Undeleting deleted but still open files
  • Finding all hard links
  • Investigating invisible disk space consumption

Data Security Infrastructure

  • GnuPG key management for signing and encryption
  • Using MD5 checksums

Requirements

No prior specific requirements are necessary to participate in this course.

Number of participants


Price per participant

Upcoming Courses

Related Categories