#topicpath * 他のBSDユーザのためのOpenBSD管理入門 [#gbf9e17f] RIGHT:EBUG 第63回会合 ~ 2017年 11月18日、長岡市 ながおか市民センター ~ 川俣吉広、kaw@on.rim.or.jp OpenBSDの設定・管理について、他のBSD系OSからみて特徴的と思われる点をまとめてみる。 ---- #contents **ストレージ [#lde54a06] ストレージ関連の設定を変更する場合など、以下のノウハウを把握しておくと有用: -OpenBSDでは、fdiskパーティションとdisklabelパーティションが個別に存在する。 --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 はDUID表記が用いられる。 **ネットワーク [#q2ac4220] -ネットワークの基本的な設定は、/etc 内にある以下のファイルで設定される。 :myname|ホスト名のFQDN :mygate|デフォルトゲートウェイ :hostname.'''if'''|ネットワークインターフェースの設定~ '''if''' の部分には設定対象となるem0などのインターフェース名を表記する。~ VLANやブリッジ、pppoeなどの仮想インターフェースも全てこの方法で設定する。~ 基本的にはIPアドレスやネットマスクなど、 ifconfigコマンドの引数となるものを記述する。~ 無線LAN関連のSSIDや暗号化キーなどもifconfigで設定するため、記述はこのファイルで行う。wpa_supplicantのような外部プログラムは使用しない。 :resolv.conf|名前解決の設定 :hosts|既知のホスト名とIPアドレスの対応表 :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コマンドを使用する。 --ユーザの追加はadduserコマンドを使用してインタラクティブに行うこともできる。~ adduserを使った場合、/etc/skel以下にあるドットファイルが追加されたユーザのホームディレクトリにコピーされる。 --vipwコマンドも使用可。 -グループの管理は/etc/groupを直接編集するか、groupadd, groupdelなどのコマンドを使用する。 -他のユーザ権限でコマンドを実行したい場合は、sudoの代替実装であるdoasを使用する。 例えば以下のように/etc/doas.confを記述すると、wheelグループに属しているユーザに対してrootでの管理業務を許可することができる: permit persist :wheel (persistはdoasの実行が許可されて暫くは、パスワード入力なしでdoasを再実行するためのオプション) **パッケージ管理 [#d4f2c783] サードパーティのソフトウェアはports/packagesを用いて導入することができる。 -packagesを利用してすでに用意されているビルド済みパッケージを管理するには、pkg_add, pkg_delete, 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 ファイルを作成し、その中にシェルスクリプトとして記述する。 -デーモンやサービスの初期値は /etc/rc.conf に記述されている。このファイルをユーザが変更することはない。初期値を変更したい場合は /etc/rc.conf.local に変更内容を記述する。 -デーモンやサービスの管理は rcctl を用いる。rcctlを用いると /etc/rc.conf.local を直接編集することなしに記述内容の変更を行うことができる。~ rcctlの実行例: # rcctl disable sndiod ... sndiod(サウンドデーモン)を無効化する ... 次回ブート時以降、起動されない (/etc/rc.conf.localに「sndiod=NO」という行が追加される) # rcctl stop sndiod ... 現在動いているsndiodを停止する -定時処理としては /etc/daily, /etc/weekly, /etc/monthly がある。 これらは、実行結果が root 宛にメールで通知される。 -cronデーモンの管理はcrontabユティリティを使用して行う。 -/etc/firmware 以下にはデバイス初期化に必要なファームウェアバイナリのうち、OSに同梱可能なものが置かれている。 --同梱不可なファームウェアは http://firmware.openbsd.org/firmware/ からダウンロード・インストールする必要がある。 --fw_update を使用すると、ファームウェアの必要なデバイスの検出、ファームウェアのダウンロードとインストールを自動で行うことができる。 -カーネルのパラメータを変更してパフォーマンスの改善を行うことができる。 --UKC (User Kernel Config) あるいは config ユティリティによる起動時での変更 --sysctl による on the fly での変更(と参照) ~ ... 変更を永続化するには /etc/sysctl.conf に記述する。 **アップデート作業 [#wb6147ef] OpenBSDは概ね半年に一回バージョンアップが行われている。バージョンが更新されるとバージョン番号が0.1増える (2017年11月現在の最新バージョンは2017年10月9日公開のOpenBSD 6.2)。 -OSの修正情報は[[最新バージョンとその一つ前まで提供される>https://www.openbsd.org/errata.html]]。 よってあるバージョンのサポート期間は概ね一年間。 -i386, amd64の最新バージョンについては、バイナリパッチが提供される。このパッチは syspatch ユティリティを用いて適用する。 -修正の適用をバイナリパッチではなく、ソースレベルで行う場合は概ね以下の手順で行う: --ソースを/usr/src以下に展開 (Xの場合は/usr/xenocara、portsの場合は/usr/ports) --cvsを用いてソースを最新の状態に更新 --[[修正情報の手順を参照>https://www.openbsd.org/errata62.html]]して、ビルド・インストールを行う。 -OSのバージョンアップを行う場合は新しいバージョンのインストール用カーネルを起動し、メニューから「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.''''' --[[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