1と12のリビジョン間の差分 (その間の編集: 11回)
2021-03-12 10:03:31時点のリビジョン1
サイズ: 4330
コメント:
2021-04-21 02:16:38時点のリビジョン12
サイズ: 10907
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 3: 行 3:
本記述は13.0-RC1時点での内容であるが、13.0がリリースされた後、微調整する。

[[FreeBSD/FreeBSD13-install|インストール]] および [[FreeBSD/FreeBSD13-initial-setup|初期設定]] が完了しているものとする。
本記述は13.0-R時点での内容であるが、13.0-Rがリリースされたあとも調整する。

[[FreeBSD/FreeBSD13-install|インストール]] および [[FreeBSD/FreeBSD13-initial-setup|初期設定]] が完了しているものとするが、そう極端に依存はしてないはずである
行 9: 行 9:
= 都度対応ケース =
行 10: 行 12:
 * 実行頻度: ユーザーおよびグループを追加したいと思った都度。
行 35: 行 38:
   * `wheel`: ルートになれるユーザー(管理者)
   * `operator`: 再起動等のサーバーの操作ができるユーザー(オペレーター)
   * `dialer`: シリアル通信するユーザー
   * `wheel`: ルートになれるユーザー(管理者)が所属するグループ
   * `operator`: 再起動等のサーバーの操作ができるユーザー(オペレーター)が所属するグループ
   * `dialer`: シリアル通信したいユーザーが所属するグループ
行 53: 行 56:
{{{#!highlight shell numbers=disable
pw usermod ユーザー名 -w no
}}}
行 63: 行 69:
== SASL認証におけるユーザーの追加 ==
 * 実行頻度: SASL認証対象のユーザーを追加したいと思った都度。
 * いわゆるレルムとの相関についてはここでは問わない。
 * 本サービスを利用する側の運用ポリシーを決めた上で作業すること。
 * なおユーザー `user@domain` と、ユーザー `user`・レルム `domain` は扱いが違うので注意。
 * 上位サービスによっては `user@domain` を `user`・`domain` に分解することがあるが、それはそっち側の話となる。
 * レルムを指定しない場合 `hostname` が指定された物として処理されるが、これが上位サービスから認識されるかは別の話になる。

=== SASLユーザーの追加 ===
{{{#!highlight shell numbers=disable
saslpasswd2 -c ユーザー
saslpasswd2 -c -u レルム ユーザー
}}}

=== SASLユーザーのパスワード変更 ===
{{{#!highlight shell numbers=disable
saslpasswd2 ユーザー
saslpasswd2 -u レルム ユーザー

}}}

=== SASLユーザーの一覧 ===
{{{#!highlight shell numbers=disable
sasldblistusers2
}}}

=== SASLユーザーの削除 ===
{{{#!highlight shell numbers=disable
saslpasswd2 -d ユーザー
saslpasswd2 -d -u レルム ユーザー
}}}

=== SASLユーザーの検証 ===
{{{#!highlight shell numbers=disable
testsaslauthd -u ユーザー名 -p パスワード
testsaslauthd -u ユーザー名 -p パスワード -r レルム
}}}

= 使用したい一回だけ設定すればいいもの =

== SASL認証サーバー ==
 * 実行頻度:セットアップしたいと思った1回だけ。再起動不要。
 * 認証のバックエンドはSASLデータベース、OS(PAM)、LDAP等選べるが、組み合わせての選択はできない。
 * 今回はSASLデータベースによりOSのアカウントとは独立して認証を運用する。
 * またSASLデータベースのバックエンドとしてナウでヤングなLMDBを採用する。
 * SASL認証サーバーを使う場合、認証メカニズムは非暗号化パスワードしか扱えない点に注意。
   * `PLAIN`
   * `LOGIN`
 * SYSLOGについてのメモ。
   * いわゆるファシリティAUTHで出力される。
   * アイデント名は `saslauthd` か `pwcheck` である。

{{{
 saslauthd -+- sasldb -+- BDB1
            | +- BDB ※BDB5のこと
            | +- GDBM
            | +- LMDB
            +- getpwent -+- /etc/master.passwd
            + -kerberos5
            +- pam -+- /etc/pam.d に設定に準拠
            +- rimap
            +- ldap
}}}

=== /etc/make.conf ===
{{{#!highlight makefile numbers=disable
security_cyrus-sasl2_SET= LMDB LOGIN PLAIN
security_cyrus-sasl2_UNSET= OTP CRAM NTLM DIGEST SCRAM
security_cyrus-sasl2_UNSET+= BDB BDB1 ANONYMOUS ALWAYSTRUE AUTHDAEMOND
security_cyrus-sasl2_UNSET+= OBSOLETE_CRAM_ATTR OBSOLETE_DIGEST_ATTR
security_cyrus-sasl2-saslauthd_SET= LMDB
security_cyrus-sasl2-saslauthd_UNSET= BDB BDB1 HTTPFORM OPENLDAP OPENLDAP_SASL
}}}

=== インストール ===
{{{#!highlight shell numbers=disable
cd /usr/ports/security/cyrus-sasl2-saslauthd
make install clean
sysrc saslauthd_enable="YES"
sysrc saslauthd_flags="-a sasldb"
service saslauthd start
}}}

=== デバッグメモ ===
認証動作に不良が見られる場合は以下の手順でデバッグすること。

 * `saslauthd -a sasldb -d` でデバッグモードで起動する。
 * `testsaslauthd -u ユーザー名 -p パスワード` でテストする。
 * `testsaslauthd -u ユーザー名 -r レルム -p パスワード` でテストする。
 * `testsaslauthd` を実行すると必ず `saslauthd` に接続するので、フロント側の切り分けができる。
 * また、`saslauthd` のデバッグログを読めば、バックエンド側の切り分けができる。
 * 究極的には `ktrace(1)` / `kdump(4)` コマンドを使用して、アクセスしているファイルを確認する。
 * これはファイルにアクセスできる・できないのエラー表示が無いためである。
 * レルムとの相互関係についてはSASL認証をする上位サーバーアプリの振る舞いにもよるので、ここでは以上とする。
行 64: 行 165:
 * 実行頻度:セットアップしたいと思った1回だけ。再起動不要。
行 94: 行 196:

== シリアルコンソールを追加する ==
 * 実行頻度:セットアップしたいと思った1回だけ。要再起動。
 * ビデオコンソール(`vidconsole`)と共にシリアルコンソール(`comconsole`)でも操作したい場合の設定。

=== /bootdir/boot.config ===
以下の内容のファイルを作成する。

{{{
-D
}}}

=== /boot/loader.conf ===
以下の内容をファイルに追加する。

{{{
boot_multicons="YES"
}}}

 * シリアルコンソールでの操作が遅いと思ったら `comconsole_speed="115200"` も追加する。その際通信条件も変更すること。
 * 複数のシリアルポートがあって、どれか選択したい場合は `hint.uart.n.flags` (n≧0)を設定することで制御する。
 * 使わないポートに対しては `0x0` を、使うポートには `0x10` を設定する。
 * この辺りの詳細は[[https://www.freebsd.org/cgi/man.cgi?uart(4)|マニュアル]]を参照のこと。

= 参考文献 =
 * [[https://docs.freebsd.org/en_US.ISO8859-1/books/handbook/serialconsole-setup.html|Setting Up the Serial Console]]
 * [[https://wiki.freebsd.org/SerialConsole|SerialConsole]]
 * [[https://www.freebsd.org/cgi/man.cgi?uart(4)|uart(4)]] ※シリアルポートの設定
 * [[https://people.allbsd.org/~hrs/FreeBSD/sato-20140313.pdf|Kerberos 認証サービスの設定と運用]]
 * [[https://people.allbsd.org/~hrs/FreeBSD/sato-FBSDW20180629.pdf|30分で分かるKerberos]]

FreeBSD13でのよくある設定集

FreeBSD 13.0-RELEASE環境におけるよく設定するような内容についてまとめる。 本記述は13.0-R時点での内容であるが、13.0-Rがリリースされたあとも調整する。

インストール および 初期設定 が完了しているものとするが、そう極端に依存はしてないはずである。

都度対応ケース

ユーザーおよびグループの追加

  • 実行頻度: ユーザーおよびグループを追加したいと思った都度。
  • いわゆるユーザーアカウントの管理をどうするかについてはここでは問わない。
  • 管理ポリシーを決めた上で運用する際の手順をまとめる。
  • ports/pkgシステムで追加されるユーザーおよびグループについて以下のファイルを参照すること(デフォルト設定)。
    • /usr/ports/UIDs

    • /usr/ports/GIDs

    • もちろん事前に作成してしまってもかまわない(UIDを他の環境に合わせるなど)。
  • 本設定においてはいくらか前提条件(/home がパーティションされてる)があるので留意すること。

ユーザーの追加

  • ユーザー設定に必要なパラメータは以下の通り。
    • ユーザー名
    • ユーザーID
    • グループ名(事前に設定しておくこと)
  • ログインシェルは /etc/shells ファイル内のリストから設定すること。

pw useradd ユーザー名 -u ユーザーID -g グループ名 -c "名前" -s ログインシェル
zfs create zroot/home/ユーザー名
chown ユーザー名:グループ名 /home/ユーザー名
  • ここではホームディレクトリは作成しない。別途ZFSパーティションを切るものとする。
  • この時パスワードは無効になっている(パスワードフィールドが *)。

  • セカンダリグループを加えたい場合は -G オプション(複数指定はカンマ区切り)を指定すること。

  • よく使われるセカンダリグループは以下の通り。
    • wheel: ルートになれるユーザー(管理者)が所属するグループ

    • operator: 再起動等のサーバーの操作ができるユーザー(オペレーター)が所属するグループ

    • dialer: シリアル通信したいユーザーが所属するグループ

後から修正したい場合は pw usermod を使う。

pw usermod ユーザー名 -G wheel,operator

パスワードの設定

パスワードは例えば makepasswd --chars=パスワード長 でランダムなパスワードを決める。

passwd ユーザー名

パスワードの無効化

pw usermod ユーザー名 -w no

グループの追加

  • グループ設定に必要なパラメータは以下の通り。
    • グループ名
    • グループID

pw groupadd グループ名 -g グループID

SASL認証におけるユーザーの追加

  • 実行頻度: SASL認証対象のユーザーを追加したいと思った都度。
  • いわゆるレルムとの相関についてはここでは問わない。
  • 本サービスを利用する側の運用ポリシーを決めた上で作業すること。
  • なおユーザー user@domain と、ユーザー user・レルム domain は扱いが違うので注意。

  • 上位サービスによっては user@domainuserdomain に分解することがあるが、それはそっち側の話となる。

  • レルムを指定しない場合 hostname が指定された物として処理されるが、これが上位サービスから認識されるかは別の話になる。

SASLユーザーの追加

saslpasswd2 -c ユーザー
saslpasswd2 -c -u レルム ユーザー

SASLユーザーのパスワード変更

saslpasswd2 ユーザー
saslpasswd2 -u レルム ユーザー

SASLユーザーの一覧

sasldblistusers2

SASLユーザーの削除

saslpasswd2 -d ユーザー
saslpasswd2 -d -u レルム ユーザー

SASLユーザーの検証

testsaslauthd -u ユーザー名 -p パスワード
testsaslauthd -u ユーザー名 -p パスワード -r レルム

使用したい一回だけ設定すればいいもの

SASL認証サーバー

  • 実行頻度:セットアップしたいと思った1回だけ。再起動不要。
  • 認証のバックエンドはSASLデータベース、OS(PAM)、LDAP等選べるが、組み合わせての選択はできない。
  • 今回はSASLデータベースによりOSのアカウントとは独立して認証を運用する。
  • またSASLデータベースのバックエンドとしてナウでヤングなLMDBを採用する。
  • SASL認証サーバーを使う場合、認証メカニズムは非暗号化パスワードしか扱えない点に注意。
    • PLAIN

    • LOGIN

  • SYSLOGについてのメモ。
    • いわゆるファシリティAUTHで出力される。
    • アイデント名は saslauthdpwcheck である。

 saslauthd -+- sasldb    -+- BDB1
            |             +- BDB  ※BDB5のこと
            |             +- GDBM
            |             +- LMDB
            +- getpwent  -+- /etc/master.passwd
            + -kerberos5
            +- pam       -+- /etc/pam.d に設定に準拠
            +- rimap
            +- ldap

/etc/make.conf

security_cyrus-sasl2_SET=               LMDB LOGIN PLAIN
security_cyrus-sasl2_UNSET=             OTP CRAM NTLM DIGEST SCRAM
security_cyrus-sasl2_UNSET+=            BDB BDB1 ANONYMOUS ALWAYSTRUE AUTHDAEMOND
security_cyrus-sasl2_UNSET+=            OBSOLETE_CRAM_ATTR OBSOLETE_DIGEST_ATTR
security_cyrus-sasl2-saslauthd_SET=     LMDB
security_cyrus-sasl2-saslauthd_UNSET=   BDB BDB1 HTTPFORM OPENLDAP OPENLDAP_SASL

インストール

cd /usr/ports/security/cyrus-sasl2-saslauthd
make install clean
sysrc saslauthd_enable="YES"
sysrc saslauthd_flags="-a sasldb"
service saslauthd start

デバッグメモ

認証動作に不良が見られる場合は以下の手順でデバッグすること。

  • saslauthd -a sasldb -d でデバッグモードで起動する。

  • testsaslauthd -u ユーザー名 -p パスワード でテストする。

  • testsaslauthd -u ユーザー名 -r レルム -p パスワード でテストする。

  • testsaslauthd を実行すると必ず saslauthd に接続するので、フロント側の切り分けができる。

  • また、saslauthd のデバッグログを読めば、バックエンド側の切り分けができる。

  • 究極的には ktrace(1) / kdump(4) コマンドを使用して、アクセスしているファイルを確認する。

  • これはファイルにアクセスできる・できないのエラー表示が無いためである。
  • レルムとの相互関係についてはSASL認証をする上位サーバーアプリの振る舞いにもよるので、ここでは以上とする。

DNSキャッシュサーバーの運用

  • 実行頻度:セットアップしたいと思った1回だけ。再起動不要。
  • 自前でDNSキャッシュサーバー(フルリゾルバ)を運用したい場合の設定。
  • デフォルトでお堅い設定なので若干緩くする。
  • 具体的には、デフォルトで dig +trace 使えなくなるのだが、使えるように設定する。

    • access-control では allow の代わりに allow_snoop を有効にすると良い。

/etc/unbound/conf.d/local.conf

server:
        prefetch:               yes
        rrset-cache-size:       64m
        rrset-roundrobin:       yes
        access-control:         127.0.0.1/8 allow_snoop

準備

sysrc local_unbound_enable="YES"
service local_unbound setup
service local_unbound start

/etc/resolv.conf

以下の2行が追加されるので整理する。具体的には古い nameserver の指定を消す、options に組み込むなどである。

nameserver 127.0.0.1
options edns0

今時は edns0 オプションの指定をしなくても動くとのことで、消してしまっても問題無い。

シリアルコンソールを追加する

  • 実行頻度:セットアップしたいと思った1回だけ。要再起動。
  • ビデオコンソール(vidconsole)と共にシリアルコンソール(comconsole)でも操作したい場合の設定。

/bootdir/boot.config

以下の内容のファイルを作成する。

-D

/boot/loader.conf

以下の内容をファイルに追加する。

boot_multicons="YES"
  • シリアルコンソールでの操作が遅いと思ったら comconsole_speed="115200" も追加する。その際通信条件も変更すること。

  • 複数のシリアルポートがあって、どれか選択したい場合は hint.uart.n.flags (n≧0)を設定することで制御する。

  • 使わないポートに対しては 0x0 を、使うポートには 0x10 を設定する。

  • この辺りの詳細はマニュアルを参照のこと。

参考文献

FreeBSD/FreeBSD13-freq-setup (最終更新日時 2021-04-21 02:16:38 更新者 NorikatsuShigemura)