Ubuntu16.04でFreeIPAクライアントを構成する方法
序章
FreeIPA は、MicrosoftのActive Directoryと同様に、アカウント管理と一元化された認証を提供するLinux用のオープンソースセキュリティソリューションです。 FreeIPAは、389 Directory Server、MIT Kerberos、SSSDなどの複数のオープンソースプロジェクトの上に構築されています。
FreeIPAには、CentOS 7、Fedora、およびUbuntu 14.04/16.04のクライアントがあります。 これらのクライアントを使用すると、IPAドメインにマシンを追加するのがかなり簡単になります。 他のオペレーティングシステムは、SSSDまたはLDAPを使用してFreeIPAに対して認証できます。
このチュートリアルでは、既存のFreeIPAサーバーに対して認証するようにUbuntu16.04マシンを構成します。 クライアントを構成すると、マシンにログインできるユーザーとユーザーのグループを管理できるようになります。 さらに、sudo
を使用できるユーザーを設定できます。
前提条件
このチュートリアルに従うには、次のものが必要です。
- FreeIPAサーバーソフトウェアがインストールされた1台のCentOS7サーバー。これは、このFreeIPA onCentOS7チュートリアルに従ってセットアップできます。
- このUbuntu16.04セットアップガイドに従ってセットアップされた1台のUbuntu16.04サーバー(ファイアウォールを含む)。 ただし、FreeIPAを使用してユーザーを管理するため、sudoの非rootユーザーを手動で追加する必要はありません。 このチュートリアルは、rootとして簡単に実行できます。
- Ubuntuサーバー用に設定された次のDNSレコード。 それらを追加する方法の詳細については、このホスト名チュートリアルに従うことができます。
- サーバー名を含むAレコード(例:
ipa-client.example.com
)クライアントサーバーのIPv4アドレスを指します。 - サーバーをIPv6経由で到達可能にする場合は、サーバー名がクライアントサーバーのIPv6アドレスを指すAAAAレコード。
- サーバー名を含むAレコード(例:
このチュートリアル全体を通して、UbuntuIPAクライアントのサンプルドメインとしてipa-client.example.com
を使用し、CentOSIPAサーバーのipa.example.com
を使用します(前提条件のチュートリアルと一致するように)。
ステップ1—IPAクライアントの準備
インストールを開始する前に、UbuntuサーバーでFreeIPAクライアントを実行する準備ができていることを確認するためにいくつかのことを行う必要があります。 具体的には、サーバーのホスト名を設定し、システムパッケージを更新して、前提条件のDNSレコードが伝播されていることを確認します。
まず、FreeIPAクライアントが正しく機能するには、Ubuntuサーバーのホスト名が完全修飾ドメイン名(FQDN)と一致している必要があります。 このチュートリアルでは、FQDNとしてipa-client.example.com
を使用します。
これが新しいサーバーの場合は、サーバーの作成時にホスト名を設定できます。
すでにサーバーをお持ちの場合は、以下のように、代わりにhostname
コマンドを使用できます。 ホスト名はシステムパラメータであり、通常のユーザーは変更できないため、既存のシステムのホスト名を変更するには、rootである必要があることに注意してください。
hostname ipa-client.example.com
hostname
コマンドを使用してサーバーのホスト名を変更する場合は、/etc/hostname
ファイルでも手動でホスト名を変更することをお勧めします。
nano /etc/hostname
サーバーの元のホスト名を持つファイルには、次の1行のみが含まれている必要があります。
/ etc / hosts
your_original_hostname
クライアントの完全なFQDNに変更します。
/ etc / hosts
ipa-client.example.com
次に、ファイルを保存して閉じます。
サーバーのホスト名が正しく設定されたら、パッケージリポジトリを更新します。
apt-get update
最後に、DNS名が正しく解決されることを確認する必要があります。 これにはdig
コマンドを使用できます。 DigはデフォルトでUbuntuにインストールされています。
まず、dig
を使用してAレコードを確認します。
dig +short ipa-client.example.com A
これにより、your_server_ipv4
が返されます。
IPv6を有効にしている場合は、AAAAレコードを同じ方法でテストできます。
dig +short ipa-client.example.com AAAA
これにより、your_server_ipv6
が返されます。
逆引き参照をテストすることもできます。 これは、IPアドレスからホスト名を解決できるかどうかをテストします。
dig +short -x your_server_ipv4 dig +short -x your_server_ipv6
これらは両方ともipa-client.example.com.
を返すはずです
サーバーの準備ができたので、FreeIPAクライアントパッケージをインストールして構成できます。
ステップ2—FreeIPAクライアントのインストール
Ubuntu 16.04では、FreeIPAクライアントがデフォルトのリポジトリに含まれています。
apt-get install freeipa-client
インストーラーが実行されると、Kerberos認証の構成というタイトルの画面でKerberosレルムとKerberosサーバーの入力を求めるプロンプトが表示される場合があります。 FreeIPAインストーラーはこれらの設定を上書きしますが、ここでも正しく入力することをお勧めします。
サーバーのインストール時にKerberosレルムが構成されました。 通常はipa.example.com
になります。Kerberosサーバーと管理サーバーは、IPAサーバーのアドレスである必要があります。 前提条件のサーバーチュートリアルに従った場合、これもipa.example.com
になります。 これらのプロンプトの後に、ipa-client
パッケージがインストールされます。
次に、FreeIPAインストールコマンドを実行します。 これにより、CentOSFreeIPAサーバーに対して認証するようにFreeIPAを構成する手順をガイドするスクリプトが実行されます。
ipa-client-install --mkhomedir
--mkhomedir
フラグは、IPAユーザーがマシンに初めてログインするときに、IPAユーザーのホームディレクトリを作成するようにFreeIPAに指示します。 この動作を望まない場合は、このフラグを省略できます。
インストーラーは最初にIPAドメインの入力を求めます。 サーバーを構成するときに設定されます。
インストールスクリプトプロンプト
Provide the domain name of your IPA server (ex: example.com): ipa.example.com
次に、IPAサーバーのドメイン名を入力する必要があります。 これは、IPAWebUIへのアクセスに使用するURLと同じである必要があります。 前提条件でサーバーのチュートリアルに従った場合、それはIPAドメインと同じになります。
インストールスクリプトプロンプト
Provide your IPA server name (ex: ipa.example.com): ipa.example.com
注:冗長IPAサーバーを備えたシステムでは、IPAドメインとIPAサーバー名が異なる可能性があります。
単一のサーバーでは、フェイルオーバーは機能しません。 FreeIPAはこれについて警告します。続行するには、yesと入力する必要があります。
インストールスクリプトプロンプト
Autodiscovery of servers for failover cannot work with this configuration. If you proceed with the installation, services will be configured to always access the discovered server for all operations and will not fail over to other servers in case of failure. Proceed with fixed values and no DNS discovery? [no]: yes
すべてのオプションが正しいことを確認して、続行します。
インストールスクリプトプロンプト
Continue to configure the system with these values? [no]: yes
次に、管理者のユーザー名を入力します。 ここでは、サーバーのインストール時に作成されたデフォルトのIPA管理者ユーザーのみを使用します。
インストールスクリプトプロンプト
User authorized to enroll computers: admin
最後に、IPA管理者ユーザーのパスワードを入力します。 これは、FreeIPAサーバーの構成中に設定されました。
パスワードを入力すると、FreeIPAクライアントがシステムを構成します。 出力の最後の行はClient configuration complete.
になります。これは、インストールが成功したことを示します。
次に、システムがIPAWebインターフェイスに表示されることを確認する必要があります。
ステップ3—認証の確認
https://ipa.example.com
であるIPAWebUIに移動します。 以前に使用したIPA管理者アカウントを使用してWebUIにログインします。 次の画面が表示されます。
ホストタブに移動します。 IPAサーバーと、構成したばかりのクライアントが表示されます。 IPAクライアントのエントリをクリックします。 これにより、ホストの概要が表示されます。
この画面から、クライアントマシンに関する情報を入力したり、マシンのグループとロールを管理したりできます。
注:デフォルトでは、すべてのIPAユーザーがIPAドメイン内のすべてのマシンにログインできます。
ローカル端末からIPAユーザーを使用してマシンにログインすることもできます。
ssh [email protected]
IPAユーザーとしてマシンにログインします。 成功したら、この接続を終了して戻ることができます。
IPAユーザーには基本的なアクセス権がありますが、sudoは無効になっています。 次のステップでは、sudoを有効にします。
ステップ4— sudoルールの有効化と検証(オプション)
sudoアクセスを有効にするためにクライアント構成ファイルを変更する必要はありません。 ただし、必要に応じて、IPAWebUIでsudoルールを構成してアクセスを許可する必要があります。
FreeIPAを使用すると、どのユーザーとユーザーグループがどのマシンでsudoコマンドを実行できるかを指定できます。 また、ユーザーがsudoで実行できるコマンドや、偽装できるユーザーを制限することもできます。
このチュートリアルでは、管理者グループがすべてのマシンに完全にsudoアクセスできるようにする簡単なルールの追加について説明します。 管理者グループは、以下に表示されている他のグループとともに、デフォルトでFreeIPAに存在することに注意してください。
- IPA Web UIから、 Services をクリックしてから、sudoをクリックします。 ドロップダウンメニューが表示されます。
- ドロップダウンメニューで、 sudoルールをクリックし、追加をクリックして、ルール名フィールドにルールの名前を入力します。 ここでは、adminグループにsudoを許可しているため、adminを使用します。
- 次に、追加して編集をクリックします。 これにより、ルールのオプションの完全なセットが表示されます。
- Whoおよびユーザーグループの下で+追加をクリックします。 adminsグループを選択し、矢印をクリックして、AvailableからProspectiveに移動します。 次に、追加をクリックします。
- このホストにアクセスで、任意のホストを選択します。 コマンドの実行で、任意のコマンドを選択します。 As Whom で、AnyoneとAnyGroupを選択します。 ここで、sudoが有効になっているこれらのマシン、sudoで実行できるコマンド、および偽装できるユーザーを制限できます。
- 最後に、ページの上部に移動して、保存をクリックします。
これで、ルールがアクティブになります。 ただし、伝播に時間がかかる場合があり、sudoルールを有効にするには、sshd
サービスを再起動する必要がある場合があります。 これを行うには、IPAクライアントでsystemctl restart sshd.service
を実行できます。
それが完了したら、クライアントマシンにsudoアクセス権があることを確認しましょう。 ローカルマシンから、IPA管理者ユーザーを使用してクライアントにログインしてみてください。 このユーザーは、デフォルトでadminsグループに含まれています。
ssh [email protected]
ログインしたら、インタラクティブなsudoプロンプトを開始してみてください。
sudo -i
プロンプトがroot@ipa-client
に変わるはずです。 exit
と入力するだけで、通常のプロンプトに戻ることができます。
sudoアクセスが拒否された場合は、マシンを再起動して、sudoルールが正しく構成されていることを確認してください。
結論
FreeIPAに対して認証するようにマシンを構成すると、IPAWebUIまたはそのコマンドラインインターフェイスからシステムへのユーザーおよびグループアクセスを構成できます。 FreeIPAには高度な機能がありますが、より単純な構成の場合は、ユーザーとホストを追加するだけで、簡単な集中認証システムを提供できます。
FreeIPAは非常に用途の広い認証ツールであり、次に何をする必要があるかは、それをどのように使用するかによって大きく異なります。 詳細については、FreeIPAWebサイトにドキュメントリソースのリストがあります。