RADIUS ユーザを使用して管理ログインを行う
中規模・大規模のネットワークでは、ネットワーク機器への管理アクセス(Telnet/SSH/Web)時の認証方式をネットワーク内に存在する RADIUS サーバを使用したユーザ認証としているケースが良くあります。
Catalyst 1300 スイッチでも管理アクセス時の認証方式を RADIUS サーバを使用したユーザ認証にすることができます。本記事ではこの設定方法を説明します。
動作確認環境
- Cisco C1300-8T-E-2G
- Version: 4.1.6.54
- FreeRADIUS
- CentOS Stream release 9
- freeradius-3.0.21-44.el9.x86_64
- freeradius-utils-3.0.21-44.el9.x86_64
RADIUS 認証にするための設定手順
管理ログインの認証方式を RADIUS サーバを使用した認証にするための設定手順は以下の通りです。
- RADIUS サーバを定義する設定を行う
- (オプション) RADIUS 通信のソースインターフェースの設定
- RADIUS サーバを使用する AAA ログイン認証方式を定義する設定を行う
- 対象プロトコルに対して RADISU サーバを使用する認証方式を適用する
RADIUS サーバを定義する設定
まずグローバルコンフィギュレーションモードにて RADIUS サーバの定義を行います。設定は以下のコマンドで行います。
- (config)# radius-server host <RADIUSサーバアドレス> key <radiusキー>
- <RADIUSサーバアドレス>:RADIUS サーバのアドレスを指定
- <radiusキー>:RADIUS サーバで設定している RADIUS キーと同じ値を指定する
以下のオプションを任意で追加して指定することが可能。
- auth-port <ポート番号>:認証要求のポート番号。デフォルトは「1812」
- acct-port <ポート番号>:アカウンティング要求のポート番号。デフォルトは「1813」
- timeout <1-30>:タイムアウト値を秒単位で指定.。デフォルトは「3」(Global 値)
- retransmit <1-15>:再試行の再送信の数を指定.。デフォルトは「3」(Global 値)
- deadtime <0-2000>:RADIUS サーバがトランザクション要求によって省略される間の期間を分単位で指定.。デフォルトは「0」(Global 値)
- priority <0-65535>:サーバを使用する順序を指定。0 は最高の優先度。デフォルトは「0」
- usage {login | dot1.x | all}:RADIUS サーバ使用タイプを指定。デフォルトは「all」
以下はアドレスが 10.2.1.100、RADIUS key が「radiuskey」の RADIUS サーバの定義を行う場合の設定例です。
C1300-8T(config)#radius-server host 10.2.1.100 key radiuskey
設定後 show run 上では以下のように RADIUS key が暗号化されて表示されます。
encrypted radius-server host 10.2.1.100 key LplZ2oyrGhCVueKHymUhvdBUueGAHoPqBNw4P1mRThU=
(オプション) RADIUS 通信のソースインターフェースの設定
必要に応じて RADIUS サーバと RADIUS 通信を行う際のソースインターフェース (ソースアドレス) を設定することができます。設定しない場合、ルーティングテーブルに基づいて RADIUS サーバへルーティングする際の出力インターフェースがソースインターフェースになります。
ソースインターフェースの設定はグローバルコンフィギュレーションモードにて以下コマンドで行います。
- (config)# radius-server host source-interface <インターフェース名>
- <インターフェース名>:RADIUS 通信のソースインターフェースを指定
以下は SVI の Vlan2 をソースインターフェースにする場合の設定例です。
C1300-8T(config)#radius-server host source-interface vlan 2
RADIUS サーバを使用する AAA ログイン認証方式を定義する設定
グローバルコンフィギュレーションモードにて以下のコマンドで AAA ログイン認証方式として RADIUS サーバを使用する認証方式を定義します。
- (config)# aaa authentication login <認証方式定義名> radius
- <認証方式定義名>:任意の定義名を指定
以下は「radiusSV」という定義名で RADIUS サーバを使用するログイン認証方式を定義する場合の設定例です。
C1300-8T(config)#aaa authentication login radiusSV radius
なお、RADIUS サーバとの通信ができなくなった場合を考慮して、RADIUS サーバと通信できない場合にローカルユーザ認証でログインできるように設定することが良くあります。このような動作にしたい場合は以下のようにコマンドの末尾に「local」を追加して設定します。
- (config)# aaa authentication login <認証方式定義名> radius local
- <認証方式定義名>:任意の定義名を指定
対象プロトコルに対して RADISU サーバを使用する認証方式を適用する
最後に Telnet/SSH/Web それぞれについて RADIUS サーバを使用するログイン認証方式を適用します。
Telnet、SSH の場合はそれぞれの line コンフィギュレーションモードにて以下のコマンドで設定します。
- (config-line)# login authentication <認証方式定義名>
- <認証方式定義名>:適用する認証方式の定義名を指定
Web (HTTP/HTTPS) の場合は定義したログイン認証方式を適用するのではなく、直接認証方式として RADIUS を指定します。設定はグローバルコンフィギュレーションモードにて以下コマンドで行います。
- (config)# ip http authentication aaa login-authentication radius [local]
- [local]:オプション。RADIUS サーバと通信できない場合にローカルユーザ認証でログインできるようにする場合は指定する
設定例:
C1300-8T(config)#line telnet
C1300-8T(config-line)# login authentication radiusSV
C1300-8T(config)#line ssh
C1300-8T(config-line)# login authentication radiusSV
C1300-8T(config)#ip http authentication aaa login-authentication radius local
RADIUS サーバ設定確認コマンド
- #show radius-servers
- RADIUS サーバ設定内容一覧を表示
C1300-8T#show radius-servers
IP address Port Port Time Ret Dead Deadtime Priority Force MA Usage
Auth Acct Out rans Time Status Attribute
--------------- ----- ----- ------ ------ ------ -------- -------- ----------- ------
10.2.1.100 1812 1813 Global Global Global Up 0 disabled all
Global values
--------------
TimeOut : 3
Retransmit : 3
Deadtime : 0
Source IPv4 interface : vlan 2
Source IPv6 interface :
RADIUS サーバで定義したユーザの特権レベルについて
RADIUS サーバを使用した認証を行う場合、使用するユーザは RADIUS サーバ側で定義したユーザとなります。RADIUS サーバ側で定義したユーザのデフォルトの特権レベルは「1」となります。ユーザの特権レベルを変更する場合は RADIUS サーバ側でユーザの属性として設定することになります。特に、Web アクセスするためには特権レベルが「15」である必要があるため、特権レベルも忘れずに設計してください。
【参考】FreeRADIUS を使用した検証用 RADIUS サーバの構築方法
Linux OS にて RADIUS サーバを構築できるフリーソフトとして「FreeRADIUS」があります。ここでは OS として CentOS Stream 9 を使用する場合の検証用 FreeRADIUS の構築方法を説明します。
FreeRADIUS のインストール
まず以下コマンドで必要なパッケージをインストールします。
dnf install -y freeradius freeradius-utils
クライアント(オーセンティケータ)と RADIUS key の設定
Catalyst 1300 は RADIUS におけるオーセンティケータの役割を担います。FreeRADIUS の設定ファイル「/etc/raddb/clients.conf」にてオーセンティケータのアドレスと RADIUS key を設定します。
「/etc/raddb/clients.conf」を vi 等のエディタで開き、末尾に以下の形式でオーセンティケータの設定を追記します。
client リスト名 {
ipaddr = x.x.x.x/nn(オーセンティケータのアドレス)
secret = RADIUS Keyとなる文字列
}
以下はリスト名が「mynetwork」、オーセンティケータのアドレスとして「10.2.1.0/24」(セグメント単位で指定)、RADIUS keyとして「radiuskey」を設定する場合の設定例です。
client mynetwork {
ipaddr = 10.2.1.0/24
secret = radiuskey
}
ユーザの設定
Catalyst 1300 の管理アクセス時に使用するユーザの設定を「/etc/raddb/users」を編集することで行います。
「/etc/raddb/users」を vi 等のエディタで開き、末尾に以下の形式でユーザ設定を追記します。
ユーザ名 Cleartext-Password := "パスワード"
Cisco-AVPair = "shell:priv-lvl=特権レベル" ★←特権レベルを指定する場合のみ記載、記載しない場合特権レベル1になる
以下はユーザ名が「useralpha」、パスワードが「alphapass」、特権レベルが「15」のユーザを設定する場合の設定例です。
useralpha Cleartext-Password := "alphapass"
Cisco-AVPair = "shell:priv-lvl=15"
認証ログの保存設定
認証の成功/失敗のログを保存するよう「/etc/raddb/radiusd.conf」を編集します。
「/etc/raddb/radiusd.conf」を vi 等のエディタで開き、log {} ディレクティブ内の以下3項目を探します。
log {
...
auth = no
...
auth_badpass = no
auth_goodpass = no
}
デフォルトでは上のように「no」となっているため、この値を「yes」に変更します。
log {
...
auth = yes
...
auth_badpass = yes
auth_goodpass = yes
}
これによりログファイル「/var/log/radius/radius.log」に認証成功/失敗ログが保存されるようになります。
firewalld の停止
firewalld のデフォルト設定では RADIUS 通信は許可されていないため、以下コマンドで firewalld を停止します。
systemctl disable --now firewalld
FreeRadius の起動
設定がすべて完了したら FreeRADIUS のサービスを以下コマンドで起動します。
systemctl enable --now radiusd
既に FreeRADIUS のサービスが起動していた場合は設定変更後はサービスを再起動してください。
サーバ証明書の作成
radiusd を起動しようとしてもエラーとなり起動できない場合、「/var/log/radius/radius.log」のログを確認してください。以下のように「/etc/raddb/certs/server.pem」が無いというログが出力されている場合、サーバ証明書の作成が必要です。
Error: Unable to check file "/etc/raddb/certs/server.pem": No such file or directory
以下コマンドで「/etc/raddb/certs/」に移動後「make all」を実行することでサーバ証明書を作成できます。
cd /etc/raddb/certs/
make all
サーバ証明書作成後は radiusd を起動できるはずです。
RADIUS ログの確認
RADIUS ログの確認は以下コマンドで行います。
cat /var/log/radius/radius.log
認証成功・失敗時は以下のようなログが出力されます。
Sat Jun 28 19:55:51 2025 : Auth: (2) Login OK: [useralpha/alphapass] (from client mynetwork port 0)
Sat Jun 28 19:55:36 2025 : Auth: (1) Login incorrect (No Auth-Type found: rejecting the user via Post-Auth-Type = Reject): [admin/testpass] (from client mynetwork port 0)
参考資料
- Cisco Catalyst 1300 スイッチ シリーズ CLI ガイド
- https://wiki.freeradius.org/vendor/Cisco
Cisco Catalyst 1300 スイッチ関連記事一覧
- 基礎知識
- 管理系設定
- インターフェース
- スパニングツリー
- ルーティング
- その他機能
- 参考資料
Amazon で買えるおすすめアイテム
以下は Amazon アフィリエイトリンクです。ネットワーク作業向けにそこそこおすすめなアイテムです。
コメント