VDOM有効時のFortigateの管理アカウント
ネットワークインターフェースの教科書的な話は前回記事で終わりました。続いて管理アカウントの話です。管理者アカウントを分けてFortigateを運用しているケースはそこまで多くはないと思いますが、VDOMの話になったこともあり、ついでに触ってみました。
超分かりづらい・・・。
もうちょっとやりようがあったのでは、と思います。そんなわけでこの記事は特定VDOMの管理を委任する時に特定VDOM専用のアカウントを払い出す方法を記した記事です。もちろんFortigateローカルユーザではなくLDAP(今回はActive Directory)を使用した構成です。
事前準備
Windows Server2016でADを準備します。ドメイン名は「madobe.test」としました。そこにオブジェクトをいくつか作成。下図のようにします。
fgrootadminuserという名前が全部盛りみたいでちょっと気に入りました。先取りして書いておくと、AD上のアカウントをFortigateの管理ログインとして使うために、基本的にグループを作成する必要があります。
Fortigateの設定
LDAPサーバの定義
VDOMというかglobalで作成するように見せかけて、管理VDOM上で定義します。global管理画面ではLDAPを定義する画面がありません。にも関わらずアカウント設定画面ではLDAP関係の設定値が出てくるあたり混乱を誘います。
まず管理VDOMに移動してLDAPサーバを定義します。今回使った設定値はこんな感じです。
GUIだとベースDNを指定する項目がありません。識別名という項目が自動的にベースDNになるようです。識別名はLDAPバインドをするためのアカウントをDN形式で指定します。LDAPバインド用のアカウントは一般ユーザ権限で問題ありません。CLIであればベースDNを明示的に定義できるようなので、OUを作り込んでいる場合はそうした機能を使用するのが良さそうです。この画面上でアカウントの有効性やマッチのテストができるのは便利ですね。
ユーザグループの作成
管理VDOM上で作成します。ユーザアカウントではありません。ユーザグループです。global管理画面以外で作成したユーザアカウントは管理アカウントではなくVPNユーザアカウント等の用途になるようです。
メンバーには何も登録しません。登録するとglobal管理画面でこのユーザグループが使用できなくなります。
リモートグループにはさっき作ったLDAPサーバ設定を指定します。その上で、このユーザグループにマッチさせるためのグループ名をDN形式で指定します。今回はAD上に作ったfgadminsというグループに所属しているアカウントをマッチさせたいので、fgadminsをDN形式で指定します。と言っても、GUIからオブジェクトを選択すれば自動的にDN形式で設定値が入ります。
管理ユーザの作成
global管理画面で管理ユーザを作成します。
ユーザ名は当然ながらAD上に作成してあり、fgadminsに所属しているユーザアカウントのsAMAccountNameを指定します。
タイプはリモートサーバグループの特定ユーザにマッチを選択。
管理プロファイルは好きなのを選んでください。事前に管理者プロファイルで作成しておくこと。
バーチャルドメインでこのアカウントに管理させるVDOMを選択します。
リモートユーザグループは、管理VDOMで作成したユーザグループが候補として表示されるので、それを選択します。
これで完了です。
動作確認
Fortigateの管理GUIにログインします。
fgrootadminuser1 : ログイン可
madobeuser01-1 : ログイン不可
想定通りでした。
細かい話
CLIで設定を見ていくと、ユーザ設定にはconfig system adminとconfig user localの2種類があります。
config system adminはglobal管理画面で作成した管理者ユーザの設定になり、config user localはVDOM管理画面で作成するユーザになります。config user localという設定値の割に、LDAP認証やRADIUS認証による設定も可能なので大分分かりづらくなっています。
アカウントの設定項目について、特にLDAP参照系の設定はほとんどCLIにしかないので、細かい制御を行いたい場合は基本的にCLIから設定する必要があるようです。アカウントやグループを指定するための条件とするLDAPクエリも正規表現が使えたり割と柔軟に書けるので、使い方によっては面白い感じ作ることもできそうです。