OpenBSD paigaldamine

Allikas: Kuutõrvaja

OpenBSD

OpenBSD http://www.openbsd.org/ on avatud lähtekoodiga traditsiooniline BSD-stiilis unixiline operatsioonisüsteem, mille juures on iseloomulik

  • radikaalne läbipaistvus (avatud lähtetekst, turvaintsidentide lahendamine, põhimõtetest kinnipidamine)
  • turvalisus (intsidentide lahendamine, tänu paiknemisele Kanadas on olnud võimalik projekti algusest alates operatsioonisüsteemi integreerida krüptograafia toetust ning seda avalikult kasutajatele kättesaadavaks teha)
  • regulaarne uute versioonide ilmumine kaks korda aastas
  • mitmekesine riistvaraliste platvormide toetus
  • vaikimisi shell on pdksh - public domain Korn shell
  • tarkvara esineb pärinedes nö kolmest allikast - install-meedia baaskomplekt, binary pakettide arhiiv (sisaldab nt amd64 platvormil 2010 aasta sügisel üle 5 500 paketi) ja portsud

OpenBSD arenduse geograafiline keskpunkt asub Kanadas, projekti põhiliseks eestvedajaks on olnud algusest peale Theo de Raadt.

OpenBSD puhul rõhutatakse, et tegu pole mitte ühelt poolt tuumast ning teisest poolt paljudest utiliitidest koosneva süsteemiga, vaid ühe tervikliku süsteemiga.

Lisaks OpenBSD operatsioonisüsteemile on OpenBSD projekt eestvedajaks sellistele tuntud lahendustele

OpenBSD areng on ennekõike keskendunud võrguga seotud küsimustele ja seetõttu on teda äärmiselt sobiv kasutada tulemüürilahendusena. Samuti sobib OpenBSD suurepäraselt võrgukonseptsioonide (tcp/ip, sillad, tunnelid, ipsec, nat, ruuting sh dünaamiline ruuting, paketifilter, eri kihtides töötavad proxy'd, wifi, vpn) tundmaõppimiseks eeldamata kalliste eriseadmete soetamist.

Tehnilises mõttes ei ole takistusi OpenBSD kasutamisel ka töökohaarvutina sh sülearvutina või mõnda levinud teenust pakkuva serverina (nt nimeserver või ftp server).

Operatsioonisüsteemi paigaldamine

Tavaliselt toimub OpenBSD paigaldamine alglaadides arvuti install-meedia CD plaadilt, näiteks amd64 arhitektuuriga PC puhul 2010 aasta alguses on selleks kaks meediavalikut, esimene on nn võrguinstaller, teine paigaldab operatsioonisüsteemi lokaalselt cd'lt

http://ftp.aso.ee/pub/OpenBSD/4.7/amd64/cd47.iso
http://ftp.aso.ee/pub/OpenBSD/4.7/amd64/install47.iso

Seejärel tuleb teha valikud

  • kõvaketta kasutamise osas, mis on erinev Linuxist ning sarnane nt Solarisele
  • tarkvara moodulite osas (vaikimisi pakutakse süsteemi ilma X Window System'ta)
  • võrguseadistused ja arvuti nimi
  • millised teenused paigaldatud süsteemi bootimisel automaatselt käivitatakse
  • millisest allikast süsteem paigaldatakse so tuleb näidata kataloog CD pealt või URL OpenBSD peegli aadressiga

OpenBSD veebikohas on muu väga üksikasjaliku juhendmaterjali seas aadressil http://www.openbsd.org/faq/faq4.html paigaldusjuhend, paigaldamine võiks toimuda alljärgnevalt.

Alglaadimine ja installeri käivitamine

Järgnevalt paigaldame operatsioonisüsteemi install47.iso failist valmistatud CD plaadi kujul esinevalt paigaldusmeedialt, mis sisaldab kõike vajalikku terviklikult paigaldatud operatsioonisüsteemiga töötava arvuti tekitamiseks.

Peale arvuti käivitamise järel CD plaadi seadmesse paigutamist peaks arvutit saama alglaadida CD plaadilt, kui seda ei toimu võib olla vajalik BIOS'est muuta alglaadmiseks kasutatavate seadmete järjekorda.

Esmalt esitatakse konsoolile bootloaderi prompt, näiteks

 Boot from ATAPI CD-ROM : CD-ROM: 9F
 Loading /4.7/I386/CDBOOT
 probing: pc0 com0 com1 apm mem[638K 1534M a20=on]
 disk: fd0 hd0+* hd1+* cd0
 >> OpenBSD/i386 CDBOOT 2.01
 boot> 

Kui boot> prompti mitte midagi ei sisestata, siis läheb arvuti 5 sekundi pärast sealt edasi ja boodib CD pealt operatsioonisüsteemi tuuma. Antud juhul on suunatud installer serial konsoolile, muidu oleks olnud ka raske käesolevat teksti tekitada

 boot> set tty com0

NB! Katse näitab, et boot> promptiga töötamiseks sobib paremini programm cu kui minicom, viimases saab sisestada ühe sümboli ja siis kaob kontroll.

Järgmisena esitatakse konsoolile tuuma laadimisega kaasnevaid teateid

 Copyright (c) 1982, 1986, 1989, 1991, 1993                                         
       The Regents of the University of California.  All rights reserved.
 Copyright (c) 1995-2008 OpenBSD. All rights reserved.  http://www.OpenBSD.org
 
 OpenBSD 4.7 (RAMDISK_CD) #645: Wed Mar 12 11:31:03 MDT 2009
   deraadt@i386.openbsd.org:/usr/src/sys/arch/i386/compile/RAMDISK_CD
 cpu0: Intel(R) Pentium(R) III CPU family 1133MHz ("GenuineIntel" 686-class) 1.14 GHz
 cpu0: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE
 real mem  = 1610117120 (1535MB)
 avail mem = 1549680640 (1477MB)
 mainbus0 at root
 bios0 at mainbus0: AT/286+ BIOS, date 09/16/02, BIOS32 rev. 0 @ 0xfb2c0, SMBIOS rev. 2.2 @    0xf0800 (41 entries)
 bios0: vendor Award Software International, Inc. version "ZRE122A" date 09/16/02
 bios0: IBM -[847951X]-
 ...
 biomask f7e5 netmask ffe5 ttymask ffe7
 rd0: fixed, 3800 blocks
 root on rd0a swap on rd0b dump on rd0b
 erase ^?, werase ^W, kill ^U, intr ^C, status ^T

Tuuma bootimise järel käivitatakse automaatselt OpenBSD installer, mis küsib

 (I)nstall, (U)pgrade or (S)hell? i

Kuna käesoleval juhul on tegu esmakordse süsteemi paigaldamise, tuleb valida 'i', arvuti vastab sellele järgmiselt

 Welcome to the OpenBSD/i386 4.7 install program.
 
 This program will help you install OpenBSD. At any prompt except password
 prompts you can escape to a shell by typing '!'. Default answers are shown
 in []'s and are selected by pressing RETURN.  At any time you can exit this
 program by pressing Control-C, but exiting during an install can leave your
 system in an inconsistent state.
 

Tuleb valida terminali tüüp, reeglina installer pakub sobivat, vt220 ja võiks jätkata klaviatuuri US asetusega

 Terminal type: [vt220] Enter
 kbd(8) mapping? ('L' for list) [none] Enter
 
 IS YOUR DATA BACKED UP? As with anything that modifies disk contents, this
 program can cause SIGNIFICANT data loss.
 
 It is often helpful to have the installation notes handy. For complex disk
 configurations, relevant disk hardware manuals and a calculator are useful.
 

Seejärel tuleb väljendada, et soovitakse paigaldusega jätkata

 Proceed with install? [no] yes
 Cool!  Let's get to it...

Kõvaketaste kasutuselevõtmine

 You will now initialize the disk(s) that OpenBSD will use. To enable all
 available security features you should configure the disk(s) to allow the
 creation of separate filesystems for /, /tmp, /var, /usr, and /home.
 

Installer teatab millised kõvakettad on kasutada ning tuleb valida millisele süsteem paigaldatakse

 Available disks are: wd0 wd1.
 Which one is the root disk? (or 'done') [done] wd0

Järgmisena tuleb valida, kas on plaanis reserveerida kõvakettal ruum mitte-OpenBSD jaoks, see on oluline näiteks dualbootiva Linux-OpenBSD süsteemi valmistamiseks. Kuna antud juhul on eesmärgiks arvuti kasutamine vaid OpenBSD operatsioonisüsteemiga, siis võib vastata 'yes'

 Do you want to use *all* of wd0 for OpenBSD? [no] yes
 Putting all of wd0 into an active OpenBSD MBR partition (type 'A6')...done.
 

Seejärel tuleb moodustada nn disklabel, mis praktiliselt tähendab failisüsteemidele vastavate partitsioonide moodustamist. disklabeli '>' prompt on samaväärne töötava operatsioonisüsteemi sees 'disklabel -E wd0' ütlemisega.

 You will now create an OpenBSD disklabel inside the OpenBSD MBR
 partition. The disklabel defines how OpenBSD splits up the MBR partition
 into OpenBSD partitions in which filesystems and swap space are created.
 
 The offsets used in the disklabel are ABSOLUTE, i.e. relative to the
 start of the disk, NOT the start of the OpenBSD MBR partition.
 
 # Inside MBR partition 3: type A6 start 63 size 39873267
 Treating sectors 63-39873330 as the OpenBSD portion of the disk.
 You can use the 'b' command to change this.
 
 Initial label editor (enter '?' for help at any prompt)
 > 

Alustuseks võib küsida näha olemasolevat disklabelit, disklabeli käsk p esitab disklabeli enda järel oleva argumendi mõõtühikutes, m - megabait

 > p m
 device: /dev/rwd0c
 type: ESDI
 disk: ESDI/IDE disk
 label: ST320011A       
 bytes/sector: 512
 sectors/track: 63
 tracks/cylinder: 255
 sectors/cylinder: 16065
 cylinders: 2482
 total bytes: 19470.9M
 free bytes: 19470.9M
 rpm: 3600
 
 16 partitions:
 #                size           offset  fstype [fsize bsize  cpg]
   c:         19470.9M             0.0M  unused      0     0      

Partitsioon c on nö pseudopartitsioon mis tähendab, et teda otseselt ei kasutatada ja tema suurus vastab kogu kõvakette suurusele. Siiski tuleks teisi kasutatavaid partitsioone ette kujutada asuvatena c partitsiooni kõrval mitte tema sees.

Moodustame partitsiooni ja saaleala vastavalt plaanile

 wd0a: / (root) - 150M
 wd0b: (swap) - 300M
 wd0d: /tmp - 120M
 wd0e: /var - 20M
 wd0g: /usr - 8G
 wd0h: /home - 4G

disklabeli käsk a lisab enda järel oleva nimega partitsiooni

 > a a
 offset: [63] 
 size: [39873267] 150m
 Rounding to cylinder: 321237
 FS type: [4.2BSD] 
 mount point: [none] /
 > a b
 offset: [321300] 
 size: [39552030] 300m
 Rounding to cylinder: 626535
 FS type: [swap] 
 > a d
 offset: [947835] 
 size: [38925495] 1g    
 Rounding to cylinder: 2104515
 FS type: [4.2BSD] 
 mount point: [none] /tmp
 > a e
 offset: [3052350] 
 size: [36820980] 6g
 Rounding to cylinder: 12594960
 FS type: [4.2BSD] 
 mount point: [none] /var
 > a f
 offset: [15647310] 
 size: [24226020] 8g
 Rounding to cylinder: 16787925
 FS type: [4.2BSD] 
 mount point: [none] /usr
 > a g
 offset: [32435235] 
 size: [7438095] 2g
 Rounding to cylinder: 4209030
 FS type: [4.2BSD] 
 mount point: [none] /home

Ning vaatame tulemust, disklabeli käsk p esitab disklabeli enda järel oleva argumendi mõõtühikutes, m - megabait

 > p m
 device: /dev/rwd0c
 type: ESDI
 disk: ESDI/IDE disk
 label: ST320011A       
 bytes/sector: 512
 sectors/track: 63
 tracks/cylinder: 255
 sectors/cylinder: 16065
 cylinders: 2482
 total bytes: 19470.9M
 free bytes: 1576.7M
 rpm: 3600
 
 16 partitions:
 #                size           offset  fstype [fsize bsize  cpg]
   a:           156.9M             0.0M  4.2BSD   2048 16384    1 # /
   b:           305.9M           156.9M    swap                   
   c:         19470.9M             0.0M  unused      0     0      
   d:          1027.6M           462.8M  4.2BSD   2048 16384    1 # /tmp
   e:          6149.9M          1490.4M  4.2BSD   2048 16384    1 # /var
   f:          8197.2M          7640.3M  4.2BSD   2048 16384    1 # /usr
   g:          2055.2M         15837.5M  4.2BSD   2048 16384    1 # /home
 >

Kirjutame disklabeli kõvakettale kusjuures veel on võimalik üle vaadata või muuta ühenduspunkte

 > q
 Write new label?: [y] 
 Mount point for wd0d (size=1052257k)? (or 'none' or 'done') [/tmp] Enter
 Mount point for wd0e (size=6297480k)? (or 'none' or 'done') [/var] Enter
 Mount point for wd0f (size=8393962k)? (or 'none' or 'done') [/usr] Enter
 Mount point for wd0g (size=2104515k)? (or 'none' or 'done') [/home] Enter
 Mount point for wd0d (size=1052257k)? (or 'none' or 'done') [/tmp] done

Süsteemis on ka teine kõvaketas, aga seda praegu ei seadista, ütleme done

 Available disks are: wd1.
 Which one do you wish to initialize? (or 'done') [done] done
 
 OpenBSD filesystems:
 wd0a /
 wd0d /tmp
 wd0e /var
 wd0f /usr
 wd0g /home

Seejärel küsitakse kinnitust, vastame jaatavalt

 The next step *DESTROYS* all existing data on these partitions!
 Are you really sure that you're ready to proceed? [no] yes
 newfs: reduced number of fragments per cylinder group from 20072 to 19984 to enlarge last cylinder group
 /dev/rwd0a: 156.9MB in 321236 sectors of 512 bytes
 5 cylinder groups of 39.03MB, 2498 blocks, 5120 inodes each
 /dev/rwd0d: 1027.6MB in 2104512 sectors of 512 bytes
 6 cylinder groups of 202.47MB, 12958 blocks, 25984 inodes each
 /dev/rwd0e: 6149.9MB in 12594960 sectors of 512 bytes
 31 cylinder groups of 202.47MB, 12958 blocks, 25984 inodes each
 /dev/rwd0f: 8197.2MB in 16787924 sectors of 512 bytes
 41 cylinder groups of 202.47MB, 12958 blocks, 25984 inodes each
 /dev/rwd0g: 2055.2MB in 4209028 sectors of 512 bytes
 11 cylinder groups of 202.47MB, 12958 blocks, 25984 inodes each
 /dev/wd0a on /mnt type ffs (rw, asynchronous, local, ctime=Wed Mar 12 20:13:09 2008)
 /dev/wd0h on /mnt/home type ffs (rw, asynchronous, local, nodev, nosuid, ctime=Wed Mar 12 20:13:09 2008)
 /dev/wd0d on /mnt/tmp type ffs (rw, asynchronous, local, nodev, nosuid, ctime=Wed Mar 12 20:13:09 2008)
 /dev/wd0f on /mnt/usr type ffs (rw, asynchronous, local, nodev, ctime=Wed Mar 12 20:13:10 2008)
 /dev/wd0g on /mnt/var type ffs (rw, asynchronous, local, nodev, nosuid, ctime=Wed Mar 12 20:13:10 2008)

Kusjuures, erinevate failisüsteemide külgeühendamisel kasutatakse erinevaid võtmeid.

Võrguseaded

Järgmisena tuleb installerile öelda

  • arvuti hostname (ilma domeeninime osata)
  • võrgukaartidele vastavad ip aadressid ja võrgumaskid
  • arvuti hostname'i domeeninime osa
  • nimeserveri aadress (DNS)
  • vaikelüüsi aadress (ingl. k. default gateway)
  • juurkasutaja parool
 System hostname? (short form, e.g. 'foo') tulemyyr
 Configure the network? [yes] 
 Available interfaces are: rl0 em0 fxp0.
 Which one do you wish to initialize? (or 'done') [rl0] 
 Symbolic (host) name for rl0? [tulemyyr] 
 The media options for rl0 are currently
       media: Ethernet autoselect
 Do you want to change the media options? [no] 
 IPv4 address for rl0? (or 'none' or 'dhcp') 10.0.1.154
 Netmask? [255.255.255.0] 
 IPv6 address for rl0? (or 'rtsol' or 'none') [none] 
 Available interfaces are: em0 fxp0.
 Which one do you wish to initialize? (or 'done') [em0] 
 Symbolic (host) name for em0? [tulemyyr] 
 The media options for em0 are currently
       media: Ethernet autoselect (none)
 Do you want to change the media options? [no] 
 IPv4 address for em0? (or 'none' or 'dhcp') 192.168.1.154 
 Netmask? [255.255.255.0] 
 IPv6 address for em0? (or 'rtsol' or 'none') [none] 
 Available interfaces are: fxp0.
 Which one do you wish to initialize? (or 'done') [fxp0] 
 Symbolic (host) name for fxp0? [tulemyyr] 
 The media options for fxp0 are currently
       media: Ethernet autoselect (none)
 Do you want to change the media options? [no] 
 IPv4 address for fxp0? (or 'none' or 'dhcp') 172.16.1.154 
 Netmask? [255.255.255.0] 
 IPv6 address for fxp0? (or 'rtsol' or 'none') [none] 
 No more interfaces to initialize.
 DNS domain name? (e.g. 'bar.com') [my.domain] kohtvork
 DNS nameserver? (IP address or 'none') [none] 192.168.1.254
 Use the nameserver now? [yes] no
 Default IPv4 route? (IPv4 address, 'dhcp' or 'none') 172.16.1.253
 add net default: gateway 172.16.1.253
 Edit hosts with ed? [no] 
 Do you want to do any manual network configuration? [no] 
 Password for root account? (will not echo) 
 Password for root account? (again)

Tarkvara paigaldamine

Viimasena tuleb installerile näidata kust ja millised failikomplektid (ingl. k. file set) paigaldatakse. Lähtekohaks on antud juhul cd plaat. OpenBSD tarkvara on jagatud funktsionaalsuse alusel osadeks, mida nimetatakse failikomplektideks. Näiteks seadistusfailid kuuluvad komplekti etc44.tgz, operatsioonisüsteemi tuumasid on kolm variant

  • bsd - tuum, seda tuuma soovitatake kasutada
  • bsd.rd - mälukettal töötav tuum (ingl. k. ramdisk), võiks paigaldada, kui süsteemiga midagi juhtub, siis saab selle abil shelli kasutada
  • bsd.mp - mitme protsessori tugi (ingl. k. multiprocessor), tulemüüris ei ole sellest praktiliselt kasu ja soovitatakse kasutada ühe protsessori toega bsd tuuma)
 Let's install the sets!
 Location of sets? (cd disk ftp http or 'done') [cd] 
 Available CD-ROMs are: cd0.
 Which one contains the install media? (or 'done') [cd0] 
 Pathname to the sets? (or 'done') [4.4/i386] 
 
 Select sets by entering a set name, a file name pattern or 'all'. De-select
 sets by prepending a '-' to the set name, file name pattern or 'all'. Selected
 sets are labelled '[X]'.
 
       [X] bsd
       [X] bsd.rd
       [ ] bsd.mp
       [X] base44.tgz
       [X] etc44.tgz
       [X] misc44.tgz
       [X] comp44.tgz
       [X] man44.tgz
       [X] game44.tgz
       [ ] xbase44.tgz
       [ ] xetc44.tgz
       [ ] xshare44.tgz
       [ ] xfont44.tgz
       [ ] xserv44.tgz
 Set name? (or 'done') [bsd.mp] done
 Ready to install sets? [yes] 
 Getting bsd ...
 100% |**************************************************|  6356 KB    00:02    
 Getting bsd.rd ...
 100% |**************************************************|  5003 KB    00:01  
 Getting base44.tgz ...
 100% |**************************************************| 42854 KB    00:21    
 Getting etc44.tgz ...
 100% |**************************************************|  1190 KB    00:00    
 Getting misc44.tgz ...
 100% |**************************************************|  2252 KB    00:01    
 Getting comp44.tgz ...
 100% |**************************************************| 77563 KB    00:25    
 Getting man44.tgz ...
 100% |**************************************************|  7530 KB    00:05    
 Getting game44.tgz ...
 100% |**************************************************|  2547 KB    00:00    

Kui on plaanis veel failikomplekte paigaldada, saab seda teha või öelda done, et on valmis; valitud nimekirjast saab failikomplekti eemaldada alustades nime miinus märgiga.

 Location of sets? (cd disk ftp http or 'done') [done] 

Installer küsib, kas vaikimisi käivitada ssh deemon süsteemi alglaadimisel

 Start sshd(8) by default? [yes] 

Installer küsib kas ajaseverit kasutaja ja kui siis millist

 NTP server? (host, 'none' or 'default') [none] 172.16.1.253
 Do you expect to run the X Window System? [no] 
 Change the default console to com0? [no] yes
 Available speeds are: 9600 19200 38400 57600 115200.
 Which one should com0 use? (or 'done') [9600] 
 Saving configuration files...done.
 Generating initial host.random file...done.

Installer küsib ajavööndit

 What timezone are you in? ('?' for list) [Canada/Mountain] Europe/Tallinn
 Setting local timezone to 'Europe/Tallinn'...done.

Lõpuks moodustatakse /dev kataloogi seadmed ning paigaldatakse bootloader

 Making all device nodes...done.
 Installing boot block...
 boot: /mnt/boot
 proto: /usr/mdec/biosboot
 device: /dev/rwd0c
 /usr/mdec/biosboot: entry point 0
 proto bootblock size 512
 /mnt/boot is 3 blocks x 16384 bytes
 fs block shift 2; part offset 63; inode block 24, offset 1960
 using MBR partition 3: type 166 (0xa6) offset 63 (0x3f)
 done.

Ja antakse teada, et süsteem on paigaldatud, öelda 'halt' süsteemi seiskamiseks ning käivitamiks vajutada tühikut.

 CONGRATULATIONS! Your OpenBSD install has been successfully completed!
 To boot the new system, enter halt at the command prompt. Once the
 system has halted, reset the machine and boot from the disk.
 # halt
 syncing disks... done
 
 The operating system has halted.
 Please press any key to reboot.

Paigaldamise tulemusena saab süsteemi sisse logida root kasutajana ning arvuti on ühendatud võrku. OpenBSD järgib tuntud mantrat 'Secure by Default', mis muuseas tähendab, et peale paigaldamist on süsteemis ainult üksikud teenused käivitatud (nt SSH server, mille käivitamise kohta paigaldamise käigus küsiti), seepärast on peale süsteemi paigaldamist järgmine tegevus tõenäoliselt vajalike teenuste seadistamine ning käivitamine.

Kuigi OpenBSD süsteemi kuuluvale tarkvarale saab lisaks paigaldada tarkvara põhimõtteliselt kolmest erinevast allikast

  • binaarsed paketid
  • OpenBSD ports süsteem
  • lähtetekstidest kompileerimine

sisaldub nö tavapärase OpenBSD kasutusala jaoks vajalik tarkvara süsteemis endas. Näiteks sisaldub süsteemis

  • nimeserver Bind ja vastavad utiliidid
  • veebiserver Apache
  • DHCP tarkvara
  • PF paketifilteri juhtimise programm pfctl
  • SSH server ja klient
  • NFS server ja klient
  • NTP server
  • tcpdump võrguliikluse jälgimiseks
  • CVS tarkvara
  • relayd on kolmanda ja seitsmenda osi kihi vahendaja
  • greylistingu tarkvara spamd

ning süsteemis näiteks ei sisaldu ning tavaliselt paigaldatakse binaarsetest pakettidest

  • PF paketifiltri statistikaprogramm pftop
  • tekstieditor Joe kui kasutaja ei ole valmis üldiselt võimsamaks hinnatud programmi vi kasutama
  • screen, mis võimaldab kaughalduse korral mugavamalt terminali kasutada
  • rsync
  • gnupg

Binaarsete pakettide haldus

Binaarseid pakette jagatakse reeglina samuti OpenBSD peegelserverites, näiteks PC puhul aadressil http://ftp.aso.ee/pub/OpenBSD/4.2/packages/i386/. Peegelserveri kasutamiseks tuleb kirjeldada keskkonnamuutuja

# export PKG_PATH=http://ftp.aso.ee/pub/OpenBSD/4.2/packages/i386/

PF paketifiltri statistikaprogrammi pftop paigaldamiseks tuleb öelda

# pkg_add -i pftop

kus võtme -i kasutamisel vajadusel saab kasutaja vastata olulistele küsimustele interaktiivses režiimis.

Paigaldatud paketi kohta saab andmeid vaadata selliselt, kui paketi nimi ära jätta esitatakse nimekiri kõigist süsteemi lisatud pakettidest

# pkg_info pftop                                                                                                                           
Information for pftop-0.5

Comment:
curses-based real time state and rule display for pf

Description:
pfTop is a curses-based utility for real-time display of
active states and rules for pf. It is a cross between top
and pfctl -sr and pfctl -ss. 

Maintainer: Can Erkin Acar <canacar@eee.metu.edu.tr> 

WWW: http://www.eee.metu.edu.tr/~canacar/pftop/

Paigaldatud paketi uuendamiseks tuleb öelda

# pkg_add -u pftop

kõigi pakettide uuendamiseks

# pkg_add -u

Paketi eemaldamiseks tuleb öelda

# pkg_delete pftop

GNU tarkvara kompileerimine

GNU tarkvara kompileerimiseks sobib OpenBSD keskkonnas kasutada /usr/local/bin/gmake programmi

# make gmake

Seejärel rakendada nö tavalist järgnevust

$ tar zxf arhiivinimi.tgz
$ ./configure --prefix=/katalooginimi
$ gmake
$ gmake install

Portsude kasutamine

Sisuliselt samasugusele tulemusele nagu binaarseid pakette kasutades on võimalik jõuda kasutades OpenBSD ports süsteemi. OpenBSD arendajad on kohaldanud paljude programmide kasutamise OpenBSD keskkonnas ning see on vormistatud Makefile'ide ja OpenBSD spetsiifiliste paikade komplektina, mida jagatake OpenBSD ametlikes peeeglites failis ports.tar.gz, näiteks http://ftp.aso.ee/pub/OpenBSD/4.7/ports.tar.gz. Kuna tegu on kompileerimist abistava failiga, siis põhimõtteliselt on ta riistvaralisest arhitektuurist sõltumatu.

Portsude süsteemi kasutamiseks tuleb see fail kopeerida arvutisse ning pakkida lahti /usr kataloogi

# tar zxf ports.tar.gz

Tulemusena moodustub kataloog /usr/ports. Seejärel tuleb siseneda soovitud programmile vastavasse kataloogi ning öelda tarkvara paigaldamiseks make install, nt selliselt

# cd /usr/ports/www/lighttpd
# make install

Portsude kataloogile saab cvs abil uuendusi rakendada, nt reliisile stablega seotud muudatuste rakendamiseks tuleb öelda

# cd /usr/ports
# export CVSROOT=anoncvs@anoncvs.estpak.ee:/OpenBSD
# cvs -q update -r OPENBSD_4_7 -Pd

Nii nagu binaarsete pakettide kasutamisel tuleb arvestada portsude puhulgi, et neid ei hallata samasuguse tähelepanelikkusega nagu OpenBSD baas-süsteemi.

Operatsioonisüsteemi tarkvara uuendamine

Operatsioonisüsteemi nö põhiosa tarkvara-uuendusi kajastatakse aadressil http://www.openbsd.org/errata.html kust tuleb valida sobiva versiooni kohta käivate paranduste ülevaade. Protseduur toimub .patch faili kopeerimise ja kompileerimise ning seejärel vastavate teenuste restartimise teel.

Kompileerimiseks peavad olema /usr/src kataloogi lahti pakitud usr.tar.gz ja sys.tar.gz arhiivid.

 # cd /usr/src
 # wget http://ftp.aso.ee/pub/OpenBSD/4.7/src.tar.gz
 # http://ftp.aso.ee/pub/OpenBSD/4.7/sys.tar.gz
 # tar zxf src.tar.gz
 # tar zxf sys.tar.gz

Näiteks 2010 aasta varakevadel on asjakohane OpenBSD 4.7 versioonile rakendada sellised paigad (vt http://www.openbsd.org/errata47.html)

 # cd /usr/src
 # wget ftp://ftp.openbsd.org/pub/OpenBSD/patches/4.7/common/001_kerberos.patch
 # wget ftp://ftp.openbsd.org/pub/OpenBSD/patches/4.7/common/002_mpi.patch
 # wget ftp://ftp.openbsd.org/pub/OpenBSD/patches/4.7/common/003_openssl.patch
 # wget ftp://ftp.openbsd.org/pub/OpenBSD/patches/4.7/common/004_pfsync.patch
 # wget ftp://ftp.openbsd.org/pub/OpenBSD/patches/4.7/common/005_pfsync.patch
 ...

Paikade alguses on reeglina kirjas paiga rakendamiseks vajalik tegevusjuhis, antud juhul nt paiga 002 puhul tuleb sooritada sarnane järgnevus

Apply by doing:
        cd /usr/src
        patch -p0 < 002_mpi.patch

Then build and install a new kernel.

Tuuma kompileerimist ja paigaldamist on kirjeldatud tekstis http://kuutorvaja.eenet.ee/wiki/OpenBSD_tarkvara_kompileerimine#Tuuma_kompileerimine.

Paiga 003 puhul tuleb sooritada sarnane

Apply by doing:
        cd /usr/src
        patch -p0 < 003_openssl.patch

And then rebuild and install the library and statically-linked binaries
that depend upon it:

        cd lib/libssl
        make obj
        make depend
        make includes
        make
        make install
        cd ../../sbin
        make obj
        make depend
        make
        make install

Muudatuste kehtestamiseks tuleb uuesti käivitada vastavaid teeke kasutavad programmid.

Operatsioonisüsteemi varundamine

OpenBSD operatsioonisüsteemi varundamiseks sobib kasutada rsync tarkvara, mille abil saab kopeerida kogu failisüsteemi üle võrgu teise arvutisse. Nii tehtud koopiast saab taastada sama riistvaralise arhitektuuriga arvutisse töötava süsteemi.

 # rsync -avH --numeric-ids --exclude-from=/root/exclude-from / root@192.168.1.15:/data/backup/tulemuur-20080521

Failis /root/exclude-from saab näidata, milliseid katalooge ignoreerida, nt /tmp kataloogi

 # cat /root/exclude-from
 /tmp

Operatsioonisüsteemi taastamine

Süsteemi saab taastada sooritades sellise järgnevuse

  1. bootida töötav riistvara cd43.iso plaadilt, st sisuliselt siis bsd.rd tuumaga ramdiski shelli
  2. seadistada arvuti võrku ifconfig käsuga
  3. moodustada failisüsteemid ja ühendada külge
  4. kopeerida ftp kliendiga üle võrgu varund tar ahriivi kujul ja kasutades toru pakkida lahti
  5. kohendada vajaudsel seadistusfaile
  6. paigaldada bootloader
  7. bootida taastatud süsteem

Konkreetselt toimuksid need sammud selliselt

Bootida bsd.rd tuumaga töötav riistvara

Praktiliselt tuleb käituda täpselt nõnda nagu operatsioonisüsteemi paigaldamisel, st bootida arvuti cd43.iso või install43.iso meedialt, aga kui installer küsib

 (I)nstall, (U)pgrade or (S)hell? s

tuleb vastata, et shell ja jõutakse juurkasutaja shelli kusjuures lokaalsetelt kõvaketastelt ei ole failisüsteeme külge ühendatud

 #

See on üsna kasin keskkond, kus editoriks on ed ja andmeid saab kopeerida võrgust ftp kliendiga.

Seadistada arvuti võrku

Arvuti tuleb lülitada võrku sellepärast, et saaks kopeerida võrgust varundatud operatsioonisüsteemi tar arhiiv. Selleks tuleb öelda näiteks

 # ifconfig em0 192.168.1.12 netmask 255.255.255.0

Moodustada failisüsteemid

Failisüsteemid tuleb moodustada tavapäraste utiliitidega, uue kõvaketta puhul

 # fdisk -i wd0
 # disklabel -e wd0
 # newfs /dev/wd0a jne

Failisüsteemid tuleks aga ühendada külge nii, et moodustuks hierarhia õieti, kui on sellised partitsioonid

  • wd0a - juurikas
  • wd0d - /tmp
  • wd0e - /var
  • wd0f - /usr
  • wd0g - /home

Siis tuleks moodustada kataloog /mnt/wd0 ning selle alla ühendada wd0a. Seejärel moodustada /mnt/wd0 kataloogi alamkataloogid /mnt/wd0/var ja /mnt/wd0/usr ning ühendada külge, tulemus on selline

 /dev/wd0a /mnt/wd0
 /dev/wd0d /mnt/wd0/var
 /dev/wd0f /mnt/wd0/usr

Kui taastamine toimub näiteks wd1 seadmele, siis võib olla tarvis esmalt moodustada seadmefailid öeldes

 # cd /dev
 # ./MAKEDEV wd1

Kopeerida varundatud andmed taastatavasse süsteemi

Kuivõrd kasutada on ftp klient ning tar ja gunzip programmid, siis tuleb esmalt rsync abil varundatud andmed kokku pakkida

 # cd /data/backup/tulemuur-20080521
 # tar zcf /home/ftp/tulemuur-20080521.tgz .

ning teha /home/ftp kataloog ftp protokolli abil nt anonüümselt taastatavale arvutile ligipääsetavaks. Seejärel öelda taatatavas arvutis

 # cd /mnt/wd0
 # ftp -o - 192.168.1.15/tulemuur-20080521.tgz | tar -xzphf -

Kusjuures, ftp programm on samalajal ka http klient, st võib kopeerida samuti võrgust http serverilt andmed

 # ftp -o - http://192.168.1.15/tulemuur-20080521.tgz | tar -xzphf -

Bootloaderi paigaldamine

Bootloaderi paigaldamiseks tuleb öelda

 # cd /mnt/wd0/usr/mdec
 # ./installboot -v boot biosboot wd0
 boot: boot
 proto: biosboot
 device: /dev/rwd0c
 biosboot: entry point 0
 proto bootblock size 512
 boot is 3 blocks x 16384 bytes
 fs block shift 2; part offset 71303231; inode block 33172752, offset 6824
 using MBR partition 3: type 166 (0xa6) offset 63 (0x3f)

Oluline on, et boot fail asub samal kõvakettal, mis on viimaseks argumendiks.

Lõpuks tuleb arvuti bootida ja kui kõik on korras, hakkab arvuti uuesti tööle.

Ühekasutajarežiim ja juurkasutaja parooli ülekirjutamine

Üldiselt saab arvutit käivitada kahes režiimis

  • mitmekasutajarežiim (ingl. k. multiuser mode) - tavapärane arvutikasutus, võrk ja teenused töötavad
  • ühekasutajarežiim (ingl. k. single user mode) - piiratud arvutikasutus sisenemisega konsoolilt (sh serial konsoolilt), juurfailisüsteem on ühendatud külge readonly olekus, võrk ei tööta, protsesse on käivitatud minimaalselt

Ühekasutajarežiim on sobiv kui süsteemiga on midagi juhtunud ja ta ei käivitu normaalselt või juhuks, kui on ununenud juurkasutaja parool, siis saab selle muutu ühekasutajarežhiimis. Ühekasutajarežiimi prompti sisenemiseks tuleb öelda teise taseme bootloaderis

 boot> boot -s
 booting hd0a:/bsd: 5913424+1004644 [52+306864+287943]=0x72a4d4
 entry point at 0x200120û
 [ using 595232 bytes of bsd ELF symbol table ]
 Copyright (c) 1982, 1986, 1989, 1991, 1993
       The Regents of the University of California.  All rights reserved.
 Copyright (c) 1995-2008 OpenBSD. All rights reserved.  http://www.OpenBSD.org
 
 OpenBSD 4.4 (GENERIC) #698: Wed Mar 12 11:07:05 MDT 2008
   deraadt@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC
cpu0: Intel Pentium III ("GenuineIntel" 686-class, 128KB L2 cache) 702 MHz
...
 biomask f365 netmask ff65 ttymask ffe7
 mtrr: Pentium Pro MTRR support
 softraid0 at root
 root on wd0a swap on wd0b dump on wd0b
 Enter pathname of shell or RETURN for sh: <Enter>
 Terminal type? vt220
 #

Seejärel saab arvutit piiratud võimalustega kasutada, kusjuures nt juurfailisüsteemile vastavale seadmele viidatakse root_device

 # df -h
 Filesystem     Size    Used   Avail Capacity  Mounted on
 root_device    300M   35.8M    249M    13%    /

Ununenud juurkasutaja parooli ülekirjutamiseks tuleb esmalt ühendada / (juur) ja /usr failisüsteemid

 # /sbin/fsck -p /                                                              
 /dev/rwd0a: file system is clean; not checking
 # mount -uw /
 # /sbin/fsck -p /usr
 /dev/rwd0f: file system is clean; not checking
 # mount /usr 

ning seejärel kasutada tavapäraselt passwd programmi. Ühekasutajarežiimist mitmekasutajarežiimi minemiseks tuleb öelda reboot või Ctrl-D

 # ^D
 setting tty flags
 net.inet.ip.forwarding: 0 -> 1
 starting network
 starting system logger
 starting initial daemons: ntpd.
 savecore: /dev/wd0b: Device not configured
 checking quotas: done.
 building ps databases: kvm dev.
 clearing /tmp
 starting pre-securelevel daemons:.
 setting kernel security level: kern.securelevel: 0 -> 1
 creating runtime link editor directory cache.
 preserving editor files
 starting network daemons: sendmail inetd sshd.
 starting local daemons:.
 standard daemons: cron.
 Wed Jun 18 20:13:21 EEST 2008
 
 OpenBSD/i386 (tulemyyr.kohtvork) (tty00)
 
 login:

Probleemid

Kui OpenBSD ei alglaadi, siis võib olla põhjus selles, et bootloader on kõvakettal ebasobivast kohas, tavaliselt nö liiga kaugel ketta algusest. Selle vastu aitab öelda

 # cp /usr/mdec/boot /boot
 # /usr/mdec/installboot -v /boot /usr/mdec/biosboot wd0

Operatsioonisüsteemi konservatiivne seadistamine

Kui on eesmärgiks seadistada käima OpenBSD süsteem silmapaistvalt konservatiivselt võiks tähelepanu pöörata järgmisetele asjaoludele

  • rc.conf.local skriptist lülitada välja inetd deemon
  • rc.conf.local skriptist lülitada sisse paketifilter
  • moodustada süsteemi tavakasutajad ja logida eemalt sisse ainult tavakasutajana
  • /etc/sshd_config failist piirata otse juurkasutajana sissepääsu, nt ridadega
 ...
 PermitRootLogin yes
 AllowUsers mart root@127.0.0.1 root@localhost.loomaaed.aso.ee

Märkused

  • OpenBSD versioonis 4.4 sisaldub oluliselt täienenud võimalustega systat programm, erinevate ekraanide vahel saab liikuda vasakule ja paremale nooltega.
  • Paigaldusmaterjali kontrolliks sobib talitada nii, et kopeerida materjal ühest peeglist ning kontrollsummade fail SHA256 teisest ja siis öelda nt nii, kataloog sisaldab SHA256 nimelist faili ning kontrollitavaid faile
 # cksum -c SHA256                                                                              
 (SHA256) base45.tgz: OK
 (SHA256) bsd: OK
 (SHA256) bsd.mp: OK
 (SHA256) bsd.rd: OK
 (SHA256) comp45.tgz: OK
 (SHA256) etc45.tgz: OK
 (SHA256) game45.tgz: OK
 ..

Securiy Levels

TODO

  • Vaikimisi ei saa Ctrl-Alt-Del abil konsoolilt arvutit alglaadida, kui öelda, siis saab
 # sysctl -w machdep.kbdreset=1

Riistvara

PCI seadmete nimekirja esitamiseks sobib öelda

 # pcidump
 ...
 1:0:0: Symbios Logic SAS1078
 6:0:0: unknown unknown
 7:0:0: Matrox unknown
 11:0:0: Broadcom BCM5709
 11:0:1: Broadcom BCM5709
 26:0:0: IDT 89HPES12N3A
 27:2:0: IDT 89HPES12N3A
 27:4:0: IDT 89HPES12N3A
 28:0:0: Intel PRO/1000 QP (82571EB)
 28:0:1: Intel PRO/1000 QP (82571EB)
 29:0:0: Intel PRO/1000 QP (82571EB)
 29:0:1: Intel PRO/1000 QP (82571EB)

Konkreetse seadme andmete esitamiseks sobib öelda

 # pcidump -v 28:0:0
 Domain /dev/pci:
 28:0:0: Intel PRO/1000 QP (82571EB)
       0x0000: Vendor ID: 8086 Product ID: 10bc
       0x0004: Command: 0047 Status ID: 0010
       0x0008: Class: 02 Subclass: 00 Interface: 00 Revision: 06
       0x000c: BIST: 00 Header Type: 80 Latency Timer: 00 Cache Line Size: 10
       0x0010: BAR mem 32bit addr: 0x97b60000
       0x0014: BAR mem 32bit addr: 0x97b40000
       0x0018: BAR io addr: 0x00003020
       0x001c: BAR empty (00000000)
       0x0020: BAR empty (00000000)
       0x0024: BAR empty (00000000)
       0x0028: Cardbus CIS: 00000000
       0x002c: Subsystem Vendor ID: 8086 Product ID: 11bc
       0x0030: Expansion ROM Base Address: fffe0000
       0x0038: 00000000
       0x003c: Interrupt Pin: 02 Line: 07 Min Gnt: 00 Max Lat: 00
       0x00c8: Capability 0x01: Power Management
       0x00d0: Capability 0x05: Message Signaled Interrupts (MSI)
       0x00e0: Capability 0x10: PCI Express

User Kernel Config

UKC (ingl. k- User Kernel Config, kasutaja seadistab kernelit) võimaldab binaarse tuuma funktsionaalsust teatud osas muuta ilma vajaduseta tuuma ringi kompileerida. Nt

 boot> bsd -c
 ...
 UKC> disable mpbios
  54 mpbios0 disabled
 UKC> quit

ning süsteemis öelda näiteks, et salvestada muudatus tuuma binaari

 # config -ef /bsd
 ...  
 ukc> disable mpbios
  54 mpbios0 disabled
 ukc> quit
 Saving modified kernel.

Kasulikud lisamaterjalid