CentOS 7にFreeRADIUS(ActiveDirectory認証)を構築する
SambaドメインコントローラのCentOS 7にRadiusサーバーを構築する。
ActiveDirectory認証をするにはNTLM+PAPで認証するように設定する。
■Radiusサーバ構築
ntlm_authコマンドを使ってAD認証できる状態を前提とする。
Sambaでドメインコントローラをセットアップしているなら使えるようになっている。
参考:NTLM Auth (Active Directory) with PAP
前提として以下の環境とする。
Radiusバージョン | 3.0.13 |
レルム名 | LOCAL.DOMAIN.JP |
ntlm_authコマンドのパス | /usr/local/samba/bin/ntlm_auth |
Radiusシークレットキー | testing123 |
■インストール
yum -y install freeradius freeradius-utils
■接続可能とするクライアント情報を設定
Radiusサーバに接続可能にするクライアント情報を記載する。
IPやホスト名指定、IPアドレス範囲などが設定できる。
secretキーはクライアントから接続するときに必要。
vi /etc/raddb/clients.conf
例)192.168.100.1~192.168.100.255を接続可能とする場合
client 192.168.100.0/24 { secret = testing123 }
■NTLM認証をできるようにする
ntlm_authコマンドのパスとドメイン名を設定する。
vi /etc/raddb/mods-available/ntlm_auth
# program = "/path/to/ntlm_auth --request-nt-key --domain=MYDOMAIN --username=%{mschap:User-Name} --password=%{User-Password}" program = "/usr/local/samba/bin/ntlm_auth --request-nt-key --domain=LOCAL.DOMAIN.JP --username=%{mschap:User-Name} --password=%{User-Password}"
NTLM認証ポリシーを設定する。
vi /etc/raddb/policy.d/ntlm_auth
# Give the ntlm_auth exec module an "authorize" method that sets Auth-Type # to itself but only if it's a valid PAP request, and Auth-Type is not # already set to something ntlm_auth.authorize { if (!control:Auth-Type && User-Password) { update control { Auth-Type := ntlm_auth } } }
認証タイプを有効にする。
vi /etc/raddb/sites-enabled/default
authorizeセクションはpapをコメントアウト、ntlm_authを最下部に追記する。
authenticateセクションの最上部に認証タイプを追加する。
authorize { ... # pap ntlm_auth } authenticate { Auth-Type ntlm_auth { ntlm_auth } ... }
■起動
systemctl start radiusd systemctl enable radiusd