【Linux】radclientコマンドの使い方

仕事でradius認証に関する試験を行うことになり、radius認証リクエストを送れるradclientコマンドの使い方を1から調べて作業をしているので備忘録を残します。


radiusの理解がかなり薄いため誤っている情報があればご教示いただけると嬉しいです。

radclientコマンドの構文

/XXX/XXX/radclient [オプション] [IPアドレス]:[ポート番号] [コマンド] [シークレット]

※オプションでアトリビュートファイル等を引数に出来る。
※コマンドはauth、acct、status、coa、disconnectのどれか
※シークレットはclientファイルで定義しているクライアント:シークレットの組み合わせ

実行例

/usr/local/radclient -x 127.0.0.1:1111 auth testting123 -f /attrbuteファイル

auth認証を送る例。testing123はfreeradiusデフォルトのシークレット。

attrbuteファイルについて

attrbuteファイルではPacket-Type = "○○"でパケットタイプを指定したり
Packet-Src-IP-Address = "○,○,○,○"で宛先IPを指定したり、Packet-Dst-Port = "○○"でポート番号を指定することが出来る。


アトリビュートファイルで指定した場合はradclientコマンドの引数に指定しているポート番号や宛先IP、認証種別は無視される。
アトリビュートファイルが優先される

attrbuteファイルでは実施するユーザのユーザ名とパスワードも指定できる。

アトリビュートファイルを作成せずともradclientでリクエストを送る方法

echoコマンド | radclientの形式で実行できる。

実行例

echo "User-Name=freeRadiusTest",User-Password=freeRadiusTestPass" | /usr/bin/radclient/ -x localhost:1812 auth testing123  -f /attrbuteファイル

radclientコマンドのオプション

実行例

echo "User-Name=freeRadiusTest",User-Password=freeRadiusTestPass" | /usr/bin/radclient/ -x -r 2 -c 1 -t 3 localhost:1812 auth testing123 -f /attrbuteファイル
  • x

デバッグ情報を出力。

  • r

リトライ回数を指定。デフォルトは10

  • c

パケットを送信する回数を指定

  • t

タイムアウト時間を指定。例えば3にすると要求が3秒応答しないとパケットを再送信する。
デフォルトは3

  • f

アトリビュートファイルを指定

  • d

raddbのディレクトリ指定。デフォルトは/etc/raddb