Operatsioonisüsteemi OpenBSD kasutamine

Allikas: Imre kasutab arvutit
Mine navigeerimisribaleMine otsikasti

Sissejuhatus

Failisüsteemi kontroll

Spetsifikatsiooni moodustamine

# mtree -cK sha1digest -p / > /root/mtree-20110501.txt

kus

  • -p / - kasutatav kataloog

Failisüsteemi spetsifikatsiooniga võrdlemine

# mtree -f /root/mtree-20110501.txt -K sha1digest -p /
..
root/.joe_state: 
       size (861, 899)
       modification time (Sun May  1 16:15:06 2011, Sun May  1 17:08:39 2011)
       SHA1 (d2f48713915e5c0f53452dc90ce9d521a52bd9e2, d059c19f92b422bdae52354f4ebfc1ee933062de)
root/.sh_history: 
       size (3518, 3727)
       modification time (Sun May  1 17:06:17 2011, Mon May  2 09:18:26 2011)
       SHA1 (477f16ca34905ccb9ecb1985e9fa0bc9ccf519f0, a46c5edeecb1cddf8e104eca9c5123db8eebac37)
...

/altroot kasutamine

TODO

vether seadme kasutamine

Virtuaalset ethernet seadet vether kasutatakse tavaliselt silla (ingl. k. bridge) komponendina, nt mingite kohalike teenuste IPSec keskkonnas kättesaadavaks tegemiseks (nt dhcpd). Virtuaalse ethernet seadme kirjeldab nt selline seadistusfail

# cat /etc/hostname.vether0
inet 10.110.0.192 255.255.255.0 NONE

ja tekkiv seade on selline

# ifconfig vether0 
vether0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        lladdr fe:e1:ba:d8:51:99
        priority: 0
        groups: vether
        media: Ethernet autoselect
        status: active
        inet 10.110.0.192 netmask 0xffffff00 broadcast 10.110.0.255
        inet6 fe80::fce1:baff:fed8:5199%vether0 prefixlen 64 scopeid 0x22

vether seadmel on sellised omadused

  • erinevalt nt lo seadmetest on tal lladdr, st mac aadress kusjuures tundub, et mac algab alati fe:e1:ba:...

Lisamaterjalid

ruutingutabel

OpenBSD operatsioonisüsteemi IPv4 ruutingutabelit saab esitada käsuga

# route -n show -inet

või

# netstat -rn -f inet
Destination        Gateway            Flags   Refs      Use   Mtu  Prio Iface
default            10.0.5.113         UGS     3490 508609272    -     8 vlan110
10.0.5/24          link#43            UC        78        0     -     4 vlan505
10.0.5.1           10.0.5.1           UH         0        0     -     4 carp105
10.0.5.2           00:15:17:c4:4a:c3  UHLc       0  1244244     -     4 vlan505
10.0.5.3           00:09:6b:49:77:a2  UHLc       1  4889838     -     4 vlan505
10.0.5.4           00:16:35:c4:d3:10  UHLc       0    85191     -     4 vlan505
10.0.5.5           00:17:a4:8d:c4:4c  UHLc       0  4084029     -     4 vlan505
10.0.5.6           00:50:56:98:51:74  UHLc       0    36707     -     4 vlan505
..
10.11/16           10.0.20.252        UGS        0  6135692     -     8 vlan520
...

kus (vt man netsat erinevate lippude tähenduste kohta)

  • U - ruuting on kasutatav (usable)
  • C - ruuting on kloonitav, st selle alusel moodustatakse automaatselt uusi sissekandeid
  • c - ruuting on kloonitud, st ta on moodustatud automaatselt mõne C märkega ruutingu alusel; automaatselt selliseid ruutingutabeli sissekandeid ka eemaldatakse
  • G - ruuting vastavasse võrku toimub läbi lüüsi (ing. k. gateway)
  • erinevalt Linux operatsioonisüsteemist on ruutingutabelis esitatud sissekanded ka hostide kohta
  • S - staatiliselt st seadistatud ruuting st nt mitte kloonitud ega mitte BGP deemoni poolt tekitatud
  • Refs - näitab C sissekannete puhul kui palju on moodustatud vastavaid kloone

Logimine

OpenBSD logimisega tegeleb syslogd deemon ja logisid roteerib juurkasutaja crontabist iga tund newsyslog programm, mida kontrollib seadistusfail /etc/newsyslog.conf. Sõltub konktreetsetest vajadustest kui tihti logisid roteeritakse ja kaua kogunenud logisid säilitada, tundub, et vaikimisi roteeritakse liiga tihti ja säilitatakse liiga lühikest aega. Nt sellisel seadistusel on järgmised omadused

# cat /etc/newsyslog.conf
# logfile_name          owner:group     mode count size when  flags
/var/cron/log           root:wheel      600  60     *   $W1D0 Z
/var/log/aculog         uucp:dialer     660  7      10  *     Z
/var/log/authlog        root:wheel      640  60     *   $W1D0 Z
/var/log/daemon                         640  60     *   $W1D0 Z
/var/log/lpd-errs                       640  7      10  *     Z
/var/log/maillog                        600  14     *   $M1D0 Z
/var/log/messages                       644  60     *   $W1D0 Z
/var/log/secure                         600  60     *   $W1D0 Z
/var/log/wtmp                           644  14     *   $M1D0 B
/var/log/xferlog                        640  7      250 *     Z
/var/log/ppp.log                        640  7      250 *     Z
/var/log/pflog                          600  90     *   $D0   ZB "pkill -HUP -u root -U root -t - -x pflogd"

kus (vt man newsyslog.conf)

  • $W1D0 - roteeritakse igal esmaspäeva varahommikul kell 00
  • $M1D0 - wtmp logi ei pakita, et oleks mugavam last -f /var/log/wtmp.0 abil vaadata
  • $D0 - /var/log/pflog faili roteeritakse kord ööpäevas keskööl

Paketifiltri pflog logide teisse arvutisse kopeerimise võiks korraldada teisest arvutist nt sellise cron tööga

# cat /etc/cron.d/pf-logid
30 0 * * * root /usr/bin/scp logeleja@10.0.9.2:/var/log/pflog.0.gz \
 /srv/log/tulemyyr.loomaaed/pflog/pflog-$(date --date="1 day ago" +%d%m%Y).gz

Seejuures peab saama logiserverist pöördumisel kasutatav OpenBSD kasutaja /var/log/pflog.0.gz faili lugeda.

Paketifiltri syslogi logimine

Käesolevas punktis kirjeldatakse, kuidas korraldada paketifiltri logimist syslogi (sh logiserverisse). Tulemusena tekivad

  • tulemüüri failisüsteemi tekstikujuline logifail /var/log/pflog.txt (ja vastavad roteeritud failid)
  • logiserverisisse tekstikujuline logi, esmalt syslogi logitud aeg (iga 5 minuti tagant), seejärel tcpdump poolt pflog5min seest loetud aeg
Feb  9 21:00:02 ibm pf: Feb 09 20:57:04.026517 rule 114/(match) block in on vlan11: 0.0.0.0 > 224.0.0.1: igmp query (DF) [tos 0xc0] [ttl 1] 
Feb  9 21:00:02 ibm pf: Feb 09 20:57:04.026567 rule 114/(match) block in on vlan11: 0.0.0.0 > 224.0.0.1: igmp query (DF) [tos 0xc0] [ttl 1] 
...
  • tulemüüri failisüsteemi pflog formaadis failid
-rw-------  1 root  wheel  31461 Feb  9 20:15 /var/log/pflog5min.201302092015
-rw-------  1 root  wheel  22048 Feb  9 20:20 /var/log/pflog5min.201302092020
-rw-------  1 root  wheel  23904 Feb  9 20:25 /var/log/pflog5min.201302092025
-rw-------  1 root  wheel  29291 Feb  9 20:30 /var/log/pflog5min.201302092030
...
  • tulemüüri failisüsteemi pflog formaadis kokkuühendatud fail järgmisel päeval
/var/log/pflog5min-20130209

Aadressil http://www.openbsd.org/faq/pf/logging.html#syslog on kirjeldatud sellise süsteemi juurutamist üksikasjalikult, siin on ära toodud mõned selgitused ja täiendused. Põhilise töö teeb crontabist käivitatud skript

# cat /etc/pflogrotate

#!/bin/sh
PFLOG=/var/log/pflog
FILE=/var/log/pflog5min.$(date "+%Y%m%d%H%M")
pkill -ALRM -u root -U root -t - -x pflogd
if [ -r $PFLOG ] && [ $(stat -f %z $PFLOG) -gt 24 ]; then
   mv $PFLOG $FILE
   pkill -HUP -u root -U root -t - -x pflogd
   tcpdump -n -e -s 160 -ttt -r $FILE | logger -t pf -p local0.info
   rm $FILE
fi

kus

  • FILE - kuupäevanimeline failinimi, nt /var/log/pflog5min.201302092015
  • pkill -ALRM ... - ütleb pflogd protsessile kirjutada puhvrid kettale (vaikimisi toimub see iga 60 sekundi järel)
  • if kontrollib kas fail on olemas ja suurus on rohkem kui 24 baiti
  • pkill -HUP - ütleb pflogd protsessile alustada uue /var/log/pflog faili kirjutamist
  • tcpdump ja logger kirjutavad viimase 5 minuti teksti syslogisse

Kirjeldatud viisil ei jää alles pflog binari formaadis logi mida võib olla mõnus tcpdump abil kasutada. Selleks, et sellisel kujul logi jääks alles sobib kommenteerida välja skriptis rm $FILE rida ja kord ööpäevas öelda eelmise päeva logi kohta nt

# mergecap -w /var/log/pflog-20130209 /tmp/pflog5min.20130209*

mergecap on wireshark paketis.

GIF tunneli kasutamine

Tunneliga kaasneb üks ruuting

# route -n show -inet | grep 10.150
10.150.96.138      10.150.111.114     UH         0        2     -     4 gif0

Tunnelitega tegelemisel on oluline jälgida, et seadmeid moodustades ja kustutades ei jääks vanad ruutingud eksitama.

Kas protsess on chrootitud

http://marc.info/?l=openbsd-misc&m=128396097904099&w=2

# fstat | awk '$4 == "root"' 
_openvpn openvpn    27120 root /         1255092 drwxr-xr-x   r      512
_tcpdump tcpdump    13301 root /         1117326 drwxr-xr-x   r      512
_isakmpd isakmpd     2136 root /         1117326 drwxr-xr-x   r      512
_ntp     ntpd       23273 root /         1117326 drwxr-xr-x   r      512
_relayd  relayd      1084 root /         1117326 drwxr-xr-x   r      512
_relayd  relayd      4281 root /         1117326 drwxr-xr-x   r      512
www      httpd      19945 root /         1117358 drwxr-xr-x   r      512
www      httpd      24993 root /         1117358 drwxr-xr-x   r      512
...

ifstated kasutamine

TODO

Tööpõhimõte

TODO

Vastuseks mõne arvutis töötava võrguseadme oleku muutumisele saab ifstated abil sooritada tegevusi. Nt

  • kui carp seade muutub master -> backup, siis eemaldatakse mõni arvutis töötanud bridge
  • kui carp seade muutub master -> backup, siis saadetaks monitooringutarkvarale vastav teade
  • käivitada/seisata dhcpd programmi

Kasutamine OpenVPN tarkvaraga

# cat /etc/ifstated.conf

init-state tun_ut_up

state tun_ut_up {

        if tun4.link.down
               set-state tun_ut_down 
}

state tun_ut_down {

       init {
               run "ifconfig tun4 destroy"
               run "sleep 5"
               run "sh /etc/netstart tun4"
       }

       if tun4.link.up
               set-state tun_ut_up
}

Käivitamiseks sobib öelda nt (muidu lisada /etc/rc.conf.local faili)

# ifstated -vd

Kasulikud lisamaterjalid

NUT tarkvara kasutamine

Tarkvara paigaldamiseks sobib öelda

# pkg_add nut
nut-2.4.3p1:libusb-0.1.12p4: ok                                                                                                                                 
nut-2.4.3p1:neon-0.28.6p0: ok                                                                                                                                   
nut-2.4.3p1: ok                                                                                                                                                 
--- +nut-2.4.3p1 -------------------
Once you have the config files under /etc/nut set up properly, the
following block can be added to your /etc/rc.local file to start nut.

# Start Nut
if [ -x /usr/local/bin/upsdrvctl ]; then
  echo -n ' nut'
  /usr/local/bin/upsdrvctl start > /dev/null 2>&1
  /usr/local/sbin/upsd > /dev/null 2>&1
  /usr/local/sbin/upsmon > /dev/null 2>&1
fi

The userid running NUT (normally _nut) must have access to the relevant
device nodes. For a UPS connected by RS232, either add _nut to group
"dialer" or change group of the relevant /dev/cua* device to _nut.
For a USB-connected UPS, change the group of /dev/ugen* and /dev/usb*
to _nut and allow the group to have write access.

SSH brute force ründe tõrjumine

SSH brute force ründe tõrjumiseks sobib kasutada selliseid reegleid

block in log quick on $if_public inet from <ssh-bruteforce>
pass in quick on $if_public inet proto tcp to $carp_public port 22 flags S/SA modulate state \
  (pflow, tcp.established 864000, max-src-conn-rate 3/30, overload <ssh-bruteforce> ) label "JSpublic"

kus

  • esimene reegel blokeerib varem kogutud ip aadresside pääsu
  • teine reegel luba pöörduda sageduspiiranguga, piirangu ületajad ip aadress lisatakse ssh-bruteforce tabelisse
  • max-src-conn-rate 3/30 - 30 sekundilise ajavahemiku jooksul on lubatud teha kuni 3 päringut

Lisaks võiks crontabis olla rida, mis regulaarselt eemaldab keelatud aadresse (nt juhtumiks kui mõni õigustatud ligipääseja mingil põhjusel eksis)

*/30 * * * * /sbin/pfctl -t ssh-bruteforce -T expire 1800

kus on näidatud, et ssh-bruteforce tabelist eemaldatakse iga tunni nullindal ja 30'ndal minutil tabelisse 1800 sekundit või varem lisatud sissekandeid.

Arpwatch

Tarkvara paigaldamiseks sobib öelda

# pkg_add arpwatch
The following new rcscripts were installed: /etc/rc.d/arpwatch
See rc.d(8) for details.
Look in /usr/local/share/doc/pkg-readmes for extra documentation.

Käivitamiseks sobib öelda nt

# /usr/local/sbin/arpwatch -i re0 -i vlan11

Tundub, et OpenBSD portsudes olev arpwatch ei saada muudatuste kohta eposti ja logib ainult syslogi

...
Feb 11 18:14:51 ibm arpwatch: new station 192.168.10.160 0:4:23:c8:fa:ea
Feb 11 18:16:06 ibm arpwatch: new station 192.168.10.254 0:0:5e:0:1:3
Feb 11 18:16:06 ibm arpwatch: new station 192.168.10.211 0:6:4f:32:0:35
Feb 11 18:18:02 ibm arpwatch: new station 192.168.10.71 a4:c:c3:65:b5:a7

Töö käigus koguneb fail /var/arpwatch/arp.dat

# cat /var/arpwatch/arp.dat
70:1:68:0:11:11 192.168.1.111   1328976780      afs-1

IPTV

# pkg_add igmpproxy
igmpproxy-0.1b2p3: ok                                                                                                                                                              
The following new rcscripts were installed: /etc/rc.d/igmpproxy
See rc.d(8) for details.
Look in /usr/local/share/doc/pkg-readmes for extra documentation.

Kasulikud lisamaterjalid

Süsteemi uuendamine Sysmerge abil

Üldiselt on kirjeldatud operatsioonisüsteemi uuendamise protseduuri eelmiselt järgmisele versioonile aadressil http://www.openbsd.org/faq/, nt 5.6 -> 5.7 puhul http://www.openbsd.org/faq/upgrade57.html.

  • veenduda, et süsteemist on olemas varukoopia, nt teisel arvutil (seejuures võiks ettenägelikult muuta ka koopia peal etc/fstab faili)
# mkdir /mnt/siin-on-ruumi
# rsync -avH --exclude=/mnt --exclude=/usr/src --exclude=/usr/obj / /mnt/siin-on-ruumi/
# cd /mnt/siin-on-ruumi
# tar zcf ../arvutinimi-20150504-5.6.tgz .

Lahtipakkimiseks öelda, tundub, et nii säilivad kasutajanimed jms, uuemal ajal on ka tar -N võti olemas

# tar -C /mnt/juurikas -xzphf arvutinimi-20150504-5.6.tgz
  • või sama arvuti teises failisüsteemis, nt
# rsync -avH --exclude=/mnt --exclude=/usr/src --exclude=/usr/obj / /mnt/sd0d/
  • teha kättesaadavaks uue süsteemi tarkvara
# vnconfig vnd0 /mnt/install57.iso
# mount -t cd9660 /dev/vnd0c /mnt/cd0
# rsync -avH /mnt/cd0/5.7/amd64/ /root/5.7/
# umount /mnt/cd0
# vnconfig -u vnd0
  • töötada juurkasutajana ksh shellis
  • salvestada süsteemi olek, sh paigaldatud pakettide nimekiri
# sh m-state.sh
  • peatada nende rakenduste töö, mille puhul võib kahtlustada, et teekide uuendamine võib neid eksitada (tõenäoliselt jäävad tööle kolm nö protsessi, init, sshd ja getty)
  • teha /etc kataloogist lokaalne koopia, nt
# rsync -avH /etc/ /root/nobackup/etc-5.6-20150504-tootanud/
  • kustutada bootimisel programmide käivitamine, see võib ka vahel /sbin/oreboot'i eksitada
# rm /etc/rc.conf.local
# rm /etc/rc.local
  • uuendada tuum, kui kasutatakse kostümiseeritud tuuma, siis sellega arvestada
# export RELEASEPATH=/root/5.7
# cd ${RELEASEPATH}
# rm /obsd ; ln /bsd /obsd && cp bsd /nbsd && mv /nbsd /bsd
# cp bsd.rd bsd.mp /
  • salvestada vana reboot programm
# cp /sbin/reboot /sbin/oreboot

Pakkida uue versiooni filesetid lahti olemasolevasse süsteemid, kirjutades olemasolevad failid üle

# tar -C / -xzphf xbase57.tgz (vajadusel, nt sy* monitooringu kasutamisel)
# tar -C / -xzphf game57.tgz
# tar -C / -xzphf comp57.tgz
# tar -C / -xzphf man57.tgz
# tar -C / -xzphf base57.tgz # Install last!
  • alglaadida süsteem uue tuumaga vana reboot programmiga
# /sbin/oreboot
  • tekitada dev failid
# cd /dev
# ./MAKEDEV all
  • uuendada sysmerge abil /etc kataloog, sh seadistusfailid
# export RELEASEPATH=/root/5.2
# sysmerge -s $RELEASEPATH/etc52.tgz          
===> Populating temporary root under /var/tmp/sysmerge.OgSArVm7of/temproot
===> Starting comparison
===> Updating /etc/changelist
===> Updating /etc/daily
===> Updating /etc/login.conf
===> Installing /etc/mixerctl.conf
===> Updating /etc/moduli
===> Updating /etc/netstart 

 Use 'd' to delete the temporary ./etc/nsd.conf
 Use 'i' to install the temporary ./etc/nsd.conf
 Use 'm' to merge the temporary and installed versions
 Use 'v' to view the diff results again

 Default is to leave the temporary file to deal with by hand

How should I deal with this? [Leave it for later]

Kui valida merge, jätkub töö sdiff programmiga

  • h - näitab helpi
  • l, r - rea või lõigu kaupa saab valida kas vana (vasak) või uus (parem)
  • jne
===> Merging /etc/nsd.conf
===> Updating /etc/protocols
===> Updating /etc/rc
===> Updating /etc/rc.conf
===> Updating /etc/rc.d/amd
===> Updating /etc/rc.d/ftpd
===> Updating /etc/rc.d/identd
===> Updating /etc/rc.d/ldapd
===> Updating /etc/rc.d/mopd
===> Updating /etc/rc.d/nsd
===> Updating /etc/rc.d/ntpd
===> Installing /etc/rc.d/popa3d
===> Updating /etc/rc.d/rarpd
===> Updating /etc/rc.d/rc.subr
===> Updating /etc/rc.d/sendmail
===> Updating /etc/rc.d/smtpd
===> Installing /etc/rc.d/sndiod
===> Updating /etc/rc.d/ypbind
===> Updating /etc/rc.d/ypldap
===> Updating /etc/rc.d/ypserv
===> Updating /etc/services
===> Updating /etc/ypldap.conf
===> Comparison complete
===> Checking directory hierarchy permissions (running mtree(8))
===> Output log available at /var/tmp/sysmerge.OgSArVm7of/sysmerge.log
       *** WARNING: some new/updated file(s) may require a reboot

Muudetud failid kopeeritakse kataloogi /var/tmp/sysmerge.OgSArVm7of/backups/etc.

  • kustutada mittevajalikud failid, nb! sõltub konkreetsele versioonile vastavast uuendusest; kui uuendatakse nt 4.8 -> 5.1, siis tuleks lugeda upgrade.html faile ja eemaldada kõik, mis eemaldada tuleb
# cat delete-51.sh
rm /etc/rc.d/aucat
rm /etc/ccd.conf /sbin/ccdconfig /usr/share/man/man8/ccdconfig.8
rm /usr/sbin/pkg_merge
rm /usr/libexec/getNAME /usr/share/man/man8/getNAME.8
rm -rf /usr/lib/gcc-lib/i386-unknown-openbsd5.0
rm -f /usr/bin/midicat /usr/share/man/man1/midicat.1
rm -f /usr/bin/makewhatis /usr/bin/mandocdb /usr/share/man/man8/mandocdb.8

ja öelda

# sh delete-51.sh
  • uuendada paketid, kontrollida üle PKG_PATH väärtus
# export PKG_PATH=http://ftp.aso.ee/pub/OpenBSD/`uname -r`/packages/`machine -a`/
# pkg_add -ui

Kusjuures, mõnel juhul tuleb mõni pakett, mis enam ei esine, kustutada, nt 4.8 -> 5.1 juhul

# pkg_delete libgamin
libgamin-0.1.10p3: ok                                                                                                                                                             
Read shared items: ok
  • Kohendada /etc/rc.conf.local faili võttes aluseks uue versiooni /etc/rc.conf
# cp /etc/rc.conf /etc/rc.conf.local

Süsteemi uuendamine Sysmerge abil v. 5.6 -> 5.7

Enam ei jagata etcXX.tgz ja ja xetcXX.tgz file set'isid, sisu on baseXX.tgz sees ja sysmerge kasutab diffimisel faile

/usr/share/sysmerge/etc.tgz
/usr/share/sysmerge/xetc.tgz

Kasutamiseks piisab öelda

# sysmerge

v. 5.7 puhul on muutunud /etc/rc.conf.local faili kasutamine, tundub, et seda ei ole ette nähtud muuta käsitsi vaid rcctl utiliidiga, nt

# rcctl set ntpd status on
# rcctl set ntpd flags -s
# rcctl get ntpd

Nn package deemonite puhul tuleb öelda sarnaselt, nt (tekib pkg_scripts= rida)

# rcctl set zabbix_agentd status on

Tulemusena tekib nt sellise sisuga rc.conf.local

# cat /etc/rc.conf.local                                                                                                                                               
dhcpd_flags=-c /etc/dhcpd-85.conf -l /var/db/dhcpd-85.leases vlan20
ipsec=YES
isakmpd_flags=-vK
npppd_flags=
nsd_flags=
ntpd_flags=-s
pkg_scripts=zabbix_agentd
relayd_flags=
snmpd_flags=
syslogd_flags=-a /var/unbound/dev/log -a /var/www/dev/log -a /var/nsd/dev/log -a /var/empty/dev
unbound_flags=

Zabbix agendi kasutamine

# pkg_add zabbix-agent                                                                                                          
zabbix-agent-1.8.10p0:cyrus-sasl-2.1.25p2: ok                                                                                                  
zabbix-agent-1.8.10p0:openldap-client-2.4.26: ok                                                                                               
zabbix-agent-1.8.10p0:libexecinfo-0.2p0v0: ok                                                                                                  
zabbix-agent-1.8.10p0: ok                                                                                                                      
The following new rcscripts were installed: /etc/rc.d/saslauthd /etc/rc.d/zabbix_agentd
See rc.d(8) for details.

Sendbug kasutamine

Sendbug programm on ette nähtud vigade raporteerimiseks. Selle kasutamine eeldab, et kõnealuses arvutis on võrguühendus ning seadistatud eposti väljasaatmine. Kasutamiseks tuleb öelda

# sendbug

mille tulemusena avaneb tekstieditor eeltäidetud andmetega, sh dmesg väljund jms. Seda tuleb vea raporteerijal täiendada ning seejärel saadetakse raport välja eposti kirjana.

Sendbug andmebaas asub aadressil http://www.openbsd.org/query-pr.html

systat ja top

Märkus: Kõnealuse arvuti füüsiline mälu (8 G)

# sysctl hw.physmem 
hw.physmem=8571469824

Klassikaline ja universaalne utiliit top ning OpenBSD spetsiifiline utiliit systat esitavad muu hulgas arvuti nn vmstat (virtual memory) omadusi. Top pilt paistab selline

Fail:Openbsd-3.gif

kus

  • Real: act/tot - väljendab 'protsesside poolt aktiivses kasutuses oleva mälu hulk' / 'protsesside poolt aktiivses + passiivses kasutuses oleva mälu hulk'
  • Free - vaba mälu hulk st kernel ei ole seda võtnud mingil moel kasutusse (ei protsesside jaoks, ei failisüsteemi cache vms)
  • Cache - failisüsteemi cache jms
  • swap - 'kasutusel olev swap' / 'kogu swap'
  • 'Real tot' + 'Free' võrdub arvuti füüsilise mälu hulgaga
  • küllap 'Reat tot' sisaldab endas 'Real act' + 'Cache' + 'veel midagi (tuuma puhvrid vms)'

ning systat pilt selline

Fail:Openbsd-4.gif

kus

  • Int, Sys, Usr jt on esitatud numbriliselt ning all tähistatud visuaalselt vastavalt |, = ja > märkidega
  • 'active free' - vaba mälu hulk st kernel ei ole seda võtnud mingil moel kasutusse (ei protsesside jaoks, ei failisüsteemi cache vms) (sama mis top programmi Free)
  • 'all free' - vaba mälu hulk + süsteemi vaba swap
  • 'active real' - protsesside poolt aktiivses kasutuses oleva mälu hulk (sama mis top programmi 'Real act')
  • 'all real' - protsesside poolt aktiivses + passiivses kasutuses oleva mälu hulk (sama mis top programmi 'Real tot')
  • 'all real' + 'active free' võrdub arvuti füüsilise mälu hulgaga
  • tavalisel süsteemi kasutusel on 'active real' ja 'active virtual' ning 'all real' ja 'all virtual' väärtused võrdsed
  • man systat -> sektsioon vmstat alguses on lõik
Below the top line are statistics on memory utilization.  The
first row of the table reports memory usage only among active
processes, that is, processes that have run in the previous
twenty seconds.  The second row reports on memory usage of
all processes.  The first column reports on the amount of
physical memory claimed by processes.  The second column
reports the same figure for virtual memory, that is, the
amount of memory that would be needed if all processes were
resident at the same time.  Finally, the last column shows
the amount of physical memory on the free list.

Varundamine

Tulemüüri tuleks üldiselt varundada nagu iga muudki nö tavalist arvutit, st üle võrgu teisse arvuti kõvakettale vms kohta. Lisaks võiks tulemüüris käivitada nt kord tunnis lokaalse varunduse selleks, et vajadusel saaks sõltumata muust pöörduda tagasi varem töötanud seisule. Selleks sobib kasutada rsnapshot tarkvara kopeerides /etc kataloogi seejuures excludedes /etc/firmware kataloogi ja käivitades nt selliselt

# crontab -l | tail -n 4 
# rsnapshot
0       *       *       *       *       /usr/local/bin/rsnapshot sync && /usr/local/bin/rsnapshot hourly
50      23      *       *       *       /usr/local/bin/rsnapshot daily
40      23      *       *       6       /usr/local/bin/rsnapshot weekly

OpenBSD snapshot kasutamine

Kopeerida ftp://ftp.aso.ee/pub/OpenBSD/snapshots kataloogist sobiv installxx.iso ning teha viimase -release peale tavaline upgrade. Kasutada samas katalogist sobivaid pakette.

iSCSI

TODO, http://openbsd-wip.blogspot.com/2012/01/openbsd-iscsi-howto.html

OpenBSD kasutamine virtuaalses keskkonnas

KVM

Tundub, et 2013 aasta seisuga töötab suhteliselt ilusti, võrgu ja plokkseadme jaoks saab alates versioonist 5.3 kasutada virtio seadmeid

  • man vio - VirtIO network device
virtio1 at pci0 dev 18 function 0 "Qumranet Virtio Network" rev 0x00: Virtio Network Device
vio0 at virtio1: address de:83:84:54:be:eb
virtio1: apic 0 int 10
  • man vioblk - VirtIO disk
virtio0 at pci0 dev 10 function 0 "Qumranet Virtio Storage" rev 0x00: Virtio Block Device
vioblk0 at virtio0
scsibus0 at vioblk0: 2 targets
sd0 at scsibus0 targ 0 lun 0: <VirtIO, Block Device, > SCSI3 0/direct fixed
sd0: 4096MB, 512 bytes/sector, 8388608 sectors
virtio0: apic 0 int 10
  • man viomb - VirtIO memory ballooning driver

VMware ESXi

Tundub, et 2013 aasta seisuga töötab ilusti.

ulimit

ksh ulimit paistab selline, man ksh

# ulimit -a
time(cpu-seconds)    unlimited
file(blocks)         unlimited
coredump(blocks)     unlimited
data(kbytes)         8388608
stack(kbytes)        8192
lockedmem(kbytes)    10864112
memory(kbytes)       32590252
nofiles(descriptors) 128
processes            1310

kusjuures tundub, et nofiles piiriks on vaikimisi 7030, seda saab muuta sysctl abil

# sysctl kern.maxfiles 
kern.maxfiles=7030

USB netipulga kasutamine

Eelduseks on kasutada toetatud USB pulk, man umsm, nt Huawei E392. Moodustada ppp0 seade

# touch /etc/hostname.ppp0
# sh /etc/netstart ppp0

Moodustada kaks skripti

# cat /etc/ppp/connect.emt
ABORT "BUSY"
ABORT "NO CARRIER"
ABORT "ERROR"
ABORT "VOICE"
ABORT "NO DIALTONE"
"" "ATE1"
# OK "at+cpin=0000"
#switch modem on
OK AT+CFUN=1
# APN
OK AT+CGDCONT=1,"IP","internet.emt.ee"
# dial
OK "ATD*99#"
CONNECT \c

ning

# cat /etc/ppp/peers/emt
debug
cuaU0
460800
0.0.0.0:10.64.64.64
netmask 255.255.255.255
ipcp-accept-local
ipcp-accept-remote
crtscts
persist
#disable stuff
deflate 0
refuse-pap
refuse-chap
noauth
noipdefault
nopcomp
novj
novjccomp
nodefaultroute
connect "chat -v -f /etc/ppp/connect.emt"

kus

  • TODO

ning käivitamiseks öelda

# pppd call emt

Tulemusena öeldakse logisse

Dec 18 21:42:27 ibm pppd[26772]: pppd 2.3.5 started by root, uid 0
Dec 18 21:42:28 ibm chat[18173]: abort on (BUSY)
Dec 18 21:42:28 ibm chat[18173]: abort on (NO CARRIER)
Dec 18 21:42:28 ibm chat[18173]: abort on (ERROR)
Dec 18 21:42:28 ibm chat[18173]: abort on (VOICE)
Dec 18 21:42:28 ibm chat[18173]: abort on (NO DIALTONE)
Dec 18 21:42:28 ibm chat[18173]: send (ATE1^M)
Dec 18 21:42:28 ibm chat[18173]: expect (OK)
Dec 18 21:42:28 ibm chat[18173]: ATE1^M^M
Dec 18 21:42:28 ibm chat[18173]: OK
Dec 18 21:42:28 ibm chat[18173]:  -- got it 
Dec 18 21:42:28 ibm chat[18173]: send (AT+CFUN=1^M)
Dec 18 21:42:28 ibm chat[18173]: expect (OK)
Dec 18 21:42:28 ibm chat[18173]: ^M
Dec 18 21:42:28 ibm chat[18173]: AT+CFUN=1^M^M
Dec 18 21:42:28 ibm chat[18173]: OK
Dec 18 21:42:28 ibm chat[18173]:  -- got it 
Dec 18 21:42:28 ibm chat[18173]: send (AT+CGDCONT=1,"IP","internet.emt.ee"^M)
Dec 18 21:42:29 ibm chat[18173]: expect (OK)
Dec 18 21:42:29 ibm chat[18173]: ^M
Dec 18 21:42:29 ibm chat[18173]: AT+CGDCONT=1,"IP","internet.emt.ee"^M^M
Dec 18 21:42:29 ibm chat[18173]: OK
Dec 18 21:42:29 ibm chat[18173]:  -- got it 
Dec 18 21:42:29 ibm chat[18173]: send (ATD*99#^M)
Dec 18 21:42:29 ibm chat[18173]: expect (CONNECT)
Dec 18 21:42:29 ibm chat[18173]: ^M
Dec 18 21:42:29 ibm chat[18173]: ATD*99#^M^M
Dec 18 21:42:29 ibm chat[18173]: CONNECT
Dec 18 21:42:29 ibm chat[18173]:  -- got it 
Dec 18 21:42:29 ibm chat[18173]: send ()
Dec 18 21:42:29 ibm pppd[26772]: Serial connection established.
Dec 18 21:42:30 ibm pppd[26772]: Using interface ppp0
Dec 18 21:42:30 ibm pppd[26772]: Connect: ppp0 <--> /dev/cuaU0
Dec 18 21:42:30 ibm pppd[26772]: sent [LCP ConfReq id=0x1 <magic 0xd3edaa3b> <accomp>]
Dec 18 21:42:30 ibm pppd[26772]: rcvd [LCP ConfReq id=0x14 <asyncmap 0x0> <auth chap 05> <magic 0x78e31cc8> <pcomp> <accomp>]
Dec 18 21:42:30 ibm pppd[26772]: sent [LCP ConfRej id=0x14 <auth chap 05> <pcomp>]
Dec 18 21:42:30 ibm pppd[26772]: rcvd [LCP ConfAck id=0x1 <magic 0xd3edaa3b> <accomp>]
Dec 18 21:42:30 ibm pppd[26772]: rcvd [LCP ConfReq id=0x15 <asyncmap 0x0> <magic 0x78e31cc8> <accomp>]
Dec 18 21:42:30 ibm pppd[26772]: sent [LCP ConfAck id=0x15 <asyncmap 0x0> <magic 0x78e31cc8> <accomp>]
Dec 18 21:42:30 ibm pppd[26772]: sent [IPCP ConfReq id=0x1 <addr 0.0.0.0>]
Dec 18 21:42:30 ibm pppd[26772]: sent [CCP ConfReq id=0x1 <bsd v1 15>]
Dec 18 21:42:30 ibm pppd[26772]: rcvd [LCP DiscReq id=0x16 magic=0x78e31cc8]
Dec 18 21:42:30 ibm pppd[26772]: rcvd [LCP ProtRej id=0x17 80 fd 01 01 00 07 15 03 2f]
Dec 18 21:42:31 ibm pppd[26772]: rcvd [IPCP ConfNak id=0x1]
Dec 18 21:42:31 ibm pppd[26772]: sent [IPCP ConfReq id=0x2 <addr 0.0.0.0>]
Dec 18 21:42:32 ibm pppd[26772]: rcvd [IPCP ConfNak id=0x2]
Dec 18 21:42:32 ibm pppd[26772]: sent [IPCP ConfReq id=0x3 <addr 0.0.0.0>]
Dec 18 21:42:33 ibm pppd[26772]: rcvd [IPCP ConfReq id=0xa]
Dec 18 21:42:33 ibm pppd[26772]: sent [IPCP ConfNak id=0xa <addr 10.64.64.64>]
Dec 18 21:42:33 ibm pppd[26772]: rcvd [IPCP ConfNak id=0x3 <addr 10.128.1.226>]
Dec 18 21:42:33 ibm pppd[26772]: sent [IPCP ConfReq id=0x4 <addr 10.128.1.226>]
Dec 18 21:42:33 ibm pppd[26772]: rcvd [IPCP ConfReq id=0xb]
Dec 18 21:42:33 ibm pppd[26772]: sent [IPCP ConfAck id=0xb]
Dec 18 21:42:33 ibm pppd[26772]: rcvd [IPCP ConfAck id=0x4 <addr 10.128.1.226>]
Dec 18 21:42:33 ibm pppd[26772]: local  IP address 10.128.1.226
Dec 18 21:42:33 ibm pppd[26772]: remote IP address 10.64.64.64

kus

  • TODO

ning tekib seade ppp0

# ifconfig ppp
ppp0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
       priority: 0
       groups: ppp
       inet 10.128.1.226 --> 10.64.64.64 netmask 0xffffffff

Kui OpenBSD on tulemüüriks teistele, siis peab ppp0 seadmest väljuvate pakettide src ip aadresse ümber kirjutama.

Kasulikud lisamaterjalid

OpenBSD juurfailisüsteemi kasutamine USB pulgalt

OpenBSD kasutamine USB netipulgalt võiks uuema aja arvutite puhul nö lihtsalt töötada. Pulga ettevalmistamist kirjeldatakse aadressil http://www.openbsd.org/faq/faq14.html#flashmemLive, sisuliselt sobib nö abistav arvuti käivitada tavaliselt OpenBSD installeri CD plaadilt, pista kõnealune pulk arvutisse juurde ning paigaldada OpenBSD valides kettaseadmeks USB pulga (nt sd1). USB pulgalt bootimist vajava arvuti saab seejärel käivitada, valides boot valikutest USB.

Kui kirjeldatud viisil pulgalt bootida ei saa, aga arvutil on kasutada CD seade ja USB pulk, siis sobib kasutada plaadilt tuuma

boot> boot cd0a:/5.4/i386/bsd -a
...

kus

  • -a ning näidata root failisüsteemiks sd1a ja swap sd1b eeldusel, et nõnda USB pulgale tarkvara paigaldati

Sellisel juhul tekib põhimõtteliselt küsimus, et miks üldse tegeleda USB pulgaga kui on kasutada CD seade, üks vastus on, et USB pulk on kirjutatav. St peale käivitamist saab sinna teha muudatusi, nt tarkvara lisada ja seadistusfaile muuta, kusjuures need muudatused säilivad peale arvuti rebooti. Tõsi, USB pulga sees olev meedia ei ole eriliselt kiire ega kannata väga palju ülekirjutusi, selles osas on abiks MFS failisüsteemi kasutamine.

Kui arvuti lokaalsel kõvakettal on mingil põhjusel GRUB v. 1 siis saab selle abil samuti USB pulgalt bootida

grub> root=(hd1,3)
grub> chainloader +1
grub> boot

kus

  • OpenBSD on paigaldatud pulgale valides 'whole' ja praktiliselt on ta siis neljandal msdos partitsioonil

Kasulikud lisamaterjalid

Paikade rakendamine

  • rakendustarkvara - programmid, teegid jms mille uuenduse kehtestamiseks ei ole tarvis operatsioonisüsteemi alglaadida
  • tuum - operatsioonisüsteemi kerneli uuendamisel tuleb uuenduse kehtestamiseks operatsioonisüsteem alglaadida

Rakendustarkvara paigad

TODO

Tuuma paigad

TODO

Binpatch-NG

Tundub, et aadressil https://stable.mtier.org/ on kompileeritud paikade kasutamise süsteem. Seda tutvustatakse ka artiklis http://undeadly.org/cgi?action=article&sid=20130113185003.

Kasulikud lisamaterjalid

DHCPD

Kui leased saavad otsa, kirjutatakse logisse midagi sellist

Apr 22 09:38:00 rtm1 dhcpd[30231]: no free leases on subnet kontor

Login class kasutamine

Login class on selline operatsioonisüsteemi instrument, millega saab muu hulgas kontrollida kui palju ressurssi on kasutajal kasutada, nt

  • avatud failide arv
  • stack data size
  • jms

/etc/login.conf failis on kirjeldatud erinevad login class sissekanded, mida identifitseerivad nimed, nt default, daemon ning millega on seotud ressursipiirangud; teiselt poolt kasutajate andmebaasis on kasutajaga seotud spetsiifiline klass, või kui seda pole, siis default klass.

Olemasoleva kasutaja olemasolevat klassi saab küsida nt

# userinfo kasutajanimi

Olemasoleva kasutaja klassi saab muuta öelda

# chpass kasutajanimi

Klassi omadusi saab küsida

# getcap -f /etc/login.conf klassinimi

Klassi saab juurde tekitada lisades /etc/login.conf faili nt sektsiooni, kusjuures süntaksit saab getcap programmiga kontrollida

# Unbound
unbound:\
       :datasize-cur=2G:\
       :datasize-max=2G:\
       :maxproc-max=256:\
       :maxproc-cur=128:\
       :openfiles-cur=8192:\
       :openfiles-max=12288:\
       :tc=daemon:

Klassi kehtestumist saab kontrollida logides sisse kaustajana ja öelda

$ ulimit -a

Töötava programmi ressursikasutuse kohta saab küsida

#!/bin/ksh

while true; do
  aeg=`date +%Y%m%d-%H%M%S`
  echo $aeg
  ps -ax -o user,vsz,tsiz,ssiz,maxrss,dsiz,rss,lim,rsz -U _unbound > /var/tmp/aeg_$aeg
  sleep 15
done

Tihtipeale on vaja muuta max avatavate failide (sh võrguühenduste) arvu, selleks võib olla vaja suurendada ka tuuma vastavat limiiti

# sysctl kern.maxfiles=16384
kern.maxfiles: 7030 -> 16384

või lisades /etc/sysctl.conf faili et alglaadimise ajal kehtestuks.

Käivitusskripti kasutamise mõistmiseks sobib lisada käivitusskripti faili echo rida

# cat /etc/rc.d/unbound
..
rc_start() {
#       echo "${rcexec} ${daemon} ${daemon_flags} start" >> /tmp/_unbound.start
       ${rcexec} "${daemon} ${daemon_flags} start"
...

Tulemusena kirjutatakse faili, st süsteem saab aru, et unbound nimelist login klassi tuleb kasutada _unbound kasutaja protsesside jaoks

# cat /tmp/_unbound.start
su -l -c unbound -s /bin/sh root -c /usr/local/sbin/unbound-control -c /var/unbound/etc/unbound.conf start

Kasulikud lisamaterjalid

Märkused

Kui OpenBSD on varundatud jättes kopeerimata /var/log sisu, siis sobib pärast taastamist öelda

# touch /var/log/messages /var/log/authlog /var/log/secure /var/log/daemon /var/log/xferlog /var/log/lpd-errs /var/log/maillog /var/log/wtmp
# chmod 0600 /var/log/messages /var/log/authlog /var/log/secure /var/log/daemon /var/log/xferlog /var/log/lpd-errs /var/log/maillog /var/log/wtmp
# chmod 0640 /var/log/authlog /var/log/daemon /var/log/xferlog /var/log/lpd-errs
# chmod 0644 /var/log/messages

ning syslogd protsessi uuesti käivitada.

Postfix

# pkg_add postfix       
Ambiguous: choose package for postfix
 a       0: <None>
         1: postfix-2.10.1
         2: postfix-2.10.1-ldap
         3: postfix-2.10.1-mysql
         4: postfix-2.10.1-pgsql
         5: postfix-2.10.1-sasl2
         6: postfix-2.11.20130710
         7: postfix-2.11.20130710-ldap
         8: postfix-2.11.20130710-mysql
         9: postfix-2.11.20130710-pgsql
        10: postfix-2.11.20130710-sasl2
Your choice: 1
-> Creating /etc/mailer.conf.postfix                                                                                                       
-> Creating Postfix spool directory and chroot area under /var/spool/postfix
-> Creating Postfix data directory under /var/postfix
+ ---------------
| Configuration files have been installed in /etc/postfix.
| Please update these files to meet your needs.
+---------------
postfix-2.10.1: ok                                                                                                                         
The following new rcscripts were installed: /etc/rc.d/postfix
See rc.d(8) for details.
--- +postfix-2.10.1 -------------------
Postfix can be set up to replace sendmail entirely. Please read the
documentation at file:///usr/local/share/doc/postfix/html/index.html or
http://www.postfix.org/ carefully before you decide to do this!

To replace sendmail with Postfix you have to install a new mailer.conf
using the following command:

    /usr/local/sbin/postfix-enable

If you want to restore sendmail, this is done using the following command:
 
    /usr/local/sbin/postfix-disable

ning seejärel

# /usr/local/sbin/postfix-enable
old /etc/mailer.conf saved as /etc/mailer.conf.pre-postfix
postfix /etc/mailer.conf enabled

NOTE: do not forget to add sendmail_flags=NO to
      /etc/rc.conf.local to disable sendmail.

NOTE: do not forget to add "-a /var/spool/postfix/dev/log" to
      syslogd_flags in /etc/rc.conf.local and restart syslogd.

NOTE: do not forget to add postfix to pkg_scripts in
      /etc/rc.conf.local to start postfix automatically.

NOTE: do not forget to remove the "sendmail clientmqueue runner"
      from root's crontab.

ClamAV ja clamav-milter

Tundub, et OpenBSD paketis clamav sisalduvad clamav, freshclam ning clamav-milter

# pkg_add clamav 
quirks-2.9 signed on 2014-07-31T22:37:55Z
clamav-0.98.4p0:libxml-2.9.1p1: ok
clamav-0.98.4p0:arc-5.21p: ok
clamav-0.98.4p0:libltdl-2.4.2p0: ok
clamav-0.98.4p0:unzip-6.0p4: ok
clamav-0.98.4p0:lha-1.14i.ac20050924.1: ok
clamav-0.98.4p0:bzip2-1.0.6p1: ok
clamav-0.98.4p0: ok
The following new rcscripts were installed: /etc/rc.d/clamav_milter /etc/rc.d/clamd /etc/rc.d/freshclam
See rc.d(8) for details.

Tarkvaralise RAID kasutamine

Tarkvaralise RAID juurutamiseks operatsioonisüsteemi paigaldamise käigus tuleb teha sellised tegevused

  • initsialiseerida fdisk abil RAID lülituse moodustavate kõvaketaste MBR
  • tekitada kõvaketastele disklabel editor abil üks kogu ketast hõlmav partitsioon, märkides tüübiks 'RAID'
  • koostada bioctl utiliidi abil komponentidest RAID1 mirror, tulemusena moodustub wd0 ja wd1 alusel sd0 nimeline seade
  • paigaldada operatsioonisüsteemi installeri abil nö virtuaalsele sd0 seadmele operatsioonisüsteem

Konkreetselt toimub loetletud tegevuste läbiviimine selliselt

TODO

Bootimisel sobib kasutada nt (boot> promptis töötavad set, ls jt käsud)

boot> boot sr0a:/bsd

Kasulikud lisamaterjalid

tmux programmi kasutamine

Tundub, et tmux programmi kõige olulisem praktiline erinevus võrreldes screen programmiga on, et käsurežiimi minnakse Ctrl-A asemel Ctrl-B abil. Nimelt, bash shellis on Ctrl-A rea algusse liikumise shortcut ja on tõesti ebamugav, kui see ei tööta. St et Ctrl-B ja C avab uue ekraani jne.

  • Olemasolevale sessioonile külge ühendumine
# tmux attach

Operatsioonisüsteemi paikamine

Paikamiseks tuleb /usr/src alla lahti pakkida src.tar.gz ja sys.tar.gz arhiivid ning paigad aadressilt http://www.openbsd.org/errata56.html, iga paiga alguses on kirjas selle paiga rakendamise juhis, nt

# itm1:/usr/src# head 001_rxr.patch.sig  
untrusted comment: signature from openbsd 5.6 base private key
RWR0EANmo9nqhktKtv2CaNBbjF9NkKJJdBLhW0hFdL8yus9REd6O8iiLzM8I6fL0NCx4ZXeflMC7babQmG7qvx8TLxf/YMtsGwA=

OpenBSD 5.6 errata 1, Sep 5, 2014:  Incorrect RX ring computation
leads to panics under load with bge(4), em(4) and ix(4).

Apply patch using:
    
    signify -Vep /etc/signify/openbsd-56-base.pub -x 001_rxr.patch.sig -m - | \
        (cd /usr/src && patch -p0)

Then build and install a new kernel:

cd /usr/src/sys/arch/`machine`/conf
   KK=`sysctl -n kern.osversion | cut -d# -f1`
   config $KK
   cd ../compile/$KK
   make
   make install

...

Mõnel juhul on vaja uus tuum juurutada ning seejuures operatsioonisüsteem alglaadida; mõnel juhul mõni programm või teek uuesti kompileerida ning sel juhul piisab vastava protsessi stop ja stardist.

Syslog-ng logiserveri kasutamine

OpenBSD baas tarkvara hulka kuuluv syslog võimaldab logida lokaalsesse failisüsteemi või üle võrgu logiserverisse. Logiserveri teenuse pidamiseks tuleb kasutada midagi muud, nt syslog-ng tarkvara. Paigaldamiseks sobib öelda

# pkg_add syslog-ng

OpenBSD syslogd programmiga paralleelseks kasutamiseks sobib nt selline seadistusfail

# cat /etc/syslog-ng/syslog-ng.conf                                                                                                                      
@version: 3.4

options { 
  use_dns(no);
  create_dirs(no);
  keep_hostname(yes);
};

source s_net { udp(port(515)); };

destination d_local { file("/var/log/syslog-ng.log"); };

log { source(s_net); destination(d_local); };

kus

  • TODO

Käivitamiseks sobib öelda

# /etc/rc.d/syslog_ng start                                                                                                                              
syslog_ng(ok)

Testiks saada midagi logisse

# echo '<0>logirida' | nc -w 1 -u 192.168.27.254 515

Dualboot Linux - OpenBSD arvuti tekitamine

  • Arvutit tuleb kasutada BIOS mitte UEFI režiimis kuna 2015 aasta suvel OpenBSD ei oska kasutada GPT partitsioonitabelit
  • Paigaldada tavalisel viisil Linux, nt sellise kõvaketta kasutusega, jättes osa kõvakettast partitsioneerimata
TODO
  • Käivitada arvuti OpenBSD installerilt ning töötada fdisk programmiga (mille installer automaatselt käivitab), tekitades A6 tüüpi partitsiooni OpenBSD jaoks ja valida (E)dit
..
Which dist is the root disk? ('?' for details) [sd0]
Use DUIDs rather than device names in fstab? [yes]
Disk: sd0       geometry: 36404/255/63 [584843264 Sectors]
Offset: 0       Signature: 0xAA55
             Starting             Ending          LBA Info:
 #:  id       C    H   S -          C    H    S [        start:          size ]
*0:  83       0   32  33 -        121   15   36 [         2048:       1951744 ] Linux files*
 1:  8E     121  157  37 -      11063  136   17 [      1953792:     175781888 ] Linux LVM
 2:  00       0    0   0 -          0    0    0 [            0:             0 ] unused
 3:  00       0    0   0 -          0    0    0 [            0:             0 ] unused
Use (W)hole disk or (E)dit the MBR? [whole] e

kus

  • ketas on suur 584843264 sektorit
  • järgmise partitsiooni algus on eelmise algus + suurus, 1951744 + 2048 = 1953792

seejärel avaneb fdisk dialoog ja näidata, et asutakse redigeerima teist partitsiooni

Enter 'help' for information
fdisk: 1> edit 2
 #:  id       C    H   S -          C    H    S [        start:          size ]
 2:  00       0    0   0 -          0    0    0 [            0:             0 ] unused
Partition id ('0' to disable) [0 - FF]: [0] (? for help) A6

ning seejärel öelda, et redigeeridakse LBA sektorites ja näitada partitsiooni algus, 1953792 + 175781888 = 177735680 ja lõpp 584843264 - 177735680 = 407107584

Do you wish to edit in CHS mode? [n]
Partition offset: [0] 177735680
Partition size: [0] 407107584

Tulelmusena on MBR selline

fdisk: 1> print
..
 #:  id       C    H   S -          C    H    S [        start:          size ]
*0:  83       0   32  33 -        121   15   36 [         2048:       1951744 ] Linux files*
 1:  8E     121  157  37 -      11063  136   17 [      1953792:     175781888 ] Linux LVM
 2:  A6   11063  136  18 -      36404  206   26 [    177735680:     407107584 ] OpenBSD
 3:  00       0    0   0 -          0    0    0 [            0:             0 ] unused

Seejärel salvestada muudatused ja väljuda programmist, pöördudes tagasi installerisse

fdisk: 1> write
fdisk: 1> quit
  • Installer jätkab disklabel seadistamisega, tekitada nö tavalisel viisil vajalik hulk sobivate suurustega partitsioone, nt
a - 16 G juurfailisüsteem
b - 10 G swap

Kusjuures offsettisid arvestatakse absoluutselt, mitte OpenBSD partitsiooni alguse suhtes

..
Use (A)uto layout, (E)dit auto layout, or create (C)ustom layout? [a] c
Label editor (enter '?' for help at any prompt)
> a a
offset: [177735680]
size: [407107584] 30000000
FS type: [4.2BSD]
mount point: [none] /
> a b
offset: [2007735680]
size: [377107584] 20000000
FS type: [swap]

ning salvestada muudatused ning väljuda programmist tagasi installerisse

> w
> q

Tulemusena tekitatakse failisüsteemid. Edasi töötada installeriga nö tavalisel viisil.

  • OpenBSD alglaadimiseks GRUB abil sobib käsitsi öelda
> set root=(hd0,msdos4)
> chainloader +1
> boot
  • GRUB menüüvaliku lisamiseks sobib kasutada sellise sisuga 40_custom faili
# cat /etc/grub.d/40_custom
#!/bin/sh
exec tail -n +3 $0

menuentry “OpenBSD″ {
  insmod part_msdos
  insmod chain
  set root=(hd0,msdos4)
  chainloader +1
}

ning default valiku kasustamiseks /etc/default/grub failis rida

GRUB_DEFAULT="OpenBSD"

ning genereerida grub.cfg fail öeldes

# update-grub

Peale paigaldamist, OpenBSD töötamise ajal saab fdisk ja disklabel sisu esitada programmidega

# fdisk sd0
Disk: sd0       geometry: 36404/255/63 [584843264 Sectors]
Offset: 0       Signature: 0xAA55
           Starting         Ending         LBA Info:
 #: id      C   H   S -      C   H   S [       start:        size ]
-------------------------------------------------------------------------------
*0: 83      0  32  33 -    121 157  36 [        2048:     1951744 ] Linux files*
 1: 8E    121 157  37 -  11063 136  17 [     1953792:   175781888 ] Linux LVM   
 2: A6  11063 136  18 -  36404 206  26 [   177735680:   407107584 ] OpenBSD     
 3: 00      0   0   0 -      0   0   0 [           0:           0 ] unused   

ning

# disklabel sd0
# /dev/rsd0c:
type: SCSI
disk: SCSI disk
label: DELL PERC H310
duid: f7c2a009439d4811
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 36404
total sectors: 584843264
boundstart: 177735680
boundend: 584843264
drivedata: 0 

16 partitions:
#                size           offset  fstype [fsize bsize  cpg]
 a:         30000000        177735680  4.2BSD   2048 16384    1 # /
 b:         20000000        207735680    swap                   # none
 c:        584843264                0  unused                   
 i:          1951744             2048  ext2fs                   
 j:        175781888          1953792 unknown

Krahhinud OpenBSD käivitamine

Kui OpenBSD krahhib ja seejärel ei käivitu ning ütleb, et tuleks teha failisüsteemi kontroll single user režiimis, siis paistab, et seda sobib teha nt sedasi (mitte scsi ketta puhul tavaliselt /dev/rwd0a jne)

# fsck_ffs -y /dev/rsd0a

kus

  • fsck_ffs eeldab, et kasutatakse ffs failisüsteemi (/etc/fstab real on nii kirjas, uuemal ajal vaikimisi on)
  • -y - vastatakse automaatselt jaa paljudele küsimustele
  • /dev/rsd0a - failisüsteem asub sd0 plokkseadmel ja disklabel partitsioonil a

Kui protseduur õnnestub tuleks arvutile öelda reboot ja seejärel võiks ta töötada edasi

# reboot

Liikluse prioriseerimine

Tööpõhimõte

Olgu antud juhul oluline selliste nelja osalise vahelise võrgliikluse priorieerimine, st kontrollimine, kui palju läbi asutuse tulemüüri kanalist mingiks liikluseks on kasutada ja millistel tingimustel. Liikluse prioriseerimisel saab otseselt kontrollida ainult tulemüürist pakettide väljumisi. Kaudselt mõjutab see ka pakettide sisenemisi (nt väljuvatele pakettidele saabuvaid vastuspakette)

            server-internet      klient-internet
                 ____            ____ 
                |    |          |    |
                |    |          |    |
                |____|          |____|


                         .....
                       internet
                          ...

                           |   re0 - 1 Gbit/s liides, sisuliselt on ühendus teenusepakkuja poolt seadistatud 100 Mbit/s
                         __|__
                        |     | tulemüür
                        |     |
                        |_____|
                           |   re1 - 1 Gbit/s liides ja ühendatud samuti 1 Gbit/s sisevõrgu switchi porti
                           |
            ------|--------|--------|------
                  |                 |
                __|__             __|__
               |     |           |     |
               |     |           |     |
               |_____|           |_____|

            server-asutus      klient-asutus

tingimused liiklusele

  • arvuti klient-asutus kasutab internetist teenust arvutist server-internet, kusjuures toimub andmete alla ja üleslaadimine; mõlema suuna jaoks peab olema tagatud 30 Mbit/s kanal
  • arvuti server-asutus pakub internetis olevale arvutile internet-klient teenust, kusjuures toimub andmete alla-laadimine; see liiklus ei tohi kasutada rohkem kui 20 Mbis/s kanalit
  • kõik muu liiklus nö on nii nagu kujuneb

Tulemüüri seadistamine toimub

  • kirjeldatakse queue'de hierarhia
  • seostatakse queue paketifiltri reegliga

Queue'de kirjeldamine

# cat /etc/pf/pf.queues
queue root_valis on re0 bandwidth 100M max 100M
queue root_sise on re1 bandwidth 1000M max 1000M

queue https_amphora_valis parent root_valis bandwidth 30M min 30M
queue https_video_valis parent root_valis bandwidth 20M max 20M
queue std_valis parent root_valis bandwidth 50M default

queue https_amphora_sise parent root_sise bandwidth 30M min 30M
queue https_video_sise parent root_sise bandwidth 20M max 20M
queue std_sise parent root_sise bandwidth 950M default

kus

  • kirjeldatakse välimise ja sisemise seadme juures queue (root_valis ja root_sise)
  • https_amphora_valis queue tagab üleslaadimise kiiruseks 30 Mbit/s (reaalselt võib olla see ka rohkem kui muud asjaolud ei piira)
  • https_amphora_sise queue tagab allalaadmise kiiruse 30 Mbit/s
  • https_video_sise queue tagab, et allalaadimise kiirus ei ületa 20 Mbit/s
  • https_video_valis queue tagab, et allalaadimisega kaasnevate välja minevate pakettide kiirus ei ületa 20 Mbit/s (tõenäoliselt pole seda vaja üldse teha)
  • std_valis a std_sise on queue'd, mis tegelevad liiklusega, mille kohta paketifiltri reeglid ei näita konkreetse queue kasutamisst

Queue'de kasutamine

Amphora rakenduse liikluse allalaadimise suuna kiiruse tagamine (kuigi set queue öeldakse pass in reegli peal, aga kuna see sama reegel praktiliselt tegeleb ka tulemüürist re1 seadmel vastupakettide väljalubamisega, siis just nende pakettide kiirust tagataksegi)

pass in quick on re1 inet from 10.0.0/24 to 10.47.211.121 label "JSkohtvork from kohtvork amphora valjapaasule" \
  tag FROM_KOHTVORK_TO_AMPHORA set queue https_amphora_sise

Amphora rakenduse liikluse ülelaadimise suuna kiiruse tagamine, eelmisel reeglis näidatud sildi abil lubatakse pakette tulemüüri välisel re0 seadmel välja ja seal öeldakse set queue

pass out quick on re0 inet tagged FROM_KOHTVORK_TO_AMPHORA nat-to 10.50.25.3 set queue https_amphora_valis

Video liikluse allalaadimise kiiruse piiramine

pass in quick on re1 inet from 10.0.0/24 to any port 554 label "JSkohtvork from vidoeserver to video partner" \
  tag FROM_KOHTVORK_TO_VP set queue https_video_sise

Teisest tulemüüri liidesest lubatakse paketid läbi välja prioriseerides

pass out quick on re0 inet tagged FROM_KOHTVORK_TO_VP nat-to 84.50.25.3 set queue https_video_valis

Riistvara

OpenBSD puhul on reeglina tarvis uue riistvara juurutamisel seda hoolikalt valida. Vastasel korral ei pruugi lihtsalt töötada võrgukaart, arvutis tekib ebaloomulik koormus (ingl. k. load) jms.

Riistavara valimise teeb üsna otsekoheseks asjaolu, et OpenBSD manual pages peal on täpselt kirjas, millist riistvara sobib nt ühe või teise võrgukaardi draiveriga kasutada. Nt võiks võrgukaardi valik toimuda selliselt

  • Arvutikauplusest leida funktsionaalsuse, kvaliteedi ja hinna osas meelepärane mudel, nt
Tootekirjeldus
Võrgukaart Edimax 9260TX-EV2
Edimax EN 9260TX-E V2 - Network adapter - PCIe low profile - Gigabit Ethernet
  • Seejärel leida tootja veebikohalt võrgukaardi sepetsifikatsioonist, milline chip sellel kaardil kasutuses on, nt kust on näha 'Realtek RTL8186E'

Fail:Openbsd-2.gif

All re NICs support IPv4 transmit/receive IP/TCP/UDP checksum offload, VLAN tag insertion and
stripping, and use a descriptor-based DMA mechanism. The 8102E(L), 8103E(L), 8168C/8111C, 
8168D/8111D, 8168DP/8111DP and 8168E/8111E chips also support IPv6 receive TCP/UDP checksum offload.

Tulemusena võiks olla üsna kindel, et võrgukaart 'Edimax 9260TX-EV2' töötab OpenBSD operatsioonisüsteemiga, ja see paistab väja arvutis nii

# dmesg
..
re0 at pci1 dev 0 function 0 "Realtek 8168" rev 0x06: RTL8168E/8111E (0x2c00), \
  msi, address 60:e3:27:01:4b:13
...

Emaplaadid võivad tekitada vahel operatsioonisüsteemis load'i (top väljundi järgi nt pidev 1 väärtuse ümber olek) ja reaalselt on ka süsteem nö unine kuigi midagi justkui ei tööta protsesside mõttes. Sellest võib üle saada kui

  • bootida arvuti single processor tuumaga
  • lülitada BIOS'is välja CPU spetsiifilisi nö moodsaid asju (prefetch jms)
  • lülitada tuumast välja UKC abil mingit funktsionaalsust

sshguard kasutamine

sshguard abil saab korraldada, et paketifilter automaatselt blokeerib nö kahtlased ssh teenuse poole pöördujad.

Tööpõhimõte

sshguard deemon jälgib /var/log/authlog faili sisu ja vastavalt default või seadistatud parameetrite väärtustele kirjutab sissekandeid PF sshguard tabelisse. Samuti näidatud aja pärast sissekanded kustutatakse.

Tarkvara paigaldamine

Tarkvara paigaldamiseks sobib öelda

# pkg_add sshguard

Tulemusena tekib failisüsteemi muu hulgas

  • /usr/local/sbin/sshguard - deemoni binary
  • /etc/rc.d/sshguard - käivitusskript
  • seadisusfaili programmil ei ole

Tarkvara seadistamine

Märkus 2019 suvi: kasutada rc.d faili muutmise asemel seadistusfaili /etc/sshguard.conf.

Seadistmiseks sobib muuta käivitusskripti, nt (programmil seadistusfaili ei ole)

# grep daemon_flags /etc/rc.d/sshguard 
daemon_flags="-l /var/log/authlog -w /etc/sshguard.whitelist"

kus

  • -w - whitelist ip aadresside/subnettide jne fail
# cat /etc/sshguard.whitelist                                                                                                        
127.0.0.1/8
192.168.10.0/24

Paketifiltri ettevalmistamine

Nt /etc/pf.conf faili alguses kasutada ridu

table <sshguard> persist
block in quick on $if_public proto tcp from <sshguard> to any port ssh label "ssh bruteforce"

Tarkvara käivitamine

Märkus 2019 suvi: kasutada käivitamiseks

# rcctl enable sshguard
# rcctl start sshguard
# rcctl stop sshguard - ei tööta hästi, osa protsessi nagu jääb käima

Käivitamiseks sobib öelda

# /etc/rc.d/sshguard start

Programm logib /var/log/authlog faili.

Tarkvara kasutamine

Logisse tekib

# grep sshguard /var/log/authlog                                                                                                     
May 28 11:35:59 itm1 sshguard[10205]: Started successfully [(a,p,s)=(40, 420, 1200)], now ready to scan.
May 28 11:37:40 itm1 sshguard[10205]: Blocking 10.146.72.65:4 for >630secs: 40 danger in 3 attacks over 8 seconds (all: 40d in 1 abuses over 8s).
May 28 11:40:17 itm1 sshguard[10205]: Blocking 10.35.154.82:4 for >630secs: 40 danger in 3 attacks over 9 seconds (all: 40d in 1 abuses over 9s).

PF tabelisse tekib

# pfctl -T show -t sshguard 
  10.35.154.82
  10.146.72.65

Kasulikud lisamaterjalid

doas kasutamine

Alates OpenBSD v. 5.8 ilmus doas ja ta asendab muu hulgas sudo. Kasutamiseks sobib moodustada sellise sisuga /etc/doas.conf fail

# cat /etc/doas.conf                                                                                                                            
permit keepenv { PKG_PATH ENV PS1 SSH_AUTH_SOCK } :wheel

ja root kaustaja shelli saab wheel grupiga kasutaja

$ doas /bin/ksh
doas (imre@itm1.imool) password:
#

vxlan võrguliidese kasutamine

TODO

UEFI ja GPT kasutamine

Tööpõhimõte

TODO

Vanilla OpenBSD GPT + UEFI

Tundub, et nt OpenBSD v. 6.1 puhul saab kasutada tavalist UEFI riistvaraga arvutit. Paigaldamiseks kopeerida install61.fs usb pulgale, nt Linux keskkonnas, hoolega jälgida, et of seade oleks ikka usb pulk ja mitte mõni kõvaketas vms

# dd if=install61.iso of=/dev/sdg bs=1M

käivitada arvuti ning bootida pulgalt, vajadusel öelda (hd0 on lokaalne kõvaketas)

boot> boot hd1a:/bsd

Disk set küsimusele vastata 'disk' ja edasi 'hd1' ning installer tunneb ise ära. Install kulgeb muus osas tavalisel viisil, tulemusena paistab gpt partitsioonindus sellisena

# fdisk sd0                                                                                                                         
Disk: sd0       Usable LBA: 64 to 78242912 [78242976 Sectors]
   #: type                                 [       start:         size ]
------------------------------------------------------------------------
   1: EFI Sys                              [          64:          960 ]
   3: OpenBSD                              [        1024:     78241889 ]

Kui selliselt ettevalmistatud arvuti kõvaketast uurida Linux alt, paistab selline pilt

# parted /dev/sdb
...
Warning: Not all of the space available to /dev/sdb appears to be used, you can fix the GPT to use all of the space (an extra
30 blocks) or continue with the current setting? 
Fix/Ignore? I                                                             
Model: ATA SAMSUNG SP0411C (scsi)
Disk /dev/sdb: 78242976s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start  End        Size       File system  Name             Flags
 2      64s    1023s      960s                    EFI System Area  boot, esp
 4      1024s  78242912s  78241889s  sun-ufs      OpenBSD Area

Multiboot

TODO

Kasulikud lisamaterjalid

switchd kasutamine

Tööpõhimõte

Väited

  • paistab, et vana man bridge seadme vahetab välja ühel päeval man switch seade
  • switch seadmel endal ei ole ip aadressi
  • switchd on nn flow controller, SDN (Software-Defined Networking)
  • switch seadmed saavad kasutada flow kontrollerit lokaalselt või üle võrgu

Seadistamine ja kasutamine

Tundub, et kasutamiseks sobib ka tühja sisuga /etc/switchd.conf fail ning flow kontrolleri käivitamiseks sobib öelda

# /etc/rc.d/switchd -f start

Tekitada switch switch0

# ifconfig switch0 create

asjasse puutuvad sellised protsessid

# ps aux | grep switch
root     29908  0.0  0.0   756  1420 ??  Isp    5:34PM    0:00.01 /usr/sbin/switchd
_switchd 22968  0.0  0.0   836  1808 ??  Isp    5:34PM    0:00.05 switchd: control (switchd)
_switchd 81721  0.0  0.0   956  1728 ??  Isp    5:34PM    0:00.09 switchd: ofp (switchd)
_switchd 39164  0.0  0.0   692  1636 ??  Isp    5:34PM    0:00.02 switchd: ofcconn (switchd)

ühendada flow kontrolleriga

# switchctl connect /dev/switch0

lisada virtuaalsete arvutite võrguseadmed

# ifconfig switch0 add tap0
# ifconfig switch0 add tap1

lisada hosti olev vether0 võrguseade

# ifconfig switch0 addlocal vether0

Tulemusena saavad host ja virtuaalsed arvutid üle võrgu piiranguteta üksteise poole pöörduda. Switchi olekut saab küsida

# switchctl show summary 
Switch  Port    Type            Name                            Info
1               switch          /dev/switch0            
1       4294967294      mac             fe:e1:ba:d7:e8:d8               age 16s
1       26      mac             fe:e1:bb:d1:a5:45               age 8s
1       27      mac             fe:e1:bb:d1:d9:90               age 6s

Küsida flow kontrolleri käest andmeid

# switchctl dump flows  
any > 127.0.0.1:6633: version 1_3 type MULTIPART_REQUEST length 56 xid 1
        type FLOW flags 0000
        table_id ALL out_port ANY out_group ANY cookie 0000000000000000 mask 0000000000000000 match type OXM length 4 (padded to 8)
127.0.0.1:6633 > any: version 1_3 type FEATURES_REQUEST length 8 xid 1

Seejuures

  • kontrollida, et võrguseadmed on up olekus, vajadusel öelda 'ifconfig seadmenimi up'
  • kui kasutatakse virtuaalseid arvuteid, siis võib olla mõnusam switch'i puudutav osa seadistada /etc/vm.conf failis

Kasulikud lisamaterjalid

  • man switchctl
  • man switchd
  • man switchd.conf
  • man ifconfig
  • man vm.conf

syspatch kasutamine

OpenBSD v. 6.1 ilmus võimalus rakendada nn binary paiku. St enam pole vaja operatsioonisüsteemi lähteteksti abil kompileerimise teel rakendada parandusi. Kasutamine toimub selliselt

  • failis /etc/installurl on mirrori url kust paiku kopeeritakse
# cat /etc/installurl
http://ftp.aso.ee/pub/OpenBSD
  • saadaolevate paikade nimekiri
# syspatch  -c 
001_dhcpd
002_vmmfpu
003_libressl
004_softraid_concat
005_pf_src_tracking
006_libssl
007_freetype
008_exec_subr
009_icmp_opts
010_perl
012_wsmux
013_icmp6_linklocal
  • paikamine
# syspatch            
Get/Verify syspatch61-001_dhcpd.tgz 100% |**************| 71730       00:00    
Installing patch 001_dhcpd
Get/Verify syspatch61-002_vmmfpu.tgz 100% |*************|  9377 KB    00:01    
Installing patch 002_vmmfpu
Get/Verify syspatch61-003_libress... 100% |*************| 11391 KB    00:01 
...
  • rakendatud paikade nimekiri
# syspatch -l         
001_dhcpd
002_vmmfpu
003_libressl
004_softraid_concat
005_pf_src_tracking
006_libssl
008_exec_subr
009_icmp_opts
010_perl
012_wsmux
013_icmp6_linklocal
  • rollback andmed on kataloogis /var/syspatch

GRE tunnel

Üks arvuti

# cat /etc/hostname.gre0  
172.16.0.1 172.16.0.2 netmask 0xffffffff link0 up
tunnel 192.168.111.103 192.0.0.101
!route add -net 172.21.10 -netmask 255.255.255.0 172.16.0.2

Teine arvuti

# cat /etc/hostname.gre0
172.16.0.2 172.16.0.1 netmask 0xffffffff link0 up
tunnel 192.0.0.101 192.168.111.103
!route add -net 172.23.10 -netmask 255.255.255.0 172.16.0.1

Tulemus paistab sedasi

esimene # ifconfig gre0
gre0: flags=9011<UP,POINTOPOINT,LINK0,MULTICAST> mtu 1476
        index 8 priority 0 llprio 3
        groups: gre
        tunnel: inet 192.0.0.101 -> 192.168.111.103
        inet 172.16.0.2 --> 172.16.0.1 netmask 0xffffffff
gre0: flags=9011<UP,POINTOPOINT,LINK0,MULTICAST> mtu 1476
        index 8 priority 0 llprio 3
        groups: gre
        tunnel: inet 192.168.111.103 -> 192.0.0.101
        inet 172.16.0.1 --> 172.16.0.2 netmask 0xffffffff

Tulemusena saab nt pingida

# ping -I 172.16.0.1 172.16.0.2 
PING 172.16.0.2 (172.16.0.2): 56 data bytes
64 bytes from 172.16.0.2: icmp_seq=0 ttl=255 time=1.944 ms
64 bytes from 172.16.0.2: icmp_seq=1 ttl=255 time=1.110 ms

Lisaks saab nt tekitada arvutitesse tekitada vether0 võrguseadmed ja neid tunneli testimiseks kasutada

teine # cat /etc/hostname.vether0                                                                                                       
inet 172.23.10.103 255.255.255.0
esimene # cat /etc/hostname.vether0                                                                                                           
inet 172.21.10.101 255.255.255.0


Kasulikud lisamaterjalid

OpenBSD git repositooriumi kasutamine

OpenBSD tarkvara on lisaks klassikalisele CVS repositooriumile https://www.openbsd.org/anoncvs.html/ olemas ka git repositooriumina aadressil https://github.com/openbsd

https://www.openbsd.org/ -> Getting Source -> GitHub Mirror

kopeerimiseks sobib öelda

# cd /usr
# git clone https://github.com/openbsd/src.git

Tulemusena tekib nö tavaline /usr/src kataloogi sisu. Paikade rakendamiseks tuleb veenduda, et paik ei sisalda nn dos reavahetusi, nt paistab välja selline

..
diff --git sys/dev/pv/xenvar.h sys/dev/pv/xenvar.h
index c79f0b8499d..bec54221c52 100644
--- sys/dev/pv/xenvar.h
+++ sys/dev/pv/xenvar.h
@@ -47,12 +47,10 @@ struct xen_intsrc {
        short                    xi_noclose;
        short                    xi_masked;
        struct refcnt            xi_refcnt;
        struct task              xi_task;
        struct taskq            *xi_taskq;
-       void                    (*xi_handler)(void *);
-       void                    *xi_ctx;
 };
 
 struct xen_gntent {
        grant_entry_t           *ge_table;
        grant_ref_t              ge_start;
...

ja öelda

# cd /usr/src
# git apply --verbose --directory sys /var/tmp/xen-patches-20171229.diff
Checking patch sys/dev/pv/xen.c...
Checking patch sys/dev/pv/xenvar.h...
Applied patch sys/dev/pv/xen.c cleanly.
Applied patch sys/dev/pv/xenvar.h cleanly.

OpenBSD v. 6.5 kasutamine

  • vlan seade on korrektne kirjeldada
# cat /etc/hostname.vlan10 
inet 192.168.10.177 255.255.255.0 NONE parent xnf1 vnetid 10 group seadmed description kontor

seadme tekitamiseks sobib öelda

# sh /etc/netstart vlan10

Tulemus paistab selline

# ifconfig vlan10                                                                                                                                                                 
vlan10: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
	lladdr 00:10:3a:79:22:22
	description: kontor
	index 40 priority 0 llprio 3
	encap: vnetid 10 parent xnf1 txprio packet
	groups: vlan seadmed
	media: Ethernet manual
	status: active
	inet 192.168.10.210 netmask 0xffffff00 broadcast 192.168.10.255

OpenBSD v. 6.5 -> v. 6.6 uuendamine sysupgrade abil

OpenBSD v. 6.5 -> v. 6.6 on kõige loomulikum uuendada uue sysupgrade utiliidi abil

  • logida sisse ja rakendada kõik 6.5 uuendused
# syspatch
  • öelda
# sysupgrade
  • seejärel automaatselt arvutit käivitatakse mõned korrad, konsoolil paistab midagi sellist
root@tm-dom0-moraal:/etc/xen# xl console openbsd-65
pciide0: channel 0 disabled (no drives)
pciide0: channel 1 disabled (no drives)
"Intel 82371AB Power" rev 0x03 at pci0 dev 1 function 3 not configured
xspd0 at pci0 dev 2 function 0 "XenSource Platform Device" rev 0x01
vga1 at pci0 dev 3 function 0 "Cirrus Logic CL-GD5446" rev 0x00
vga1: aperture needed
wsdisplay1 at vga1 mux 1: console (80x25, vt100 emulation)
isa0 at mainbus0
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
com0: console
pckbc0 at isa0 port 0x60/5 irq 1 irq 12
pckbd0 at pckbc0 (kbd slot)
wskbd0 at pckbd0: console keyboard, using wsdisplay1
softraid0 at root
scsibus1 at softraid0: 256 targets
root on rd0a swap on rd0b dump on rd0b
erase ^?, werase ^W, kill ^U, intr ^C, status ^T

Welcome to the OpenBSD/amd64 6.6 installation program.
Performing non-interactive upgrade...
Terminal type? [vt220] vt220
Available disks are: sd0.
Which disk is the root disk? ('?' for details) [sd0] sd0
Checking root filesystem (fsck -fp /dev/sd0a)... OK.
Mounting root filesystem (mount -o ro /dev/sd0a /mnt)... OK.
ifconfig: SIOCAIFADDR: File exists
Force checking of clean non-root filesystems? [no] no
/dev/sd0a (c391141494cc0c23.a) on /mnt type ffs (rw, local, wxallowed)

Let's upgrade the sets!
Location of sets? (disk http nfs or 'done') [http] disk
Is the disk partition already mounted? [yes] yes
Pathname to the sets? (or 'done') [6.6/amd64] /home/_sysupgrade/

Select sets by entering a set name, a file name pattern or 'all'. De-select
sets by prepending a '-', e.g.: '-game*'. Selected sets are labelled '[X]'.
    [X] bsd           [X] base66.tgz    [X] game66.tgz    [X] xfont66.tgz
    [X] bsd.mp        [X] comp66.tgz    [X] xbase66.tgz   [X] xserv66.tgz
    [X] bsd.rd        [X] man66.tgz     [X] xshare66.tgz
Set name(s)? (or 'abort' or 'done') [done] done
Directory does not contain SHA256.sig. Continue without verification? [no] yes
Installing bsd          100% |**************************| 18250 KB    00:00    
Installing bsd.mp       100% |**************************| 18336 KB    00:00    
Installing bsd.rd       100% |**************************| 10058 KB    00:00    
Installing base66.tgz   100% |**************************|   236 MB    00:38    
Installing comp66.tgz   100% |**************************| 72109 KB    00:21    
Installing man66.tgz    100% |**************************|  7418 KB    00:07    
Installing game66.tgz   100% |**************************|  2745 KB    00:00    
Installing xbase66.tgz  100% |**************************| 22092 KB    00:03    
Installing xshare66.tgz 100% |**************************|  4482 KB    00:07    
Installing xfont66.tgz  100% |**************************| 39342 KB    00:08    
Installing xserv66.tgz  100% |**************************| 15757 KB    00:02    
Location of sets? (disk http nfs or 'done') [done] done
Making all device nodes... done.
Multiprocessor machine; using bsd.mp instead of bsd.
Relinking to create unique kernel... done.

CONGRATULATIONS! Your OpenBSD upgrade has been successfully completed!
...
  • arvutit rebooditakse automaatselt ja paistab midagi sellist, st tundub et automaatselt rakendatakse mingis osas sysmerge
..
running rc.sysmerge
===> Updating /etc/changelist
===> Updating /etc/fbtab
===> Updating /etc/login.conf
===> Updating /etc/mail/smtpd.conf
===> Installing /etc/X11/twm/system.twmrc
===> Installing /etc/X11/xenodm/GiveConsole
===> Installing /etc/X11/xenodm/TakeConsole
===> Installing /etc/X11/xenodm/Xreset
===> Installing /etc/X11/xenodm/Xresources
===> Installing /etc/X11/xenodm/Xservers
===> Installing /etc/X11/xenodm/Xsession
===> Installing /etc/X11/xenodm/Xsetup_0
===> Installing /etc/X11/xenodm/Xstartup
===> Installing /etc/X11/xenodm/xenodm-config
===> Installing /etc/X11/xinit/xinitrc
===> Installing /etc/X11/xsm/system.xsm
===> Linking /etc/fonts/conf.d/10-scale-bitmap-fonts.conf
===> Linking /etc/fonts/conf.d/20-unhint-small-dejavu-sans-mono.conf
===> Linking /etc/fonts/conf.d/20-unhint-small-dejavu-sans.conf
===> Linking /etc/fonts/conf.d/20-unhint-small-dejavu-serif.conf
===> Linking /etc/fonts/conf.d/20-unhint-small-vera.conf
===> Linking /etc/fonts/conf.d/30-lucida-aliases.conf
===> Linking /etc/fonts/conf.d/30-metric-aliases.conf
===> Linking /etc/fonts/conf.d/30-urw-aliases.conf
===> Linking /etc/fonts/conf.d/31-nonmst.conf
===> Linking /etc/fonts/conf.d/40-nonlatin.conf
===> Linking /etc/fonts/conf.d/42-luxi-mono.conf
===> Linking /etc/fonts/conf.d/45-latin.conf
===> Linking /etc/fonts/conf.d/49-sansserif.conf
===> Linking /etc/fonts/conf.d/50-user.conf
===> Linking /etc/fonts/conf.d/51-local.conf
===> Linking /etc/fonts/conf.d/60-latin.conf
===> Linking /etc/fonts/conf.d/65-fonts-persian.conf
===> Linking /etc/fonts/conf.d/65-nonlatin.conf
===> Linking /etc/fonts/conf.d/69-unifont.conf
===> Linking /etc/fonts/conf.d/80-delicious.conf
===> Linking /etc/fonts/conf.d/90-synthetic.conf
---- /etc/ntpd.conf unhandled, re-run sysmerge to merge the new version
---- /var/unbound/etc/unbound.conf unhandled, re-run sysmerge to merge the new version
...
  • öelda ja vajadusel kohendada seadistusi ka käsitsi (esimene kord küsib kas ntp.conf ja unbound.conf faile muuta, ja teinekord kontrolliks, et enam pole muudatusi)
# sysmerge
# sysmerge
# reboot
  • öelda (või ilma -U)
# pkg_add -Uu
  • öelda
# syspatch
  • lõpuks veelkorra rebootida
# reboot

OpenBSD v. 6.6 -> v. 6.7 uuendamine sysupgrade abil

pkg_add vastas

--- -cyrus-sasl-2.1.27p1 -------------------
You should also run rm -rf /var/sasl2/*
--- -joe-4.6 -------------------
You should also check /etc/joe/joerc (which was modified)
--- -mc-4.8.23p0 -------------------
Couldn't delete /etc/mc/mc.keymap (no checksum)
--- -sshguard-2.3.1 -------------------
You should also check /etc/sshguard.conf (which was modified)
--- -zabbix-agent-4.0.11 -------------------
You should also run rm -rf /var/log/zabbix/*
You should also check /etc/zabbix/zabbix_agentd.conf (which was modified)
--- +zabbix-agent-4.0.19 -------------------
Error deleting directory /usr/local/lib/python3.6: Directory not empty

OpenBSD v. 6.7 -> v. 6.8 uuendamine sysupgrade abil

Tundub, et kõik toimub ladusalt, vt 6.5 -> 6.6

  • bootloader uuenes automaatselt 3.47 -> 3.52

Pakettide uuendamisel

Read shared items: ok
--- -cyrus-sasl-2.1.27p1 -------------------
You should also run rm -rf /var/sasl2/*
--- -joe-4.6 -------------------
You should also check /etc/joe/ftyperc (which was modified)
You should also check /etc/joe/joerc (which was modified)
--- -mc-4.8.24 -------------------
Couldn't delete /etc/mc/mc.keymap (no checksum)
--- -sshguard-2.3.1 -------------------
You should also check /etc/sshguard.conf (which was modified)
--- -zabbix-agent-4.0.19 -------------------
You should also run rm -rf /var/log/zabbix/*
You should also check /etc/zabbix/zabbix_agentd.conf (which was modified)

Misc

# netstat -l -n -p tcp -f inet 
Active Internet connections (only servers)
Proto   Recv-Q Send-Q  Local Address          Foreign Address        (state)
tcp          0      0  10.192.0.53.53         *.*                    LISTEN
tcp          0      0  192.168.10.210.53      *.*                    LISTEN
tcp          0      0  127.0.0.1.53           *.*                    LISTEN
tcp          0      0  192.168.1.210.53       *.*                    LISTEN
tcp          0      0  10.193.0.53.53         *.*                    LISTEN
tcp          0      0  *.22                   *.*                    LISTEN

Wireguard

Tööpõhimõte

TODO

Serveri ja kliendi seadistamine

Debugimine

# ifconfig wg0 debug
# tail -f /var/log/messages
Nov 29 13:13:18 tm-moraal /bsd: wg0: Sending handshake initiation to peer 0
Nov 29 13:13:18 tm-moraal /bsd: wg0: Receiving handshake response from peer 0
Nov 29 13:13:18 tm-moraal /bsd: wg0: Receiving keepalive packet from peer 0
Nov 29 13:13:30 tm-moraal /bsd: wg0: Sending keepalive packet to peer 0
Nov 29 13:14:02 tm-moraal /bsd: wg0: Sending keepalive packet to peer 0
# tcpdump -nei wg0  
tcpdump: listening on wg0, link-type LOOP
13:13:18.759201 192.168.23.2 > 192.168.112.15: icmp: echo request
13:13:18.784273 192.168.112.15 > 192.168.23.2: icmp: echo reply
13:13:19.764026 192.168.23.2 > 192.168.112.15: icmp: echo request
13:13:19.773764 192.168.112.15 > 192.168.23.2: icmp: echo reply

Kasulikud lisamaterjalid

Kasulikud lisamateralid