AWS AD ConnectorとSamba4のADを接続

AD ConnectorとSamba-ADを連携する試み

AWSにはAD Connectorという、ローカルのActiveDirectoryの認証情報を使用するための中継サービスがある。

Linux大好きな私、とある用途でActive DirectoryをSamba4のADで構築しており、このSamba4のADとAWSのAD Connectorを接続してみようとしてみたところ、エラーが発生して繋がらないという事象が発生し、この2〜3ヶ月ほど時々トライアンドエラーをしていたのだが、ついに繋がったのでやったことのログを残しておく。

Samba4のADとAD Connectorをつなぐのがニッチらしいので、誰かの一助となれば幸いである。

前提条件はバッチリでもDNSの接続でエラーになる

Samba-ADはUbuntu18.04で構築したもの。こちらの方法で構築。

 

AWSと自宅環境は、S2S VPNで接続している状態なので、ローカル側との通信は問題なく可能。

AD Connectorの管理ガイドに書いている前提条件はバッチリできてて、DirectoryServicePortTest.exeの実行結果もOKにもかかわらず、AD ConnectorからローカルのADに接続しようとすると、以下のようなエラーが出て接続に失敗してしまう。
======================
Connectivity issues detected: DNS unavailable (TCP port 53) for IP:
======================

ルートテーブル的にも問題ないし、セキュリティグループも問題ないし、何が原因なのだろう…と2〜3ヶ月程悩んでいた。

tcpdumpで見ても、AWS側からの通信は来てて、コネクションもできてるのに…。

Samba4のADとAD Connectorをつなぐのはどうやらニッチっぽいので、世界のみんなに聞いてみても英語の情報もないのでお手上げ状態…。

で、なんとなくAWSのセグメント側から名前解決できてへんのではないかと思って、EC2インスタンスからnslookupをしてみたところ解決の糸口が見えた。

DNSにAWS側から接続できるかの切り分け

AWS側からローカルのDNSサーバに名前解決できるかどうかは、AD Connectorを起動しようとしているセグメントにEC2インスタンスを立てて、nslookupでローカルのDNSサーバを指定して名前解決をしてみると、AWS側から名前解決ができるかの切り分けができる。

下記のようにREFUSEDになると名前解決ができてない。
====================
[ec2-user@ip-<EC2インスタンスのIP> ~]$ nslookup <ローカルにあるサーバののホスト名> <ローカルのDNSサーバのIP> Server: <ローカルのDNSサーバのIP> Address: <ローカルのDNSサーバのIP>#53 ** server can't find <ローカルにあるサーバののホスト名>: REFUSED
====================

こちらのブログを見てbindのnamed.confの設定が、デフォルトでは特定のセグメントからの
リクエストしか受け付けないようになっている事がわかったので、AWS側のセグメントを追加してやることに。
Ubuntu18.04 LTSの場合は、/etc/bind/named.conf.optionsにセグメントの設定がある。
とりあえずクローズドな環境なのでVPCのセグメント全体を許可。
acl localnet {
    <ローカルセグメント1>/24;
    <ローカルセグメント2>/24;
    <AWSのVPCセグメント>/16;
    127.0.0.1;
};
  

上記設定を終えた後でAD Connectorから接続を施行すると…繋がった!
Samba-ADとAD Connectorが接続できた!

余談

ただし、1つ留意点がある。
最近、AWSとのS2S VPN接続を「vyatta+PPPoE」から「RTX810+V6プラス」に変えたので、もしかしたらそっちで上手く行った可能性もある。
本来は両方の環境で再現性があるかどうかを試してみるべきだが、めんどくさいのでそこまではしない。(・∀・)
DNS名が引けないのが問題だったので、おそらく上記の方法で解決出来るだろうと思う。


みんなでAWSの勉強しようぜ!

コメント

このブログの人気の投稿

ヤマダ電機の安心会員住所変更をした

JP1の定義をドキュメント化するjp1ajs2.jobdocが超便利

curlでADのドメインユーザーでプロキシを超える