{"id":688,"date":"2009-10-21T15:21:00","date_gmt":"2009-10-21T07:21:00","guid":{"rendered":"http:\/\/note.systw.net\/note\/?p=688"},"modified":"2023-11-04T15:30:00","modified_gmt":"2023-11-04T07:30:00","slug":"freeradius","status":"publish","type":"post","link":"https:\/\/systw.net\/note\/archives\/688","title":{"rendered":"Freeradius"},"content":{"rendered":"\n<p>freeradius<br>(http:\/\/www.freeradius.org)<strong>\u5b89\u88dd\u90e8\u4efd&nbsp;<\/strong><\/p>\n\n\n\n<p><strong>1<br>\u5b89\u88dd FreeRadius<\/strong><br>\u5230freeradius\u76ee\u9304\u4e0b\u57f7\u884c<br># configure &#8211;prefix=\/usr\/local\/freeradius<br># make<br># make install<\/p>\n\n\n\n<p><strong>2<br>\u7de8\u8f2f\u7d44\u614b<\/strong><br>\u5728raddb\/users\u6a94\u4e2d\u8a2d\u5b9a\u8a2d\u5b9a\u4ee5\u4e0b,\u4f7f\u7528\u672c\u6a5f\u5e33\u5bc6\u505a\u8a8d\u8b49<br>DEFAULT Auth-Type = System<\/p>\n\n\n\n<p><strong>3<br>\u7b2c\u4e00\u6b21\u555f\u52d5 FreeRadius<\/strong><br>\/usr\/local\/freeradius\/sbin\/radiusd -d \/usr\/local\/freeradius\/etc\/raddb\/<br>\u82e5Port 1812\u30011813 \u958b\u59cblisten\u8868\u793aOK<br>ps:<br>\u53c3\u6578-X \u53ef\u986f\u793a\u5b8c\u6574\u904b\u4f5c\u8a0a\u606f,\u7528\u4f86debug<br>ps:<br>\u82e5\u7121\u6cd5\u555f\u52d5\u53ef\u53c3\u8003\/var\/log\/radius.log<br>ps:<br>\u8a2d\u5b9a\u958b\u6a5f\u6642\u81ea\u5df1\u555f\u52d5<br>\u5728\/etc\/rc.conf \u52a0\u5165radiusd_enable=&#8221;YES&#8221;<\/p>\n\n\n\n<p><strong>4<br>\u6e2c\u8a66Radius<\/strong><br><strong>#radtest &lt; \u5e33\u865f &gt; &lt; \u5bc6\u78bc &gt; &lt; \u8a8d\u8b49\u4f4d\u5740[:\u8a8d\u8b49\u57e0] &gt; &lt; nas-port-number &gt; &lt; secret&gt;<\/strong><br>&lt; secret&gt; \u6307\u7684\u662f\u5728clients.conf\u5167\u8a2d\u5b9a\u4e4b\u5141\u8a31\u4f86\u6e90&nbsp;<br>ps:nas-port-number\u901a\u5e38\u662f0<br>ex:radtest raymond key 127.0.0.1 0 test<br>\u82e5\u6210\u529f\u6703\u51fa\u73ferad_recv: Access-Accept &#8230;\u7b49\u8a0a\u606f<br>\u82e5\u5931\u6557\u6703\u51fa\u73ferad_recv: Access-Reject &#8230;\u7b49\u8a0a\u606f<br>\u82e5radius\u5bc6\u78bc\u932f\u8aa4\u6703\u986f\u793aShared secret is incorrect<\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..<\/p>\n\n\n\n<p><strong>\u57fa\u790e\u6982\u5ff5&nbsp;<\/strong><\/p>\n\n\n\n<p><strong>\u904b\u4f5c\u6d41\u7a0b<\/strong><br>1<br>\u7cfb\u7d71\u555f\u52d5,\u8b80\u53d6radiusd.conf,\u4e26\u904b\u4f5c\u65bcUDP port 1812\/1813<br>2<br>\u82e5\u6536\u5230Access-Request(\u8a8d\u8b49\u8acb\u6c42)\u5c01\u5305,\u6bd4\u5c0dclients.conf\u7684\u8a8d\u8b49,\u5408\u6cd5client\u57f7\u884c\u7b2c3\u6b65,\u975e\u6cd5client\u5247deny<br>3<br>\u8b80\u53d6proxy.conf\u6bd4\u5c0d\u9818\u57df\u540d\u7a31Realm<br>\u82e5\u6709\u5408\u6cd5\u7684realm\u8a2d\u5b9a,\u63a1\u7528proxy.conf\u4e2d\u6240\u8a2d\u5b9a\u8655\u7406\u65b9\u5f0f<br>\u82e5\u7121\u5408\u6cd5\u7684realm\u8a2d\u5b9a,\u63a1\u7528users\u4e2d\u6240\u8a2d\u5b9a\u7684\u9810\u8a2d\u8a8d\u8b49\u65b9\u5f0f,\u6bd4\u5c0dusers\u4e2d\u7684\u5e33\u865f,\u57f7\u884c\u7b2c4\u6b65<br>4<br>\u6839\u64da\u6a94\u6848users\u9a57\u8b49,\u82e5\u6210\u529f\u5247\u9001\u51faaccess-accept,\u82e5\u5931\u6557\u5247\u9001\u51faaccess-reject<\/p>\n\n\n\n<p><strong>\u76f8\u95dc\u76ee\u9304<\/strong><br>\/usr\/local\/bin \u6e2c\u8a66\u7a0b\u5f0f<br>radtest\/usr\/local\/sbin \u4e3b\u7a0b\u5f0f<br>radiusd\/usr\/local\/etc\/raddb \u8a2d\u5b9a\u6a94\u76ee\u9304<br>\/usr\/local\/lib \u6a21\u7d44\u6a94<br>\/usr\/local\/share\/freeradius \u5b57\u5178\u6a94<br>\/usr\/local\/var\/log\/radius \u8a18\u9304\u6a94<br>\/usr\/local\/share\/doc\/freeradius-1.0.5 \u8aac\u660e\u6587\u4ef6<\/p>\n\n\n\n<p><strong>\u76f8\u95dc\u7d44\u614b\u6a94<\/strong><br>radiusd.conf \u4e3b\u8a2d\u5b9a\u6a94<br>clients.conf \u5141\u8a31\u9023\u7dda\u7684client\u8a2d\u5b9a\u6a94<br>users \u672c\u5730\u4f7f\u7528\u8005\u5e33\u865f,auth-type\u7b49\u8655\u7406\u65b9\u5f0f\u8a2d\u5b9a\u6a94<br>eap.conf eap\u8a2d\u5b9a\u6a94<br>attr \u8a2d\u5b9aattribute filter<br>proxy.conf \u8a8d\u8b49\u8f49\u9001\u8a2d\u5b9a\u6a94,\u5728\u591a\u90e8radius\u904b\u4f5c\u6642\u9700\u8a2d\u5b9a<br>xxxsql.conf \u8cc7\u6599\u5eab\u5b58\u53d6\u8a2d\u5b9a\u6a94<\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..<br>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..<\/p>\n\n\n\n<p><strong>radiusd.conf<\/strong><br>\u4e3b\u8981\u8a2d\u5b9a\u6a94<br>\u5167\u5bb9\u67b6\u69cb(\u53ef\u4ee5include\u5176\u4ed6\u6a94\u6848\u7684\u8a2d\u5b9a)<\/p>\n\n\n\n<p>&#8230;<\/p>\n\n\n\n<p><strong>\u5168\u57df\u53c3\u6578<\/strong>,\u76ee\u9304,\u65e5\u8a8c\u6a94\u4f4d\u7f6e,&#8230;\u7b49<br><br>#\u8a2d\u5b9a\u4f3a\u670d\u5668\u904b\u4f5c\u7684ip,*\u8868\u793a\u6240\u6709\u7684\u7db2\u8def\u4ecb\u9762<br>bind_address = *<br>#\u8a2d\u5b9a\u4f3a\u670d\u5668\u904b\u4f5c\u7684port,0\u8868\u793a\u9810\u8a2d1812,1813<br>port = 0<br>#\u8eab\u4efd\u8a8d\u8b49\u6210\u529f\u8207\u5426\u4e4b\u8a18\u9304<br>log_auth = no<br>#\u958b\u555fproxy\u529f\u80fd<br>proxy_requests = yes<\/p>\n\n\n\n<p>&#8230;<\/p>\n\n\n\n<p><strong>\u6a21\u7d44\u8a2d\u5b9a<\/strong>(radius2\u4e2d\u5c07\u8a2d\u5b9a\u6a94\u653e\u5728module\u76ee\u9304\u5167)<\/p>\n\n\n\n<p>modules {<br>\u6a21\u7d441 { &#8230; }<br>\u6a21\u7d442 { &#8230; }<br>&#8230; }<\/p>\n\n\n\n<p>\u5e38\u898b\u6a21\u7d44<br>unix #\u8a2d\u5b9a\u4f7f\u7528\u7cfb\u7d71\u5bc6\u78bc\u6a94<br>realm #proxy\u5224\u65b7\uff0c\u898f\u5247\u5728proxy.conf<br>files #\u4ee5\u6587\u5b57\u6a94\u7ba1\u7406\u5e33\u865f\u3001\u6388\u6b0a<br>detail #\u4ee5\u6587\u5b57\u6a94\u8a18\u9304log<br>ldap #ldap\u6a21\u7d44<\/p>\n\n\n\n<p>&#8230;<\/p>\n\n\n\n<p><strong>\u884c\u7a0b\u8655\u7406\u6d41\u7a0b<br><\/strong>\u5e38\u7528\u7684\u6709\u4ee5\u4e0b<br>authorize { #\u6388\u6b0a,\u53d6\u5f97\u4f7f\u7528\u8005\u8cc7\u8a0a<br>}<br>authenticate { #\u8a8d\u8b49,\u9a57\u8b49\u4f7f\u7528\u8005\u8acb\u6c42<br>}<br>post-auth { #\u8a8d\u8b49\u5b8c\u6210\u5f8c\u8655\u7406<br>}<br>preacct { #\u524d\u7f6e\u8655\u7406Accounting\u5c01\u5305<br>}<br>accounting { #\u8655\u7406Accounting\u5c01\u5305<br>radutmp #\u8a18\u9304\u7dda\u4e0a\u4f7f\u7528\u8005<br>}<br>ps:<br>\u5728radius2\u4e2d,authorize,authenticate,preacct,accounting,post-auth,&#8230;\u7b49<br>\u88ab\u653e\u5728${confdir}\/sites-available\/default<\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<\/p>\n\n\n\n<p><strong>clients.conf<\/strong><br>\u8a2d\u5b9a\u5141\u8a31\u9023\u7dda\u7684RADIUS Clients\u53ca\u5176\u5c0d\u61c9\u7684serect<br>client\u70ba\u4f7f\u7528radius\u5354\u5b9a\u7684client,\u5305\u62ec\u5c0dradius server\u767c\u51fa\u8981\u6c42\u7684\u5ba2\u6236\u7aef\u6216\u662f\u652f\u63f4radius\u7684ap<br><br>\u683c\u5f0f\u70ba<br>client &lt; client ip\/mask &gt;{<br>secret=client\u4f7f\u7528\u7684radius key<br>shortname=client\u7684\u5225\u540d<br>nastype=client\u7684nastype<br>}<br>ex:<br>#\u5141\u8a31\u7576\u5730\u4e3b\u6a5f\u7684\u9023\u7dda\u8acb\u6c42<br>client 127.0.0.1 {<br>secret = test<br>shortname = localhost<br>}<br>#\u5141\u8a31192.168.1.1\u9023\u7dda\u8acb\u6c42<br>client 192.168.1.1 {<br>secret = test<br>shortname = ap01<br>}<br>#\u5141\u8a31192.168.100.0\/24\u9023\u7dda\u8acb\u6c42<br>client 192.168.100.0\/24 {<br>secret = test<br>shortname = switch<br>}<\/p>\n\n\n\n<p><br>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<\/p>\n\n\n\n<p><strong>users<\/strong><br>\u7528\u9014:\u6388\u6b0a\u5c6c\u6027\u8a2d\u5b9a\u3001\u5e33\u865f\u8a8d\u8b49\u3001\u5c6c\u6027\u8abf\u6574<\/p>\n\n\n\n<p><strong>\u8a2d\u5b9a\u5e33\u865f\u8a8d\u8b49\u65b9\u5f0f\u7684\u683c\u5f0f<br><\/strong>[DEFAULT | account] Auth-Type = &lt; system|local|ldap&gt;<br>\u53ef\u6307\u5b9a\u4ee5\u4e0b2\u7a2e<br>\u3000\u55ae\u4e00user\u5e33\u865f<br>\u3000DEFAULT:\u8868\u793a\u6240\u6709user,\u7576\u6240\u6709\u689d\u4ef6\u90fd\u4e0d\u7b26\u5408\u6642\u624d\u4f7f\u7528,\u901a\u5e38\u8207Fall-Trough=1\u4f75\u7528,\u8a2d\u5b9a\u57fa\u672c\u5c6c\u6027<br>Auth-Type<br>\u6307\u5b9a\u7684\u8a8d\u8b49\u65b9\u5f0f\u6709\u4ee5\u4e0b\u4e09\u7a2e<br>\u3000system \u4f7f\u7528\u7cfb\u7d71\u5e33\u865f<br>\u3000local \u4f7f\u7528user\u6a94\u6848\u4e2d\u6240\u8a2d\u5b9a\u7684\u5e33\u865f<br>\u3000ldap \u4f7f\u7528ldap\u6240\u8a2d\u5b9a\u7684\u5e33\u865f<\/p>\n\n\n\n<p>\u9650\u5236\u9023\u7ddaip<br>Client-IP-Address == &#8220;ip&#8221;<\/p>\n\n\n\n<p>\u8a2d\u5b9a\u5bc6\u78bc<br>User-Password == &#8220;password&#8221;<\/p>\n\n\n\n<p>\u8a2d\u5b9a\u6bd4\u5c0d\u7b26\u5408\u5f8c,\u4ecd\u7e7c\u7e8c\u5f80\u4e0b\u6bd4\u5c0d<br>Fall-Trough = 1<\/p>\n\n\n\n<p><br><strong>\u5e38\u7528\u904b\u7b97\u5b50<\/strong><br>\u5c6c\u6027 = \u8cc7\u6599 \u5728\u8a72\u5c6c\u6027\u6c92\u6709\u88ab\u8a2d\u7f6e\u7684\u524d\u63d0\u4e0b\u65b0\u589e\u8a72\u5c6c\u6027\u8cc7\u6599<br>\u5c6c\u6027 := \u8cc7\u6599 \u76f4\u63a5\u8a2d\u5b9a\u8a72\u5c6c\u6027\u8cc7\u6599<br>\u5c6c\u6027 == \u8cc7\u6599 \u5224\u65b7\u8a72\u5c6c\u6027\u7684\u5167\u5bb9\u662f\u5426\u8207\u8cc7\u6599\u5167\u5bb9\u76f8\u7b26<br>\u5c6c\u6027 != \u8cc7\u6599 \u5224\u65b7\u8a72\u5c6c\u6027\u7684\u5167\u5bb9\u662f\u5426\u8207\u8cc7\u6599\u5167\u5bb9\u4e0d\u76f8\u7b26<br>\u5c6c\u6027 =~ \u6b63\u898f\u8868\u793a\u5f0f \u5224\u65b7\u5c6c\u6027\u7684\u5167\u5bb9\u662f\u5426\u7b26\u5408\u6b63\u898f\u8868\u793a\u5f0f\u7684\u898f\u5247<br>\u5c6c\u6027 !~ \u6b63\u898f\u8868\u793a\u5f0f \u5224\u65b7\u5c6c\u6027\u7684\u5167\u5bb9\u662f\u5426\u4e0d\u7b26\u5408\u6b63\u898f\u8868\u793a\u5f0f\u7684\u898f\u5247<\/p>\n\n\n\n<p><strong>\u8655\u7406\u898f\u5247<\/strong><br>1\u7531\u4e0a\u800c\u4e0b\u6bd4\u5c0d\u81f3\u7b2c\u4e00\u7d44\u5b8c\u5168\u7b26\u5408\u8005\uff0c\u5373\u544a\u5b8c\u6210\u3002<br>2\u5404\u7d44\u9593\u4ee5\u7a7a\u767d\u884c\u9593\u9694\u3002<br>3\u4ee5\u5c6c\u6027 user-name \u70ba\u7b2c\u4e00\u500b\u6bd4\u5c0d\u9805(\u4e0d\u5206\u5927\u5c0f\u5beb)\u3002<br>ex:<br>DEFAULT Auth-Type = System<br>Fall-Through = 1<br>user01 User-Password == &#8220;123456&#8221;<br>ex:<br>\u4f7f\u7528auth-type\u70balocal\u7684\u65b9\u5f0f,\u8a2d\u5b9a\u4f7f\u7528\u8005\u5e33\u865fraymond,\u9023\u7dda\u4f86\u6e90\u9650\u5236\u70ba127.0.0.1,\u4e26\u8a2d\u5bc6\u78bc\u70ba12345<br>raymond Auth-Type := Local, Client-IP-Address == &#8220;127.0.0.1&#8221;, User-Password == &#8220;12345&#8221;<\/p>\n\n\n\n<p><br>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<\/p>\n\n\n\n<p><strong>proxy.conf<\/strong><br>\u4e3b\u8981\u4ee5realm\u4f86\u6c7a\u5b9a\u662f\u5426\u9032\u884cproxy<\/p>\n\n\n\n<p>\u683c\u5f0f\u70ba<br>realm {<br>type = radius<br>authhost= &lt;\u8a8d\u8b49\u4f3a\u670d\u5668 IP&gt;:<br>accthost = &lt;\u8a08\u8cbb\u4f3a\u670d\u5668 IP&gt;:<br>secret = #\u82e5host\u90fd\u8a2d\u70baLOCAL\u6642,secret\u56e0\u7528\u4e0d\u5230\u53ef\u7701\u7565<br>ldflag =<br>nostrip #\u6536\u5230\u5e33\u865f\u6642\u4e0d\u8981\u628arealm\u540d\u7a31\u6e05\u9664,\u9810\u8a2d\u70bastrip,\u4e5f\u5c31\u662f\u6703\u6e05\u9664realm<br>fail_over #\u8a2d\u5b9a\u81ea\u52d5\u5099\u63f4,\u9810\u8a2d\u70bafail_over<br>round_robin #\u8a2d\u5b9a\u8ca0\u8f09\u5e73\u8861<br>}<br>ps:\u82e5\u4f7f\u7528\u8005\u5e33\u865f\u70baraymond@study.net,\u5247realm\u70bastudy.net<br>ps:\u82e5\u4f7f\u7528\u8005\u5e33\u865f\u53ea\u6709raymond,\u5247\u6b64\u5e33\u865f\u6c92\u4f7f\u7528realm<br>ps:realm\u540d\u7a31\u7121\u5927\u5c0f\u5beb\u5206\u5225,\u7531\u7ba1\u7406\u8005\u6307\u5b9a\u5373\u53ef,\u8207domain name\u7121\u76f4\u63a5\u95dc\u4fc2<br>ex:<br>\u5c07\u6c92\u6709realm\u7684\u5e33\u865f\u4ee5\u9810\u8a2d\u7684\u8a8d\u8b49\u65b9\u5f0f\u9a57\u8b49<br>realm NULL {<br>\u3000type = radius<br>\u3000authhost = LOCAL<br>\u3000accthost = LOCAL<br>}<br>ex:<br>\u5c07\u6c92\u6709realm\u7684\u5e33\u865f\u8f49\u9001\u5230192.168.0.10:1645\u53bb\u9a57\u8b49<br>realm NULL {<br>type = radius<br>authhost = 192.168.0.10:1645<br>accthost = 192.168.0.10:1646<br>secret = dontshowit<br>}<br>ex:<br>\u5c07realm\u70bawifi.nchc.org.tw\u7684\u5e33\u865f\u4ee5\u9810\u8a2d\u7684\u5e33\u865f\u8655\u7406<br>\u65b9\u5f0f\u8655\u7406<br>realm wifi.nchc.org.tw {<br>type = radius<br>authhost = LOCAL<br>accthost = LOCAL<br>}<br>ex:<br>\u5c07realm\u70bawifi.nchc.org.tw \u7684\u5e33\u865f\u8f49\u9001\u5230192.168.0.7:1812\u53bb\u8655\u7406<br>realm wifi.nchc.org.tw {<br>type = radius<br>authhost = 192.168.0.7:1812<br>accthost = 192.168.0.7:1813<br>secret = donttellanyone<br>}<br>ex:<br>\u6240\u6709\u4e0d\u7b26\u5408\u5176\u4ed6realm\u8a2d\u5b9a\u7684\u5e33\u865f\uff0c\u8f49\u9001\u5230192.168.0.99:1812 \u53bb\u8655\u7406\uff0c\u4e14\u4e0d\u6ffe\u9664realm\u540d\u7a31<br>realm DEFAULT {<br>type = radius<br>authhost = 192.168.0.99:1812<br>accthost = 192.168.0.99:1813<br>secret = aloha3<br>nostrip<br>}<br><br>\u8a2d\u5b9a\u81ea\u52d5\u5099\u63f4<br>ex:<br>\u82e5isp1.com\u5224\u5b9a\u7121\u56de\u61c9,\u5247\u6539\u7531isp2.com\u8655\u7406<br>realm wifi.home {<br>\u3000type = radius<br>\u3000authhost = isp1.com:1812<br>\u3000accthost = isp1.com:1813<br>\u3000secret = sweetheart<br>}<br>realm wifi.home {<br>\u3000type = radius<br>\u3000authhost = isp2.com:1812<br>\u3000accthost = isp2.com:1813<br>\u3000secret = heartsweet<br>\u3000fail_over<br>}<br><br>\u8a2d\u5b9a\u8ca0\u8f09\u5e73\u8861<br>ex:<br>\u82e5isp1.com\u548cisp2.com\u505a\u8ca0\u8f09\u5e73\u8861<br>realm wifi.home {<br>\u3000type = radius<br>\u3000authhost = isp1.com:1812<br>\u3000accthost = isp1.com:1813<br>\u3000secret = sweetheart<br>round_robin<br>}<br>realm wifi.home {<br>\u3000type = radius<br>\u3000authhost = isp2.com:1812<br>\u3000accthost = isp2.com:1813<br>\u3000secret = heartsweet<br>\u3000round_robin<br>}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>freeradius(http:\/\/www.freeradi &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[21],"tags":[],"class_list":["post-688","post","type-post","status-publish","format-standard","hentry","category-linuxservice"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/posts\/688","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/comments?post=688"}],"version-history":[{"count":0,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/posts\/688\/revisions"}],"wp:attachment":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/media?parent=688"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/categories?post=688"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/tags?post=688"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}