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


