OpenBSD seadistamine

Allikas: Kuutõrvaja

Sissejuhatus

Omajagu olulisi operatsioonisüsteemi seadistusi puudutavaid valikud tehakse ära operatsioonisüsteemi paigaldamise käigus, nt mis puudutavad kõvakettakasutust. Samuti antakse arvutile nimi, ip aadress, õeldakse, kas bootimise järgselt sshd server käivitada. Kõvakettaseadistuse osas tehtud valikut on töötava süsteemi tingimustes suhteliselt raske muuta, samas ip aadressi või seda kas sshd server bootimisel käivitatakse, on suhteliselt lihtne muuta.

Käesolevas palas selgitatakse, kuidas kõige sagedamini muutmist vajavaid arvuti tööd mõjutavaid parameetreid kontrollida.

Võrguseadmete seadistamine

Reeglina ei ole kombeks OpenBSD kasutamisel operatsioonisüsteemi tuuma ümber kompileerida eesmärgiga lülitada sisse vajalike võrgukaardi mudelite tuge - OpenBSD poolt toetatud seadmete tugi on olemas ning riistvara tuntakse automaatselt ära või siis parasjagu kasutada olevate seadmete tugi puudub ja tõenäoliselt on sel juhul lihtsam leida riistvara, mis on toetatud.

Võrguseadmed esinevad tootjale iseloomulike nimedega, täpsemat infot saab vastavast võrguseadme draiveri manuaalist, nt 'man em'

  • em - Inteli Gbit kaardid
  • bge - Broadcomi Gbit kaardid
  • fxp - Inteli 100 Mbit kaardid
  • xl - 3Com 100 Mbit kaardid

Võrguseadme seadistamiseks tuleb öelda

# ifconfig em0 172.16.1.17 netmask 255.255.255.252

või uuemate (4.3 ja 4.4) versioonide puhul ka CDIR (ingl. k. Classless Inter-domain Routing) notatsioonis

# ifconfig em0 172.16.1.17/24

Soovides, et bootimise järgselt omandaks seade samad väärtused, tuleb tekitada fail /etc/hostname.em0 sisuga

inet 172.16.1.17 255.255.255.252 NONE

hostname.if seadistusfaili süntaksit on kirjeldatud manuaalis man hostname.if.

Võrguseadmele aadresside lisamiseks tuleb öelda

# ifconfig em0 inet alias 172.16.1.18 netmask 255.255.255.255

Soovides, et bootimise järgselt oleks alias olemas tuleb lisada /etc/hostname.em0 faili rida

inet alias 172.16.1.18 255.255.255.255

Aliase eemaldamiseks tuleb öelda

# ifconfig em0 inet delete 172.16.1.18 netmask 255.255.255.255

Kui võrguseadme peab omandama ip aadressi dhcp serveri käest, peab fail /etc/hostname.seadmenimi fail sisaldama

 dhcp

Kui ruutingutabelis on nt kirje 192.168.2.0/24 ruutimise kohta, siis arvuti võrguseadmele sellest võrgust ip aadresse seadistamisel öeldakse

 # ifconfig em1 192.168.2.30/24
 ifconfig: SIOCAIFADDR: File exists

Liikluse ruutimine

Selleks, et OpenBSD hakkas liiklust ruutima tuleb tulemüüri võrguseadmed sobivalt seadistada, ühendada kaablid teiste arvutitega ning öelda

# sysctl -w net.inet.ip.forwarding=1

Selleks, et alglaadimise järgselt omandaks see tuuma parameeter sama väärtused, tuleb redigeerida faili /etc/sysctl.conf.

Tavaliselt on lisaks võrguseadmete seadistamisele vajalik öelda ka vaikelüüsi aadress

# route add default 172.16.1.18

Selleks, et alglaadimise järgselt seadistataks see vaikelüüsi aadress, tuleb kirjutada faili /etc/mygate

172.16.1.18

IPv4 ruutingutabelit näeb öeldes

# route -n show -inet

Kontrollimaks, et ruutimine iseenesest toimib tasub vajadusel paketifilter välja lülitada käsuga 'pfctl -d' ning nt pingimise abil veenduda, et liiklus tulimüüri läbib.

Võrgule ruutingu lisamiseks tuleb öelda

# route add 192.168.15.0/24 192.168.1.3
add net 192.168.15.0/24: gateway 192.168.1.3

Selleks, et staatiline ruuting kehtestuks bootimise käigus, tuleb lisada vastava võrguseadme /etc/interface.if-name faili juurde rida

 !route add 192.168.15.0/24 192.168.1.3

ning selle ruutingu eemaldamiseks

# route delete 192.168.15.0/24
delete net 192.168.15.0/24

Hosti 192.168.16.14 juurde pakettide ruutimiseks lüüsi 192.168.15.4 kaudu tuleb öelda

 # route add 192.168.16.14 192.168.15.4

ning selle ruutingu eemaldamiseks

 # route delete 192.168.16.14

Ruutingu kirjeldamisel saab ruuditavate aadressidega seostada sildi (ingl. k. label)

 # route add 10.144.144.0/24 192.168.252.252 -label wifi_vork

ning seejärel saab seda silti kasutada nt paketifiltris ruutingule vastavate aadresside tähistamiseks.

Ruutingutablis toimuvaid muutusi saab jälgida öeldes, -n näitamisel ei tehta nimelahendusi

 # route -n monitor
 ..
 got message of size 168 on Sat Oct 24 13:50:16 2009
 RTM_ADD: Add Route: len 168, priority 0, table 0, pid: 0, seq 0, errno 0
 flags:<UP,HOST,DONE,LLINFO,CLONED>
 locks:  inits: 
 sockaddrs: <DST,GATEWAY,IFP,IFA>
 192.168.2.69 link#33 00:00:5e:00:01:c8 192.168.2.1

Alglaadimise järgselt automaatselt käivitatavad programmid

Failide /etc/rc.conf ning /etc/rc.conf.local sisu määrab, millised programmid käivitatakse peale OpenBSD alglaadimist. /etc/rc.conf faili tuleks käsitleda template'ina ja muudatusi teha vaid failis /etc/rc.conf.local. Näiteks selleks, et nimeserver automaatselt käivitus peab sisaldub /etc/rc.conf.local failis rida

named_flags=""

kusjuures, vaikimisi st /etc/rc.conf failis on vastav rida

named_flags="NO"

Lisaks programmide käivitamisele saab /etc/rc.conf.local faili abil lülitada automaatselt sisse PF paketifiltri reaga

pf="YES"

Tuuma parameetrite vaikeväärtuste muutmiseks tuleb redigeerida faili /etc/sysctl.conf, näiteks võrguliikluse ruutimiseks peab seal sisalduma rida

net.inet.ip.forwarding=1

Paketihalduse vahenditega või nt niisama lähetetekstist lisatud programmide käivitamist tuleks teha failist /etc/rc.local, nt Squid puhul lisada sektsioon

   if [ -x /usr/local/sbin/squid ]; then
       echo -n ' squid';       /usr/local/sbin/squid
   fi

Kõvaketta seadistamine

Kõvaketta disklabeli sisu vaatamiseks tuleb öelda

# disklabel /dev/wd0c                                                                                                                      
# Inside MBR partition 3: type A6 start 63 size 39871377
# /dev/wd0c:
type: ESDI
disk: ESDI/IDE disk
label: IC35L020AVER07-0
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 16
sectors/cylinder: 1008
cylinders: 16383
total sectors: 39876480
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0           # microseconds
track-to-track seek: 0  # microseconds
drivedata: 0 

16 partitions:
#             size        offset  fstype [fsize bsize  cpg]
 a:      30000000            63  4.2BSD   2048 16384  328 # Cyl     0*- 29761*
 b:       2687361      30000063    swap                   # Cyl 29761*- 32427 
 c:      39876480             0  unused      0     0      # Cyl     0 - 39559

Kasutaja keskkonna seadistamine

Selleks, et hakkaks kogunema shelli history tuleb lisada faili ~/.profile read

export HISTSIZE=1024
export HISTFILE=~/.ksh_history

Hea on promptis näha ka süsteemi nime, selleks kasutage

 export PS1="`hostname -s`:\w# "

Sendmaili seadistamine

Süsteemi põhiosas sisaldub tarkvara Sendmail kusjuures ports arhiivist saab paigaldada erinevaid eposti vahendamise programme (Exim, Postfix jt).

Kui OpenBSD ei ole otseselt postimasin, siis tema enda poolt genereeritud raportite kasutaja postkasti edasi saatmiseks piisab kirjeldada root kasutajale /etc/mail/aliases failis aadress, lisades näiteks rea

 root: mart@loomaaed.tartu.ee

Vaikimisi käivitatakse sendmail vaid lokaalselt kirju vastu võtma ja edasi saatma, kuulates 127.0.0.1:25 soketil.

Huvitavam Sendmaili seadistamise väljakutse võiks olla sellise ülesande lahendamine

  • Sendmail kasutab kirjade väljasaatmiseks releed.
  • Kõigi väljuvate kirjade From aadressid kirjutatakse nii kirja osas kui ümbrikul ümber.

Selleks tuleb sooritada sellised sammud

  • Kopeerime template'i
 # cd /usr/share/sendmail/cf
 # cp openbsd-localhost.mc loomaaed.mc
  • Redigeerime loomaaed.mc faili, kusjuures read on lisatud enne MAILER direktiivi ridu
 # diff openbsd-localhost.mc loomaaed.mc
 25a26,29
 > define(`SMART_HOST', `smtp.loomaaed.tartu.ee')dnl
 > MASQUERADE_AS(`loomaaed.tartu.ee')dnl
 > FEATURE(`local_no_masquerade')dnl
 > FEATURE(`masquerade_envelope')dnl
  • Kompileerime uue seadistusfaili
 # m4 ../m4/cf.m4 loomaaed.mc > /etc/mail/loomaaed.cf
  • Käivitame sendmail deemoni uue seadistusfailiga
 # pkill sendmail
 # /usr/sbin/sendmail -L sm-mta -C/etc/mail/loomaaed.cf -bd -q30m

Sendmaili logi asub failis /var/log/maillog ning saba kataloogis /var/spool/mqueue, saba saab esitada käsuga mailq. Sendmaili saba kustutamiseks tundub olevat kõige otsekohesem sooritada järgnevus

  • Sendmail protsess lõpetada
 # pkill sendmail
  • Saba kustutada
 # rm -rf /var/spool/mqueue/*
  • Sendmail käivitada
 # /usr/sbin/sendmail -L sm-mta -C/etc/mail/loomaaed.cf -bd -q30m

Arvuti alglaadimisel käivitatakse Sendmail kui kasutada /etc/rc.conf.local seadistusfailis rida

 sendmail_flags="-L sm-mta -C/etc/mail/loomaaed.cf -bd -q30m"

Protsessi tuumajälg

Protsessi tuumajälje logimiseks (ingl. k. kernel trace logging) on kaks programmi

  • ktrace - lülitab protsessi logimise sisse ja välja ning määratleb, mida logitakse (system calls, signal prcessing jt)
  • kdump - esitab ktrace poolt kogutud andmed loetaval kujul

Näiteks protsessi PID=65 tuumajäljega tegelemiseks tuleb esmalt jälgimine sisse lülitada

 # ktrace -p 65 -f /tmp/65-ktrace.out

Seejarel sooritada huvipakkuvaid tegevusi prosessiga ja lülitada jälgimine välja

 # ktrace -c -p 65

Ning sisuga tutvumiseks öelda

 # kdump -f /tmp/65-ktrace.out

Äärmiselt oluline on peale jälge sisselülitamist sooritada ka väljalülitus, vastasel korral on oht, et failisüsteem täitub trace failiga.

Mitte töötava, st protessi jälgimiseks alates käivitamisest sobib öelda nt

# ktrace -f /tmp/date-trace.out -t n /bin/date
# kdump -f /tmp/date-trace.out
2267 ktrace   NAMI  "/bin/date"
2267 date     NAMI  "/etc/malloc.conf"
2267 date     NAMI  "/etc/localtime"
2267 date     NAMI  "/etc/localtime"

Daily, weekly, monthly

Kord nädalas, laupäeviti käivitatakse /etc/weekly skript, muu seas juhendab see locate.db ehitamist. locate.db erandite tegemiseks tuleb redigeerida /etc/locale.rc seadistusfaili, lisades PRUNEPATHS peale katalooginimi

 PRUNEPATHS="/tmp /var/tmp /usr/tmp /backup"

Tarkvaralise RAID kasutamine

Tarkvaralise RAID (ingl. k. software raid) kasutamiseks on OpenBSD operatsioonisüsteemis olemas mitmeid võimalusi, tundub, et kõige uuem (ja ehk mitte veel kõige stabiilsem ja omadusterohkem) võimalus on nn 'man softraid'. Peab arvestama, et sellist RAID'i ei saa kasutada juurfailisüsteemi jaoks.

Olgu arvutis kasutada neli kõvaketast, wd0 peal on juurikas, ning wd1, wd2 ja wd3 on ühesugused ja ei ole kasutuses. Kolmest komponendist koosnevad vööditatud RAID seadme moodustamiseks tuleb sooritada selline järgnevus

  • Initsialiseerida partitsioonitableid
# fdisk -iy wd1
# fdisk -iy wd2
# fdisk -iy wd3
  • Moodustada RAID partitsioonid
# printf "a\n\n\n\nRAID\nw\nq\n\n" | disklabel -E wd1
# printf "a\n\n\n\nRAID\nw\nq\n\n" | disklabel -E wd2
# printf "a\n\n\n\nRAID\nw\nq\n\n" | disklabel -E wd3

Moodustada RAID skeem

# bioctl -c 0 -l /dev/wd1a,/dev/wd2a,/dev/wd3a softraid0

Tulemust saab vaadata nii

# bioctl sd0                                              
Volume  Status               Size Device  
softraid0 0 Online        25761357312 sd0     RAID0
     0 Online         8587119104 0:0.0   noencl <wd1a>
     1 Online         8587119104 0:1.0   noencl <wd2a>
     2 Online         8587119104 0:2.0   noencl <wd3a>

Kirjutame moodustunud seadme sd0 algusse nullid

# dd if=/dev/zero of=/dev/rsd0c bs=1m count=1

Võtame moodustunud seadme sd0 kasutusele

# fdisk -iy sd0
# printf "a\n\n\n\n4.2BSD\nw\nq\n\n" | disklabel -E sd0
# newfs /dev/rsd0a

Seadme eemaldamiseks tuleb kasutamine esmalt lõpetada ning öelda

# bioctl -d sd0

Riistvaralise RAID kasutamine

Programmiga bioctl saab esitada infot mitmesuguste riistvaraliste RAID kontrollerite külge seadistatud füüsilistest kõvaketastest moodustatud lahendust kohta

  • ciss draiverile vastavad kontrollerid
 # bioctl sd0
 Volume  Status               Size Device  
  ciss0 0 Online        73372631040 sd0     RAID1
        0 Online        73407865856 0:0.0   noencl <HP      DG072A8B54      >
        1 Online        73407865856 0:1.0   noencl <HP      DG072A8B54      >
        2 Hot spare     73407865856 0:2.0   noencl <HP      DG072A8B54      >
  • mfi draiverile vastavad kontrollerid
 # bioctl sd0
 Volume  Status               Size Device  
  mfi0 0 Online       145999527936 sd0     RAID1
       0 Online       146814976000 1:1.0   noencl <IBM-ESXSST9146852SS     B624>
       1 Online       146814976000 1:0.0   noencl <IBM-ESXSST9146852SS     B624>

Multiedastus

Multiedastuse (ingl. k. multicasting) abil saab korraldada andmete jõudmist lähtepunktist kasutajani kusjuures iseloomulikuks on, et seejuures ei moodustata nn ühendust (tcp mõttes) ega pseudo-ühendust (udp mõttes). Vastuvõtja ei saada midagi allikale vastuseks, lihtsalt kuulab võrgust liiklust, reeglina udp pakettide kujul ja kasutab seda. Multiedastus leiab kasutust nt meedia st heli ja pildi edastamisel. Oluline asjaolu on et allika poolt välja saadetavate andmete hulk ei sõltu sellest kui palju on nende kasutajaid.

OpenBSD roll multiedastuse juures on tagada, et multiedastus ületaks vajadusel ühe alamvõrgu (ingl. k. subnet) piirid, nt ühes alamvõrgus asub multiedastuse server ja teises multiedastuse kliendid.

OpenBSD puhul tuleb selliseks asjakorralduseks lülitada multiedastus sisse sysctl abil öeldes

 # sysctl -w net.inet.ip.mforwarding=1

ning käivitada nt sellise seadistusfailiga /etc/dvmrpd.conf

 group {
         robustness 4
         interface em0
         interface em1
 }

dvrmpd deemon öeldes

 # dvmrpd

Parasjagu läbi tulemüüri liikuvaid multiedastusi saab küsida öeldes

 # dvmrpctl show mfc  
 Group            Origin           Incoming  Outgoing  TTL  Uptime     Expire    
 229.0.1.141      192.168.10.10    em0       em1       1    00:00:37   00:01:42  
 228.0.1.141      192.168.10.199   em0       em1       1    00:01:21   00:00:58

Kui multiedastust tehakse üle carp seadmete, siis peavad vastavatel füüsilistel seadmetel olema ip aadressid, sarnaselt nagu dhcpd serveri juhtumil.

SSH serveri host võtmete re-genereerimine

SSH serveri host võtmete re-genereerimiseks tuleb vanad võtmed kustutada

 # rm /etc/ssh/ssh_host_*

ja öelda

 # /usr/bin/ssh-keygen -q -t dsa -f /etc/ssh/ssh_host_dsa_key -N 
 # /usr/bin/ssh-keygen -q -t rsa -f /etc/ssh/ssh_host_rsa_key -N 
 # /usr/bin/ssh-keygen -q -t rsa1 -f /etc/ssh/ssh_host_key -N 

Ning lõpuks ssh serverile stop ja start öelda.

Logimine

OpenBSD süsteemsete teadete logimine toimub syslogd deemoni abil, mida juhib seadistusfail /etc/newsyslog.conf.

Kasutajate lisamine süsteemi

Grupi lisamiseks sobib öelda nt

 # groupadd mart

Kasutaja lisamiseks

 # useradd -g mart -m -d /home/mart mart

Kui on vajadus redigeerida /etc/passwd faili, siis tuleb selleks kasutada utiliiti vipw, mis on vi sarnase liidesega editor.

tmux - terminal multiplexer

Alates 4.6 versioonist kuulub OpenBSD põhiosa koosseisu programm tmux http://www.openbsd.org/faq/faq7.html#tmux, millega saab kontrollida mitmete mitmete termialide kasutamist ühes terminalist. tmux on sarnane nt programmile screen. tmux käivitatakse öeldes

 $ tmux

Vaikimisi saab tmux korraldusi anda Ctrl-b järel, nt

  • Ctrl-b c - uus terminal
  • Ctrl-b n - liikumine järgmisse terminali
  • Ctrl-b p - liikumine eelmisse terminali
  • Ctrl-b d - tmuxist lahtiühendumine võimalused tagasi ühenduda käima jäänud terminalide juurde, tagasiühendumiseks sobib öelda nt
 $ tmux attach-session

Seoses tmuxiga töötab arvutis selline protsess

 $ ps aux | grep tmux
 mart     14373  0.0  0.6   700  1452 ??  Is     9:11AM    0:00.07 tmux: server (/tmp/tmux-0/default) (tmux)

tmux kasutamise lõpetamiseks tuleb viimasets tmux terminalist välja logida exitiga.

Failisüsteemi tõmmise kasutamine

Failisüsteemi tõmmise (ingl. k. image) kasutamine toimub vnd daiveri abil. Nt .iso tõmmise kasutamiseks sobib selline järgnevus

 # vnconfig svnd0 /tmp/iso.iso
 # mount -t cd9660 /dev/svnd0c /mnt/cd0

vnconfig -l võtmega saab küsida nimekirja kirjeldatud vnd seadmetest

 # vnconfig -l
 vnd0: covering /tmp/iso.iso on wd0d, inode 1065549
 vnd1: not in use
 vnd2: not in use
 vnd3: not in use

Seejärel saab .iso tõmmisele vastavat failisüsteemi kataloogis /mnt/cd0 kasutada. Kasutamise lõpetamiseks sobib öelda

 # umount /mnt/cd0
 # vnconfig -u svnd0

USB seadmete kasutamine

USB seadmete nimekirja saab küsida programmiga usbdevs, nt

# usbdevs -v

IPMI

IPMI sisselülitamiseks sobib öelda nt

config -e -f /bsd
enable ipmi
quit

Märkused

  • Selleks, et vaikimisi ei seataks pakettidele DF (don't fragment), sobib öelda
# sysctl -w net.inet.ip.mtudisc=0

Kasulikud lisamaterjalid

  • man ifconfig
  • man hostname.if
  • man softraid
  • man bioctl