RouterOS を簡易 RADIUS サーバとして設定する
検証で RADIUS サーバを用意したい場合、以下のような方法があります。もちろん、フリーウェアを探してみる… と言った手段もあると思います。
- Linux で FreeRADIUS を使う
- Windows Server 2012 以降の NPS(Network Policy Server)を使う
- NetAttest EPS、NetWyvern RADIUS、Account@Adapter+ のようなアプライアンス(の、評価版)を使う
他の手段として、MikroTik の RouterOS を使うと手軽に RADIUS サーバを作ることが出来ます。今回は CHR(Cloud Hosted Router)を RADIUS サーバとして設定し、Cisco IOS へのログイン認証を処理させます。
user-manager をインストールする
RouterOS を RADIUS サーバとして動作させる為には RouterOS に「user-manager」というパッケージを追加する必要があります。デフォルトの状態では以下のように user-manager パッケージが無いはずです。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 | [admin@MikroTik] > /system package print
Flags: X - disabled
# NAME VERSION SCHEDULED
0 routeros-x86 6.34rc19
1 system 6.34rc19
2 X wireless-cm2 6.34rc19
3 X ipv6 6.34rc19
4 ups 6.34rc19
5 wireless-fp 6.34rc19
6 hotspot 6.34rc19
7 dhcp 6.34rc19
8 mpls 6.34rc19
9 routing 6.34rc19
10 ppp 6.34rc19
11 security 6.34rc19
12 advanced-tools 6.34rc19
|
MikroTik のダウンロードページ から利用している OS に合わせた Extra Package をダウンロード&展開します。展開したファイルの中に user-manager のパッケージ(.npk ファイル)があるはずなので、これを「WebUI の Files メニューからアップロードする」または「scp でコピーする」いずれかの手段で RouterOS へコピーします。今回は scp でコピーしました。
| $ scp user-manager-6.34rc19.npk admin@192.168.1.1:/
|
アップロードしたパッケージを有効化する為、RouterOS を再起動します。
| [admin@MikroTik] > /system reboot
Reboot, yes? [y/N]:
y
|
再起動後にパッケージの状態を確認するとアップロードした user-manager が追加されているはずです。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 | [admin@MikroTik] > /system package print
Flags: X - disabled
# NAME VERSION SCHEDULED
0 routeros-x86 6.34rc19
1 system 6.34rc19
2 X wireless-cm2 6.34rc19
3 X ipv6 6.34rc19
4 ups 6.34rc19
5 wireless-fp 6.34rc19
6 hotspot 6.34rc19
7 dhcp 6.34rc19
8 mpls 6.34rc19
9 routing 6.34rc19
10 ppp 6.34rc19
11 security 6.34rc19
12 advanced-tools 6.34rc19
13 user-manager 6.34rc19
|
user-manager を設定する
user-manager の設定は概ね、以下のような流れで設定します。
- プロファイルを作成する
- ルータ(RADIUS クライアント)を登録する
- ユーザを登録する
まず、プロファイルを作成しておきます。作成したプロファイルは後で作成するユーザと関連付けることになります。
| /tool user-manager profile
add name=PROFILE1 owner=admin
|
RADIUS クライアントを登録します。今回はアドレスを「192.168.1.2」、共有シークレットを「SECRET」としました。
| /tool user-manager router
add customer=admin ip-address=192.168.1.2 name=IOSv shared-secret=SECRET
|
最後にユーザを登録します。今回はユーザ名を「USER1」、パスワードを「PASSWORD1」としました。但し、ユーザを追加(add)するだけでは不十分であり、ユーザと先に作成したプロファイルを create-and-activate-profile コマンドで紐付ける必要があります。
| /tool user-manager user
add customer=admin password=PASSWORD1 username=USER1
create-and-activate-profile [ find username="USER1" ] customer=admin profile=PROFILE1
|
これで RouterOS 側の設定は完了です。ここまでのコンフィグをまとめると以下のようになります。
| /tool user-manager profile
add name=PROFILE1 owner=admin
/tool user-manager router
add customer=admin ip-address=192.168.1.2 name=IOSv shared-secret=SECRET
/tool user-manager user
add customer=admin password=PASSWORD1 username=USER1
create-and-activate-profile [ find username="USER1" ] customer=admin profile=PROFILE1
|
RouterOS の設定例
デフォルト値も含め、RouterOS の設定例は以下の通りです。
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | /tool user-manager customer
set admin access=own-routers,own-users,own-profiles,own-limits,config-payment-gw
/tool user-manager profile
add name=PROFILE1 name-for-users="" override-shared-users=off owner=admin price=0 starts-at=now validity=0s
/ip address
add address=192.168.1.1/24 interface=ether2 network=192.168.1.0
/ip hotspot user
add
/tool user-manager database
set db-path=user-manager
/tool user-manager router
add coa-port=1700 customer=admin disabled=no ip-address=192.168.1.2 log=auth-fail name=IOSv shared-secret=SECRET use-coa=no
/tool user-manager user
add customer=admin disabled=no password=PASSWORD1 shared-users=1 username=USER1 wireless-enc-algo=none wireless-enc-key="" wireless-psk=""
|
Cisco の設定例
Cisco(IOSv)側の設定例は以下の通りです。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 | aaa new-model
!
aaa authentication login default group radius
!
interface GigabitEthernet0/1
ip address 192.168.1.2 255.255.255.0
no shutdown
!
radius server RADIUS-SERVER
address ipv4 192.168.1.1 auth-port 1812 acct-port 1813
key SECRET
!
line vty 0 4
transport input telnet ssh
!
end
|
設定確認テスト
RouterOS から IOSv へ TELNET してみます。user-manager に設定したユーザ名/パスワードでログイン出来れば設定完了です。
| [admin@MikroTik] > /system telnet 192.168.1.2
Trying 192.168.1.2...
Connected to 192.168.1.2.
Escape character is '^]'.
User Access Verification
Username: USER1
Password:
Router>
|