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で構築したもの。こちらの方法で構築。
  
こちらを写経しただけではあるが、お家にADのドメインコントローラーが建った🤭
— KenTokuda (@ken_tokuda) February 19, 2020
Windows10 proを参加させてadministratorでログインもできたぞhttps://t.co/yXjFege505
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名が引けないのが問題だったので、おそらく上記の方法で解決出来るだろうと思う。

コメント
コメントを投稿