人生初めての適応障害を患い、普通の生活が送れなくったところから、復活する経緯を綴ったブログです。Ubuntuどうも、Tです。Directoryを冗長性(2台構成)にした検証を行ったので備忘録です。Directoryを1台構成で構築した記事を書きました。Directoryドメインコントローラを構築してみるどうも、Tです。Directoryを導入して2台構成にします。Serverをほぼデフォルトでインストールしたものを使用しています。ESXi上の仮想マシンにインストールしています。操作はrootユーザーで行っています。パッケージはaptコマンドで取得できるもののみ使用しています。4.15.131台目のADは前回構築済みのため、本記事では主に2台目の構築になります。1台目のAD操作は【k-addc01】2台目のAD操作は【k-addc02】のようにタイトルにプレフィックスを付けます。【k-addc02】ファイルシステムのサポート確認カーネルでACLサポートが必要です。下記のコマンドを実行して結果が「y」であることを確認します。CONFIG_EXT4_FS_POSIX_ACLCONFIG_EXT4_FS_POSIX_ACL=yCONFIG_EXT4_FS_SECURITY=y今回はファイルシステムがext4の場合を記載しています。他のファイルシステムの場合に必要なカーネルオプションは下記に記載されています。SambaWikiwiki.samba.org【k-addc02】ホスト名設定ホスト名の設定ホスト名「k-addc02」が設定されいていることを確認します。k-addc02」を追加します。k-addc02FQNDでpingが実行できることを確認します。ms【k-addc02】DNSリゾルバ設定DNSリゾルバサービスの無効化UbuntuのDNS構成を制御する「systemd-resolved」が「resolv.conf」を勝手に書き換えてしまします。「systemd-resolved」は不要となるため無効化し起動していないことを確認します。「resolv.conf」ファイルは/runの下のシンボリックファイルになっています。シンボリックファイルを解除しておきます。手動で「resolv.conf」を作成して編集します。/etc/resolv.conf「resolv.conf」を下記のように作成しておきます。nameserverに1台目のAD【k-addc01】のIPアドレスを指定します。k.local.labネットワークインターフェースに設定されいているDNSエントリも修正します。/etc/netplan/99-netcfg-vmware.yaml下記のようにnameserverを「resolv.conf」と合わせておきます。192.168.10.201修正後、インターフェースの変更を適用します。details.WARNINGが出力されているのは、デフォルトゲートウェイの設定が現在非推奨の記載方法になっているためです。面倒なのでそのまましていますが、気になる方は修正してください。LTSがリリースされたので、早速サーバーをインストールして動かしてみた。インストール時に固定IPアドレスを設定したのだが、それが間違っているので修正したところ、gateway4は非推奨といわれてしまった。時刻同期とするNTPを導入します。k-addc01と同じChronyを導入し、【k-addc01】と時刻同期できていることを確認します。設定方法は、下記の記事を参照してください。22.04とChronyでNTPサーバをつくってみたどうも、Tです。22.04でNTPサーバーを作った備忘録です。16:28注意点として、【k-addc02】はNTPクライアントとして動作し、【k-addc01】と時刻同期を行うため、poolの指定は【k-addc01】のIPアドレスもしくはホスト名になります。Directoryが複数あるときの時刻同期のベストプラクティスは、下記を参照ください。ADに必要となるパッケージをインストールします。smbclientを追加しています。ADに必要なパッケージは下記を参照ください。SambaWikiwiki.samba.org1台目のAD【k-addc01】の場合はインストールが完了すると、紫色のセットアップ画面がでてきましたが、【k-addc02】では表示されませんでした。Directoryに不要なサービスを停止し、手動でも起動できないようにmaskしておきます。Directoryサービスをunmaskし自動起動を有効化しておきます。下記のケルベロス設定を行います。https://wiki.samba.org/index.php/Joining_a_Samba_DC_to_an_Existing_Active_Directory#KerberosKerberos設定ファイルを退避し手動で作成します。/etc/krb5.conf記載内容は下記になります。default_realmに自分のレルム名を大文字で指定します。truekinitコマンドでadministraotrのKerberosチケットを要求します。JSTklistコマンドでチケットが表示されることを確認します。【k-addc02】をADドメインに参加させます。SambaWikiwiki.samba.org処理時にsmb.confが自動的に作成されつため、デフォルトの設定ファイルを退避しておきます。join」コマンドでJOINします。join」コマンドで指定している意味は次の通りです。ドメインコントローラ(DC)の役割として参加。ドメインの管理者ユーザーを指定。smb.confへ設定を追加。ここではDNSフォワーダを追加している。smb.confへ設定を追加。1台目のAD構築時にrfc2307(NIS拡張)を指定している場合、合わせておく。join処理が行われる。DC下記の「smb.conf」ファイルが作成される。Directoryユーザとコンピューター」をみると【k-addc02】がドメインコントローラーとして参加できていることがわかります。Directoryサイトとサービス」にも【k-addc02】が表示されます。DNSレコードも登録されます。スクリーンショットの取得を失念していましたが、NSレコードも登録されています。原因はわからなかったのですが、Aレコードのホスト名とkrb5.confファイルの[domain_realm]の【k-addc02】のホスト名が大文字になっていました。Aレコード、krb5.confファイルとも小文字に戻して問題なく動作することをかくにんしています。Kerberos設定Kerberos設定ファイルも自動的に作成されるため置き換えます。元のkrb5.confを退避し、自動生成されたkrb5.confをコピーします。/etc/krb5.confkrb5.confはコピーする必要があります。シンボリックリンクを設定してはいけません。end.krb5.confの中は下記のようになっています。K.LOCAL.LAB原因はわからなかったのですが、Aレコードのホスト名とkrb5.confファイルの[domain_realm]の【k-addc02】のホスト名が大文字になっていました。Aレコード、krb5.confファイルとも小文字に戻して問題なく動作することをかくにんしています。レプリケーション構成ここからかなり面倒な手順になります。ADではSysvolレプリケーションがサポートされていません。そのためSysvol領域を同期させる方法を個別に設定しなければなりません。方法はいくつかありますが、本手順では一番簡単なrsyncを用いた一方向の同期を行います。【k-addc01(同期元・FSMO)】→【k-addc02(同期先)】の構成になります。そのため、GPOの編集など変更がかかるものは、【k-addc01(同期元・FSMO)】で行う必要があります。etc.)組み込みユーザID・グループIDマッピングrsyncの設定を行う前に各ドメインコントローラーが持っているユーザーとグループのIDマッピングを合わせる必要があるため設定していきます。SambaWikiwiki.samba.org【k-addc01】idmap.ldbのバックアップ【k-addc01】で「idmap.ldb」ファイルのバックアップを取得し、バックアップファイルを任意のディレクトリに移動し、root以外で読み込みが行えるようにします。/tmp/idmap.ldb.bak【k-addc02】idmap.ldbの取得・置き換え【k-addc01】で取得した「idmap.ldb」バックアップファイルを【k-addc02】の「/var/lib/samba/private」に取得します。00:00【k-addc02】に元々あった「idmap.ldb」ファイルを削除し、【k-addc01】から取得したバックアップファイルを「idmap.ldb」にリネームします。flush」コマンドでキャッシュ情報を削除します。flushrsyscによるSysvolレプリケーション回避設定rsync設定を行なっていきます。SambaWikiwiki.samba.org【k-addc01】rsync設定rsyncをデーモンモードで動作させるために「rsyncd.conf」ファイルを作成します。/etc/rsyncd.conf「rsyncd.conf」の設定内容は下記になります。任意のわかりやすい名前をつける。モジュールヘッダーで使用できるパス。コピー元の場所になる。rsyncを行うときのユーザーを指定。rsyncを行うときのグループを指定。rsyncで読み取りのみを許可。rsyncを行うときの認証用ユーザーを指定。OSに存在する必要はない。rsyncを行うときの認証用ユーザーのパスワードファイルを指定。「rsync.secret」ファイルを作成します。/var/lib/samba/etc/rsync.secret「rsync.secret」ファイルは、オーナーとグループをrootで作成し、権限は600で作成してください。これ以外で作成するとrsyncの認証時にエラーになります。「rsync.secret」ファイルの中身は下記になります。usersで指定したユーザー名>:<rsyncパスワード>で記載してください。rsyncサービスを自動起動を有効にし、起動した後にステータスを確認しておきます。領域を取得できるようにします。認証が行えるようにパスワードファイルを作成します。/var/lib/samba/etc/rsync-sysvol.secret「rsync-sysvol.secret」ファイルは、オーナーとグループをrootで作成し、権限は600で作成してください。これ以外で作成するとrsyncの認証時にエラーになります。「rsync-sysvol.secret」には「rsync.secret」に記載したパスワードのみを記載します。<rsyncパスワード>「rsync-sysvol.secret」はパスワードのみ記載します。「rsync.secret」のようにユーザー名も含めてしまうとrsync時にエラーになります。rsyncを–dry-run(実際にコピーは行わない)で実行しエラーが表示されないことを確認します。RUN)rsyncを–dry-runなしで実行しエラーが表示されないことを確認します。0.01コピーしたsysvolの内容でACLのリセットを行います。sysvolresetsysvol領域をrsyncで同期する前に行うとエラーになります。【k-addc02】rsyncのcron設定rsyncが定期的に実行されるようにcronに登録します。任意の名前でcronファイルを作成します。/etc/cron.d/k-addc作成したcronファイルに下記の内容を記載します。今回は5分おきにrsyncが実行されるようにしています。/var/lib/samba/sysvolcron登録後にrsyncが指定時間単位で繰り返し行われていることを確認します。Directoryを起動します。samba-ad-dc正常に起動していることを確認します。samba-ad-dcいくつからエラーっぽい表示がありました。調べた感じ問題なさそう(既知のバグ)だったのとその後発生していないため詳細の記録を忘れていました。項目は、SAMABのドキュメントに記載は明記されていませんでしたが、このままでは良くないなと思うところを修正しています。「resolv.conf」ファイルにDNSサーバになっている【k-addc01】【k-addc02】の2台をnameserverとして追加します。k.local.labネットワークインターフェースに設定されいているDNSエントリも修正します。192.168.10.202]修正後、インターフェースの変更を適用します。「resolv.conf」ファイルにDNSサーバになっている【k-addc01】【k-addc02】の2台をnameserverとして追加します。k.local.labネットワークインターフェースに設定されいているDNSエントリも修正します。192.168.10.201]修正後、インターフェースの変更を適用します。プロトコル)できるように設定します。構成はドキュメントにある推奨構成に則って設定していきます。詳細は下記を参照ください。SambaWikiwiki.samba.org本手順を行うことによりドメインに参加しているメンバーは、【k-addc01】【k-addc02】のどちらかから時刻同期を行うようになります。ADの場合は、FSMOからのみ時刻同期を行い他のドメインコントローラもFSMOから同期を行う構成になるため少し動きが異なっています。ADの推奨構成ではありますが、この構成にも問題はあり別の構成としては全てのドメインコントローラーを外部NTPと同期する方法も示されています。DC.今回はchronyを使っているので、chrony向けの設定を進めていきます。ntp_signdディレクトリに_chronyグループからアクセスできるように読み取り権限を設定します。/var/lib/samba/ntp_signd/chrony.confを設定します。/etc/chrony/chrony.conf下記の設定を追加します。allowは事前の設定で追加しているはずですが、まだしていなければ設定を行います。時刻時に使用するIPアドレス。設定を反映するためchronydを再起動します。enabled」が出力されていることを確認します。Directory動作確認Aレコード確認ADサーバのAレコードの名前解決がローカルで行えることを確認します。【k-addc01】【k-addc02】の2台分が表示されます。レコード確認kerberosとldapのSRVレコードの名前解決がローカルで行えることを確認します。【k-addc01】【k-addc02】の2台分が表示されます。k-addc02.k.local.lab.レプリケーション確認レプリケーションに問題がないことを確認します。Connection!ディレクトリ比較ディレクトリ内容を比較しエラーがないこと確認します。availableKerbero認証で使用されるチケットをadministratorで取得します。JSTチケットのリストが表示できることを確認します。16:21:49ADドメイン参加テストWindowsクライアントからドメインに参加できることを確認します。事前にドメインユーザー「ktest」を作成しました。RSATからGUIで手動で作成しています。【k-addc01】で作成したドメインユーザーが存在することを確認します。ktestktest【k-addc02】で作成したドメインユーザーが存在することを確認します。ktestktestドメイン参加WindowsクライアントにIPアドレスとDNSを設定します。いつも通りドメイン参加し、ドメインユーザーでログインできることを確認します。コンピュータオブジェクトが登録されていることを確認します。【k-addc01】【k-addc02】のDNSにレコードが登録されいていることを確認します。原因不明ですが、自動でAレコードが登録されるときの登録されていない時がある事象を確認しています。何が原因なのか・・・・。/registerdns」コマンドを実行することで登録されました。ADを2台構成で動かすことができました。【vSphere】RHEL9のテンプレート仮想マシンを作成してみた(仮想マシンのカスタマイズ仕様使う前提)どうも、Tです。vSphere環境でRHEL9のテンプレート用仮想マシンを作っており、難儀したので忘れないように備忘録です。...【Ubuntu20.04】Chronyを使ってローカル環境のNTPサーバーを構築するどうも、Tです。以前、検証用のローカルNTPサーバーをCentOSで作って使っていました。Strea...Redmine5.1をRHEL9(Apache+MariaDB)にインストールしてみたどうも、Tです。自分用にRedmineを使おうと思ったら、思っていた以上にインストールが複雑だったので備忘録です。動か...CentOS7でNFSを公開してESXiのデータストアとして利用するどうも、Tです。最近vSphere関連の検証でNFSサーバーを利用することが増えてきました。-eのエディタの変更方法(nanoからvimへ)どうも、Tです。-eコマンドのとき誤ってnanoを選択してしまいvimに変更したかったので、備忘録。Directoryドメインコントローラを構築してみるどうも、Tです。ActiveDirector...【vSphere】仮想マシンのカスタマイズスクリプトをRHEL9で使ってみたどうも、Tです。22.04のテンプレート仮想マシンを作成してみた(仮想マシンのカスタマイズ仕様使う前提)どうも、Tです。Programに参加するどうも、Tです。Linux)のお仕事が最近増えてきましたが、何か問題があった...【vSphere】Ubuntu仮想マシンをクローンしたら、DHCPで同じIPアドレスが設定されるどうも、Tです。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。コメントデータの処理方法の詳細はこちらをご覧ください。挫折したITエンジニアの復活劇.。