On 10.1.2022 14.50, Sagar Malam wrote:

Thanks for the help. I worked as expected after doing corrections. I would like to have EAP support as well. Can you help me with enabling that  ?

Please see below a modifed version of the previous configuration. Changes are:
- Add new global parameter that tells EAP to use State attribute
- Fix 'Identifier' spelling in AuthBy OTP
- Move State attribute to into the step where it's actually needed
- New Handler that takes care of EAP by converting EAP-GTC to PAP
- Updated <Handler State=auth-otp> to check that State ends with 'auth-otp'
- Leave EAPType enabled only within AuthBy that processes EAP
- ConsumePassword is set to empty to clear the password before OTP

Things to note: EAP-GTC is supported by converting it to PAP and then doing the same steps that plain PAP would do. Some extra work is needed to take care of State attribute that EAP also uses to track its state.

With EAP the message payload is not encrypted unless the EAP method itself does this. EAP-GTC does not. You can configure the following to avoid exposing the static password to Radiator DEBUG level logging (the parameter allows multiple attribute names too)

  PacketDumpOmitAttributes EAP-Message,User-Password

Care is also needed when EAP-GTC is transferred without secure tunneling (EAP-TTLS, PEAP, IPsec, VPN or other method).

PEAP and other, typically Wi-Fi, methods are not supported by the configuration. I took a look at the current Laptop and Wireless EAP clients but the PEAP/EAP-GTC or EAP-TTLS/EAP-GTC still seems to be rare. OTPs also make frequent Wi-Fi (re)connects a bit troublesome to use.

Here's the updated configuration. Please let us know how it goes.


EAP_UseState 1

<AuthBy OTP>
    Identifier otp-authby
    PasswordPattern 99999

    # Return undef from ChallengeHook to force reject if State
    # already ends with 'auth-otp'. Now it will send a new SMS
    # when empty string is entered by the end user.
    ChallengeHook sub {my ($self, $user, $p, $context) = @_;\
        $context->{otp_password} = $self->generate_password();\

system('/usr/src/send_sms.sh','NNNNNNNNN',$context->{otp_password});\
        $p->{rp}->add_attr('State', 'auth-otp') \
            unless $p->get_attr('State') =~ m/auth-otp\z/s; \
        return "OTP sent";}

    VerifyHook sub {my ($self, $user, $submitted_pw, $p, $context) = @_;\
        return $context->{otp_password} eq $submitted_pw ;}
</AuthBy>

<Handler ExistsInRequest=EAP-Message>
     <AuthBy FILE>
         EAPType GTC
         Filename /dev/null
         EAP_GTC_PAP_Convert
     </AuthBy>

     # EAP adds State. It's permissible to add more,
     # such as AuthBy OTP State value, to the end.
     PostProcessingHook sub { my $rp = ${$_[1]}; \
          my @states = $rp->get_attr('State'); return if @states != 2; \
          $rp->delete_attr('State'); \
          $rp->add_attr('State', join('', reverse @states)); }
</Handler>

<Handler State=/auth-otp\z/>
    AuthBy otp-authby
</Handler>

<Handler>
    AuthByPolicy ContinueWhileAccept
    <AuthBy LDAP2>
        Host    192.168.0.45
        AuthDN CN=XXXXXX ,OU=ServiceAccounts,DC=XXXXX,DC=XXXXX,DC=com
        AuthPassword    XXXXX
        BaseDN        DC=XXXXXX,DC=XXXXX,DC=com
        ServerChecksPassword
        UsernameAttr sAMAccountName
        AuthAttrDef logonHours,MS-Login-Hours,check
        ConsumePassword
    </AuthBy>
    AuthBy otp-authby
</Handler>


On Fri, Jan 7, 2022 at 5:52 PM Heikki Vatiainen <[email protected] <mailto:[email protected]>> wrote:

    On 6.1.2022 14.31, Sagar Malam wrote:

     > Thanks for the help. I tried the approach with authby OTP that you
     > suggested but once Authby LDAP2 is processed , Authby OTP is not
    getting
     > executed instead Access-Accept is sent to  client.

    Thanks for the log and config. It seems I made a typo in my previous
    reply:

     > Config File :
     >
     > <AuthBy OTP>
     >          Identifer otp-authby

    This should be 'Identifier'. One 'i' is missing. When this happens
    there
    are error and warning level log messages because of this and missing
    reference from <Handler>. Remember to check the startup log messages
    too
    when troubleshooting.

     >      EAPType One-Time-Password,Generic-Token

    I'd also remove EAPType parameters for now. If you need to support EAP,
    then it should be tested separately to see that the processing works
    with EAP and see what updates might be needed.

    Note that there's also EAPType in AuthBy LDAP2 clause below.

     > <Handler>
     >      AuthByPolicy ContinueWhileAccept
     >      <AuthBy LDAP2>
     >       Host    192.168.0.45
     >      EAPType One-Time-Password,Generic-Token
     >      AuthDN CN=XXXXXX ,OU=ServiceAccounts,DC=XXXXX,DC=XXXXX,DC=com
     >      AuthPassword    XXXXX
     >      BaseDN        DC=XXXXXX,DC=XXXXX,DC=com
     >      ServerChecksPassword
     >      UsernameAttr sAMAccountName
     >      AuthAttrDef logonHours,MS-Login-Hours,check
     >      ConsumePassword ,

    Change this to 'ConsumePassword'. That is, let it empty the password
    completely. In some cases both static and one-time password are sent
    together and need to split, but not this time.

    https://files.radiatorsoftware.com/radiator/ref/ConsumePassword.html
    <https://files.radiatorsoftware.com/radiator/ref/ConsumePassword.html>


     >      </AuthBy>
     >      AuthBy otp-authby
     > </Handler>
     >
     > Error Log : https://paste-bin.xyz/30722
    <https://paste-bin.xyz/30722> <https://paste-bin.xyz/30722
    <https://paste-bin.xyz/30722>>
     >
     > [root@radiator goodies]# /opt/radiator/radiator/radpwtst -noacct
     > -password '' -user XXXXX -password XXXX
     > sending Access-Request
     > OK

    Use '-trace 4' with rdpwtst to see in detail what it sends and
    receives.
    With multi-round authentication, also add '-interactive' flag to tell
    radpwtst that more than a single request is needed.

    Thanks,
    Heikki

-- Heikki Vatiainen
    OSC, makers of Radiator
    Visit radiatorsoftware.com <http://radiatorsoftware.com> for
    Radiator AAA server software



--

Thanks & Regards,
Sagar Malam
Project Leader | Ecosmob Technologies Pvt. Ltd.
(+91)9601533171 | www.ecosmob.com <http://www.google.com/url?q=http%3A%2F%2Fwww.hodusoft.com&sa=D&sntz=1&usg=AFQjCNHXhIaelhkmhqcPU8D1lt3QoYpm2w>
Skype: sagar.ecosmob

*Disclaimer*
In addition to generic Disclaimer which you have agreed on our website, any views or opinions presented in this email are solely those of the originator and do not necessarily represent those of the Company or its sister concerns. Any liability (in negligence, contract or otherwise) arising from any third party taking any action, or refraining from taking any action on the basis of any of the information contained in this email is hereby excluded.

*Confidentiality*
This communication (including any attachment/s) is intended only for the use of the addressee(s) and contains information that is PRIVILEGED AND CONFIDENTIAL. Unauthorized reading, dissemination, distribution, or copying of this communication is prohibited. Please inform originator if you have received it in error.

*Caution for viruses, malware etc.*
This communication, including any attachments, may not be free of viruses, trojans, similar or new contaminants/malware, interceptions or interference, and may not be compatible with your systems. You shall carry out virus/malware scanning on your own before opening any attachment to this e-mail. The sender of this e-mail and Company including its sister concerns shall not be liable for any damage that may incur to you as a result of viruses, incompleteness of this message, a delay in receipt of this message or any other computer problems.

--
Heikki Vatiainen
OSC, makers of Radiator
Visit radiatorsoftware.com for Radiator AAA server software
_______________________________________________
radiator mailing list
[email protected]
https://lists.open.com.au/mailman/listinfo/radiator

Reply via email to