原文はこちら。
これまでに思い出せないくらい多くの方法でLinuxユーザーアカウントを管理してきましたが、その中で一番良い方法だと思うのはWindowsを少々活用することです。Active Directoryは大規模なコンピューター、ユーザー、そしてグループを簡単に扱えるのと同様に、小規模なそれらを管理するのにも適しています。セットアップも簡単です。
始める前に
Active Directoryをすでにセットアップしてあり、また、そのドメインに参加させたいOracle Linuxが稼働するインスタンスが起動してある必要があります。まだActive Directoryを構成していない場合は、Creating Your Windows Active Directory Domain Servers in Oracle Cloud Infrastructureのホワイトペーパーに記載されている、Oracle Cloud Infrastructure上に素早く、また堅牢にActive Directoryを構成する詳細な方法を参照してください。
インスタンス上で以下の情報を収集します:
変数 | 説明 | 例 |
---|---|---|
ip-address | インスタンスのIPアドレス | 10.0.0.14 |
hostname | インスタンスの短縮ホストネーム | unicorn-painter-998 |
domain | インスタンスのドメイン名(また、Active Directory realm) | lilwoods.us |
fqdn | インスタンスのfully qualified domain name (上記IPアドレスに対しての) | unicorn-painter-998.lilwoods.us |
dns-ip-address | Active DirectoryのIPアドレス | 10.0.0.13 |
join-user | ドメインに参加する権限のあるActive Directoryユーザー | mia427 |
admin-group | sudo権限を付与するActive Directoryグループ | Unicorn-Admins |
- 以降のコマンドは全てスーパーユーザーを必要とするため、root権限に昇格します
sudo -i
- /etc/resolv.confファイルを編集し、nameserverとしてActive DirectoryのIPアドレスを使用するようにしましょう。また、他のnameserverレコードは削除しておきます。デフォルトのnameserver (169.254.169.254)を、以下のように変更します。
nameserver {dns-ip-address}
例:nameserver 10.0.0.14
- /etc/hostsファイルの先頭行を以下のように編集し、インスタンスのip-address、fqdnおよびhostnameを記載しておきましょう。
{ip-address} {fqdn} {hostname}
注意:Oracle Cloud Infrastructureインスタンスでは、インスタンス生成時にインスタンス名からデフォルトのFQDNとhostnameが生成されます。ファイル内にインスタンスのIPアドレスに対して別のレコードが存在していないことを確かめてください。例:10.0.0.14 unicorn-painter-998.lilwoods.us unicorn-painter-998
- Acrive Directoryに接続するために使われているrealmdツールとその依存パッケージをインストールしましょう。
yum -y install realmd sssd krb5-workstation krb5-lids samba-common-tools
- Active Directory realm (また、DNS domainでもあります)をdiscoverしましょう。
realm discover ${DOMAIN}
例:realm discover lilwoods.us
- Active Directory realmにjoinしましょう。
realm join --verbose ${REALM} -U ${JOIN_USER}
例:realm join --verbose lilwoods.us -U mia427@lilwoods.us
プロンプトが出るので、adminパスワードを入力してください。Linuxサーバーが管理ドメインへの参加に成功すると、以下のようなメッセージが表示されます。Successfully enrolled machine in realm
- sudoersファイルを編集し、Adminsグループのメンバーにsudo権限を付与しましょう。
visudo
wheelグループがあるファイルの半分ほどのところまで移動し、このグループの下にActive Directoryグループ名をsudoers設定ファイルに追記しておきましょう。将来参照するときのために説明も追記しておきます。# Allow users in the admin group to run all commands
{REALM}\\{AD-Group-Name} ALL=(ALL) ALL例:# Allow users in the Unicorn-Admins group to run all commands
%LILWOODS.US\\Unicorn-Admins ALL=(ALL) ALL - /etc/ssh/sshd_configファイルを編集し、Active Directoryからの認証情報を受け入れるためにSSHサービス内でのパスワード認証を許可しておきましょう。PasswordAuthentication noをPasswordAuthentication yesに変更します。
- 設定変更を適用するため、sshdを再起動します。
systemctl restart sshd
これで完了です!インスタンスは以下の設定になりました:
- Active Directoryに登録済
- Active Directory内のユーザーがSSHログインアクセス可能
- 新規ログイン時、ホームディレクトリスケルトンが生成される
- Active Directoryのあるグループに所属するユーザーは、sudoアクセスが可能
- このインスタンスからのKerberos認証が可能