ウチの中は Samba ad dc でユーザーを一括管理する方向で進めている。せっかくなので、Zabbix のユーザーも Samba ad dc で認証したい。
ユーザー認証について調べてみると、Zabbix は LDAP 認証をサポートしていることが分かる。
ZABBIX / Zabbix Documentation 4.0 - 3 Authentication
どうやら、
- LDAP 認証をデフォルトにすると、LDAP 認証ができるようになる。
ただし、一部のユーザー(多分 Admin さんとか)は内部認証のまま。 - 事前に Zabbix にユーザーを作っておくと、そのユーザーを LDAP 認証しようとする。
- Zabbix 側の設定は全て GUI でできる。
ということの模様。
ユーザー認証をLDAPに変更
やること。
LDAP認証の設定
管理 → 認証 → LDAP認証の設定 と進んで、LDAP認証のための設定を記入する。
過去に Samba ad dc と各種サービスを連携させているが、そのときに基礎学習した phpLDAPadmin による接続を見ながらやってみた。
Bind DN として Administrator を利用しているのはご愛敬…。
Admin→Administratorへの変更
Samba ad dc の管理者は Administrator なので、変更してみる。
管理 → ユーザー と進み、Admin のリンクをクリック。
エイリアスを Admin から Administrator に変える。
ここまでの設定で、
Username: Administrator
Password: zabbix
でログインできるようになる。
認証をLDAPに変更
LDAP認証の設定 → 認証 他部に移動して LDAP に変える。
ここまでの設定で、
Username: Administrator
Password: Samba ad dc に登録済みの Administrator のパスワード
でログインできるようになる。
管理に利用するユーザーを追加する
LDAP 認証になったからと言って、すぐに LDAP に登録されたユーザーで Zabbix にログインできるわけではない。Zabbix にユーザーを追加することでログインできるようになる。認証には Samba ad dc で管理しているパスワードが使われる。
そこで、Samba ad dc に登録してある rohhie を管理ユーザーとして登録してみる。
管理 → ユーザー と進み、ユーザーの作成ボタンをクリックし、エイリアス rohhie を作成する。パスワードは 12345 にしてみた。
さらに、権限タブで権限を設定する。権限については以下に説明があった。
ZABBIX / Zabbix Documentation 4.0 - 2 Permissions
どうやら最初の色々をやる人には特権管理者の権限が必要になるっぽいので付けておいた。
ここまでの設定で、
Username: rohhie
Password: Samba ad dc に登録済みの rohhie のパスワード(12345 ではないので注意)
でログインできるようになった。
やったこと
Adminでログインできなくなった
Zabbix の Admin を Administrator に変更していない上に、ユーザーも追加していない状態で認証を LDAP に変更したところ、Zabbix にログインできなくなった。
どうやら、この設定はファイルにはなさそう…ということでデータベースを探ってみた。
$ sudo mysql
MariaDB [(none)]> use zabbix;
Database changed
MariaDB [zabbix]> show tables;
+----------------------------+
| Tables_in_zabbix |
+----------------------------+
| acknowledges |
…
| config |
+----------------------------+
144 rows in set (0.00 sec)
MariaDB [zabbix]> select configid, authentication_type from config;
+----------+---------------------+
| configid | authentication_type |
+----------+---------------------+
| 1 | 1 |
+----------+---------------------+
1 row in set (0.00 sec)
多分これだ、と当てずっぽうで値を変更。具体的には、テーブル config の 列 authentication_type を 0 に。レコードは1つしかなかった。
MariaDB [zabbix]> update config set authentication_type = 0 where configid = 1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MariaDB [zabbix]> select configid, authentication_type from config;
+----------+---------------------+
| configid | authentication_type |
+----------+---------------------+
| 1 | 0 |
+----------+---------------------+
1 row in set (0.00 sec)
これで、認証をデータベースに戻すことができた。
さいごに
ちゃんと設定をしていないうちに認証を LDAP に変えたところでログインができなくなりかなり焦った。
きっと回復手順はどこかに書いてあるんだろうけれども見つけられなかったよ…
まぁ、最初の段階なのでインストールし直せば良かったのだけれど、例えば会社である程度運用を進めてからこの問題にあたったらちょっと嫌だな…と思って、あてずっぽうでやってみた結果、回復できた。
回復手順がうまく見つかって良かった。
コメントはこちらから お気軽にどうぞ ~ 投稿に関するご意見・感想・他