読者です 読者をやめる 読者になる 読者になる

らくがきちょう

なんとなく

RouterOS を簡易 RADIUS サーバとして設定する

検証で RADIUS サーバを用意したい場合、以下のような方法があります。もちろん、フリーウェアを探してみる… と言った手段もあると思います。

  1. Linux で FreeRADIUS を使う
  2. Windows Server 2012 以降の NPS(Network Policy Server)を使う
  3. 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 パッケージが無いはずです。

[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 が追加されているはずです。

[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 の設定は概ね、以下のような流れで設定します。

  1. プロファイルを作成する
  2. ルータ(RADIUS クライアント)を登録する
  3. ユーザを登録する

まず、プロファイルを作成しておきます。作成したプロファイルは後で作成するユーザと関連付けることになります。

/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 の設定例は以下の通りです。

/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)側の設定例は以下の通りです。

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>