FreeRadiusインストールするがradtestがうまくいかないメモ(CentOS)

Radiusと言ってもぱっとこない人は多いですが、簡単に言うとインターネットに接続するための、認証サーバーです。 すごく簡単に言いました。こんな感じとじぶんは認識しとります。 ということで、インストールからradtestまでの動作確認など、一連の手順をメモしておきます。

Radiusインストール手順

今回はCentOS6でインストールしました。 途中で引っかかってしまったところも回避策をメモっているのでご紹介します。

yumインストールでradiusをインストール

$ yum install freeradius
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
~~~
Total download size: 1.4 M
Installed size: 5.7 M
Is this ok [y/N]: y

~~~
Installed:
freeradius.x86_64 0:2.1.12-4.el6_3

Complete!
#

freeradius_utilsのインストール ※参照先で紹介されているradtestが入っている。

$ yum install freeradius_utils

※インストールされたバージョンを確認

$ rpm -q freeradius
freeradius-2.1.12-4.el6_3.x86_64

FreeRadiusの設定

インストールした後、以下設定を実施

  1. radiusd.conf FreeRadius全体の基本設定
  2. clients.conf 認証、アカウンティング要求を受け付けるRadiusクライアントの設定を定義する
  3. users 認証するユーザ情報を設定する。また、ファイル名はradiusd.confで変更可能

radiusd.confの設定

$ pwd
/etc/raddb
$ ls -la | grep radius*
-rw-r----- 1 root radiusd 27848 10月 3 10:23 2012 radiusd.conf
$ cp radiusd.conf radiusd.origin
$ vi radiusd.conf
# Log authentication requests to the log file.
#
# allowed values: {no, yes}
#
auth = no

#auth = no → yesへ変更

clients.confの設定

$ pwd
/etc/raddb

$ ls -la | grep clients*
-rw-r----- 1 root radiusd 6703 10月 3 10:23 2012 clients.conf

$ cp clients.conf clients.origin
# You can now specify one secret for a network of clients.
# When a client request comes in, the BEST match is chosen.
# i.e. The entry from the smallest possible network.
#
client 1.1.1.1 {
secret = test
shortname = RadiusTest
}
  • client = 認証要求を受け付ける対向機器のIPアドレスを設定(名前解決可能であればドメイン名でOK)
  • secret = クライアント側で設定するパスフレーズ
  • shortname = クライアント側で設定する名前

usersの設定

$ pwd
/etc/raddb


$ ls -la | grep users
-rw-r----- 1 root radiusd 671 10月 3 10:23 2012 acct_users
-rw-r----- 1 root radiusd 984 10月 3 10:23 2012 preproxy_users
-rw-r----- 1 root radiusd 6524 10月 3 10:23 2012 users


$ vi users# Deny access for a specific user. Note that this entry MUST
# be before any other 'Auth-Type' attribute which results in the user
# being authenticated.
#
# Note that there is NO 'Fall-Through' attribute, so the user will not
# be given any additional resources.
#
#lameuser Auth-Type := Reject
# Reply-Message = "Your account has been disabled."

bobo Auth-Type := Local, User-Password =="testbobo"

ユーザーIDを「bobo」、パスワードを”testbobo”としてユーザ登録する

※FreeRadiusの動作確認 テストコマンド

$ radtest ユーザID パスワード 認証先 認証(auth)ポート secretキー

起動及び確認

$ service radiusd start
radiusd を起動中: [ OK ]


$ ps aux | grep radius
radiusd 31244 0.0 0.3 152420 3284 ? Ssl 06:56 0:00 /usr/sbin/radiusd -d /etc/raddb
root 31257 0.0 0.0 107456 916 pts/0 S+ 06:58 0:00 grep radius# service radius status
radius: 認識されていないサービスです。


$ service radiusd status
radiusd (pid 31244) を実行中...

radtest install(初期設定時にはパッケージに入っているが、インストールされていない)

$ yum provides '*/radtest'
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: ftp.nara.wide.ad.jp
* extras: ftp.nara.wide.ad.jp
* updates: ftp.nara.wide.ad.jp

~~~~~

Total download size: 120 k
Installed size: 216 k
Is this ok [y/N]: y

~~~~~

Installed:
freeradius-utils.x86_64 0:2.1.12-4.el6_3

Complete!

radtestがうまくいかない

→/etc/hostsへ機器のアドレスを追記

$ vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.94 {ホスト名} ←ホスティング機器の場合、認証がうまくいかないときがある為hostsファイルに名義してあげる
~
~

access-rejectで拒否られる

hostsファイルの設定 radiusをインストール・設定する上で、単純な設定ですがまず一番最初に実施することとして、自身のhost名を/etc/hostsファイルに登録する必要がある。 通常のインストールでは問題はないが、ホスティング機器へのインストールなど、後にhost名を変える場合など、少し注意が必要。 hostsに自身の機器を名前解決できないと、認証が失敗することがある。

$ radtest bobo testbobo localhost 0 testing123
Sending Access-Request of id 2 to 127.0.0.1 port 1812
User-Name = "bobo"
User-Password = "testbobo"
NAS-IP-Address = 192.168.10.94
NAS-Port = 0
Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=2, length=20

※usersファイルを修正

$bobo Auth-Type := Local, User-Password =="testbobo"
bobo Cleartext-Password := "testbobo" ←こちらに変更

  再度確認。

$ radtest bobo testbobo localhost 0 testing123
Sending Access-Request of id 250 to 127.0.0.1 port 1812
User-Name = "bobo"
User-Password = "testbobo"
NAS-IP-Address = 192.168.10.94
NAS-Port = 0
Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=250, length=20
#

※radtestでうまくいった。

まとめ

Radiusはホント最初のころはさっぱりでした。※今もです。 認証サーバなんて何の事かもわからないし、動作もわかりません。 わからなければ、まずは構築してみて動かしてみることが大切です。 じぶんも勉強していきます!




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!