指定されたユーザーが認証されているかどうか*、および彼のpriv-lvlが何であるかを知るために、TACACS +サーバーを構成する必要があります。クライアントとして、tactest(tacacs.net)とTACACS +クライアントJavaライブラリ(AXL))を使用しています。
私はこれで試しました:
user = admin {
name = “Admin User”
login = cleartext admin
service = exec {
priv-lvl = 10
}
}
管理者として認証できますが、彼のpriv-lvlを取得できません。
Tactestからの出力は次のとおりです。
C:\Program Files (x86)\TACACS.net>tactest -s x.x.x.x -k testing123 -u admin -p admin -author -service exec
Trying to open connection to x.x.x.x:49
Sending:
MajorVersion=12
MinorVersion=0
Type=Authorization
SeqNum=1
IsEncrypted=True
IsSingleConnect=True
SessionID=494431516
DataLength=37
Authorization Method=Debug
Priv lvl=1
Auth Type=Ascii
Service=None
User=admin
Port=
Rem Addr=
Args: service=exec
Received Header:
MajorVersion=12
MinorVersion=0
Type=Authorization
SeqNum=2
IsEncrypted=True
IsSingleConnect=False
SessionID=494431516
DataLength=6
Received Body:
Authorization Status=PassAdd
User=
Port=
Args:
Command Pass status = True, Message=,
------------------
SUMMARY STATISTICS
------------------
Total Commands ..................... 1
Successes .......................... 1
Failures ........................... 0
No Results ......................... 0
Time Taken for commands ............ 0,066 secs
Avg Possible Transactions/Second ... 15
Network Time per command ........... 0,017 secs
Total Network time ................. 0,017 secs
Sent Transactions/Second ........... 11,1
その属性値を取得する方法はありますか?
※認証だけでなく、認証の一種でもあることは承知しております。
私はついに解決策を見つけました。サービス名を他の名前に変更する必要がありました。
user = admin {
name = “Admin User”
login = cleartext admin
service = myservice {
priv-lvl = 10
}
}
次に、クライアント側でAVペアを取得できました。
Received Header:
MajorVersion=12
MinorVersion=0
Type=Authorization
SeqNum=2
IsEncrypted=True
IsSingleConnect=False
SessionID=952769599
DataLength=18
Received Body:
Authorization Status=PassAdd
User=
Port=
Args: priv-lvl=10