我正在运行一个CentOS 6.6 64位服务器,FreeRADIUS 2.1.12是从基本存储库安装的。此外,我使用的是MultiOTP (http://www.multiotp.net/),它被配置为连接到我们的Windows2012 R2服务器。
MultiOTP版本为4.3.1.1,对于配置FreeRADIUS,我使用了以下指南:http://wiki.freeradius.org/guide/multiOTP-HOWTO
我找不到任何关于旧版本的FreeRADIUS版本的信息,但至少使用PAP似乎有效:
radtest -t pap -x myusername mypasswordandtoken localhost 1812 sharedsecret
Sending Access-Request of id 95 to 127.0.0.1 port 1812
User-Name = "myusername"
User-Password = "mypasswordandtoken"
NAS-IP-Address = 127.0.0.1
NAS-Port = 1812
Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=95, length=20radiusd -X输出如下所示:
[suffix] No '@' in User-Name = "myusername", looking up realm NULL
[suffix] No such realm "NULL"
++[suffix] returns noop
[eap] No EAP-Message, not doing EAP
++[eap] returns noop
++[files] returns noop
++[expiration] returns noop
++[logintime] returns noop
++? if (control:Auth-Type == 'MS-CHAP')
(Attribute control:Auth-Type was not found)
? Evaluating (control:Auth-Type == 'MS-CHAP') -> FALSE
++? if (control:Auth-Type == 'MS-CHAP') -> FALSE
++- entering else else {...}
+++? if (!control:Auth-Type)
? Evaluating !(control:Auth-Type) -> TRUE
+++? if (!control:Auth-Type) -> TRUE
+++- entering if (!control:Auth-Type) {...}
++++[control] returns noop
+++- if (!control:Auth-Type) returns noop
++- else else returns noop
[pap] WARNING! No "known good" password found for the user. Authentication may fail because of this.
++[pap] returns noop
Found Auth-Type = multiotp
# Executing group from file /etc/raddb/sites-enabled/default
+- entering group multiotp {...}
[multiotp] expand: '%{User-Name}' -> 'myusername'
[multiotp] expand: '%{User-Password}' -> 'mypasswordandtoken'
[multiotp] expand: -src=%{Packet-Src-IP-Address} -> -src=127.0.0.1
[multiotp] expand: -chap-challenge=%{CHAP-Challenge} -> -chap-challenge=
[multiotp] expand: -chap-password=%{CHAP-Password} -> -chap-password=
[multiotp] expand: -ms-chap-challenge=%{MS-CHAP-Challenge} -> -ms-chap-challenge=
[multiotp] expand: -ms-chap-response=%{MS-CHAP-Response} -> -ms-chap-response=
[multiotp] expand: -ms-chap2-response=%{MS-CHAP2-Response} -> -ms-chap2-response=
Exec-Program output:
Exec-Program: returned: 0
++[multiotp] returns ok在-t mschap中运行radtest不起作用,Radius输出如下:
[suffix] No '@' in User-Name = "myusername", looking up realm NULL
[suffix] No such realm "NULL"
++[suffix] returns noop
[eap] No EAP-Message, not doing EAP
++[eap] returns noop
++[files] returns noop
++[expiration] returns noop
++[logintime] returns noop
++? if (control:Auth-Type == 'MS-CHAP')
? Evaluating (control:Auth-Type == 'MS-CHAP') -> TRUE
++? if (control:Auth-Type == 'MS-CHAP') -> TRUE
++- entering if (control:Auth-Type == 'MS-CHAP') {...}
+++[control] returns noop
++- if (control:Auth-Type == 'MS-CHAP') returns noop
++ ... skipping else for request 1: Preceding "if" was taken
[pap] WARNING! No "known good" password found for the user. Authentication may fail because of this.
++[pap] returns noop
Found Auth-Type = multiotpmschap
# Executing group from file /etc/raddb/sites-enabled/default
+- entering group multiotpmschap {...}
[multiotpmschap] Told to do MS-CHAPv1 with NT-Password
[multiotpmschap] expand: %{User-Name} -> myusername
[multiotpmschap] expand: %{User-Password} ->
[multiotpmschap] expand: -src=%{Packet-Src-IP-Address} -> -src=127.0.0.1
[multiotpmschap] expand: -chap-challenge=%{CHAP-Challenge} -> -chap-challenge=
[multiotpmschap] expand: -chap-password=%{CHAP-Password} -> -chap-password=
[multiotpmschap] expand: -ms-chap-challenge=%{MS-CHAP-Challenge} -> -ms-chap-challenge=0xdf908aaeb26f4444
[multiotpmschap] expand: -ms-chap-response=%{MS-CHAP-Response} -> -ms-chap-response=0x0001000000000000000000000000000000000000000000000000fbb0b53f018a0e1fec964169db2b88be0ca521a8d8a234b6
[multiotpmschap] expand: -ms-chap2-response=%{MS-CHAP2-Response} -> -ms-chap2-response=
Exec-Program output: NT_KEY: F1111A9A8F0E249D347BE73B2D538685
Exec-Program-Wait: plaintext: NT_KEY: F1111A9A8F0E249D347BE73B2D538685
Exec-Program: returned: 99
[multiotpmschap] External script failed.
[multiotpmschap] MS-CHAP-Response is incorrect.
++[multiotpmschap] returns reject
Failed to authenticate the user.
Using Post-Auth-Type Reject
# Executing group from file /etc/raddb/sites-enabled/default
+- entering group REJECT {...}
[attr_filter.access_reject] expand: %{User-Name} -> myusername
attr_filter: Matched entry DEFAULT at line 11
++[attr_filter.access_reject] returns updated
Delaying reject of request 1 for 1 seconds
Going to the next request
Waking up in 0.6 seconds.
Sending delayed reject for request 1
Sending Access-Reject of id 105 to 127.0.0.1 port 49595
MS-CHAP-Error = "\000E=69
Waking up in 4.9 seconds.另外,将执行mschap 2身份验证的应用程序连接到freeradius会产生与使用mschap与radclient相同的错误。
有人知道这个版本的FreeRADIUS是否可以与连接到活动目录的MultiOTP一起使用吗?
发布于 2016-02-22 16:27:02
是的,您是对的,MSCHAP和MSCHAPv2正在对密码进行散列,所以如果密码是引脚/内部密码+令牌,那么multiOTP重新计算它还是可以的,但是对于AD密码,没有办法做到,因为我们没有将AD密码存储在multiOTP中。
发布于 2016-02-20 04:33:47
此设置使用MultiOTP加密AD +令牌(MSCHAP),不取决于所使用的FreeRADIUS的哪个版本。如果你要深入了解事情是如何运作的,你就会意识到这是不可能的。现在,我认为MultiOTP无法从其数据库+令牌中使用AD重新生成散列以匹配来自客户端的加密密码(使用MSCHAP)。想象一下,对128位的哈希进行解密。
它适用于PAP,因为要比较用于身份验证的字符串是纯文本。在这种情况下,MultiOTP很容易重建与加密形式不同的字符串。
我希望这也能解释你为什么会犯这个错误。
发布于 2016-11-23 11:57:11
而不是:
Username: username
Password: [password] + [OTP]您现在可以使用:
Username: username:OTP
Password: password用户名= john,密码= myBigPassword,OTP = 123456的示例
Username: john:123456
Password: myBigPassword由于OTP一直在变化,它是完全安全的,MS-CHAPv2 2起作用:-)
https://serverfault.com/questions/697304
复制相似问题