Course objectives and plans

The objective of the course is to teach the future engineers to configure, administer and use efficiently and securely Linux desktops, servers and high performance computational clusters. Every week, there will be one lecture and two or three scheduled recitations for practical hands-on exercises and projects. Each students should attend the lecture and one of the recitations.

Week 1: Introduction to the course. Basic concepts of the operating system.

Kernel, shells, applications; multiuser system, users and groups; processes; file system and directories; login process and user configuration files. Demonstrations and laboratory exercises with elementary Unix commands.

Week 2: System installation, configuration and upgrade

Disk partitions, fdisk and disk druid tools; workstation installation from a CD and network; system customization and upgrade; learning rpm for package installation, remove, upgrade and query; automated kickstart system installation.

Week 3: Linux Networking

Basic concepts of networking: Network packets, TCP/IP protocol suit, address resolution protocol (ARP); IP addresses and network mask; subnets and routing; IPV4 and network classes; ports. Configuring Linux machine on the network; arp, ifconfig and netstat commands. Network services and tools: telnet, rsh, ftp, rcp, ssh, rsync, xinetd.conf; opening and closing ports; packet sniffing with tcpdump.

Week 4: Network File System (NFS)

File system sharing over the network; Remote Procedure Call (RPC) service; NFS server and client sides; NFS installation and configuration; static mount and automount configurations; troubleshhoting NFS; security and performance optimization.

Week 5: Network Information Service (NIS)

Centralized authentication systems; sharing user and host information over the network; NIS server and client sides; NIS installation and configuration; compatibility mode; netgroups; security issues.

Week 6: Integrating Linux and Windows

Elements of Windows networking: NetBIOS, SMB/CIFS protocols, Domain Controller; Samba server on Linux for centralized Windows logon, file sharing and printing; Samba client; Samba installation and configuration; Unix and Windows passwords. Dual boot: running Windows and Linux on the same PC; LILO, GRUB and NT boot loaders; accessing Windows file system from Linux and vice versa.

Week 7: Linux startup and shutdown; run levels; scheduled jobs. System logging. Shell scripting.

Bootup and login sequence; system run levels; startup scripts; adding and removing a service from the startup; writing startup scripts. Scheduled jobs through at, cron. System logging: log facilities and alert level; syslogd configuration; log file analysis. Elements of shell scripting: grep, awk, sed.

Week 8: Lightweight Directory Access Protocol (LDAP)

Overview of Unix Authentication and Naming services; introduction to LDAP: domain component (dc), organizational unit (ou), common names (cn), schemas, services, ports and commands; Server and client sides; OpenLDAP installation and configuration; LDAP applications.

Midterm Exam (in-class, open book)

Week 9: Linux Security

System vulnerabilities: mismanaged accounts, suid programs, trojans, stack overflow, dangerous open ports; port scanning; encryption, encrypted services and connections; PGP/GPG. Intrusion protection: tcp-wrappers, IP-firewalls (iptables), NAT and DMZ; Intrusion detection systems: Snort, tripwire.

Week 10: Linux Clusters

Overview of Linux cluster and clustering tools; High Performance Computational Clusters and High Availability Web Servers; Message Passing Interface (MPI) for parallel programming; MPI compilation and installation; Scheduling and queue systems; Linux Virtual Server (LVS) implementations; Projects discussion; Virtual IP interface and Masquerading. Installation of Apache web server on LVS nodes.

Week 11: Linux Cluster Projects

High Performance Computational Cluster: practicing with MPI (MPI tutorial) and installing Sun Grid Engine (SGE) queue system. Building Linux Vitual Server: load balancer, LVS via NAT, LVS via Direct Routing, monitoring shell script (httpdMonitor.sh).

Week 12: Linux Cluster Projects II

High Performance Computational Cluster: Configuration of Grid Engine (SGE), qmon, submit scripts, SGE commands for submitting, deleting jobs and monitoring jobs and cluster resources; integration of SGE with MPI. Building Linux Vitual Server: MON scheduler and alert management tool installation, configuration. Practice with service balancing and IP take over at node failure.

Week 13: Final Week

Project reports and public presentation in EIT lab, D-112.