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の属性値等について記述していきたいと思いますのでお楽しみに!
それではよいお年を!