#topicpath
 * 他のBSDユーザのためのOpenBSD管理入門 [#gbf9e17f]
 RIGHT:EBUG 第63回会合 ~
 2017年 11月18日、長岡市 ながおか市民センター ~
 川俣吉広、kaw@on.rim.or.jp
 
 OpenBSDの設定や管理について、他のBSD系OSからみて特徴的と思われる点をまとめてみる。
 ----
 #contents
 **ストレージ、ファイルシステム関連 [#lde54a06]
 ディスク関連の設定はインストール時に行われるが、運用開始後に変更や増設をする時に、以下のノウハウを把握しておくと有用:
 
 -OpenBSDでは、[[fdisk>https://man.openbsd.org/fdisk]]パーティションと[[disklabel>https://man.openbsd.org/disklabel]]パーティションが個別に存在する。
 --fdiskパーティションとdisklabelパーティションの設定は連動しない。fdiskパーティションのOpenBSD領域とdisklabelパーティションのOpenBSD boundaryはセクタ単位で合わせておく必要がある(インストール時には自動で行われる)。
 --fdiskパーティションとdisklabelパーティションの設定は連動しない。fdiskパーティションのOpenBSD領域とdisklabelパーティションのOpenBSD boundaryはセクタ単位で合わせておく必要がある(インストール時には自動で合わせられる)。
 --disklabelパーティションはOpenBSD boundaryの範囲内にのみ作成できる。
 
 -ディスクパーティションは例えば ''/dev/sd0a'' のように命名される
 --デバイス : wd=IDE, sd=SCSI/SATA/SD/USB-mem..., cd=CD/DVD...
 --0..9 : デバイスのユニット番号
 --a..p : パーティション
 ---a:(通常はルート)
 ---b:swap
 ---c:メディア全体
 ---iからkくらいまで: 慣習的にFAT/NTFS/EXTFSなどで使われることが多い
 ---それ以外については特に決まっていない
 
 -デバイス名は sd0a というような従来の命名法に加えて、
 デバイス毎に生成される固有な値である DUID (disklabel unique ID) を使うこともできる。
 --表記としては、''sd0a'' の替わりに ''fbab11c399a0565f.a'' などとなる。
 --生成されたDUIDはdisklabelコマンドの表示から確認できる。
 --インストール時に生成される [[/etc/fstab>https://man.openbsd.org/fstab]] はDUID表記が用いられる。
 
 -ファイルシステムのレイアウトについては、[[オンラインマニュアルのhier(7)>https://man.openbsd.org/hier]]を参照のこと。
 
 **ネットワーク [#q2ac4220]
 -ネットワークの基本的な設定は、/etc 内にある以下のファイルによって行われる。
 :[[myname>https://man.openbsd.org/myname]]|ホスト名のFQDN
 :[[mygate>https://man.openbsd.org/mygate]]|デフォルトゲートウェイ
 :[[hostname.'''if'''>https://man.openbsd.org/hostname.if]]|ネットワークインターフェースの設定~
 '''if''' の部分には設定対象となる[[em0>https://man.openbsd.org/em]]などのインターフェース名を表記する。~
 [[VLAN>https://man.openbsd.org/vlan]]やブリッジ、pppoeなどの仮想インターフェースも全てこの方法で設定する。~
 基本的にはIPアドレスやネットマスクなど、
 [[ifconfig>https://man.openbsd.org/ifconfig]]コマンドの引数となるものを記述する。~
 無線LAN関連のSSIDや暗号化キーなどもifconfigで設定するため、記述はこのファイルで行う。wpa_supplicantのような外部プログラムは使用しない。
 :[[resolv.conf>https://man.openbsd.org/resolv.conf]]|名前解決の設定
 :[[hosts>https://man.openbsd.org/hosts]]|既知のホスト名とIPアドレスの対応表
 :[[pf.conf>https://man.openbsd.org/pf.conf]]|パケットのフィルタリング、アドレス変換、帯域制御などの設定
 
 -上記のファイルはインストール時に生成されるが、
 その後設定変更等を行う場合はファイル編集後、以下の操作で変更を反映させる:
 --mygate, myname ... OSの再起動
 --hostname.'''if'''
  # sh /etc/netstart if ... ネットワークインターフェースifを再初期化する場合
  
  # sh /etc/netstart    ... 全てのネットワークインターフェースを再初期化する場合
 --resolv.conf, hosts ... 即時反映
 --pf.conf
  # pfctl -f /etc/pf.conf
 
 **アカウント管理 [#qae37523]
 -ユーザの管理には[[user>https://man.openbsd.org/user]]コマンドを使用する。
 --ユーザの追加は[[adduser>https://man.openbsd.org/adduser]]コマンドを使用してインタラクティブに行うこともできる。~
 adduserを使った場合、/etc/skel以下にあるドットファイルが追加されたユーザのホームディレクトリにコピーされる。
 --[[vipw>https://man.openbsd.org/vipw]]コマンドも使用可。
 
 -グループの管理は[[/etc/group>https://man.openbsd.org/group.5]]を直接編集するか、[[groupadd>https://man.openbsd.org/groupadd]], [[groupdel>https://man.openbsd.org/groupdel]]などのコマンドを使用する。
 
 -他のユーザ権限でコマンドを実行したい場合は、sudoの代替実装である[[doas>https://man.openbsd.org/doas]]を使用する。
 例えば以下のように[[/etc/doas.conf>https://man.openbsd.org//etc/doas.conf]]を記述すると、wheelグループに属しているユーザに対してrootでの管理業務を許可することができる:
  permit persist :wheel
 (persistはdoasの実行が許可された後、暫くはパスワード入力なしでdoasを再実行できるようにするためのオプション)
 
 **パッケージ管理 [#d4f2c783]
 サードパーティのソフトウェアはports/packagesを用いて導入することができる。
 
 -packagesを利用してすでに用意されているビルド済みパッケージを管理するには、[[pkg_add>https://man.openbsd.org/pkg_add]], [[pkg_delete>https://man.openbsd.org/pkg_delete]], [[pkg_info>https://man.openbsd.org/pkg_info]] などのコマンドを使用する。
 以下は、rsyncユティリティの導入例:
  # export PKG_PATH=http://ftp.jaist.ac.jp/pub/OpenBSD/6.2/packages/amd64/
  # pkg_add rsync
 
 -portsを利用するには、OpenBSDの配布サイトより ports.tar.gz をダウンロードし /usr 以下に展開後、インストールしたいソフトウェアのディレクトリに移った後、make install を行う。
 ソフトウェアのビルドが終わると、/usr/ports/packages/arch名/all 以下にそのソフトウェアのパッケージが作成され、さらに pkg_add が行われる。
 
 -ports/packagesを用いて導入したソフトウェアは、/usr/local以下に配置される。
 --ただし、設定ファイルは/etc以下に配置される。
 --パッケージの管理情報が/var/db/pkg以下に記録される。
 --pkg_add実行時に、そのソフトウェアの設定などについての留意事項が表示される。これは /var/db/pkg/パッケージ名/+DISPLAY ファイルの内容である。
 --インストール後の設定作業などは、/usr/local/share/doc/pkg-readmes以下に記述がある場合もあり、こちらも要参照。
 
 **デーモンやサービスの設定 [#k41717fe]
 -OpenBSDでは、各種設定ファイルはX Window関連、ports/packagesから導入したものを含め、すべて /etc 以下に配置される。
 
 -/etc/examples 以下に設定ファイルのサンプルがある場合は、それを/etcにコピー、編集して使用することができる。
 
 -起動時の初期化スクリプトは /etc/rc。ユーザが初期化動作を追加したい場合は [[/etc/rc.local>https://man.openbsd.org//rc.local]] ファイルを作成し、その中にシェルスクリプトとして記述する。
 
 -デーモンやサービスの初期値は /etc/rc.conf に記述されている。このファイルをユーザが変更することはない。初期値を変更したい場合は [[/etc/rc.conf.local>https://man.openbsd.org/rc.conf.local]] に変更内容を記述する。
 
 -デーモンやサービスの管理は [[rcctl>https://man.openbsd.org/rcctl]] を用いる。rcctlを用いると /etc/rc.conf.local を直接編集することなしに記述内容の変更を行うことができる。~
 rcctlの実行例:
  # rcctl disable sndiod ... sndiod(サウンドデーモン)を無効化する ... 次回ブート時以降、起動されない
                                           (/etc/rc.conf.localに「sndiod=NO」という行が追加される)
  # rcctl stop sndiod    ... 現在動いているsndiodを停止する
 
 -定時処理としては [[/etc/daily>https://man.openbsd.org/daily]], [[/etc/weekly>https://man.openbsd.org/weekly]], [[/etc/monthly>https://man.openbsd.org/monthly]] がある。
 これらは、実行結果が root 宛にメールで通知される。
 
 -[[cron>https://man.openbsd.org/cron]]デーモンの管理は[[crontab>https://man.openbsd.org/crontab]]ユティリティを使用して行う。
 
 -/etc/firmware 以下にはデバイス初期化に必要なファームウェアバイナリのうち、OSに同梱可能なものが置かれている(ファームウェアが必要なデバイスとしては、グラフィクス、無線LAN、カメラなどのデバイスが多い)。
 --同梱不可なファームウェアは http://firmware.openbsd.org/firmware/ からダウンロード・インストールする必要がある。
 --[[fw_update>https://man.openbsd.org/fw_update]] を使用すると、ファームウェアの必要なデバイスの検出、ファームウェアのダウンロードとインストールを自動で行うことができる。
 
 -カーネルのパラメータを変更してパフォーマンスの改善を行うことができる。
 --[[UKC>https://man.openbsd.org/boot_config]] (User Kernel Config) あるいは [[config>https://man.openbsd.org/config]] ユティリティによる起動時での変更
 --[[sysctl>https://man.openbsd.org/sysctl]] による on the fly での変更(と参照) ~
 ... 変更を永続化するには [[/etc/sysctl.conf>https://man.openbsd.org/sysctl.conf]] に記述する。
 
 **アップデート作業 [#wb6147ef]
 OpenBSDは概ね半年に一回バージョンアップが行われている。バージョンが更新されるとバージョン番号が0.1増える
 (2017年11月現在の最新バージョンは2017年10月9日公開のOpenBSD 6.2)。
 
 -OSの修正情報は[[最新バージョンとその一つ前まで提供される>https://www.openbsd.org/errata.html]]。
 従って、あるバージョンのサポート期間は概ね一年間。
 
 -現行リリースのうち、i386, amd64, arm64プラットフォームについては、バイナリパッチが提供される。このパッチは [[syspatch>https://man.openbsd.org/syspatch]] ユティリティを用いて適用する。
 
 -修正の適用をバイナリパッチではなく、ソースレベルで行う場合は概ね以下の手順で行う:
 --ソースを/usr/src以下に展開 (Xの場合は/usr/xenocara、portsの場合は/usr/ports)
 --[[cvs>https://man.openbsd.org/cvs]]を用いてソースを最新の状態に更新
 --[[修正情報の手順を参照>https://www.openbsd.org/errata62.html]]して、ビルド・インストールを行う。
 
 -OSのバージョンアップを行う場合は新しいバージョンのインストール用カーネル /bsd.rd を起動し、メニューから「update」を選択する。具体的な作業については[[バージョン毎に提供される情報>https://www.openbsd.org/faq/upgrade62.html]]を参照のこと。
 
 **情報源 [#e3f2dfd4]
 -Online Manual Page ([[Web>https://man.openbsd.org]])
 >'''''Again, PLEASE READ THE MANUAL PAGES.&br;Our developers have spent countless hours improving them so that they are clear and precise.'''''&br;... /var/mail/root
 
 --[[afterboot(8)>https://man.openbsd.org/afterboot]] - things to check after the first complete boot
 
 -公式: [[FAQ>https://www.openbsd.org/faq/index.html]] - FreeBSD Handbook や The NetBSD Guide に相当
 
 -管理・設定について概説 - [[LEARN TO TAME OPENBSD QUICKLY>http://www.openbsdjumpstart.org/]]
 
 -ニュースサイト - [[OpenBSD Journal>http://undeadly.org/]]
 ----
 #topicpath
Reload  New Edit Diff Attach Copy Rename  Top Index Search Recent Backups  Help  RSS