logo-sm

お問い合わせは Webフォームから

ブログ

FreeRADIUS VSAの設定

2019.01.16

はじめに

以前、ネットワーク構築の仕事で、PaloAltoの機能試験を行いました。その中にはRadius認証の機能試験も含まれており、そこでFreeRADIUSを使用しました。ちなみにPaloAltoとはファイアーウォールの装置です。
PaloAltoでRadius認証を行うためには、FreeRADIUS側にVSA(Vendor Specific Attribute)というものを設定する必要があることがわかったのですが、その設定方法がわからず少々手間取りました。今回は、その設定方法について書きたいと思います。

※FreeRADIUSのインストール方法や基本的な設定方法は書いておりません。

Radiusとは

Radiusは、ネットワーク利用者の認証と利用記録を一元的に行うシステムです。以前は、公衆電話網を通じたダイヤルアップ接続に主に利用されていたようです。現在ではあまり利用されていないと思っている方も多いかもしれませんが、ネットワーク装置の認証機能として、今でも利用されています。
ネットワークの装置一台一台に、ユーザー、パスワードを設定し、管理するのは大変です。Radiusサーバを使用し、ユーザー、パスワードを一元管理することで、定期的にパスワードを変更するといった運用も容易になります。

今回使用するFreeRADIUSは、オープンソースのRadiusサーバです。

FreeRADIUS公式サイト

※タイトル画像は、FreeRADIUSの公式サイトを使用しています。

VSAとは

VSA(Vendor Specific Attribute)とは、PaloAlto、Cisco、F5 Networksなどのベンダーが、独自に設定できる属性値のことです。ユーザーに紐つくロールを設定している場合が多いようです。詳細は、RFC2865の「5.26. Vendor-Specific」に記載されています。

RADIUS認証プロトコル(RFC2865)

下記は、各製品のVSA情報へのリンク先です。

PaloAlto – RADIUS Vendor-Specific Attributes Support

Nexus – RADIUS ベンダー固有アトリビュート (VSA)および RADIUS Disconnect-Cause アトリビュート値

BIG-IP – Using F5 vendor-specific attributes with RADIUS authentication

他製品のマニュアルの方が、詳しく説明されていました。

環境

VirtualBox上にCentOS7.4を構築し、その中にFreeRADIUSをインストールしました。
FreeRADIUSのバージョンは、「3.0.13」です。
PaloAltoは、製品名が「PA-5260」、OSは「PAN-OS 8.1.2」です。

VSAの設定

FreeRADIUSの主な設定ファイルは、radiusd.conf、clients.conf、usersの3つです。VSAの設定はusersで行います。

PaloAltoの場合

user01 Cleartext-Password := "pass01"
PaloAlto-Admin-Role = securityadmin

上記の設定を、usersの一番下に追記します。2行目がVSAの設定です。
初期状態のデータを全て削除して、上記の設定のみにしても問題ないようです。
この設定で、ユーザー名「user01」、パスワード「pass01」で、「securityadmin」というロールでログインすることができます。

Nexusの場合

user02 Cleartext-Password := "pass02"
Cisco-AVPair = "shell:roles=\"network-admin\""

この設定で、ユーザー名「user02」、パスワード「pass02」で、「network-admin」というロールでログインすることができます。

PaloAltoは、VSAの設定がないとログインできませんでした。
Nexusは、VSAの設定がなくてもログインできますが、権限の低いロールでログインされるため、設定の変更などはできません。

確認方法

PaloAltoの管理ポートとVirtualBoxの入ったPCをLANケーブルで接続します。

PCからPaloAltoへ、FreeRADIUSに設定したユーザー名、パスワードでログインします。
これでログインできれば成功です。

Wiresharkを使ってパケットの中身を見るとVSAのデータが含まれていることが確認できます。

おわりに

本番環境では、LDAPと連携したり、CHAPを使用したりと、もう少し複雑になるようです。
こういった内容も含めて、今後もRadiusの理解を深めていきたいと思います。

関連記事

  • WindowsのWSL2上のDockerでup時に’ContainerConfig’のエラーが出た。
    当社の開発環境はMacとWindowsが混在したDocker上での開発を行っています。なのでMacでOKだけど […]

    2024.04.08

  • VSCode (内のPowerShell)でアドレス設定を切り替え!
    【経緯】 最近携わった案件で大量のNW機器のキッティングをした際、それぞれにSSHでの接続性などを確認するテス […]

    2023.10.13

  • PaloaltoでWindows NTPサーバに同期
    【事象と対処法】 オフライン環境のPaloaltoでNTPの機能確認をする必要があり、Windows標準のNT […]

    2023.10.13

  • パートナー

  • 人材育成・採用情報