2
11
2025
ArubaのAPを用いて認証VLANを実装してみる#2(RADIUSサーバとの連携)
認証サーバと連携させてみる
前回の記事では、Aruba APをAruba Instant On サービスで集中管理することによって比較的容易に無線LANシステムを構築可能なことを説明したが、今回は無線LANシステムのセキュリティーを高めるために、RADIUSサーバやLDAPサーバと連携させることによってユーザ認証ベースの無線LANシステムを構築することにする.
ArubaのInstant Onシリーズは専任の情報部門が無いような比較的小規模な会社や組織での利用を想定しているが、業務用のネットワークを構築するために必要な機能は一通り備わっている.業務用のネットワークシステムでは接続可能なデバイスや人間を限定する必要があり、誰が何時どこで何を行ったかということが悪実に掌握できていなければならない.
業務用のネットワークでは、AAA(Authentication:認証, Authorization:認可, Accounting)という基本概念があり、ネットワークスイッチや無線LANのシステムには、このAAAの機能が備わっている.認証によりユーザやデバイスのアイデンティティの正当性を確認した後、そのユーザやデバイスがアクセス可能な範囲や権限を決定する認可を行う.Accountingは日本語では適切な用語がないが、ユーザやデバイスの情報、接続先の情報や時間、リソースの使用量などの情報を取得し記録するという意味で捉えると良いだろう.
このAAAを実現するために業務用ネットワークシステムで古くから利用されているのがRADIUS(Remote Authentication Dial In User Service)サーバで、現在でもネットワークのAAAを司る重要なシステムとして多くの企業や組織で利用されている.ArubaのInstant OnシリーズでもこのRADIUSサーバと連携させることでAAAの機能を実現することができる.
RADIUSはネットワークプロトコルの一種で、かつてのモデムなどによるダイアルアップ接続やISPを利用する際にユーザの認証を行うプロトコルとして今でも使われている.最近のインターネット接続はPPPoEからIPoE方式へと接続方式が変わってしまったので、エンドユーザがIDとパスワードで認証を行う場面は減ってしまったが、RADIUSがネットワークの裏方として重要な役割を担っていることには変わりは無い.
大学や研究機関などに所属している場合は、キャンパス内の無線LANシステムのSSIDに “eduroam” という名前を見かけたことがあるのではないかと思う.この “eduroam” は世界中の大学や研究機関にまたがって展開されているネットワークローミングシステムで、このシステムのバックボーンでは “RADIUS” プロトコルが使われている.
RADIUSプロトコルの存在を一般の人が意識することはないが、会社や組織のネットワーク、インターネットを支えている大変重要なプロトコルであることに留意しておいて欲しい.
大規模な企業や組織では既に何らかのRADIUSサーバが稼働している筈なので、自前のRADIUSサーバを一から構築することはないだろうが、一人情シスさんが活躍するような小さな企業や組織の場合、先ずこのRADIUSサーバの構築から始めなければならないかもしれない.
RADIUSサーバ単独でもArubaのInstant Onでは認証VLANを実装可能であるが、ユーザの情報をRADIUSサーバで管理運用するのは使い勝手が悪いので、ユーザの情報はLDAPサーバ側で管理することとし、RADIUSサーバではユーザの情報はLDAPサーバと連携させるようにすると、ネットワーク機器の管理をRadius、ユーザの管理はLDAPとなりネットワーク運用の利便性が向上する.
FreeRADIUSサーバの構築
RADIUSサーバを構築する方法としては、市販のハードウェア一体型のアプライアンス製品を利用する方法が最も手っ取り早いのだが、何せ機器が高額な上に利用するユーザ数に応じたライセンス料が必要な場合が多いので、これらの機器を導入するのは敷居が高過ぎてあまり現実的ではない.幸いなことに、RADIUSサーバにはオープンソースベースのFreeRADIUSというディストリビューションがあり、世界で一番使われているRADIUSサーバとしてデファクトスタンダード的な位置付けの物だ.
オープンソースベースなのでユーザが自由にカスタマイズして利用することができる.オープンソースでは導入に不安があるというのであればNetwork RADIUSという会社から商用のサポートを受けることが可能なので、RADIUSサーバの選択肢としてはこのFreeRADIUSが一番の選択肢となるだろう.勿論、FreeRADIUSには、コミュニティーサポートのページがあるので、コミュニティーチームからの情報提供も受けられるだろう.
FreeRADIUSの現在の最新安定版のバージョンは V3.2.x で、メジャーなLinuxディストリビューション(Ubuntu, Debian, RockyLinux, RHEL, CentOS)であればにバイナリパッケージの形で提供されている.勿論、ソースコードでも提供されているので、自分でソースコードから自分でコンパイルして利用することも可能だ.
今回は、RockyLinux9用のバイナリパッケージを利用することにする.バイナリパッケージを利用した導入手順のページに従って進めて行けば簡単にインストールできるだろう.
[ NetworkRADIUS社のパブリックPGPキーをインストールする ]
rpm --import 'https://packages.networkradius.com/pgp/packages%40networkradius.com'
[ NetworkRADIUS社のリポジトリ情報を登録 ]
cat <<'__EOF__' >/etc/yum.repos.d/networkradius.repo
[networkradius]
name=NetworkRADIUS-$releasever
baseurl=http://packages.networkradius.com/freeradius-3.2/rocky/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://packages.networkradius.com/pgp/packages%40networkradius.com
__EOF__
[ yum関連のユーティリティーとCRBリポジトリを追加 ]
yum install yum-utils
yum config-manager --enable crb
[ FreeRADIUSをインストール ]
yum install freeradius
[ FreeRADIUSのオプションパッケージをインストール(KRB5, LDAP)]
yum install freeradius-krb5
yum install freeradius-ldap
Rocky Linux9.5上にバイナリパッケージを利用してFreeRADIUS V3.2をインストールする手順
上記のインストール作業が無事終了すると、’/etc/raddb/’ ディレクトリ配下に FreeRADIUSの一連の設定ファイルが配置されているだろう.
[root@auth raddb]# ls -la
total 168
drwxr-xr-x 9 root radiusd 4096 Feb 11 19:00 .
drwxr-xr-x. 88 root root 8192 Feb 11 19:03 ..
drwxrwx--- 3 root radiusd 4096 Feb 11 19:01 certs
-rw-r----- 1 root radiusd 12103 Jan 31 21:36 clients.conf
-rw-r--r-- 1 root radiusd 1420 Jan 31 21:36 dictionary
lrwxrwxrwx 1 root radiusd 30 Jan 31 21:36 hints -> ./mods-config/preprocess/hints
lrwxrwxrwx 1 root radiusd 35 Jan 31 21:36 huntgroups -> ./mods-config/preprocess/huntgroups
drwxr-x--- 2 root radiusd 4096 Feb 11 19:00 mods-available
drwxr-x--- 10 root radiusd 140 Feb 11 19:00 mods-config
drwxr-x--- 2 root radiusd 4096 Feb 11 19:00 mods-enabled
-rw-r----- 1 root radiusd 52 Jan 31 21:36 panic.gdb
drwxr-x--- 2 root radiusd 4096 Feb 11 19:00 policy.d
-rw-r----- 1 root radiusd 30442 Jan 31 21:36 proxy.conf
-rw-r----- 1 root radiusd 40953 Jan 31 21:36 radiusd.conf
-rw-r----- 1 root radiusd 20754 Jan 31 21:36 README.rst
drwxr-x--- 2 root radiusd 4096 Feb 11 19:00 sites-available
drwxr-x--- 2 root radiusd 41 Feb 11 19:00 sites-enabled
-rw-r----- 1 root radiusd 3470 Jan 31 21:36 templates.conf
-rw-r----- 1 root radiusd 8536 Jan 31 21:36 trigger.conf
lrwxrwxrwx 1 root radiusd 29 Jan 31 21:36 users -> ./mods-config/files/authorize
[ 続く...]