<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Hi all,<br>
<br>
I've try to setup a new freeradius server for my wireless users using
WPA/WPA2 with 802.1x authentication. all the clients are using secureW2
to login. FYI, I've another freeradius which is currently run for EAPOL
(802.1x over L2 switch) with EAP-MD5 and it is working fine for me.
After trying for 2 weeks, I'm still cannot do EAP-TTLS with PAP for
wireless. However, if I configure secureW2 to user EAP-TTLS with
EAP-MD5 as inner tunnel, the user is able to authenticate.You may find
my config as below. Looking for your kind assistance... thanks.<br>
<br>
<b>radius.conf<br>
<br>
</b>prefix = /usr<br>
exec_prefix = /usr<br>
sysconfdir = /etc<br>
localstatedir = /var<br>
sbindir = /usr/sbin<br>
logdir = ${localstatedir}/log/radius<br>
raddbdir = ${sysconfdir}/raddb<br>
radacctdir = ${logdir}/radacct<br>
confdir = ${raddbdir}<br>
run_dir = ${localstatedir}/run/radiusd<br>
log_file = ${logdir}/radius.log<br>
libdir = /usr/lib<br>
pidfile = ${run_dir}/radiusd.pid<br>
user = radiusd<br>
goup = radiusd<br>
max_request_time = 30<br>
delete_blocked_requests = no<br>
cleanup_delay = 5<br>
max_requests = 1024<br>
bind_address = *<br>
port = 0<br>
hostname_lookups = no<br>
allow_core_dumps = no<br>
regular_expressions = yes<br>
extended_expressions = yes<br>
log_stripped_names = no<br>
log_auth = no<br>
log_auth_badpass = no<br>
log_auth_goodpass = no<br>
usercollide = no<br>
lower_user = no<br>
lower_pass = no<br>
nospace_user = no<br>
nospace_pass = no<br>
<br>
checkrad = ${sbindir}/checkrad<br>
<br>
security {<br>
<br>
max_attributes = 200<br>
reject_delay = 1<br>
status_server = no<br>
}<br>
<br>
proxy_requests = yes<br>
$INCLUDE ${confdir}/proxy.conf<br>
<br>
$INCLUDE ${confdir}/clients.conf<br>
<br>
snmp = no<br>
$INCLUDE ${confdir}/snmp.conf<br>
<br>
thread pool {<br>
<br>
start_servers = 5<br>
max_servers = 32<br>
min_spare_servers = 3<br>
max_spare_servers = 10<br>
max_requests_per_server = 0<br>
}<br>
<br>
modules {<br>
pap {<br>
encryption_scheme = clear<br>
}<br>
<br>
chap {<br>
authtype = CHAP<br>
}<br>
<br>
pam {<br>
pam_auth = radiusd<br>
}<br>
<br>
unix {<br>
cache = no<br>
shadow = /etc/shadow<br>
radwtmp = ${logdir}/radwtmp<br>
}<br>
<br>
$INCLUDE ${confdir}/eap.conf<br>
<br>
mschap {<br>
}<br>
<br>
ldap ldap_1x {<br>
server = "localhost"<br>
identity = "cn=Manager,dc=."<br>
password = xxxxxxx<br>
basedn = "dc=ocesb,dc=com,dc=my,dc=."<br>
filter = "(uid=%{Stripped-User-Name:-%{User-Name}})"<br>
base_filter = "(objectclass=radiusprofile)"<br>
start_tls = no<br>
<br>
access_attr = "dialupAccess"<br>
dictionary_mapping = ${raddbdir}/ldap.attrmap<br>
<br>
ldap_connections_number = 5<br>
password_attribute = userPassword<br>
groupname_attribute = radiusGroupName<br>
groupmembership_attribute = radiusGroupName<br>
groupmembership_filter = "(objectclass=radiusprofile)"<br>
timeout = 4<br>
timelimit = 3<br>
net_timeout = 1<br>
<br>
}<br>
<br>
realm IPASS {<br>
format = prefix<br>
delimiter = "/"<br>
ignore_default = no<br>
ignore_null = no<br>
}<br>
<br>
realm suffix {<br>
format = suffix<br>
delimiter = "@"<br>
ignore_default = no<br>
ignore_null = no<br>
}<br>
<br>
realm realmpercent {<br>
format = suffix<br>
delimiter = "%"<br>
ignore_default = no<br>
ignore_null = no<br>
}<br>
<br>
realm ntdomain {<br>
format = prefix<br>
delimiter = "\\"<br>
ignore_default = no<br>
ignore_null = no<br>
}<br>
<br>
checkval {<br>
item-name = Calling-Station-Id<br>
check-name = Calling-Station-Id<br>
data-type = string<br>
}<br>
<br>
preprocess {<br>
huntgroups = ${confdir}/huntgroups<br>
hints = ${confdir}/hints<br>
with_ascend_hack = no<br>
ascend_channels_per_line = 23<br>
with_ntdomain_hack = no<br>
with_specialix_jetstream_hack = no<br>
with_cisco_vsa_hack = no<br>
}<br>
<br>
<br>
files {<br>
usersfile = ${confdir}/users<br>
acctusersfile = ${confdir}/acct_users<br>
compat = no<br>
}<br>
<br>
<br>
detail {<br>
<br>
detailfile = ${radacctdir}/%{Client-IP-Address}/detail-%Y%m%d<br>
detailperm = 0600<br>
}<br>
<br>
acct_unique {<br>
key = "User-Name, Acct-Session-Id, NAS-IP-Address, Client-IP-Address,
NAS-Port"<br>
}<br>
<br>
$INCLUDE ${confdir}/sql.conf<br>
<br>
radutmp {<br>
<br>
filename = ${logdir}/radutmp<br>
username = %{User-Name}<br>
case_sensitive = yes<br>
check_with_nas = yes<br>
perm = 0600<br>
callerid = "yes"<br>
}<br>
radutmp sradutmp {<br>
filename = ${logdir}/sradutmp<br>
perm = 0644<br>
callerid = "no"<br>
}<br>
attr_filter {<br>
attrsfile = ${confdir}/attrs<br>
}<br>
counter daily {<br>
filename = ${raddbdir}/db.daily<br>
key = User-Name<br>
count-attribute = Acct-Session-Time<br>
reset = daily<br>
counter-name = Daily-Session-Time<br>
check-name = Max-Daily-Session<br>
allowed-servicetype = Framed-User<br>
cache-size = 5000<br>
}<br>
<br>
always fail {<br>
rcode = fail<br>
}<br>
always reject {<br>
rcode = reject<br>
}<br>
always ok {<br>
rcode = ok<br>
simulcount = 0<br>
mpp = no<br>
}<br>
<br>
expr {<br>
}<br>
<br>
digest {<br>
}<br>
<br>
exec {<br>
wait = yes<br>
input_pairs = request<br>
}<br>
<br>
exec echo {<br>
<br>
wait = yes<br>
program = "/bin/echo %{User-Name}"<br>
input_pairs = request<br>
output_pairs = reply<br>
}<br>
<br>
<br>
ippool main_pool {<br>
range-start = 192.168.1.1<br>
range-stop = 192.168.3.254<br>
netmask = 255.255.255.0<br>
cache-size = 800<br>
session-db = ${raddbdir}/db.ippool<br>
ip-index = ${raddbdir}/db.ipindex<br>
override = no<br>
maximum-timeout = 0<br>
}<br>
}<br>
<br>
instantiate {<br>
exec<br>
expr<br>
}<br>
<br>
authorize {<br>
preprocess<br>
chap<br>
mschap<br>
suffix<br>
eap<br>
files<br>
# sql<br>
Autz-Type LDAP1 {<br>
ldap_1x<br>
}<br>
}<br>
<br>
authenticate {<br>
<br>
Auth-Type PAP {<br>
pap<br>
}<br>
<br>
<br>
Auth-Type CHAP {<br>
chap<br>
}<br>
<br>
<br>
Auth-Type MS-CHAP {<br>
mschap<br>
}<br>
unix<br>
<br>
#Auth-Type LDAP {<br>
# ldap<br>
# }<br>
# Auth-Type LDAP1 {<br>
# ldap_1x<br>
# }<br>
<br>
eap<br>
}<br>
<br>
<br>
preacct {<br>
preprocess<br>
acct_unique<br>
suffix<br>
files<br>
}<br>
<br>
accounting {<br>
detail<br>
unix<br>
radutmp<br>
sql1<br>
sql2<br>
}<br>
session {<br>
radutmp<br>
sql1<br>
}<br>
post-auth {<br>
}<br>
<br>
pre-proxy {<br>
}<br>
post-proxy {<br>
eap<br>
}<br>
<br>
<br>
<br>
<b>eap.conf</b><br>
<br>
eap {<br>
default_eap_type = ttls<br>
timer_expire = 60<br>
ignore_unknown_eap_types = no<br>
cisco_accounting_username_bug = no<br>
md5 {<br>
}<br>
leap {<br>
}<br>
gtc {<br>
auth_type = PAP<br>
}<br>
<br>
tls {<br>
private_key_password = whatever<br>
private_key_file = ${raddbdir}/certs/cert-srv.pem<br>
certificate_file = ${raddbdir}/certs/cert-srv.pem<br>
CA_file = ${raddbdir}/certs/demoCA/cacert.pem<br>
dh_file = ${raddbdir}/certs/dh<br>
random_file = ${raddbdir}/certs/random<br>
fragment_size = 1024<br>
include_length = yes<br>
check_crl = yes<br>
<br>
check_cert_cn = %{User-Name}<br>
}<br>
<br>
ttls {<br>
<br>
default_eap_type = md5<br>
copy_request_to_tunnel = no<br>
use_tunneled_reply = no<br>
<br>
}<br>
<br>
mschapv2 {<br>
}<br>
}<br>
<br>
<b>users<br>
<br>
</b>DEFAULT Service-Type == Framed-User<br>
Framed-IP-Address = 255.255.255.254,<br>
Framed-MTU = 576,<br>
Service-Type = Framed-User,<br>
Fall-Through = Yes<br>
<br>
DEFAULT Framed-Protocol == PPP<br>
Framed-Protocol = PPP,<br>
Framed-Compression = Van-Jacobson-TCP-IP<br>
<br>
DEFAULT Hint == "CSLIP"<br>
Framed-Protocol = SLIP,<br>
Framed-Compression = Van-Jacobson-TCP-IP<br>
<br>
DEFAULT Hint == "SLIP"<br>
Framed-Protocol = SLIP<br>
<br>
DEFAULT Realm == "ocesb.com.my", Autz-Type := LDAP1, Auth-Type := LDAP1<br>
<br>
<b>user.ldif<br>
<br>
</b>dn: uid=user, ou=People, dc=ocesb, dc=com, dc=my, dc=.<br>
mailLocalAddress: <a class="moz-txt-link-abbreviated" href="mailto:user@ocesb.com.my">user@ocesb.com.my</a><br>
givenName: Tan Chee<br>
accountStatus: active<br>
radiusClass: 0x01<br>
objectClass: inetLocalMailRecipient<br>
objectClass: person<br>
objectClass: organizationalPerson<br>
objectClass: inetOrgPerson<br>
objectClass: radiusprofile<br>
objectClass: qmailUser<br>
objectClass: posixAccount<br>
objectClass: top<br>
objectClass: shadowAccount<br>
mailRoutingAddress: <a class="moz-txt-link-abbreviated" href="mailto:user@mail.ocesb.com.my">user@mail.ocesb.com.my</a><br>
mailQuotaSize: 2000000000<br>
shadowLastChange: 12745<br>
userPassword:: xxxxxx<br>
mailMessageStore: vmail/ocesb.com.my/user/Maildir/<br>
uid: user<br>
mail: <a class="moz-txt-link-abbreviated" href="mailto:user@ocesb.com.my">user@ocesb.com.my</a><br>
uidNumber: 5000<br>
cn: Tan Chee Keong<br>
dialupAccess: Yes<br>
loginShell: /bin/false<br>
gidNumber: 5000<br>
shadowMax: 99999<br>
gecos: Tan Chee Keong<br>
mailHost: mailpj.ocesb.com.my<br>
homeDirectory: /home/vmail/ocesb.com.my/user<br>
sn: Keong<br>
<pre class="moz-signature" cols="72">
</pre>
</body>
</html>