web-dev-qa-db-ja.com

Active Directoryに対するOpenBSDの認証

編集:これをQ&Aとして再フォーマット。これをコミュニティWikiから一般的な質問に変更できる場合は、それもおそらくより適切です。

OpenBSDをActive Directoryに対して認証するにはどうすればよいですか?

24
sh-beta

序文

Kerberosを使用したActive Directoryに対する認証は、PAMを使用するシステムでは非常に簡単ですが、OpenBSDはそうではなく、さらに困難になります。 OpenBSDのbsd_authシステムがKerberos認証プロセス全体を使用している間、tcpdumpからは、PAMシステムが単に事前認証を行っているように見えます。

とにかく、これは私が理解するのにしばらく時間がかかったので、うまくいけば、いくつかの簡潔な指示があなたの時間を節約するでしょう。

始める前の簡単な注意事項:

  • ユーザーは、ログインする前にOpenBSDシステムに存在している必要があります。それらは自動作成されません。
  • ユーザーを自動作成したい場合は、Samba/Winbindを調べてください。私はそれからトラブル(不可解なクラッシュ、深刻なログスパム、信頼性の低い認証)しかなかったので、必要なときだけ使用します。
  • これはOpenBSD 4.5とWindows Server 2003でテストされました。Win2kでも動作することは間違いありませんが、YMMVです。
  • このバージョンのOpenBSDはHeimdal 0.7.2を使用します。パスとlogin.conf以外のすべては、同じHeimdalを実行している他の* nixでも機能しますが、YMMVでも機能します。

指示

これらの手順は、ドメインEXAMPLE.COMに対して[email protected]を認証しようとしていることを前提としています。ドメインコントローラーはpdc.EXAMPLE.COMです。

  1. myhostという名前のActive Directoryユーザーアカウントを作成します(タイプミスではありません。これらの手順はコンピューターアカウントでは機能しません)。パスワードの有効期限を無効にし、ユーザーが自分のパスワードを変更できないようにします。パスワードを好きなように設定してください-すぐに変更されます。

  2. 新しいOUの下にユーザーアカウントを作成し、それをDomain Usersグループから削除して、専用グループに追加することをお勧めします。これはすべて好みとセキュリティレイアウトの問題です。

  3. Pdc.EXAMPLE.COMで、Windows Serverサポートツールをダウンロードしてインストールします(具体的には、ktpass.exeが必要です)。

  4. Pdc.EXAMPLE.COMで、以下を実行します。

    ktpass -out c:\ temp\myhost.keytab -princ Host/[email protected] -mapuser myhost -pType KRB5_NT_PRINCIPAL + rndpass

    これにより、myhostユーザーのパスワードがランダム(+ rndpass)に更新され、Kerberosプリンシパル「Host/[email protected]」がActive Directoryのユーザー「myhost」にマップされ、プリンシパルと秘密鍵の情報が-out keytabファイル。

  5. C:\ temp\myhost.keytabをmyhostに安全にコピーし、pdc.EXAMPLE.COMからファイルを削除します

  6. Myhostで、ADキータブをメインのキータブに追加します。

    ktutilコピー/path/to/myhost.keytab /etc/kerberosV/krb5.keytab

  7. /etc/krb5.confを構成します。以下は最低限必要なものです。利用可能なオプションはたくさんあります。詳細については、マンページを参照してください。これは、最大許容クロックスキューを5分に設定し、EXAMPLE.COMをデフォルトのレルムにし、DNSとKerberosレルム間の変換方法をKerberosに通知するだけです。

    [libdefaults]
    クロックスキュー= 300
    default_realm = EXAMPLE.COM

    [レルム]
    EXAMPLE.COM = {
    default_domain = EXAMPLE.COM
    }

    [domain_realm]
    。EXAMPLE.COM = EXAMPLE.COM

  8. チケットを取得できることを確認します。

    # kinit [email protected]
    [email protected]'s Password:
    # klist
    Credentials cache: FILE:/tmp/krb5cc_0
    Principal: [email protected]

    Issued Expires Principal
    Jun 4 21:41:05 Jun 5 07:40:28 krbtgt/[email protected]

  9. /etc/login.confを変更して、Kerberos認証を使用します。実際のlogin.conf構成は、システムの使用方法によって異なりますが、バニラインストールからKerberosの使用に移行するには、デフォルトのログインクラスの下で次の行を編集してコメント化します。

    :tc=auth-defaults:\

    そしてその上に追加:

    :auth=krb5-or-pwd:\

    これは、ユーザーがrootでない限り、最初にKerberosをチェックします。 Kerberosが失敗すると、ローカルパスワードが使用されます。

  10. このホストで認証するユーザーを追加します。 Active Directoryとローカルパスワードの両方を使用できるようにする場合を除いて、パスワードは空白のままにします(非推奨)。

    既存のユーザーのパスワードを空にすることができます "chpass <user> "および" Encrypted password: "の値をアスタリスク(*)に置き換えます

  11. SSHとSudoをテストします。どちらもActive Directoryの資格情報で問題なく機能するはずです。

これですべてです。

リンク

いくつかの便利なサイト:

17
sh-beta

それ以降、いくつかの点が変更されたため、上記の手順の更新。

OpenBSD 5.6では、コードの品質に関する懸念のため、Heimdalをベースディストリビューションから削除することを決定しました。 5.7では、パッケージとして利用できるようになりました(5.6では、ソースからビルドするか、ソースで再度有効にする方法を理解する必要があります)。したがって、上記の手順を実行する前に、次の追加手順を完了する必要があります。

-3。お気に入りのミラーからheimdalおよびlogin_krb5パッケージをインストールします。

-2。 /usr/local/libexec/auth/login_krb5*/usr/libexec/authにコピーします。

-1。 heimdalツールを頻繁に使用する場合は、/usr/local/heimdal/binをシステムパスに追加します。それ以外の場合は、ツールを使用するときに、フルパスでツールを参照してください。

また、krb5.confおよびkrb5.keytabファイルは/etc/heimdalに移動します。

5
Aaron Mason