Amazon LinuxでオンプレミスADのユーザ情報を使ってログインする
AWS上のLinuxインスタンスでオンプレのAD認証をする必要に迫られたのでそのメモ。
参考にしたサイト
http://jshimazu.hatenablog.com/entry/2014/02/05/165058
前提
LinuxインスタンスがVPN接続でオンプレのADと接続可能な状態になっていること
手順
- Linuxインスタンスにログイン
- 必要なパッケージをインストール。
sudo yum -y install realmd sssd krb5-workstation krb5-libs
- DNS参照でオンプレADが見つからないといけないので、resolv.confを修正。(普通はADサーバのIPアドレスを指定すれば良いと思います。)
vi /etc/resolv.conf
nameserver <参照先DNSサーバ名>
※既存のnameserverの箇所はコメントアウトしておく - AD参照できるか確認
sudo realm discover <ドメイン名>
- kerberosの初期化
kinit <ユーザー名>@<ドメイン名>
- ドメイン参加
sudo realm join --verbose <ドメイン名> -U '<ユーザー名>@<ドメイン名>'
ubuntuの場合は上記に--install=/も追記する。 - デフォルトだとSSH接続が鍵認証なので、パスワード認証に変更する。
sudo vi /etc/ssh/sshd_config
PasswordAuthentication no
の箇所をPasswordAuthentication yes
に修正
AuthorizedKeysFile
の箇所をコメントアウト
PubkeyAuthentication
の箇所をPubkeyAuthentication no
に修正 - ADが死んでしまったとき用にec2userだけは証明書認証をできるようにする。
sudo vi /etc/ssh/sshd_config
下記2行を追記。
Match User ec2-user
PubkeyAuthentication yes
- AmazonLinuxの場合、インスタンス再起動時にsshdが鍵認証に戻されてしまうのでそれを無効化。
sudo vi /etc/cloud/cloud.cfg.d/00_defaults.cfg
ssh_pwauth: false
の箇所をssh_pwauth: true
に修正。 - sshdの再起動
/etc/init.d/sshd restart
- 以上
動作検証
対象のLinuxインスタンスにSSH接続。そのとき、ユーザ名はUPN('<ユーザー名>@<ドメイン名>')で、パスワードはADのものを使ってアクセス。 ログインできれば成功。
その他
管理者権限を与えたいユーザには/etc/sudoersを編集し、よしなにやってください。 グループに与える場合は「%<ドメイン名>\<グループ名> ALL=(ALL) ALL」とかすればOK
その他2(2017.6追記)
ログインする際に
use_fully_qualified_names をコメントアウト。
systemctl restart sssd でSSSDを再起動。 参考にしたURL:
ubuntu - SSSD Authentication to Windows Domain without @domain.com everywhere - Server Fault