Hello,<br><br>I am using freeradius to authenticate to multiple databases, some in other LDAP in SQL. I am doing authentication and wireless networks, where I have multiple SSIDs for wireless networks, and each one logs in a database. All these databases are in the same Radius server, which differentiate based authentication used by the users of the Realm, running as follows:<br>
<br>authorize {<br><br>...<br><br>if (Realm == "fpti") {<br>          ldap_fpti<br>}<br><br>if ( Realm == "pti") {<br>           ldap_pti<br>}<br><br>if ( Realm == "visitantes") {<br>           sql_visitantes<br>
}<br><br>...<br>}<br><br><br><br>This model is funcionaç, however have a problem (very serious), Radius does not know from which SSID the client is trying to authenticate, or whether it decides the basis solely of the Realm authentication of the client. I need to make the Radius check the VLAN that is associated with the request for user authentication. Check through the debug radius that an Access-Request packet has the following information:<br>
<br>...<br>rad_recv: Access-Request packet from host 192.168.254.48 port 32769, id=204, length=184<br>        User-Name = "joao@fpti"<br>     Calling-Station-Id = "68-a3-c4-85-c5-89"<br>    Called-Station-Id = "00-26-cb-94-65-60:FPTI"<br>
        NAS-Port = 29<br> NAS-IP-Address = 192.168.254.48<br>       NAS-Identifier = "WLC-PTI"<br>  Airespace-Wlan-Id = 1<br> Service-Type = Framed-User<br>    Framed-MTU = 1300<br>     NAS-Port-Type = Wireless-802.11<br>       Tunnel-Type:0 = VLAN<br>
        Tunnel-Medium-Type:0 = IEEE-802<br><b>      Tunnel-Private-Group-Id:0 = "5"</b><br>   EAP-Message = 0x020500061500<br>  State = 0xfd87ee8cfe82fb655b300470157cca59<br>    Message-Authenticator = 0xb9a2c29a193593e8f1165dc71ab487c1<br>
# Executing section authorize from file /etc/freeradius/sites-enabled/default<br>...<br><br>Once the session authorization, I tried to check the VLAN required before releasing the basis for authorization, did it as follows:<br>
<br>authorize {<br>...<br>        if (Tunnel-Private-Group-Id:0 == 5){<br>                # Base de dados LDAP da FPTI<br>                if (Realm == "fpti") {<br>                        ldap_fpti<br>                }<br>
        }<br><br>        if (Tunnel-Private-Group-Id:0 == 30){<br>                # Todos os Hbitantes do PTI atraves do numero do cracha <br>                if ( Realm == "pti") {<br>                        ldap_pti<br>
                }<br><br>                # Base de dados SQL de Visitantes<br>                if ( Realm == "visitantes") {<br>                        sql_visitantes<br>                }<br>        }<br>...<br>}<br>
<br>But unfortunately this is not working (as shown in the log below):<br><br>[suffix] Authentication realm is LOCAL.<br>++[suffix] returns ok<br>++[control] returns ok<br>[eap] No EAP-Message, not doing EAP<br>++[eap] returns noop<br>
++[files] returns noop<br>++? if (Tunnel-Private-Group-Id:0 == 5)<br>? Evaluating (Tunnel-Private-Group-Id:0 == 5) -> FALSE<br>++? if (Tunnel-Private-Group-Id:0 == 5) -> FALSE<br>++? if (Tunnel-Private-Group-Id:0 == 30)<br>
? Evaluating (Tunnel-Private-Group-Id:0 == 30) -> FALSE<br>++? if (Tunnel-Private-Group-Id:0 == 30) -> FALSE<br>++[expiration] returns noop<br>++[logintime] returns noop<br>++[pap] returns noop<br>Found Auth-Type = MSCHAP<br>
# Executing group from file /etc/freeradius/sites-enabled/inner-tunnel<br>+- entering group MS-CHAP {...}<br>[mschap] No Cleartext-Password configured.  Cannot create LM-Password.<br>[mschap] No Cleartext-Password configured.  Cannot create NT-Password.<br>
[mschap] Creating challenge hash with username: joao@fpti<br>[mschap] Told to do MS-CHAPv2 for joao@fpti with NT-Password<br>[mschap] FAILED: No NT/LM-Password.  Cannot perform authentication.<br>[mschap] FAILED: MS-CHAP2-Response is incorrect<br>
++[mschap] returns reject<br>Failed to authenticate the user.<br>Login incorrect: [joao@fpti] (from client controladora-wlan-1 port 0 via TLS tunnel)<br><br><br><span id="result_box" class="" lang="en"><span class="hps">Note that</span> <span class="hps">all</span> <span class="hps">conditional</span> <span class="hps">"IF</span><span class="">" fails.</span><br class="">
<br class=""> <span class="hps">A</span><span class="hps">lso said that</span> <span class="hps">if I try to</span> <span class="hps">use</span> <span class="hps atn">the Tunnel-</span><span class="">Private</span><span class="">-Group</span><span class="">-Id</span> <span class="hps">without the</span> <span class="hps atn">":</span><span class="">0</span><span class="">" at the end</span><span class="">,</span> <span class="hps">appears</span> <span class="hps">in the logs that</span> <span class="hps">the attribute</span> <span class="hps">was not found</span><span class="">, I mention</span> <span class="hps">this because</span> <span class="hps">in several instances</span> <span class="hps">I saw</span> <span class="hps">on the internet</span> <span class="hps">was used only</span> <span class="hps atn">"Tunnel-</span><span class="">Private</span> <span class="hps atn">-Group-</span><span class="">Id</span><span class="hps atn">" (</span><span class="">with</span> :<span class="hps">0</span> <span class="hps">at the end)</span></span><br>
<br>I ask, how can I make this check?<br><br>Thank you for listening;<br><br>-- <br>João Paulo de Lima Barbosa