Introduction
- Unix and Linux
- Unix system architecture
- Unix philosophy
- What is Linux?
- Using a Linux system
- Linux command line
- Logging out
- Command syntax
- Files
- Creating files with
cat
- Displaying files' contents with
cat
- Deleting files with
rm
- Unix command feedback
- Copying and renaming files with
cp and mv
- Filename completion
- Command history
Getting started
- Files and directories
- Examples of absolute paths
- Current directory
- Making and deleting directories
- Relative paths
- Special dot directories
- Hidden files
- Paths to home directories
- Looking for files in the system
- Running programs
- Specifying multiple files
- Finding documentation for programs
- Specifying files with wildcards
- Chaining programs together
- Graphical and text interfaces
- Text editors
Work effectively on the Unix command line
- Shells
- The Bash shell
- Navigating the filesystem
- Command-line arguments
- Syntax of command-line options
- Examples of command-line options
- Where programs are found
- Setting shell variables
- Bash configuration variables
- Using history
- Reusing history items
- Retrieving arguments from the history
- Summary of Bash editing keys
- Combining commands on one line
- Repeating commands with
for
- Command substitution
- Finding files with
locate
- Finding files more flexibly:
find
find criteria
find actions: executing programs
Process text streams using text processing filters
- Working with text files
- Lines of text
- Filtering text and piping
- Displaying files with
less
- Concatenating files with
cat
- Counting words and lines with
wc
- Sorting lines of text with
sort
- Removing duplicate lines with
uniq
- Selecting parts of lines with
cut
- Expanding tabs to spaces with
expand
- Using
fmt to format text files
- Reading the start of a file with
head
- Reading the end of a file with
tail
- Numbering lines of a file with
nl
- Dumping bytes of binary data with
od
- Paginating text files with
pr
- Dividing files into chunks with
split
- Using
split to span disks
tac: backwards cat
- Translating sets of characters with
tr
tr examples
sed – the stream editor
- Substituting with
sed
- Put files side-by-side with
paste
- Performing database joins with
join
Perform basic file management
- Filesystem objects
- Directory and file names
- File extensions
- Visiting directories with
cd
- Going back to previous directories
- Filename completion
- Wildcard patterns
- Copying files with
cp
- Examples of
cp
- Moving files with
mv
- Deleting files with
rm
- Deleting files with peculiar names
- Making directories with
mkdir
- Removing directories with
rmdir
- Identifying types of files
- Changing timestamps with
touch
Use unix streams, pipes and redirects
- Standard files
- Standard input
- Standard output
- Standard error
- Pipes
- Connecting programs to files
- Appending to files
- Redirecting multiple files
- Redirection with file descriptors
- Running programs with
xargs
tee
Search text files using regular expressions
- Searching files with
grep
- Pattern matching
- Matching repeated patterns
- Matching alternative patterns
- Extended regular expression syntax
sed
- Further reading
Job control
Advanced shell usage
- More about quoting
- Quoting: single quotes
- Quoting: backslashes
- Quoting: double quotes
- Quoting: combining quoting mechanisms
- Recap: specifying files with wildcards
- Globbing files within directories
- Globbing to match a single character
- Globbing to match certain characters
- Generating filenames:
{}
- Shell programming
Filesystem concepts
- Filesystems
- The unified filesystem
- File types
- Inodes and directories
Create and change hard and symbolic links
- Symbolic links
- Examining and creating symbolic links
- Hard links
- Comparing symlinks and hard links
- Examining and creating hard links
- Preserving links
- Finding symbolic links to a file
- Finding hard links to a file
Manage file ownership
- Users and groups
- The superuser: root
- Changing file ownership with
chown
- Changing file group ownership with
chgrp
- Changing the ownership of a directory and its contents
- Changing ownership and group ownership simultaneously
Use file permissions to control access to files
- Basic concepts: permissions on files
- Basic concepts: permissions on directories
- Basic concepts: permissions for different groups of people
- Examining permissions:
ls -l
- Preserving permissions when copying files
- How permissions are applied
- Changing file and directory permissions:
chmod
- Specifying permissions for
chmod
- Changing the permissions of a directory and its contents
- Special directory permissions: ‘sticky’
- Special directory permissions: setgid
- Special file permissions: setgid
- Special file permissions: setuid
- Permissions as numbers
- Default permissions:
umask
Create, monitor, and kill processes
- What is a process?
- Process properties
- Process monitoring:
ps
ps options
- Process monitoring:
pstree
pstree options
- Process monitoring:
top
top command-line options
top interactive commands
- Signalling processes
- Common signals for interactive use
- Sending signals:
kill
- Sending signals to dæmons:
pidof
Modify process execution priorities
Create partitions and filesystems
- Concepts: disks and partitions
- Disk naming
- Using
fdisk
- Making new partitions
- Changing partition types
- Making filesystems with
mkfs
- Useful websites
Control filesystem mounting and unmounting
- Mounting filesystems
- Mounting a filesystem:
mount
- Mounting other filesystems
- Unmounting a filesystem:
umount
- Configuring
mount: /etc/fstab
- Sample /etc/fstab
- Filesystem types
- Mount options
- Other columns in /etc/fstab
- Mounting a file
Maintain the integrity of filesystems
- Filesystem concepts
- Potential problems
- Monitoring space:
df
- Monitoring inodes:
df
- Monitoring disk usage:
du
du options
- Finding and repairing filesystem corruption:
fsck
- Running
fsck
Find system files and place files in the correct location
- Unix filesystem layout
- The filesystem hierarchy standard
- Shareable and non-shareable data
- Static and dynamic data
- Overview of the FHS
- FHS: installed software
- FHS: other directories under /usr
- FHS: directories under /var
- FHS: other directories
- FHS: other directories
- Finding programs with
which
- The
type built-in command
- Checking for shell builtins with
type
- Updating the
locate database
- updatedb.conf
whatis
- Finding manpages with
apropos
- Web resources
Set and view disk quotas
- What are quotas?
- Hard and soft limits
- Per-user and per-group quotas
- Block and inode limits
- Displaying quota limits:
quota
- Options in /etc/fstab
- Enabling quota:
quotaon
- Changing quota limits:
setquota
edquota
repquota
Boot the system
- Boot loaders
- Lilo
- Sample lilo.conf file
- Selecting what to boot
- Other ways of starting Linux
- Specifying kernel parameters
- Specifying kernel parameters in lilo.conf
- Useful kernel parameters
- Boot messages
- Kernel modules
Change runlevels and shutdown or reboot system
- Understanding runlevels
- Typical runlevels
- Single-user mode and
sulogin
- Shutting down and restarting the system
- Setting the default runlevel
- Selecting a different runlevel at bootup
- Determining the current runlevel
- Switching runlevel
- Services in each runlevel: the init.d directory
- Symbolic links in rcN.d
- Starting or stopping individual services
Use and manage local system documentation
- Manual pages
- Navigating within manual pages
- Sections of a manual page
- Sections of the manual
- Manual section numbering
- Determining available manpages with
whatis
- Printing manual pages
- Searching for manpages with
apropos
- Displaying all manpages of a particular name with
man -a
- Searching the content of all manpages with
man -K
- Finding the right manual page
- Help on shell builtins
- Location of manual pages
- Info pages
- Navigating within info pages
- Documentation in /usr/share/doc/
- Contents of /usr/share/doc
- Interrogating commands for help
- Finding documentation
Find linux documentation on the internet
- The Linux Documentation Project
- HOWTOs
- Obtaining HOWTOs
- Vendor- and application-specific web sites
- Usenet newsgroups
- FAQs
- Local Help
Write system documentation
- Documentation
- A system log
- Making documentation available
- Plain text documentation
- HTML documentation
- Microsoft Word documentation
- LaTeX documentation
- Manual page documentation
- Paper documentation
Provide user support
- Providing user support
- Attitude to providing user support
- User support skills
Manage users and group accounts and related system files
- /etc/passwd
- /etc/group
- Shadow passwords and groups
passwd
useradd
userdel
usermod
- Locking accounts
groupadd
groupmod
newgrp and gpasswd
chage
pwconv and pwunconv
Tune the user environment and system environment variables
- Configuration files
- Shell configuration files
- Changing environment variables
- Changing the prompt
- Shell aliases
- Setting up home directories for new accounts
Configure and use system log files
syslog
- /etc/syslog.conf
- Sample /etc/syslog.conf
- Reconfiguring
syslog
- Examining logs:
less and grep
- Examining logs in real time:
tail
- Log rotation
- Sample /etc/logrotate.conf
Automate and schedule system administration tasks
- Running commands in the future
- At commands
- Commands run by the At dæmon
- At command specification
- Opening windows from At commands
- At command date & time specification
- Managing At commands
- Simple cron job specification
- More complex cron job specification
- Crontab format
- Crontab date & time specification
- More complex crontab dates & times
- /etc/crontab
- User crontabs
- Cron job output
- At command and cron job permissions
Maintain an effective data backup strategy
- Reasons for backup
- Backup media
- Types of backup
- Backup strategy
- Archiving files with
tar
- Creating archives with
tar
- Listing the files in
tar archives
- Extracting files from
tar archives
- Device files for accessing tapes
- Using
tar for backups
- Controlling tape drives with
mt
- Deciding what to backup
- What not to backup
- Scripting backup
- Other backup software
Configure fundamental system hardware
- Bios: datetime, disks, boot, devices
- Bios: interrupts and dma addresses
- Bios: device settings
- 1024 cylinder limit
Setup scsi and nic devices
- Nic: understand 3 era methodologies: jumper, non-volatile memory, self-configuring
- Nic: verify configs with /proc/interrupts /proc/dma /proc/ioports
- Scsi: types
- Scsi: ids, scsi logical unit numbers, linux device files
- Scsi: termination
- Scsi: controllers on pcs (scsi bios)
Configure modems and sound cards
- Modems: what they are
- Modems: types, ie. winmodems
- Modems: avoiding i/o and interrupt conflicts (sharing not necessary)
- Sound: correctly specify kernel module sound driver
- Sound: settings in /etc/modules.conf
Design hard-disk lay-out
- Issues and considerations
- Disk space
- Type of system / role
- Backup schemes and resources
- Swap space
- Filesystem functions
Install a boot manager
- Functions of lilo: find and load kernel into memory, start the kernel in memory
- How lilo works: bootloader in mbr started by bios, prompt-based kernel selection, map installer
- Lilo command
- /etc/lilo.conf
- Lilo locations
Make and install programs from source
- Find and get sources
- Understand tarballs
- Configure command: functions and use
- Make command: unerstand and use
- Make install
Manage shared libraries
- Understand function of linking: static vs dynamic, shared libs
- Understand and use ldd
- Linking and finding libs via ld_library_path
- Understand and use ldconfig for linking and finding
- System libs ind /etc/ld.so.cache /etc/ld.so.conf
Use debian package management
- Overview
- Debian naming and numbering
- Dpkg
- Apt-get
- Alien
- Dselect
Use red hat package manager (rpm)
- Overview
- Red hat naming and numbering
- Running rpm
- Major operating modes of rpm
- Main options in each rpm mode
- Rpm man page
Manage kernel modules at runtime
- Concepts: monolithic vs. modular
- Module files: /lib/modules/KERNEL-VERSION
lsmod
insmod
rmmod
modinfo
modprobe
- Configure and control modules (esp. interrupts and dma) via /etc/modules.conf
- modules.dep
depmod
Reconfigure, build and install a custom kernel and modules
- Kernel versions: naming and numbering
- Required tools and files
- Kernel source tree, esp. .config and makefile
- Creating a configuration
- Compiling a kernel
- Installing a new kernel
- Configuring a new kernel with lilo
Perform basic file editing operations using vi
- Start vi
- Edit
- Inserts
- Change and replace
- Delete
- Copy and paste
- Find
Manage printers and print queues
Print files
Install and configure local and remote printers
- Detailed knoeledge of /etc/printcap
- Filters
- Managing remote printers (inc samba) via /etc/printcap
Customize and use the shell environment
- Overview: what shells are and some history
- Bash
- Environment variables
- Shell variables (vs. environment)
- Aliases
- Functions
- Config files
Customize or write simple scripts
- Concept of shell scripts (esp. vs dos batch)
- She-bang (#!) shell selector
- The script environment
- Paths and permissions (inc suid and sgid)
- Return values
- File tests
- Command substitution
- Mail from scripts
- Key commands:
- Break
- Case
- Continue
- Echo
- Exit
- For
- Function
- Getopts
- If
- Kill
- Read
- Return
- Shift
- Source
- Test
- Until
- While
Install & configure xfree86
- Select xserver
- Install from source
- Install from binaries
- Configure via file xf86config, knowing all sections of the file and via autoconfig tools
- Xfonts
- Xset
- Xfs
- Control x apps via .xresources
Setup xdm
- Config files /etc/x11/xdm directory
- Xaccess
- Xresources
- Xserver
- Xsession
- Xsetup_0
- Xdm-config
- Running xdm automatically
- Basic customisation of xdm
- Use for managing x-terminals / x-stations
Identify and terminate runaway x applications
- Top
- Ps
- Virtual terminals
- Kill
Install & customize a window manager environment
- Understand startup procedure: startx -> xinit (via xinitrc) -> xfree86 -> client apps inc wm
- Know wm config files (not tested)
- Terminal emulators: /etc/lib/x11/app-defaults and .xdefaults
- X libraries (gtk, ldd)
- Remote clients with local display: setup, host:display.screen syntax
Fundamentals of tcp/ip
- Ip addresses and names
- Masks
- Protocols
- Services and port numbers
- Utilities
Tcp ip troubleshooting & configuration
- Know network interfaces
- /etc/hostname
- /etc/hosts
- /etc/nsswitch.conf
- /etc/host.conf
- /etc/resolv.conf
- /etc/networks
- Host command
- Hostname, domainname and dnsdomainname commands
- Ifconfig
- Netstat
- Ping
- Route
- Traceroute
- Dhcp
- Manually configure dhcp
- Dynamic allocation
- Relay dhcp
- Dhcp leases
- Dhcpd
Configure and use ppp
- Concepts: client-server, ports, modems
- Connection steps: serial connect -> account authenticate -> clientppp -> server binary datastream to initiate link, client uses temp ip address to send binary datastream and establish link
- Ppd
- Connect manually
- Know about pap, chap, mschap authentication (setup not required)
Configure and manage inetd and related services
- Concept: superdaemon
- /etc/inetd.conf inc sections
- Tcp wrappers
- Starting and stopping services
Operate and perform basic configuration of sendmail
- Basic internet mail concepts (mta, mua, etc)
- Recognise /ettc/sendmail.cf
- Dsmail directive (to send to smart host)
- Redirect using aliases
- /etc/aliases
- Forwarding to another account
- .forward
- Queuing
- Mailq
Operate and perform basic configuration of apache
- Know config files in /etc/httpd/conf or /usr/local/apache/conf
- Httpd.conf
- Srm.conf
- Access.conf
- Basic directives
- Start and stop
Properly manage the nfs, smb, and nmb daemons
- Nfs concepts
- /etc/exports
- Mount
- Smb.conf
- Use samba as wins client via nmbd
- Run swat
- No need to create custom samba configs
Setup and configure basic dns services
- Understand concept of resolver libraries, inc how they id a host or domain:
- Via /etc/hosts
- Via nis
- Via dns
- Understand dns config files:
- /etc/hosts
- /etc/resolv.conf
- /etc/host.conf (on older linux)
- Use of named for local cacheing only (non-authorative answer)
- Get info about named from /var/log/messages
- Basic use of nslookup and host
- Know distinction between bind v4 and bind v8 (/etc/named.boot vs. /etc/named.conf)
Perform security admin tasks
- Tasks:
- Secure in-bound requests
- Verify packages
- Authenticate
- Manage local security resources
- Tcp wrappers
- Tcpd
- Inetd
- Access control
- Logging
- Finding suid files
- Verifying packages with rpm -v etc
- Sgid effects on directories
- Password management
- Chage
- Ssh
Setup host security
- Shadow passwords
- Minimum inetd
- Syslog
- Forwarding root mail to admins
- Cert and bugtraq
Setup user level security
- Ulimit (setting max use of resources and hence counteract dos)
Kernel Components
- Utilize kernel components that are necessary to specific hardware
- Utilize kernel components that are necessary to specific hardware drivers
- Utilize kernel components that are necessary to specific system resources
- Utilize kernel components that are necessary to specific system requirements
- Implementing different types of kernel images
- Identifying stable and development kernels and patches
zImage and bzImage
Compiling a kernel
- Properly compile a kernel to include specific features
- Properly compile a kernel to disable specific features
- Implementing updates in a new kernel
- Noting changes in a new kernel
make
config
xconfig
menuconfig
oldconfig
mrproper
zImage and bzImage
modules
modules_install
mkinitrd (Debian)
mkinitrd (Red Hat)
- /usr/src/linux/
- /etc/lilo.conf
Patching a kernel
- Properly patch a kernel
- Patch a kernel to implement kernel updates
- Patch a kernel to implement bug fixes
- Patch a kernel to add support for new hardware
- Properly remove kernel patches from existing production kernels
patch
Makefile
gzip
bzip
Customizing a kernel
- Customize a kernel by compiling
- Customize a kernel by patching
- Customize a kernel by editing configuration files
- Assess requirements for a kernel compile versus a kernel patch
- Build and configure kernel modules
patch
make
- /usr/src/linux
- /proc/sys/kernel
modprobe
- /etc/conf.modules and /etc/modules.conf
insmod
lsmod
kmod
kerneld
Customizing system startup and boot processes
- System startup scripts
- Customize standard system boot processes
- Customize standard system run levels
- Interacting with run levels
- Creating custom initrd images
- /etc/init.d
- /etc/inittab
- /etc/rc.d
- mkinitrd (Debian)
- mkinitrd (Red Hat)
System recovery
- Manipulate a Linux system during the boot process
- Manipulate a Linux system in recovery mode
- The init utility
- The
init=kernel option
- LILO
init
- inittab
mount
fsck
Operating the Linux filesystem
- Properly navigate the standard Linux filesystem
- Properly configure the standard Linux filesystem
- Configuring various filesystem types
- Mounting various filesystem types
- Manipulating filesystems to adjust for disk space requirements
- Manipulating filesystems to adjust for device additions
- /etc/fstab
mount
umount
- /etc/mtab
sync
swapon and swapoff
- /proc/mounts
Maintaining a Linux filesystem
- Maintain a Linux filesystem using system utilities
- Manipulating a standard
ext2 filesystem
fsck (fsck.ext2)
badblocks
- Mke2fs
- Dumpe2fs
- Debuge2fs
- Tune2fs
Creating and configuring filesystem options
- Configure automount filesystems
- Configuring Automount for network filesystems
- Configuring Automount for device filesystems
- Creating non
ext2 filesystems
- Creating filesystems for CD-ROMs
- /etc/auto.master
- /etc/auto
mkisofs
dd
mke2fs
Configure and implement software RAID
- RAID concepts
- Software RAID vs. Hardware RAID
- Configuring RAID 0
- Configuring RAID 1
- Configuring RAID 5
mkraid
- /etc/raidtab
Adding new hardware
- Configure internal devices
- Configure external devices
- Configure internal new hard disks (internel)
- Configure internal new hard disks (scsi)
- Configure dumb terminal devices
- Configure serial UPS devices
- Configure multi-port serial cards
- Configure LCD panels
XFree86
modprobe
lsmod
lsdev
lspci
setserial
usbview
- /proc/bus/usb
Software and kernel configuration
- Configure kernel options to support various hardware devices
- Configure kernel options to support UDMA66 drives
- Configure kernel options to support IDE CD burners
- Using LVM (Logical Volume Manager) to manage hard disk drives and partitions
- Software tools to interact with hard disk settings
hdparm
tune2fs
- /proc/interrupts
sysctl
Configuring PCMCIA devices
- Configure a Linux installation to include PCMCIA support
- Configuring PCMCIA ethernet adapters to autodetect when inserted
- /etc/pcmcia/
*.opts
cardctl
cardmgr
Configuring a samba server
- Set up a Samba server for different clients
smbd
- Setting up a login script for Samba clients
- Setting up an
nmbd WINS server
- Changing the workgroup in which a server participates
- Defining a shared directory in smb.conf
- Defining a shared printer in smb.conf
- Using
nmblookup to test WINS server functionality
- Using
smbmount to mount an SMB share on a Linux client
smbstatus
smbtestparm
smbpasswd
lmhosts
Configuring an NFS server
- Create an exports file and specify filesystems to be exported
- /etc/exports
exportfs
- Editing exports file entries to restrict access to certain hosts
- Specify mount options in the exports file
showmount
- Configure user ID mapping
- Mount an NFS filesystem on a client
- Subnets or netgroups
- Using mount options to specify soft or hard and background retries
- Signal handling
- Locking
- Block size
- Configure
tcpwrappers to further secure NFS
nfsstat
System logging
- Configuring
syslogd to act as a central network log server
- Configuring syslogd to send log output to a central log server
- Logging remote connections
- Using using
grep and other text utils to automate log analysis
- syslog.conf
sysklogd
- /etc/hosts
Packaging software
- Packaging software
- Building Debian packages
- /debian/rules
- Rebuilding a DEB
- Building Red Hat packages
- Rebuilding RPMs
rpm
- SPEC file format
Backup operations
- Creating an offsite backup storage plan
Automating tasks using scripts
- Write simple perl scripts
- Simple perl scripts using perl modules
- Install perl modules from CPAN
perl -MCPAN -e shell
- Using
sed in scripts
- Using
awk in scripts
- Using scripts to check for process execution
- Checking processes and generating email alerts on death
- Generating pager alerts when processes die
- Schedule scripts to parse logs for alerts and email admins
crontab
- Schedule scripts to synchronize files across machines using
rsync
- Schedule scripts to monitor files for changes and generate email alerts
- Schedule scripts to notify admins when specified users log in or out
Creating recovery disks
- A standard bootdisk for system entrance
- A recovery disk for system repair
- /usr/sbin/rdev
- /bin/cat
- /bin/mount and the
-o loop option
- Any standard editor
- /sbin/lilo
- /bin/dd
- /sbin/mke2fs
- /etc/fstab and /etc/inittab
- /usr/sbin/chroot
- Location and contents of the LDP Bootdisk-HOWTO
|
Identifying boot stages
- The 4 stages of boot-up
- Boot loader start and hand off to kernel
- Kernel loading
- Hardware initializiation and setup
- Daemon initialization and setup
Troubleshooting LILO
- Determine specific stage failures and corrective techniques
- Meaning of
L, LI, , LILO, and scrolling 010101 errrors
- Different LILO install locations
- /boot/boot.b
- Significance of /boot/boot
General troubleshooting
- Screen output during bootup
- Utilize kernel boot messages to diagnose kernel errors
- Identify and correct common hardware issues
- Determine if the problem is hardware or software
dmesg
- Kernel
syslog entries in system logs
- System and daemon log files in /var/log/
- /sbin/lspci
- /usr/bin/lsdev
- /sbin/lsmod
- /sbin/modprobe
- /sbin/insmod
- /bin/uname
- Location of system kernel and attending modules
- /boot
- /lib/modules
- The /proc filesystem
strace
strings
ltrace
lsof
Troubleshooting system resources
- Identify, diagnose and repair local system environment
- /etc/profile and /etc/profile.d/
- Core system variables
- /etc/bashrc and other appropriate global shell configuration files
- /etc/init.d/
- /etc/rc.*
- /bin/ln
- /bin/rm
- Editor of choice
- /etc/ld.so.conf
- /sbin/ldconfig
- /sbin/sysctl and /etc/sysctl.conf
Troubleshooting environment configurations
- Common local system and user environment configuration issues
- Common repair techniques
- /etc/inittab
- /sbin/init
- /etc/passwd
- /etc/shadow
- /etc/group
- /etc/profile
- /etc/rc.local or /etc/rc.boot
- /usr/sbin/cron
- /usr/bin/crontab
- /var/spool/cron/crontabs/
- /etc/SHELL_NAME
- /etc/login.defs
- /etc/syslog.conf
Basic networking configuration
- Configure a network device to connect to a local network
- Configure a network device to connect to a wide-area network
- Communicate between subnets within a single network
- Configure dialup access using
mgetty
- Configure dialup acccess using a modem
- Configure dialup acccess using ISDN
- Configure authentication protocols (PAP)
- Configure authentication protocols (CHAP)
- Configure TCP/IP logging
- /sbin/route
- /sbin/ifconfig
- /sbin/arp
- /usr/sbin/arpwatch
- /etc/
Advanced Network Configuration and Troubleshooting
- Configure a network device to implement authentication
- Configuring a multi- homed network device
- Configuring a virtual private network
- Resolving networking and communication problems
- /sbin/route
- /sbin/route
- /sbin/ifconfig
- /bin/netstat
- /bin/ping
- /sbin/arp
- /usr/sbin/tcpdump
- /usr/sbin/lsof
- /usr/bin/nc
Configuring mailing lists
- Majordomo
- Majordomo2
- Monitor majordomo problems by viewing majordomo logs
Using Sendmail
- Managing sendmail
- Email aliases
- Mail quotas
- Virtual mail domains
- Configuring internal mail relays
- Monitoring SMTP servers
- /etc/aliases
- sendmail.cw
virtusertable
genericstable
Managing Mail Traffic
- Implementing client mail management software to filter mail
- Implementing client mail management software to sort mail
- Implementing client mail management software to monitor incoming user mail
procmail
- .procmailrc
- Using server-side
procmail
- Using server-side
procmail
Serving news
- Install the
inn news server
- Configure the inn news server
- Customizing newsgroup feeds
- Monitoring served newsgroups
- The
innd news daemon
Basic BIND 8 configuration
- Configure BIND to function as a caching-only DNS server
- Convert a BIND 4.9 named.boot file to the BIND 8.x named.conf
- Format, and reload the DNS by using
kill or ndc
- Configuring DNS logging
- Configuring BIND options
- Configuring directory location for zone files
- /etc/named.conf
- /usr/sbin/ndc
- /usr/sbin/named-bootconf
kill
Create and maintain DNS zones
- Create a zone file for a forward zone
- Create a zone file for a reverse zone
- Create a zone file for a root level server
- Setting appropriate values for the SOA resource record
- Setting appropriate values for the NS records
- Setting appropriate values for the MX records
- Adding hosts with A resource records
- Adding hosts with A resource records and CNAME records
- Adding the zone to the /etc/named.conf file using the zone statement
- Adding hosts to reverse zones with PTR records
- Adding the zone to the /etc/named.conf file using the zone statement
- Delegate a zone to another DNS server
- The /var/named zone file
- Syntax resource record formats
dig
nslookup
host
Securing a DNS server
- Configure BIND to run as a non-root user
- Configure BIND to run in a chroot jail
- Configuring DNSSEC statements
- Configure a split DNS configuration using the forwarders statement
- Specifying a non-standard version number string in response to queries
- SysV init files
- /etc/named.conf
- /etc/passwd
dnskeygen
Implementing a web server
- Install and configure an Apache web server
- Monitoring Apache load and performance
- Restricting client user access
- Configuring mod_perl
- Configuring mod_php and PHP support
- Setting up client user authentication
- Configuring Apache server options
- Maximum requests
- Minimum and maximim servers
- Minimum and maximim clients
- access.log
- .htaccess
- httpd.conf
- mod_auth
- htpasswd
- htgroup
Maintaining a web server
- Configure Apache to use virtual hosts
- Creating an SSL certification for Apache using OpenSSL
- Defining SSL definitions in configuration files using OpenSSL
- Customizing file access by implementing redirect statements in Apache's configuration files
- httpd.conf
Implementing a proxy server
- Install a proxy server using Squid
- Configure a proxy server using Squid
- Implementing access policies
- Setting up authentication
- Utilizing memory usage
- squid.conf
- acl
- http_access
DHCP configuration
- What is DHCP?
- Static hosts
- Dynamic hosts
- dhcpd.conf
- dhcpd.leases
NIS configuration
- What is NIS?
- Setting up a client
- Setting up a server
- nsswitch.conf
- YP utilities
- /etc/nis/
LDAP configuration
- Configuring an LDAP server
- LDIF files
- User configuration
slapd and slapd.conf
PAM authentication
- Configuring PAM
- NIS and LDAP
- pam.conf and /etc/pam.d
Configuring a router
- IP chains
- Packet filtering rules
- Network address translation (NAT)
- IP tables
- /proc/sys/net/ipv4
routed
Securing FTP servers
- Setting up FTP
- Configuring FTP access restrictions
- Anonymous FTP
- Anonymous uploads
chroot
Secure shell (OpenSSH)
- How SSH works
sshd
- Generating keys
- Port forwarding
- X forwarding
TCP wrappers
- Security need for TCP wrappers
tcpd
- /etc/inetd.conf
- /etc/hosts.allow and /etc/hosts.deny
xinetd
Security tasks
- Install and configure Kerberos
- Auditing source code
- Getting security alerts
- Open mail relays
- Installing intrusion detection systems
- Port scanning with
nmap
Troubleshooting network issues
ifconfig
route
netstat
- /etc/network and /etc/sysconfig/network-scripts/
- System log files
ping
- /etc/resolv.conf
- /etc/hosts
- /etc/hosts.allow and /etc/hosts.deny
- /etc/hostname and /etc/HOSTNAME
traceroute
nslookup and dig
dmesg
Apache Basics
- What is apache?
- Installation on Linux
- How apache listens
- Configuration file(s)
- Key configuration directives
- Serverroot, documentroot
- Serveradmin
- Bindaddress, and port
- Listen
- User and group
- Apache processes
- Logging
- Customizable logging
- Customlog examples
- Example configuration
- Two sites and more ...
- Virtual hosting options
- Name-based hosting
- Block directives
- Directorymatch, et al.
- Access control
- Authorisation files
- Other useful directives
- Exercises
- Solutions
Apache CGI Programming
- Basic CGI
- Enabling CGIs
- Addhandler
- How do CGIs work
- URL-encoding
- CGI language
- A simple CGI
- Using user information
- CGIs and redirection
- What else?
- Useful CGIs
- Basic CGIs - round up
- Exercises
Apache with mod_perl
- What is mod_perl?
- How mod_perl works
- Installing mod_perl
- Make magic
- Turning it on
- Coding for mod_perl
- More gotchas
- Easy way out - perlrun
- Exercises
Apache with mod_ssl
- mod_ssl
- Security and mod_ssl
- Encryption
- Identification
- Building openssl
- Building mod_ssl
- Building apache
- Exercises
Apache other modules
- mod_speling
- Case under mod_speling
- Compiling with mod_speling
- Notes on usage
- mod_rewrite
- Using mod_rewrite
- What's getting rewritten?
- Rewriting proper
- More rewriting
- Rewriting conditionals
- Exercises
- Solutions
Apache use & programming
- Basic CGI
- Get & post
- URL-encoding
- CGI language
- A simple CGI
- CGIs and redirection
- What else?
- Useful CGIs
- Basic CGIs - round up
- What is mod_perl?
- How mod_perl works
- Installing mod_perl
- Coding for mod_perl
- More gotchas
- Easy way out - perlrun
- mod_ssl
- Security and mod_ssl
- Encryption
- Identification
- Building openssl
- Building mod_ssl
- Building apache
- Exercises
- Solutions
Key Configuration Files
- /etc/passwd
- Editing /etc/passwd
- Other changes to /etc/passwd
- /etc/group
- Editing /etc/group
- Important note
- Shadow passwords
- /etc/shadow
- Scheduling jobs (cron)
- /etc/crontab
- run-parts
- logrotate
- Module configuration
- Modules configuration - `options'
- Mounting filesystems
- Runlevels
- Single user mode
- Multi user mode
- Starting up and shutting down
- Changing runlevel
- Initscripts
- rcn.d
- Initscripts - an example
- Restarting services
- Exercises
- Solutions
Concurrent Versions System
- Introduction to CVS
- Creating a repository
- Setting up your repository
- Checking out a working directory
- Making changes to files
- Merging your changes
- Merging: an example
- Committing changes
- Examining logged changes
- Adding and deleting files
- Example: adding a file to a project
- Deleting files
- Renaming files
- Writing good log entries
- Handling conflicts
- Identifying conflicts:
- Resolving conflicts
- Resolving conflicts
- Understanding conflicts
- Locking
Dial Up and Remote Access
- Dial-in/out
- The basics
- Authentication
- Setting-up dial-out
- One dial-out setup
- Dial-in setup
- Other options
- Preferred installation architectures
- sendmail configuration for non dial-on-demand
Email
- How email works
- Where does an email go?
- Overview
- Email protocols
- Where the protocols go
- Basic installation
- Sendmail behaviour
- Linuxconf & sendmail
- Configuration files (sendmail.cf)
- Configuration files (sendmail.cw and /etc/mail/)
- Monitoring sendmail
- Example of mailq
- Talking smtp
- Talking pop
- Managing users under sendmail
- /etc/aliases
- Aliases - other uses
- Sendmail exercises
Basic Filesystem
- Filesystem overview
- Files
- Directories
- Directory hierarchy
- Pathnames
- Current directory
- Dot (.) and dotdot(..)
- Moving and copying files
- Removing files
- Operations on directories
- Inodes
- Links
- Hard links
- Soft links
- Access control and uid
- Categories of access control
- Access control - example
- Changing access permission: chmod
- Chmod symbolically
- Chmod numerically
- Umask
- Special files - /dev
- Special files - /proc
- Filesystem structure
- /etc/fstab - example
- Mounting additional volumes
- Mounting shared filesystems
- Summary
- Filesystem exercises
- Filesystem solutions
More on the Filesystem
- Inodes in depth
- Links
- Hard links
- Soft links
- Non-native filesystems
- Disk checking and recovery (fsck)
- Check a linux ext2 filesystem (e2fsck)
- Disk free space (df)
- Disk usage (du)
- Disk partitioning concepts
- A partitioned disk
- Making and changing partitions
- How many partitions?
- What size partitions?
- BIOS problems with lilo and partitions
- Disk partitioning tools
- Using fdisk
- The fdisk interface
- Interactive commands in fdisk
- Making linux filesystems (mke2fs)
- Block devices
- Character devices
- More filesystem exercises
- More filesytem solutions
Shared File Systems
- NFS (network file system)
- Exporting file systems
- Viewing exports
- Importing file systems
- Samba installation
- Samba basics
- Access to files and printers
- Testing samba
- Smbclient
- Samba configuration file
- Testing samba
- Exercises
- Solutions
Init Scripts
- Runlevels
- Single user mode
- Multi user mode
- Starting up and shutting down
- Initscripts
- /etc/rc.d/rcn.d
- Initscripts - an example
- Restarting services
- Init script exercises
Job Control Tools
- Introduction
- Background jobs
- Kill
- The nice command
- Hang up (nohup)
- Execute programs at specified times (at)
- Options and commands related to at
- Running commands regularly (crontab)
- Summary
- Job control exercises
- Job control solutions
Linux Kernel and Tracing
- Kernel overview
- Memory management
- Scheduling
- Module principles
- Module commands
- Module loading/unloading
- Module dependencies
- Module dependencies 2
- Autoloading of modules
- Module unloading
- New/updated modules
- Kernel recompiling
- Boot disks
- Getting and configuring a kernel
- Kernel sources
- Applying kernel patches
- Configuration
- Make menuconfig
- Network device selection - an example
- Configuration issues
- Build process
- Building a kernel
- Module building
- Installing a new kernel
- Setting up to boot the new kernel
- Tracing executables
- ltrace
- Exercises
Linux Fundamentals: An Overview
- Generic features of unix
- Linux --- the kernel of a system
- Fundamental characteristics of linux
- Multiuser multitasking and time-sharing
- Protected memory mode
- Multiple filesystem types
- The many faces of a gnu/linux system
- The filesystem
- Filenames
- Filename extensions and file types
- Hidden filenames
- The shell (bash)
- Key features of the bash shell
- Interacting with a linux `terminal'
- Software tools: the unix philosophy
- Tasks/processes
- Process communication
- Re-directing I/O to and from files
- Pipes & tools
- Linux as a programming environment
- Networking
- TCP/IP
- Documentation
- Using the man pages (on-line manual)
- Overview exercises
- Overview solutions
Printing Services
- Linux printing
- Printing documents
- Main printing tools
- Using lpr
- Using lpq
- Using lprm
- Samba printing
- Printing to a windows printer via samba
The Red Hat Package Management System (rpm)
- Package management (rpm)
- Distributed rpms
- Binary rpms
- Source rpms
- Building rpms
- Rpm naming conventions
- Creating a .spec file
- Details of a .spec file
- Group hierarchy
- %build
- %install
- %files
- Building a package (rpm -b)
- Pre and post install
- Note on testing
Samba
- Samba installation
- Samba basics
- Access to files and printers
- Testing samba
- Smbclient
- Samba configuration file
- Testing samba
- Swat -- samba web administration tool
- Installing swat
- Options for swat
- Global settings in swat
- Share settings in swat
- Printer configuration under swat
- Viewing samba status with swat
- View samba configuration in swat
- Samba exercises
Basic Shell
- Introduction
- Getting around the command line
- History
- Plumbing
- Output redirection
- Input redirection
- Combining redirection
- Pipelines
- Background processes
- Background processes and nohup
- Command grouping and sub-shells
- Process management
- Signals
- Background processes: top
- Filename generation
- Quoting mechanisms
- Shell built-in commands
- Basic shell exercises
- Basic shell solutions
Shell Programming
- Introduction
- Writing and running shell scripts
- Subshell or subroutine?
- Processing commands
- Command substitution
- Shell variables and variable substitution
- Shell environment variables
- Set
- Quoting
- .profile file
- Arguments
- Shell parameters
- Blank interpretation
- Comments
- Read
- Shift
- Exit status or return code
- Test
- File status tests
- Relational tests
- For loop
- If
- True and false
- While and until
- Break and continue
- Case
- Simple conditionals
- Here documents
- Use of commands
- Find
- Evaluate expressions (expr)
- Summary
- Shell programming exercises
- Shell programming solutions
Special Topics: Boot Manager, Installing Apps, System Info from /proc
- The linux bootloader (lilo)
- Lilo configuration
- Understanding lilo.conf
- Red hat package management tool (rpm)
- Install, upgrade and uninstall with rpm
- Query options for rpm
- Verify options for rpm
- Output from the rpm verification option
- Building and installing applications
- Autoconf
- Using ./configure
- Options to configure
- Location of install
- Installation requirements
- Compilation roundup
- The /proc filesytem
- Process specific subdirectories
- Process status
- Process memory usage (statm)
- Kernel data
- Interrupts in use
- IDE devices (/proc/ide)
- Networking (/proc/net)
- Networking 2 (/proc/net)
- Scsi info (/proc/scsi)
- Parallel port (/proc/parport)
- Kernel parameters (/proc/sys)
- File system data (/proc/fs)
- Example: increase maximum filehandles
- General kernel parameters (/proc/sys/kernel)
- Virtual memory subsystem (/proc/sys/vm)
- Device specific parameters (/proc/sys/dev)
- Remote procedure calls (/proc/sys/sunrpc)
- Networking (/proc/sys/net)
- Ipv4 settings (/proc/sys/net/ipv4)
- Special topics exercises
- Special topics solutions
Squid Basics
- Squid is
- Squid also supports
- What to cache and for how long?
- Getting and installing squid
- Squid directory structure
- Basic configuration (caching proxy only)
- Running squid
- Basic client (browser) configuration
- Basics access control
- More advanced access control
- Destination address based acls
- Cache hierarchy concepts
- Parents and siblings
- Integration with other software
- Log analysis and stats
- Tools
- Analysis
- Squid exercises
System Daemons
- Daemons
- Stand alone vs on demand
- Stand alone daemons
- On-demand daemons
- Cron jobs
- /etc/crontab
- Run-parts
- Crond
- Details on inetd
- Configuration of inetd
- Tcp wrappers (/usr/sbin/tcpd)
- Tcp wrapper validation
- System logging daemon
- Syslog.conf
- System log rotation
- Sshd
- Ssh principles
- Ssh configuration
- Xntpd
- Time daemon config (/etc/ntp.conf)
- Client/server configuration of xntpd
- Example of /etc/ntp.conf
- Xntpdc
- Name resolution
- /etc/hosts
- /etc/resolv.conf
- Dns
- Dns configuration file (/etc/named.conf)
- Zone files
- Name entries
- Dig
- Dig (other servers)
- Exercises
- Solutions
Basic TCP/IP
- Introduction to IP concepts - components
- History
- Packets
- Addresses
- Transferring data
- Hosts & interfaces
- Routing
- Ports
- Well known ports
- Name resolution
- /etc/hosts
- /etc/resolv.conf
- Dns
- Dns - boot file (/etc/named.boot)
- Zone files
- Dns summary
- Ip-related tools and utilities
- Ping
- Ifconfig
- Traceroute
- Netstat
- Remote login
- Telnet
- Telnet command mode
- Ssh
- File transfer
- Ftp
- Setting up an interface
- Exercises
Fundamentals of TCP/IP
- Fundamentals of TCP/IP networking
- History
- Recap of basic IP concepts - components
- IP versions
- Packets
- Addresses
- Netmasks and subnetting
- Netmasks with /xx
- Transferring data
- Hosts & interfaces
- Routing
- Ports
- Exercises
- Solutions
Practical TCP/IP
- Ping protocols
- Network statistics (netstat) in practice
- Network traffic (tcpdump) in practice
- tcpdump options
- tcpdump examples
- Firewalling
- Basic theory
- ipchains details
- ipchains options
- Options for rules
- ipchains - examples
- Removing rules
- Implementing ipchains
- Save and restore
- ipchains setup script
- Real world ipchains
- Interface configuration and management
- Point-and-click interface administration
- /etc/sysconfig/network-scripts
- ifcfg-ethx
- Altering an interface
- Adding an interface
- The `proper' way
- Drivers
- The secure shell in practice (ssh)
- Secure copying in practice (scp)
- Summary
- Exercises
- Solutions
Basic Tools
- Introduction
- Using tools
- The on-line manual (man)
- Finding files the long way (find)
- Locate files (locate)
- View and concatenate files (cat)
- View large files & output (less)
- Viewing parts of files (head and tail)
- Listing file information (ls)
- File classification (file)
- Count words, lines, characters (wc)
- Differences between files (diff)
- Compare binary files (cmp)
- Regular expression searches (grep)
- Grep examples
- Sort and merge files (sort)
- Sort examples
- Display unique lines (uniq)
- Split files (split)
- Splitting files by context (csplit)
- Compression utilities (gzip)
- Store and retrieve archives (tar)
- Translating characters (tr)
- Examples of tr usage
- Execute programs at specified times (at)
- Options and commands related to at
- Running commands regularly (crontab)
- Evaluate expressions (expr)
- Linux printing
- Printing documents
- Main printing tools
- Using lpr
- Using lpq
- Using lprm
- Basic tools exercises
- Basic tools solutions
More Tools
- Introduction
- Displaying system processes (top)
- Options and interactive commands for top
- Reporting process status (ps)
- Options for reporting process status (ps)
- Finding files using specified criteria (find)
- Criteria used in find expressions
- Examples of using (find)
- Reporting virtual memory statistics (vmstat)
- Output from vmstat
- Free
- Ldd
- Uptime
- Xargs
- Options to xargs
- Positioning filenames with xargs
- Cpio
- Gzip
- Unzipping
- Tar
- Raw devices and tar
- Exercises
- Solutions
Introduction To Editing with vi
- Text editors under linux
- Vi and your terminal
- Vi screen layout
- Opening files with vi
- Vi modes
- Saving, changing file and quitting
- Moving around in command mode
- Numeric prefixes
- Further movement
- Movement by lines - examples
- Inserting text
- Multiple insertion
- Deleting text
- Changing text
- Copy and paste
- Finding your place
- Miscellaneous commands
- Search and replace
- Regular expressions
- Regular expression conventions
- Regular expression examples
- Regular expression replacement
- Vi exercises
- Vi solutions
Basic X-windows
- What x-windows is
- X needs window managers
- Window managers are applications
- Desktop environments
- Starting x
- Stopping x
- Running shells (xterms) under x
- Running applications from an xterm
- Running applications from a window manager
- Configuring x
- Basic x hardware configuration
- Basic x software configuration
- Networked x - the client-server relationship
- Principles of running remote x apps
- How to run remote x apps
- Authentication
- Better authentication
- Basic x exercises
|