Windows Server 2022にADを構築し、Zabbix6.0とGrafanaでLDAP認証を実装する

# 宣伝

BeeX Advent Calendar 2022 の8日目で～す(/・ω・)/
[BeeX Advent Calendar 2022](https://qiita.com/advent-calendar/2022/beex)

# 前提条件

下記記事で構築した環境を今回は使用します。
[CloudFormationテンプレートのベストプラクティスな書き方について考えてみた](https://qiita.com/yes_dog/items/1d35b93278cc1f93d3c4)
[Redhat8の環境にZabbix6.0/Grafana環境を構築してみた](https://qiita.com/yes_dog/items/237b6b9f5deccf4b1a77)

# はじめに

今回は、Zabbix6.0とGrafana環境にLDAP認証を用いたログイン機能を追加していきます。
ADに関しては、事前に構築済みの踏み台サーバー(Windows Server 2022)を使用するものとします。

使用する環境は以下の通りです。
- Windows Server 2022(踏み台サーバー兼ADサーバ)
- RedHat8(Zabbix6.0/Grafana)

**■イメージ図**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/1db7a46a-5c5e-08d1-67ed-6e0e8428c63d.png)



# 環境構築

## (1)Windows Server 2022でActive Directoryを構築する

今回は、パブリックサブネットにある踏み台サーバーにADを構築するのですが、検証目的なのでセキュリティとかは特に意識してないです。(●´ω｀●)

### (1.1)Active Directory ドメイン サービスをインストール

**①サーバーマネージャーを開き、「役割と機能の追加」を押下する。**
![2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/743ca461-4108-48c6-4078-5c41d2fad323.png)


**②「次へ」を押下する。**
![3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/95ec9f9b-5443-86c7-168f-864ad699f381.png)


**③「役割ベースまたは機能ベースのインストール」を選択し、「次へ」を押下する。**
![4.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/61967496-c569-b5c4-e524-d2ddf633cc2f.png)


**④インストール対象のサーバーを確認し、「次へ」を押下する。**
![5.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/5f8f537b-7e55-5651-5ac2-d3ef71b730fa.png)


**⑤「Active Directory ドメイン サービス」にチェックをいれる。**
※チェックを入れると、「役割と機能の追加ウィザード」が表示される。
![6.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/01f86c03-4516-b078-17b1-57d077ac7e8d.png)


**⑥「機能の追加」を押下する。**
![7.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/b5d97b6a-f13f-58c5-a6f4-dfed54e24d41.png)


**⑦「次へ」を押下する。**
![8.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/81788ed8-0957-3ce3-1263-f6e7295b8499.png)


**⑧何も選択せずに、「次へ」を押下する。**
![9.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/3f3f5545-efcf-9568-acec-9fa51d2cf7fc.png)


**⑨「次へ」を押下する**
![10.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/74982dba-be8e-5358-b94d-094abfae5026.png)


**⑩「インストール」を押下する。**
![11.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/8f2c4fab-afc1-a1f2-7b88-9fbbf123e28c.png)

**⑪インストール完了後に「閉じる」を押下する。**
![13.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/37af56e6-fcc3-bffd-2210-6a9d90c54b92.png)

### (1.2)サーバーをドメインコントローラーに昇格する

**①サーバーマネージャーの右上にある旗マークを選択後、「このサーバーをドメインコントローラーに昇格する」を押下する。**
![14.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/702f1366-8d94-606f-d073-a65cdd7440a8.png)


**②「新しいフォレストを追加する」を選択後、ルートドメイン名に「qiita-dev.com」を入力し、「次へ」を押下する。**
※今回は存在しない適当なドメイン名を使用します。
![15.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/ce3d4fe6-eb63-63b7-2a84-3552281d5696.png)


**③「ディレクトリサービス復元モード(DSRM)」のパスワードを入力し、「次へ」を押下する。**
※「フォレストの機能レベル」と「ドメインの機能レベル」では、デフォルトの値(Windows Server 2016)を使用します。
![16.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/63e5e1d4-200d-d490-4f37-d6a64fa962cb.png)


**④特に何も選択せずに、「次へ」を押下する。**
![17.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/86e84ff0-7e69-07ef-0ac3-3e26d7d31383.png)


**⑤NetBIOSの値は変更せずに、そのまま「次へ」を押下する。**
![18.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/9ac2a440-132d-a833-7683-6692c669957e.png)

**⑥パスは特に変更せずに、そのまま「次へ」を押下する。**
![19.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/60a66262-e394-57ff-e352-8809d4bf0cc2.png)

**⑦「次へ」を押下する**
![20.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/4d129213-917c-4578-dc76-bac0e6e3ce94.png)


**⑧「インストール」を押下する。**
※インストール後に自動的に再起動が走る。
![21.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/1d26f2d9-a838-2e60-4786-194bf0c10f6c.png)


**⑨RDPで繋ぎ直す。**
接続する際のユーザ名は、「\Administrator」というように、ローカルユーザーのAdministratorを明示的にの指定する必要がある。
![22.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/66188bef-c90e-735c-321e-f09b8d827d8c.png)


### (1.3)LDAP認証用のユーザグループ・ユーザを作成する。

続いて、ZabbixやGrafanaで使用するLDAP用のユーザグループ/ユーザーを作成していきます。

**①サーバーマネージャーの右上にある「ツール」を選択後、「Active Directory ユーザーとコンピューター」を押下する。**
![23.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/43e0008f-5445-f175-1190-798ec02438c8.png)

**②「qiita-dev.com」内のUsersを開き、ユーザーグループとユーザーを作成していく。**
![24.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/68263d4f-3380-3f8d-fad3-1b554c546d63.png)

**③以下のユーザグループを作成する。**

|ユーザグループ名  |用途  |備考  |
|---|---|---|
|qiita-admin  |GrafanaでLDAP認証する際の管理者用のユーザグループ  |Grafana環境でのみ使用する。  |
|qiita-editor  |GrafanaでLDAP認証する際の編集者用のユーザグループ  |Grafana環境でのみ使用する。  |
|qiita-viewer  |GrafanaでLDAP認証する際の参照用のユーザグループ  |Grafana環境でのみ使用する。  |


**④以下のユーザを作成する。**

|ユーザ名  |用途  |所属するユーザグループ  |備考  |
|---|---|---|---|
|qiita  |LDAP認証用ユーザ  |ー  |Zabbix、Grafana両環境で使用する。|
|qiita-userA  |管理者用のユーザ  |qiita-admin  |Zabbix、Grafana両環境で使用する。|
|qiita-userB  |編集者用のユーザ  |qiita-editor  |Zabbix、Grafana両環境で使用する。|
|qiita-userC  |参照用のユーザ  |qiita-viewer  |Zabbix、Grafana両環境で使用する。|




## (2)Zabbix6.0にLDAP設定を実施
参考URL：https://tech-mmmm.blogspot.com/2019/01/zabbixactive-directory_16.html

### (2.1)Zabbix側でLDAP認証の有効化

**①メニューバーで、「管理 > 認証」の順に押下する。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/3b0ec2a9-a2b5-ff6c-25f1-f7acf013b3ea.png)

**②認証画面の「LDAP認証の設定」を押下する。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/39ba82d4-79d0-6af1-79d3-09cb80c89b23.png)

**③「LDAP認証の有効化」にレ点チェックを入れる。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/eff62983-a9eb-9018-cc87-b183b7d1e8bb.png)

**④下記の入力を行い、「テスト」を押下する。その後、「更新」を押下する。**
※テストに合格にすると、「LDAPによるログインが成功しました」と表示される。

|項目  |入力値  |備考  |
|---|---|---|
|LDAPホスト  |AD server IP  |プライマリネームサーバーを指定 |
|ポート  |389  |デフォルトのLDAPポート番号 |
|Base DN  |dc=qiita-dev,dc=com  |qiita-dev.comを指定 |
|検索の属性  |sAMAccountName  | |
|Bind DN  |qiita  |LDAP認証用ユーザのホスト名 |
|Bind password  |qiita@Password  |LDAP認証用ユーザのパスワード |
|ログイン  |  |ログインテストで使用するユーザ名 |
|ユーザーのパスワード  |  |ログインテストで使用するパスワード名 |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/e2c8f038-8668-97d6-c3fb-a4856e5a7060.png)

### (2.2)ユーザグループ/ユーザの作成

**①LDAP認証を設定したユーザグループを作成する。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/f72bff61-cbcb-083d-2d06-74e08f106317.png)

**②LDAP認証を使用し、ログインするユーザを登録する**
※ここで登録するユーザ名は、ADのユーザ名と同一である必要がある。
※パスワードは、ADを参照する仕組みの為、ここでは入力しない。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/50526f90-d6f9-ce24-b028-06a05058f8a2.png)

**③先ほど作成したユーザでログイン確認**
※ここでログインできれば、OK。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/91323679-b4da-c2ff-9f41-dfa07d9fb5fe.png)


## (3)GrafanaにLDAP設定を実施

■参考URL
https://techexpert.tips/ja/grafana-ja/active-directory%E3%81%A7%E3%81%AEgrafana-ldap%E8%AA%8D%E8%A8%BC/

**①GrafanaのLDAP認証設定を定義**

```
# vi /etc/grafana/ldap.toml
--
[[servers]]
host = "AD server IP"
port = 389
use_ssl = false
start_tls = false
ssl_skip_verify = false
bind_dn = "qiita"
bind_password = "qiita@Password"
search_filter = "(sAMAccountName=%s)"
search_base_dns = ["DC=qiita-dev,DC=com"]

[servers.attributes]
name = "givenName"
surname = "sn"
username = "sAMAccountName"
member_of = "memberOf"

[[servers.group_mappings]]
group_dn = "CN=qiita-admin,CN=Users,DC=qiita-dev,DC=com"
org_role = "Admin"

[[servers.group_mappings]]
group_dn = "CN=qiita-editor,CN=Users,DC=qiita-dev,DC=com"
org_role = "Editor"

[[servers.group_mappings]]
group_dn = "CN=qiita-viewer,CN=Users,DC=qiita-dev,DC=com"
org_role = "Viewer"
```

**②GrafanaのLDAP認証を有効化**

```
# vi /etc/grafana/grafana.ini
--
[auth.ldap]
enabled = false
↓
[auth.ldap]
enabled = true
--
```

**③Grafana再起動**

```
# systemctl restart grafana-server
```

**④GrafanaのLDAPユーザでのログイン確認**
※LDAPユーザを使用してログインができればOKとする。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/4db893a6-7809-10fd-dd89-ac6be1cf01df.png)
↓
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252895/d23f2def-a21a-6b5d-ef95-629dcc2c6d12.png)

# 最後に
今回は、ZabbixとGrafanaでLDAP認証を設定いたしました。
次回は、他の設定について書いていこうと思います。
終わりです( ｀ー´)ノ