15. Freeradius
Firstly, for Fedora 8, add user radiusd to group wbpriv.
[root@pptp ~]# usermod -G wbpriv radiusd
For Fedora 4 / 5 / 6, change the permission of the winbind_privileged directory.
[root@pptp ~]# chgrp radiusd /var/cache/samba/winbindd_privileged/
Secondly, we will need to modify the freeradius configuration file. Fortunately, we have only to change a few lines.
Edit /etc/raddb/radiusd.conf to enable MSCAHP2. Open the file and locate the module section and then the mschap subsection.
modules {
....[snip]....
mschap { use_mppe = yes require_encryption = yes require_strong = yes ntlm_auth = "/usr/bin/ntlm_auth --request-nt-key --username=%{Stripped-User-Name:-%{User-Name:-None}} --challenge=%{mschap:Challenge:-00} --nt-response=%{mschap:NT-Response:-00}"
}
....[snip]....
}
The mschap option in the authorize and authenticate sections is enabled by default. If they are not, enable them accordingly. Save the file.
The radius server has a secret key for security. The default key for freeradius is testing123. It is a good idea to change it for obvious security reasons. The key is in /etc/raddb/clients.conf.
client 127.0.0.1 {
#
# The shared secret use to "encrypt" and "sign" packets between
# the NAS and FreeRADIUS. You MUST change this secret from the
# default, otherwise it's not a secret any more!
#
# The secret can be any string, up to 32 characters in length.
#
secret = testing123 ....[snip]....
Note: if you change the secret key, you must modify the /etc/radiusclient-ng/servers so that they match each other.
Refer to Appendix 6 for information on Fedora 4 / 5 / 6.
The above configuration allows everyone with a valid userID in the AD to connect to the pptpd server. If you want to restrict access to a group of users, you can create a group, say VPN_Allowed, in the AD. Add users to the group and modify the ntml_auth line in /etc/raddb/radius.conf to include the parameter "--require-membership-of=EXAMPLE+VPN_Allowed".
In the example, I split the line into multiple lines for clarity. It should be one continuous line in the configuration file.
ntlm_auth = "/usr/bin/ntlm_auth --request-nt-key --username=%{Stripped-User-Name:-%{User-Name:-None}} --challenge=%{mschap:Challenge:-00} --nt-response=%{mschap:NT-Response:-00} --require-membership-of=EXAMPLE+VPN_Allowed"