OpenBSD覚書綴りです。
Linux系から、UNIX系に移る(戻る)のが今後の流れだと考えています。近年のLINUXは、RedHatやUbuntuなど商用ベースの開発方向に影響をうけやすく、戸惑うことが多くなっているからです。
ご本家系・堅牢第一のOpenBSDを題材とします(もちろんFreeBSDに含むところはありません)。
仕事机のMacOSも(一応)BSD系ですが、Appleの独自癖が強く、その点については独自項目をたてて書く予定ではいます。
以下、一般ユーザとしての覚書となります。当方は、カーネルレベルの挙動についてメモするほどの能力はありません。
始めるにあたって、まずは、一般ユーザ目線からみた管理項目コマンド比較メモを作りました。
デーモン・サービス系
| 管理項目 |
Linux (Systemd系) |
OpenBSD (BSD系) |
| システム基本設定 |
分散管理(/etc/sysctl.d/、.env など) |
/etc/rc.conf.local(差分一括管理) |
| カーネルパラメータ動的変更 |
sysctl -w key=value |
sysctl key=value |
| デーモン起動・停止 |
systemctl start/stop |
rcctl start/stop |
| デーモン自動起動有効化 |
systemctl enable |
rcctl enable |
| サービス一覧・状態確認 |
systemctl list-units / systemctl status |
rcctl ls started / rcctl check |
ネットワーク系
| 管理項目 |
Linux (Systemd系) |
OpenBSD (BSD系) |
| ファイアウォール(ルール設定) |
nftables / iptables(Ubuntuではufwラッパー) |
pf (Packet Filter) |
| ファイアウォール設定ファイル |
/etc/nftables.conf |
/etc/pf.conf |
| IP・リンク状態確認 |
ip address / ip link |
ifconfig |
| ネットワーク永続設定ファイル |
/etc/netplan/ または /etc/sysconfig/ |
/etc/hostname.<if名>(例: /etc/hostname.em0) |
| ルーティングテーブル |
ip route |
route show または netstat -rn |
| リゾルバ |
/etc/resolv.conf(Systemdが制御) |
/etc/resolv.conf(静的テキスト管理) |
パッケージ管理
| 管理項目 |
Linux (Systemd系) |
OpenBSD (BSD系) |
| パッケージ管理 |
apt / dnf / yum / pacman など |
pkg_add / pkg_info / pkg_delete |
| パッケージ一覧 |
dpkg -l / rpm -qa など |
pkg_info |
ユーザ管理
| 管理項目 |
Linux (Systemd系) |
OpenBSD (BSD系) |
| ユーザー追加 |
useradd / adduser |
useradd |
| パスワード変更 |
passwd |
passwd |
| 安全なユーザー編集 |
vipw(推奨) |
vipw(強く推奨) |
ログ
| 管理項目 |
Linux (Systemd系) |
OpenBSD (BSD系) |
| ログ確認 |
journalctl |
/var/log/ 配下 + syslogd |
| ログローテート |
logrotate |
newsyslog |
※ログ閲覧回りについては、あれこれありますが、ひと言でいえば、BSD系はsyslogd基軸の伝統的なプレーンテキストログですみますが、LINUX系はjournalctlのようなバイナリログ依存が強くなってきている傾向にありますので、注意です(Fedra/ArchLinuxなど)。
ディスク系
| 管理項目 |
Linux (Systemd系) |
OpenBSD (BSD系) |
| ディスク一覧 |
lsblk / fdisk -l |
sysctl hw.disknames / disklabel |
| パーティション操作 |
fdisk / parted / gdisk |
fdisk / disklabel |
| ファイルシステム作成 |
mkfs.ext4 / mkfs.xfs など |
newfs |
その他
| 管理項目 |
Linux (Systemd系) |
OpenBSD (BSD系) |
| 時刻同期 |
timedatectl / chronyd / systemd-timesyncd |
ntpd(base同梱) |
| タイムゾーン設定 |
timedatectl set-timezone |
/etc/localtime のシンボリックリンク |
| ホスト名設定 |
hostnamectl set-hostname |
/etc/myname を編集 |
| 定期実行(従来) |
crontab -e |
crontab -e |
| 定期実行(現代的) |
systemd timers(systemctl list-timers) |
基本的にcronのみ |
| カーネルモジュール |
lsmod / modprobe / /etc/modules-load.d/ |
ほぼモノリシック(動的ロードはほぼ使わない) |
| 追加セキュリティ機構 |
SELinux / AppArmor / firewalld |
pf + pledge / unveil |