Capstone Presentation

Team Fugu
and the
OpenBSD Tools Project

Team Fugu: Cast of Characters

The Team

Ben Atkin

Thad Boyd

Erik Wilson

Nauman Qureshi

The Discipline

Computer Science

The Technical Advisor

Dr. Eck Doerry

The Sponsor

USGS Astrogeology Team

Ernest Bowman-Cisneros and Margaret Johnson

Thad Boyd

The Story Thus Far:

What Is OpenBSD?

UNIX-based operating system

Open-source

Secure

What’s With the Fugu?

Fugu: A poisonous blowfish.

The blowfish is the

OpenBSD mascot.

Fugu mascot designed by

Jon Gardner.

Thad Boyd

The Client

US Geological Survey (USGS)

Astrogeology Team

Map Landscape of Planets

Custom software for image processing

Using high-end UNIX workstations

Information Technology Division

Multiple Servers (Mail, FTP, Web)

Multiple Architectures (x86, Sparc)

Thad Boyd

Problem

Time-consuming to install OpenBSD on many systems

Patches for OpenBSD require manual installation on each system

20 machines x (1 hour install + 1 hour patches)
= 40 hours total

Thad Boyd

Unpatched

Patched

Diagram: Manual Maintenance

Thad Boyd

Needs

Two Projects

OpenBSD Auto-Installer

Need a non-interactive system

Similar Products:
Solaris Jumpstart, Redhat Kickstart

OpenBSD Auto-Patcher

Auto download and install of patches

Ability to “roll back” or uninstall patches

Similar Product: Tepatche

Both must run on Intel i386,
Sun Sparc64 platforms

Thad Boyd

Diagram: Automatic Maintenance

Thad Boyd

Installer Requirements

Must be future-version compatible

Must handle install or upgrade

Install configuration file must be read from:

CDROM / Floppy

FTP / HTTP

Local hard drive

Must handle partitioning of disks

Must seek out and back up important files (eg SSH keys)

Thad Boyd

Patcher Requirements

Must handle source or pre-compiled patches

Must track what patches have been installed, and what patches have failed to be installed

Thad Boyd

Automated Installer

Traditional Installer

Boot installer

Answer questions

Reboot into installed system

Automated Installer

Create configuration file

Boot installer

Install is done automatically

Reboot into installed system

Ben Atkin

Installer Configuration File

Can be loaded from disk or network

Contains information for

Network

Partitioning disks

Filesets

Pre-install script

Post-install script

Designed to be user-friendly

Case insensitive (“disks” or “Disks”)

Divided into sections

Ben Atkin

Installer Configuration File

Do not need to know specifics when making configuration file

One configuration file used for computers with differences in hardware

Different device names

Different disk geometry

Disk geometry

For security, there are separate filesystems for web, e-mail, documents

Filesystems should be organized to get best use of space

Ben Atkin

Installer: Disk Partitioning

Partition a “class” of systems

May contain one or two disks

Configuration File:

[Disks]

Disks=Main Homedisk

Main.Device=primary

Homedisk.Device=secondary primary

Main.Slices=root usr var tmp swap

Homedisk.Slices=home

extra=home usr

usr.min=2gb

Ben Atkin

Installer: Disk Partitioning

System 1

One 8GB Hard Disk

System 2

One 8GB Hard Disk

One 40GB Hard Disk

8 GB

/

/home

/usr

/var

/tmp

swap

8 GB

/

/usr

/var

/tmp

swap

40 GB

/home

Ben Atkin

Architecture: Installer

Based on existing Automated Installer scripts

Additional subroutine files

disks.sub (disk partitioning)

util.sub (reading from configuration files)

Only uses programs contained in Interactive Installer media (that can fit on a floppy)

Coded in sh and sed

Perl used for:

Configuration file validator

Online monitoring utility

Ben Atkin

Automated Installer: Features

Allow options to be entered manually,
upon request

Works on i386, SPARC64

Internet Monitoring

Simple web page for logs

Configuration File Validator

Build custom disk images

Ben Atkin

Screenshot

Ben Atkin

Tepatche

Originally created at UNAM (Universidad Nacional Autonoma de México) by Gunnar Wolf

Runs as a regularly scheduled task

Checks for security patches on the Internet

Source Patching

Downloads source

Compiles source into machine code

Our task:

Contact Gunnar Wolf for implementation ideas

Add binary (machine code) patching ability

Make other needed improvements

Nauman Qureshi

Architecture: Tepatche

Derived from existing Perl scripts

Divided into modules

Performs similarly to Tepatche

Will patch from source

Can roll back patches after installation

Runs on a schedule

Uses OpenBSD package facility for
Binary Patching

Nauman Qureshi

Architecture: Tepatche

Tepatche::Source

+download_src(): bool

+apply_src_patch(): bool

Tepatche::Binary

+apply_bin_patch(): bool

+create_bin_patch(): bool

+make_psuedo_tree(): bool

Tepatche::Main

+main()

+read_config()

+download_patches()

Nauman Qureshi

Functionality: Tepatche

Functions the Patcher will perform:

Reads the configuration file.

Connects to the stated FTP server to download any new patches.

Applies security patches to the machine.

Nauman Qureshi

Design Paradigm

Based on SCRUM

Frequent meetings

Scrum uses sprints

30 day focus sessions

Our experience

Sprints were shorter for our team, because of the short duration of our project

Sprints were slightly less effective

Frequent meetings were helpful

Nauman Qureshi

Project Timeline

2/18 Requirements Document Complete

3/05 Coding Begins

3/15 Design Document Complete

4/05 Product Mostly Working

4/10 Testing Begins

4/23 Design Presentation

4/25 Submit Product to Client for Testing

5/3 Submit Final Product

Nauman Qureshi

Project Difficulties

Installer

TFTP (Trivial File Transfer Protocol)

Disk Partitioning

Limited tools

Patcher

Learning PERL

Tepatche restructuring

Using package facility

Erik Wilson

Project Successes

Major Functionality Complete

Installer

Disk partitioning works

Automated installation works

Tepatche

Bugs fixed

Binary capabilities exist

Erik Wilson

Project End Result

Client is pleased with the functionality of the product.

Minor bugs need fixing.

Update to reflect changes in OpenBSD 3.5

Documentation of functionality

Web FAQs.

UNIX style manual pages.

Erik Wilson

Project Exhibition & Demo

College of Engineering & Technology

Room 269

1:45 – 3:00

Erik Wilson

Questions

Erik Wilson

Automated Installer

npq2

2004-04-30T10:41:04