11と12のリビジョン間の差分
2021-04-21 02:12:15時点のリビジョン11
サイズ: 11092
コメント:
2021-04-21 02:16:38時点のリビジョン12
サイズ: 10907
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 114: 行 114:
 * 認証メカニズムは以下の物を使う物とする(一応の確認)。
   * `SCRAM-SHA-256` ※必須なので切れない
   * `SCRAM-SHA-1` ※必須なので切れない
   * `CRAM-MD5` ※オプションで切れなくもない
   * `DIGEST-MD5` ※オプションで切れなくもない
   * `PLAIN` ※オプションで切れなくもない
 * SASL認証サーバーを使う場合、認証メカニズムは非暗号化パスワードしか扱えない点に注意。
   * `PLAIN`
   * `LOGIN`
行 126: 行 123:
            | +- BDB ※BDB5             | +- BDB ※BDB5のこと
行 138: 行 135:
security_cyrus-sasl2_SET= OTP CRAM LMDB NTLM DIGEST LOGIN PLAIN SCRAM AUTHDAEMOND
security_cyrus-sasl2_UNSET=  BDB BDB1 ANONYMOUS ALWAYSTRUE KEEP_DB_OPEN
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

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)