On 11/10/2010 12:37, Phil Mayers wrote:
On 09/10/10 15:01, Garber, Neal wrote:
Thanks to a lot of work by Phil Mayers, the server now has support for
Microsoft SoH in PEAP, normal RADIUS (MS VPN gateway), and in DHCP.

Wow! That *must* have been a lot of work! Thank you Phil.

Does this mean FreeRADIUS can now act as a Health Policy Server?

Yes, though it's not 100%. Specifically the code can challenge clients for
an SoH, and the client will submit it and FreeRadius decode it. There is
not (yet) support for FreeRadius generating and emitting an SoHR, because
I don't have a working example of such, and decoding the MS-SOH spec is
REALLY REALLY hard without at least some working data to compare to the
awful spec language!


Hi Phil, Alan,

http://msdn.microsoft.com/en-us/library/cc251376%28v=PROT.10%29.aspx

-> Independent of the above states, the last bit of the third byte of the AU ClientStatusCode can take the value of 1 if the AU settings on the client are controlled by policy.

[We do a little of http://technet.microsoft.com/en-us/library/cc708449%28WS.10%29.aspx on our clients via our wireless set-up wizard to help them keep up to date with patches]

... Therefore patch attached {"confd-by=" format only a suggestion}.

-James


--
James J J Hooper
Network Specialist
Information Services
University of Bristol
http://www.wireless.bristol.ac.uk          http://www.jamesjj.net
--

--- soh.c-orig  2010-10-11 20:54:28.000000000 +0000
+++ soh.c-new1  2010-10-11 21:02:49.000000000 +0000
@@ -500,19 +500,34 @@ int soh_verify(VALUE_PAIR *sohvp, const 
                                                        s = "auto-updates";
                                                        switch (hcstatus) {
                                                                case 1:
-                                                                       
snprintf(vp->vp_strvalue, sizeof(vp->vp_strvalue), "%s warn disabled", s);
+                                                                       
snprintf(vp->vp_strvalue, sizeof(vp->vp_strvalue), "%s warn disabled 
confd-by=user", s);
                                                                        break;
                                                                case 2:
-                                                                       
snprintf(vp->vp_strvalue, sizeof(vp->vp_strvalue), "%s ok action=check-only", 
s);
+                                                                       
snprintf(vp->vp_strvalue, sizeof(vp->vp_strvalue), "%s ok action=check-only 
confd-by=user", s);
                                                                        break;
                                                                case 3:
-                                                                       
snprintf(vp->vp_strvalue, sizeof(vp->vp_strvalue), "%s ok action=download", s);
+                                                                       
snprintf(vp->vp_strvalue, sizeof(vp->vp_strvalue), "%s ok action=download 
confd-by=user", s);
                                                                        break;
                                                                case 4:
-                                                                       
snprintf(vp->vp_strvalue, sizeof(vp->vp_strvalue), "%s ok action=install", s);
+                                                                       
snprintf(vp->vp_strvalue, sizeof(vp->vp_strvalue), "%s ok action=install 
confd-by=user", s);
                                                                        break;
                                                                case 5:
-                                                                       
snprintf(vp->vp_strvalue, sizeof(vp->vp_strvalue), "%s warn unconfigured", s);
+                                                                       
snprintf(vp->vp_strvalue, sizeof(vp->vp_strvalue), "%s warn unconfigured 
confd-by=user", s);
+                                                                       break;
+                                                               case 0x00000101:
+                                                                       
snprintf(vp->vp_strvalue, sizeof(vp->vp_strvalue), "%s warn disabled 
confd-by=policy", s);
+                                                                       break;
+                                                               case 0x00000102:
+                                                                       
snprintf(vp->vp_strvalue, sizeof(vp->vp_strvalue), "%s ok action=check-only 
confd-by=policy", s);
+                                                                       break;
+                                                               case 0x00000103:
+                                                                       
snprintf(vp->vp_strvalue, sizeof(vp->vp_strvalue), "%s ok action=download 
confd-by=policy", s);
+                                                                       break;
+                                                               case 0x00000104:
+                                                                       
snprintf(vp->vp_strvalue, sizeof(vp->vp_strvalue), "%s ok action=install 
confd-by=policy", s);
+                                                                       break;
+                                                               case 0x00000105:
+                                                                       
snprintf(vp->vp_strvalue, sizeof(vp->vp_strvalue), "%s warn unconfigured 
confd-by=policy", s);
                                                                        break;
                                                                case 0xc0ff0003:
                                                                        
snprintf(vp->vp_strvalue, sizeof(vp->vp_strvalue), "%s warn service-down", s);
-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to