RADIUSにおけるPerlを用いたEAP-MSCHAPV2認証について①

schedule 2021/12/24  refresh 2023/11/08

 

当ページをご覧いただきありがとうございます。

今回はタイトルにもある通り、RADIUSにてPerlを用いたMSCHAPV2認証について、実際の実装方法等を交えながら説明させて頂きたいと思います。

 

複雑かつ長くなるため何回かに分けて記載いたしますので、是非最後まで読んでいただけると幸いです。

今回の第1回目では、「RADIUSへのperl実装」について説明いたします。

※今回はperl呼び出しを目的とするため分かりやすさを重視してPAP認証でテストを行います。

 

【前提】

 自サーバーに対してradtestコマンドで認証テストが行えること

 

【使用するソフトウェア・モジュール】

 ・FreeRADIUS (Version 3.0.13)

 ・perl(Version 5.16.3)

 ・Sys::Syslog

 

【Perlファイル作成】

 まず初めにradiusでの認証時に呼びだすperlファイル自体を作成します。

 perlファイルは「etc/raddb/mods-config/perl」配下に作成します。

 サンプルファイルとして「example.pl」があると思いますので今回はこちらをコピーして

 「test.pl」として使用したいと思います。

 

 

 

 ※chmodコマンドでファイル権限を実行可能にしておくこと。

 「test.pl」を開き、Sys::Syslogモジュールを追加しAuthenticateセクションにテスト用のlog出力処理を追加します。

 

 

 これでperlファイルの作成が完了しました。

 

【perlファイル呼び出し設定記述】

 先ほど作成したperlファイルを呼び出す記述を行います。

 対象ファイルは「/etc/raddb/mods-available/」配下の「perl」でファイル内の「filename =」の項目を「filename = ${modconfdir}/${.:instance}/test.pl」に変更します。

 

 次に上記の「perl」を呼び出すように「/etc/raddb/sites-available/」配下の「default」ファイルで

 ファイル内のauthenticateセクションのAuth-Type PAP{}内にperlを記述します。

 

 これでperlの呼び出し設定記述が完了致しました。

 

【認証テスト実行】

 では実際にradtestコマンドを用いてPAP認証を行ってみます。

 radtest -t pap ユーザ名 パスワード 対象サーバ ポート番号 secretキー

 

 認証が成功しjournalctlログ上にperlファイルに記述した「TestLog」が出力されることを確認

 

 

 

【終わりに】

 いかがでしたでしょうか?

 RADIUS+Perlの組み合わせの情報はあまりなかったのでまとめてみました。

 次回はPerlでのEAP-MSCHAPV2の実装を行いたいと思います。

 eapol_testツールやEAP-MSCHAPV2の属性値等について記述していきたいと思いますのでお楽しみに!

 それではよいお年を!