«前の日記(2018-07-30) 最新 次の日記(2018-08-07)» 編集

meta's blog - The Power To Serve

筆者について - No Unix, No Life

日本xrdpユーザ会発起人。

とある元大学院生の UNIX 系日記。FreeBSDを通じてOSSに囁かな貢献を。 FreeBSD ports contributor やってます。

For non Japanese native people:
If you are interested in my articles, please leave comments. I will do my best to give you articles in English.


2018-07-31 SoftEther VPN でRADIUS認証時に送信される Attribute [長年日記]

SoftEther VPN でRADIUS認証時に送信される Attribute

SoftEther VPN でRADIUS認証を使用する際、RADIUSサーバに送られるAttributeを調査したのでメモ。

本当はソースコードを参照するべきかもしれないが、とりあえずパケットキャプチャして調査。IPsec over L2TP で接続した場合の結果。

AVP: l=6 t=User-Name(1): username
AVP: l=34 t=User-Password(2): Encrypted
AVP: l=22 t=NAS-Identifier(32): SoftEther VPN Server
AVP: l=6 t=Service-Type(6): Framed(2)
AVP: l=6 t=NAS-Port-Type(61): Virtual(5)
AVP: l=6 t=Tunnel-Type(64) Tag=0x00: PPTP(1)
AVP: l=6 t=Tunnel-Medium-Type(65) Tag=0x00: IP(1)
AVP: l=5 t=Called-Station-Id(30): rad
AVP: l=14 t=Calling-Station-Id(31): (VPN接続元IPアドレス)
AVP: l=14 t=Tunnel-Client-Endpoint(66): (VPN接続元IPアドレス)

SoftEtherはVPN接続時、@suffix をつけることによって接続先の仮想ハブを制御することができるので username@hub というフォーマットでユーザ名が与えられたら、@ で分割して usernameUser-Name に、 hubCalled-Station-Id にセットしたRADIUSサーバに送信する。

本来のユーザ名に@を含む、メールアドレス形式のような場合は username@example.com@hub とするとRADIUSサーバに送信されるユーザ名は username@example.comCalled-Station-Idhub となる。

NAS-IdentifierCalled-Station-Id の組み合わせを見ると、いろいろ細かく制御できるかもしれない。

802.1X で Wi-Fi の認証を行う場合

余談として、802.1X で Wi-Fi の認証を行う場合は Called-Station-Id にAPのMACアドレスと、接続しようとしているSSIDをセットして送信する。SSIDごとに接続できるユーザを制御したいという場合、このあたりを見れば良さそう。

まともなAPの場合、RADIUS認証のAttributeはRFC3580準拠で送信しているはず。

AVP: l=6 t=User-Name(1): username
AVP: l=6 t=NAS-IP-Address(4): 192.168.0.24
AVP: l=6 t=NAS-Port(5): 0
AVP: l=23 t=Called-Station-Id(30): 00-00-00-00-00-00:SSID
AVP: l=19 t=Calling-Station-Id(31): 01-01-01-01-01-01
AVP: l=6 t=Framed-MTU(12): 1400
AVP: l=6 t=NAS-Port-Type(61): Wireless-802.11(19)
AVP: l=23 t=Connect-Info(77): CONNECT 0Mbps 802.11a
AVP: l=96 t=EAP-Message(79) Last Segment[1]
AVP: l=18 t=State(24): 7e1b872e76259ebf56d52794715f8ebb
AVP: l=18 t=Message-Authenticator(80): 9040a06e011eaeb51518a6fa683f0293