First Time - After Boot

[Ref: afterboot(8)]

The afterboot man pages list a sequence of issues to review after the OpenBSD system has been configured and is up and running. For the 'expert' practioner many of the items seem trivial, for us newbies it is a good time to review basic skills that will be re-used often and will probably minimise problems that would otherwise occur just from not checking 'basic' items.

afterboot is a serious document if you want to ensure the stability of your system. I recommend you read the document anyway and use these pages as supportive material where possible. These notes are supportive of afterboot material.

Date - Setting the System Date

You can check and configure the system date using the date command. Without parameters, date command will display the current system date. You can set the date by using the following template


Where YYYY is the four digit year, followed by MM a two digit month of the year, DD a two digit date of the month, HH a two digit (24 hour) representation of the hour, and MM for the minute in the hour.

Using the above specification, we can set (as per man afterboot example)

# date 199901271504

Set the current date to January 27th, 1999 3:04pm.

For those new to the convention used above (YYYYMMDDHHMM) it is the ANSI specified date format for SQL. I also prefer the above date formatting as it is less confusing when sharing things with the Americans 8-)

TimeZone - Specifying the Time Zone

The time zone information is recorded as data files under the /usr/share/zoneinfo directory. So if I want to set the timezone to Paris, France then I can look it up using "find / -name "Paris" -print" and I can specify the zone file by typing in:

/root # cd /usr/share/zoneinfo 
zoneinfo # find . -name "Paris" -print 
./Europe/Paris zoneinfo 
# ln -fs /usr/share/zoneinfo/Europe/Paris /etc/localtime

Of course for us people in Tonga with UTC+13 we use ln -fs /usr/share/zoneinfo/Pacific/Tongatapu /etc/localtime (I thought you might just want to know that ?)

Checking the Network Base Services

Basic services for connecting on the network are generally covered by these three items.

Host configuration details

Files: /etc/hosts, /etc/myname

For many network services to function they need to determine the name of the current host. Host Details are checked by using the hostname command. hostname will display what your current host name is. If you need to change the hostname more details are available in the hostname(1) man page. If you change the hostname, then you need to also make the change to /etc/myname and possibly /etc/hosts.

/etc/hosts is a text file listing IP addresses and their related hostnames. Your hostname should be in this file associated with the IP address which you assigned your host during installation.

/etc/myname is a text file with just one line containing the hostname of your machine.

Network interface configuration

Network interfaces are necessary if you wish to communicate to other computers (at least if you want to communicate using the standard tools.) In most cases the network interface device will be an ethernet card. To list the network devices recognised by your system we use the ifconfig -a command.

# ifconfig -a

The ifconfig -a command will list the network interfaces currently active on the system. This will let you review what the system knows of itself during this instance. You can set the default configurations by editing the /etc/hostname.* file that corresponds to the network interface.

If the ifconfig -a command lists an interface le0 than the corresponding hostname file will be /etc/hostname.le0

Example: ifconfig -a displays the following ethernet device on my compaq with a HP network card.

    inet netmask 0xffffff00 broadcast
inet6 fe80::260:b0ff:fea4:18d3%le1 prefixlen 64 scopeid 0x1 

The related hostname file is /etc/hostname.le1 which contains the lines

inet NONE 
inet alias

You can see that the inet line in hostname.le1 corresponds to the inet line displayed by ifconfig -a. ifconfig allows you to manually configure the network card, or at least check different configurations before you insert the details into the hostname.interface file. Details for configuring the network card are read from the /etc/hostname.interface file during the boot sequence.

An example output for the loopback device will look like:

lo0: flags=8009<UP,LOOPBACK,MULTICAST> mtu 32972
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3 inet6 ::1 prefixlen 128
inet netmask 0xff000000

If you have other network interfaces (example a ppp connection) then these will also be listed. Check the afterboot and ifconfig pages for more details.

The inet line specifies IPv4 information whereas the inet6 line specifies IPv6 information. Since OpenBSD is an early adopter of IPv6 you will see this additional information for many network devices.

Routing Configuration

[Ref: netstat | route ] We can check the network routing using netstat -r -n

# netstat -r -n
Routing tables

Destination      Gateway          Flags  Refs  Use   Mtu   Interface

127/8          UGRS   0       0  32972    lo0        UH     4      42
192.168.101/24   link#1           UC     0       0   1500    le1        UGHS   0     122  32972    lo0  link#1           UHL    3      49   1500    le1
207.124.66/24    link#1           UC     0       0   1500    le1        UGHS   0       5  32972    lo0
224/4          URS    0       0  32972    lo0 

If you are new to Unix, then just check to make sure the IP address you specified specified for your host is listed and take a note that the IP range (class) is gatewayed through the interface.

In the above example all 192.168.101/24 destinations (except for my host ip address nor the broadcast address are sent through link#1 which is my network inteface le1 [note: I need to verify more of this detail]

As I have an alias to the the 207.124.66/24 destinations are also sent through link#1 (except for the host alias [note: I need to verify more of this detail]

The default gateway address is stored in the /etc/mygate file. If you need to edit this file, a painless way to reconfigure the network afterwards is route flush followed by a sh -x /etc/netstart command. Or, you may prefer to manually configure using a series of route add and route delete commands (see route(8))

# route flush
# sh -x /etc/netstart

Daily, Weekly, Monthly Scripts

Actions that are scheduled to occur in a repetitive pattern such as once each day, each week, each month can be placed into the /etc/daily.local /etc/weekly.local /etc/monthly.local scripts.

The OpenBSD installation supplies a set of standard /etc/daily, /etc/weekly, and /etc/monthly scripts. The scripts will check for daily.local, weekly.local, and monthly.local so you should specify your scripts as part of one of the above *.local files.

Finding and locating files. One of the more frequently asked questions is how to find a file. The /etc/weekly script updates (on a weekly basis) the locate.db file to index files on your system. To manually execute the db update, see the notes below.

To manually execute any of the above scripts, they are sh shell scripts, then use one of the examples below

# sh /etc/daily
# sh /etc/weekly
# sh /etc/monthly