pyrad icon indicating copy to clipboard operation
pyrad copied to clipboard

Add support for EAP/PEAP/MSCHAP auth

Open ghost opened this issue 8 years ago • 8 comments

Please add support for EAP/PEAP/MSCHAP authorization. PAP is not suitable since it sends plaintext passwords.

ghost avatar Jan 11 '17 15:01 ghost

I'm going to face the same problem, Auth-type CHAP means to let the sysadmins to read cleartext password in /var/log/freeradius/radius.log if the radius configuration have auth_goodpass and auth_badpass configured to true.

We really need to introduce PEAP o, at least MSCHAP. CHAP is unusable in production environment.

peppelinux avatar Nov 07 '17 13:11 peppelinux

Can the following URL be used to jumpstart EAP support

https://w1.fi/cgit/hostap/plain/tests/hwsim/test_eap_proto.py

ccsalway avatar Sep 09 '18 03:09 ccsalway

+1 for MSCHAPv2 I think it's really needed in 2019 PAP is so weak and Windows 10 cant access to set encyption if PAP is enabled only.

csib avatar Jan 13 '19 15:01 csib

+1 for EAP/PEAP/MSCHAP

kumar35959 avatar Dec 09 '19 22:12 kumar35959

Here is my Python implementation for EAP-MSCHAPv2 only, maybe it can help : https://github.com/mneitsabes/RADIUS-EAP-MSCHAPv2-Python-client

mneitsabes avatar Dec 21 '20 20:12 mneitsabes

+1 for EAP/PEAP/MSCHAP :)

noziwatele avatar Feb 03 '21 03:02 noziwatele

If it helps, this is my CHAP / MS-CHAP / MS-CHAP-v2 code written in Python 2.7 and Twisted:

https://gist.github.com/adiroiban/59eb28cf767aec9535fda8ac1162401f

It uses the radius.py library and not pyrad but I think that it can help with documenting the format of the message.

There is no EAP/PEAP tunneling there.

I hope this can help understand how the messages should be formatted.

I had a hard time reading all the PPP and RADIUS RFC to see how to format the messages ... but it was easier than reading the freeradius C code :)

I plan to migrate my code to pyrad ... but I don't know when.

I am testing it using a freeradius docker... and it's super fast after removing the delay on failure. The gist has some freeradius configs, let me know if you need more info about the docker testing fixture.

# Remove the delay on failure.
# This is only used for testing so we don't want any delays.
sed -i 'Ns/.*reject_delay = .*/    reject_delay = 0/' /etc/raddb/radiusd.conf

adiroiban avatar Aug 08 '21 09:08 adiroiban

I tried to connect to Raidus using MS-CHAPv2 by adding MS-CHAP-Challenge and MS-CHAP2-Response to the request, but it ultimately failed.

# ...
  req = srv.CreateAuthPacket(code=pyrad.packet.AccessRequest,
                             User_Name=username)
  req.AddAttribute("MS-CHAP-Challenge", b'\x00' * 8)
  req.AddAttribute("MS-CHAP2-Response", b'\x00' + struct.pack('<B', len(passwd)) + passwd.encode() + b'\x00' * 24)
# ...

momentforever avatar Feb 03 '23 10:02 momentforever