Ubuntuにfreeradiusを入れてみる

radiusとは

Remote Authentication Dial-In User Serviceの略。
Radiusサーバー、Radiusクライアント、ユーザーから構成されています。Radiusサーバーがユーザーを認証し、認証成功したユーザーのみを通したりするためのプロトコルです。
Radiusには2つのサービスが備わっています。

    • Authentication
      名前の通り、ユーザーを認証するための機能です。Radiusサーバーはユーザーから送られてきた認証要求(access request)を受取ります。その中にあるユーザー名とパスワードを照合し、認証した場合は認証許可(Access-Accept)メッセージを送ります。
    • Accounting
      Radiusはまだインターネットがダイヤルアップ時代から使われていたプロトコルです。ユーザーがパケットを使用したとき、〜バイト〜円といった課金情報を保持する役割も担っていました。Accountingサービスはそのためのものです。

また、RadiusクライアントをNAS(network access server)、ユーザーをSupplicantと呼んだりもします。

 

ubuntuにfreeradiusを入れる

LinuxではRadiusを実現するためにfreeradiusが用意されています。 

$ sudo apt-get install freeradius
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
linux-headers-4.15.0-22 linux-headers-4.15.0-22-lowlatency linux-image-4.15.0-22-lowlatency
linux-modules-4.15.0-22-lowlatency
これを削除するには 'sudo apt autoremove' を利用してください。
以下の追加パッケージがインストールされます:
freeradius-common freeradius-config freeradius-utils freetds-common libct4 libdbi-perl
libfreeradius3
提案パッケージ:
freeradius-ldap freeradius-postgresql freeradius-mysql freeradius-krb5 snmp libmldbm-perl
libnet-daemon-perl libsql-statement-perl
以下のパッケージが新たにインストールされます:
freeradius freeradius-common freeradius-config freeradius-utils freetds-common libct4 libdbi-perl
libfreeradius3
アップグレード: 0 個、新規インストール: 8 個、削除: 0 個、保留: 2 個。

/etc/freeradius/3.0/というフォルダが作られ、設定ファイル諸々が入っていました。

  • NASの設定は、/etc/freeradius/3.0/clients.conf
  • ユーザーの設定は、/etc/freeradius/3.0/users

でできます。この2つのファイルに設定をいれるだけでRadiusとして動きそうです。


/etc/freeradius/3.0/clients.conf

#
# 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 private-network-1 {
# ipaddr = 192.0.2.0/24
# secret = testing123-1
#}
#client private-network-2 {
# ipaddr = 198.51.100.0/24
# secret = testing123-2
#}


ここでipaddr(スイッチのIPアドレス)とsecretというパスワードを設定します。NAS側でも、radiusサーバーのipと同じsecretパスワードを設定してあげてください。


/etc/freeradius/3.0/users

#
# This is an entry for a user with a space in their name.
# Note the double quotes surrounding the name. If you have
# users with spaces in their names, you must also change
# the "filter_username" policy to allow spaces.
#
# See raddb/policy.d/filter, filter_username {} section.
#
#"John Doe" Cleartext-Password := "hello"
# Reply-Message = "Hello, %{User-Name}"


ユーザーの設定でもCleartext-Passwordというパスワードを設定します。このパスワードが何になるかもNASで設定します。ユーザーのMACアドレスがデフォルトになっているかも。