MicrosoftのActiveDirectory(AD)は、多くの組織にとって頼りになるディレクトリサービスです。あなたとあなたのチームがWindowsとLinuxの混合環境を担当している場合は、おそらく両方のプラットフォームの認証を一元化することをお勧めします。 LinuxコンピューターをActiveDirectoryドメインに追加する方法について説明します。
ActiveDirectoryと一元化されたアクセス管理の必要性
より一般的にはADとして知られているMicrosoftのActiveDirectoryは、長年にわたってエンタープライズアクセス管理の市場で最大のシェアを占めてきました。これは、組織に属するリソースへのアクセスを一元的に制御するために、世界中の機関や個人によって使用されます。これにより、ユーザー、パスワード、コンピューターなどのリソースを管理し、誰が何にアクセスできるかを指示することができます。。 この記事を読んでいる人の中には、特に大規模な機関で働いている人にとっては、以前にADとやり取りしたことがあります。通常、対話では、1セットのログインクレデンシャルを使用して、組織内の任意のワークステーションにログインします。それは大きな氷山の一角にすぎません。
企業内の40台のコンピューターシステムと70人のユーザーのコレクションを想像してみてください。一部の従業員はシフトを実行し、他の従業員は通常の時間に作業します。印刷にアクセスできる人もいます。他の人はしません。従来の作業方法は、ユーザーがアクセスする必要のある各コンピューターにローカルユーザーアカウントを作成することです。エンドユーザーサポートチームの作業負荷を想像してみてください。ユーザーが何らかの理由でパスワードを変更した場合、そのユーザーは、同期を維持するために、以前にアクセスしたすべてのコンピューターのパスワードを変更する必要があります。すぐに、騒乱が起こります。ここで、スタッフの2人のメンバーが辞任したと想像してください。人員配置やワークステーションに変更があった場合はいつでも繰り返さなければならない単調な作業を説明する必要はありません。 ITチームにとって、これは悪夢です。革新的なタスクに使用できる時間は、現在、車輪の再発明に費やされています。プリンタへのアクセスの管理についても話していません。
これは、ActiveDirectoryなどのディレクトリサービスが繁栄する場所です。それは文字通り命の恩人になることができます。 Active Directoryを使用すると、各ユーザーは、単一の資格情報セットを使用して、中央データベース内のオブジェクトとして一意に作成されます。各コンピュータシステムもオブジェクトとして作成されます。自動的に、すべてのユーザーが同じ資格情報のセットですべてのワークステーションにアクセスできます。必要なアカウントの変更は、中央データベースで1回行われます。スタッフのメンバーは、同じクレデンシャルのセットを使用してプリンターにアクセスできます。プリンタの認証メカニズムをADと組み合わせて、それを実現できます。幸せなユーザー、幸せなITチーム。
グループと組織単位を使用して、さまざまなリソースへのアクセスを調整および維持できます。それはさらに良くなります。このディレクトリには、スタッフの電話番号や電子メールアドレスを保存でき、その他の情報を保存するように拡張できます。誰かが辞任した場合はどうなりますか?問題ない。ユーザーのアカウントを無効にするだけです。その人のすべてのリソースへのアクセスはその場で無効になります。組織が大きくなるほど、集中管理の必要性が高まります。それは時間を節約します。感情を救います。
本質的に、ディレクトリサービスは、組織内のすべてのリソースを項目化すると同時に、それらのリソースへの簡単なアクセスを容易にする組織化された方法です。基本的に、ADは一種の分散データベースであり、ライトウェイトディレクトリアクセスプロトコル(LDAP)を介してリモートでアクセスされます。 LDAPは、TCP/IPなどのコネクション型メディアを介してディレクトリサービスにリモートアクセスするためのオープンプロトコルです。 x.500標準に基づく、またはLDAPを使用してアクセスできるディレクトリサービスはADだけではありません。他のディレクトリサービスには、OpenLDAPとFreeIPAが含まれます。ただし、ADは、WindowsServerシステムに組み込まれている成熟したWindowsベースのサービスです。言い換えれば、組織に多くのWindowsシステムがある場合、それが自動的に勝者になります。これが、その遍在性の理由の1つです。 FreeIPAなどのディレクトリサービスはLinuxベースであり、Linuxの安定版に優れたサービスを提供します。ゴムが道路にぶつかると、現在の環境とチームのスキルセットを考慮して、2つのうちどちらをすばやく設定できるかが選択されます。
[次のこともお勧めします:WindowsとLinuxの相互運用性:Sambaをご覧ください]
しかし、ADを選択し、CentOSサーバーがいくつかあり、Linuxユーザー用に個別のクレデンシャルセットを維持したくない場合はどうなりますか?そのオーバーヘッドは完全に回避できます。 Windowsサーバーと同じように、LinuxサーバーをADドメインに参加させる必要があります。
それがあなたがする必要があることであるならば、それからそれをする方法を見つけるために読んでください。 WindowsシステムをFreeIPAドメインに参加させることは可能ですが、それはこの記事の範囲外です。
前提条件
この記事は、特にユーザーとコンピューターのアカウント管理に関して、ActiveDirectoryの入門レベルの経験が少なくともある程度あることを前提としています。それとは別に、次の明らかな要件を満たす必要があります。
- システムをドメインに参加させるために必要な権限を持つADのアカウント。
- Linuxサーバー(このデモではCentOS 7サーバーを使用しました)。
- ドメインコントローラー。
- LinuxサーバーがDNSを介してドメインコントローラーを見つける方法を知っていることを確認してください。
この記事を誰にとっても簡単にするために、ここに重要な詳細のリストがあります。これが、この記事で使用したラボの設定方法です。それに応じて変更する必要があります。
- ADドメイン名:Hope.net
- ドメインに参加するためのユーザーアカウント:fkorea(フルネーム-Fiifi Korea)
- Linuxサーバーのホスト名:centy2
インストールするパッケージ
この構成の場合、インストールする必要のあるパッケージはrealmd
です。 。 realmd
は別として 、これを機能させるためにインストールする必要のあるパッケージが多数あります。
# yum install sssd realmd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation openldap-clients policycoreutils-python
Realmd
ActiveDirectoryドメインを検出して操作するための簡単な方法を提供します。 sssd
を採用しています リモート認証やその他のドメインとのやり取りに必要な実際のルックアップを実行します。簡潔にするために、リスト内の他のパッケージについては詳しく説明しません。
ただし、詳細に関心がある場合は、Googleですばやく検索すると非常に役立ちます。
Realmd(ドメインとの相互作用)
すべてのパッケージがインストールされたので、最初に行うことは、CentOSシステムをActiveDirectoryドメインに参加させることです。 realm
を使用します そのためのアプリケーション。 realm
クライアントはrealmd
と同時にインストールされます 。これは、参加、削除、アクセスの制御、およびその他の多くのタスクの実行に使用されます。単純なドメイン参加に必要な構文は次のとおりです。
realm join --user=[domain user account] [domain name]
ユーザーアカウントとドメインアカウントの間のスペースはタイプミスではありません。対応する詳細を挿入すると、次のコマンドが表示されます。
# realm join --user=fkorea hope.net
プロンプトが表示されたらパスワードを入力し、プロセスが終了するのを待ちます。
出力の短い欠如があなたをだましてはいけません。プロセスの一部として実行される操作は多数あります。 -v
に取り組むことができます より詳細な出力に切り替えます。ただし、コンピュータがドメインのメンバーになったかどうかを確認する最良の方法は、realm list
を実行することです。 指図。このコマンドは、ドメインに関するサーバーの現在の状態を表示しようとします。これは、どのグループまたはユーザーがサーバーにアクセスできるかを知るための迅速で汚い方法です。
その出力を見てください:
また、新しく作成されたADコンピューターオブジェクトを最初から特定の組織単位(OU)に配置することも非常に簡単です。後で読むためにそれを残しておきますが、ヒントとして、manページを参照することができます。 realm
の使用 クライアントの場合、ドメインユーザーとグループへのアクセスを許可または取り消すことができます。 realmd
の使用に関する詳細 別の記事を作成するには、よりきめ細かい方法で十分です。しかし、私はあなたの注意を引くためにいくつかのパラメータ、すなわちクライアントソフトウェアとサーバーソフトウェアを選ぶのに混乱することはありません。ここまでで、なぜこれほど多くのパッケージをインストールしなければならなかったのかを理解する必要があります。
ドメインを完全に終了するには、次の2つの単語が必要です。realm leave
追加の構成
LinuxサーバーがADドメインの一部になったので、ドメインユーザーは通常の資格情報を使用してサーバーにアクセスできます。終わりましたよね?間違い。 "どうしたの?"あなたの言うことを聞きます。
さて、初心者にとって、これはあなたを立ち上げて実行するための最低限の構成です。しかし、控えめに言っても、経験は不格好です。真のAD感覚を与えるために、サービスをさらに構成する必要があります。ドメインに参加しているWindows10ワークステーションにログオンするのと同じようになります。
第二に、ダイナミックDNSアップデート(DynDNS)と呼ばれるシステム管理者のための部屋に大きな象がいます。正しく設定されていない場合、DNSレコードを手動で維持する必要があるため、余分なオーバーヘッドが発生します。 DNSに大きく依存している環境では、これが問題になる可能性があります。 Windowsシステムの場合、システムをドメインに参加させると、2つのエントリがDNSサーバー上で自動的に管理および維持されます。 IPアドレスが変更されると、その変更はDNSに自動的に反映されます。これは、手動メンテナンスのコストをかけずにシステムのIPを変更できることを意味します。これは、環境でDNSをすでに利用している人にのみ意味があります。自動化による生産性の大幅な向上は別として、Windows環境とLinux環境の両方を同じように機能させるのに役立ちます。
3番目の問題はDNSスカベンジングです。 Active Directoryドメインでは、DNSは通常ドメインコントローラーによって提供されます。ドメインに参加しているすべてのシステムには、対応するIPアドレスを持つ自動DNSエントリがあります。これはとても便利です。パケットの誤送信を防ぎ、削除されたコンピューターオブジェクトを処理するために、指定された間隔で古いDNSレコードが自動的に削除されます。これは清掃として知られています 、ADではデフォルトでオンになっていません。ただし、オンになっている場合は、構成する必要があります。通常、清掃間隔は7日です。その期間が経過してもレコードが更新されていない場合は、静的レコードでない限り、レコードは削除されます。 Windowsシステムの場合、動的更新機能は自動的に設定されます。ただし、Linuxサーバーでは、いくつかの変更を加える必要があります。そうしないと、DNSからレコードが削除され、コンポーネントパーツにアクセスする方法がわからないため、しばらくするとサービスが停止します。
対処する必要のある潜在的な問題のいくつかがわかったので、エンドユーザーとシステム管理者によりシームレスなエクスペリエンスを提供するために調整できるいくつかのことを見てみましょう。
SSSD(より簡単なログインと動的更新)
sssd
Linuxシステムでは、システムがActiveDirectoryなどのリモートソースから認証サービスにアクセスできるようにする必要があります。つまり、ディレクトリサービスと、認証サービスを要求するモジュールrealmd
との間の主要なインターフェイスです。 。そのメインの設定ファイルは/etc/sssd/sssd.conf
にあります 。実際のところ、これは変更するメインの構成ファイルです。
設定する前に内容を見てみましょう。ドメインに参加すると、ログオンを成功させるために必要な最小限の情報が含まれるようにドメインがすぐに変更されます。私のファイルは次のようになりました:
前述の3つの問題すべてを解決するには、ファイルを次のように編集します。
ほとんどのオプションは自明であり、いくつかの主要なオプションが表すものを段階的に説明しながら、それに応じて変更することができます。すべてのオプションの詳細については、manページを確認してください。よく書かれていると思います。 man 5 sssd.conf
と入力するだけです コマンドラインで。 sssd_ad
のマニュアルページも表示できます。 詳細については。
何よりもまず、構成ファイルは2つのセクションに分かれています。 [sssd]の下のグローバルセクション およびドメイン固有のオプションセクション、 [domain / [domain name]] 。
グローバルセクションには、sssd
の一般的な動作に影響を与えるオプションが含まれています 、バージョン情報や関連サービスなど。このセクションの重要なパラメータの1つを以下に示します。
- default_domain_suffix -ログイン時に完全なユーザーアカウント名を入力する必要がない場合は、これをドメイン名に設定します。
[email protected]
と入力する代わりに いつでも、fkorea
と入力するだけです。 とパスワード。これは、ドメイン名が長い場合に非常に役立ちます。
ドメイン固有のセクションには、参加したドメインに固有のパラメーターが含まれています。主なパラメータは次のとおりです。
- access_provider -認証目的でADサーバーと対話するために最適化および使用されるプロバイダーを選択できます。
ad
に設定する必要があります 。ここで使用できる他の値はldap
です。 およびipa
、これらのディレクトリサービスを使用していると仮定します。 - id_provider -識別目的でADサーバーと対話するために最適化および使用されるプロバイダーを選択できます。
ad
に設定する必要があります 。 - ad_hostname -これは、サーバーの完全修飾ホスト名である必要があります。システムのホスト名が完全修飾ドメイン名以外の場合に設定する必要があります。これが設定されておらず、
sssd
の場合 完全修飾ホスト名にアクセスできないため、動的更新は失敗します。 - ad_domain -これは完全なドメイン名である必要があります(
hope.net
この場合)。 - cache_credentials -これにより、ドメインコントローラーがオフラインのときにADユーザーがログインできるようになります。これがtrueに設定されている場合 、クレデンシャルは、バックエンドがオフラインのときに認証が失敗しないような期間キャッシュされます。保存期間も構成可能です。
- fallback_homedir -これは、ADにホームディレクトリ属性を持たないADユーザーのホームディレクトリを設定するのに役立ちます。これはoverride_homeとは異なります ユーザーのADにホームディレクトリが設定されている場合に機能するパラメータ。
- dyndns_update -これにより、動的DNS更新が有効になり、 trueのいずれかが受け入れられます。 またはfalse 値として。動的更新が有効になっている場合、更新は主に次の3つの条件下で発生します。
- Linuxサーバーが再起動したとき。
- プロバイダーがオンラインになったとき。
- 更新間隔の期限が来るとき。
- dyndns_refresh_interval -この値は秒単位で、実際には最低60秒です。整数値を受け入れ、デフォルトは24時間(86400秒)です。この例では、12時間に設定しています。他に何も更新をトリガーしない場合、更新は定期的に行われます。
- dyndns_update_ptr -関連付けられたPTRレコードを更新サイクルごとに更新するかどうかを指定するブール値。 PTRレコードは逆引き参照に使用されます。正当な理由がない限り、これは trueに設定する必要があります。 。
- dyndns_auth -動的更新を安全に実行するかどうかを指定します。設定は、ADが受け入れるモードによって異なります。 ADが安全な更新のみを受け入れるに設定されている場合 、この値は GSS-TSIGに設定する必要があります 。そうでない場合で、(ADでの強力な警告にもかかわらず)安全な動的更新のセキュリティ上の利点を気にしない場合は、この値をなしに設定できます。 。
設定が完了したら、sssd
を再起動します 設定をすぐに適用します。
# systemctl restart sssd
この時点で、設定が完了しました。これで、Windowsワークステーションまたはサーバーと同じようにログインできます。
Visudo(管理者権限の付与)
アクセスが許可されたユーザーは、Linuxサーバーへの非特権アクセス権を持ちます。すべての目的と目的で、ネイティブに作成されたローカルアカウントにシステムからアクセスできるのと同じように、すべてのActiveDirectoryアカウントにLinuxシステムからアクセスできるようになりました。これで、それらをグループに追加したり、リソースの所有者にしたり、その他の必要な設定を構成したりする通常のsysadminタスクを実行できます。ユーザーがsudo
を必要とするアクティビティを試行した場合 アクセスすると、おなじみのエラーが表示されます。挿入図に示されているように、ユーザーはsudoers
に含まれていません。 ファイル。
その観点から、sudoers
を編集できます。 スーパーユーザー権限を付与するために直接ファイルします。これはスーパーユーザー権限の付与に関する記事ではありませんが、visudo
を使用できます sudoers
と安全にやり取りするためのツール ファイル。
または、ユーザーをwheel
に追加することもできます。 グループ。重要なのは、ユーザーアカウントがシステムで使用できるようになったことです。
[ネットワークが制御不能になっていますか? Red Hatの無料の本、みんなのためのネットワーク自動化をチェックしてください。 ]
まとめ
組織またはラボ環境でこれを試してください。私がこのトピックの表面をかじっただけであることは明らかですが、これはあなたをプロセスにかなり深く導くでしょう。この記事でカバーされていないオプションを調べたい場合は、それぞれのドキュメントを確認してください。
LinuxシステムをActiveDirectoryドメインに参加させると、両方の長所を活かすことができます。プロセスは非常に単純であり、特にシステムの初期セットアップ中に、Bashを使用してスクリプト化するか、Ansibleを使用して自動化することができます。ディレクトリサービスを使用せずに5つを超えるシステムのグループを管理していて、正当な理由がある場合は、ご自分で1つ設定してください。後で感謝します。