<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#ffffff" text="#000000">
I have been trying to get freeradius + mysql to play nice together
for the past few days and no mater what HOW TO or Tutorial I follow
the end result is the same when I run radtest from the command line
I get "Access-Reject". In the HOW TO/Tutorials I have followed I was
told to make my /etc/raddb/sites-available/default like the
following:
<br>
<br>
authorize {
<br>
sql
<br>
}
<br>
authenticate {
<br>
}
<br>
preacct {
<br>
acct_unique
<br>
}
<br>
accounting {
<br>
sql
<br>
}
<br>
session {
<br>
sql
<br>
}
<br>
post-auth {
<br>
}
<br>
pre-proxy {
<br>
}
<br>
post-proxy {
<br>
}
<br>
<br>
and add the information to clients.conf and sql.conf, and it seems
to be working for I get database requests when I run radiusd -X and
run radtest. My mysql tables look like the following:
<br>
<br>
mysql> select * from radcheck;
<br>
+----+----------+--------------+----+----------------------------------+
<br>
| id | username | attribute | op |
value |
<br>
+----+----------+--------------+----+----------------------------------+
<br>
| 1 | testuser | MD5-Password | := |
179ad45c6ce2cb97cf1029e212046e81 |
<br>
+----+----------+--------------+----+----------------------------------+
<br>
1 row in set (0.00 sec)
<br>
<br>
I have also tried this with Attribute set to Cleartext-Password and
op set to == with the same result.
<br>
<br>
mysql> select * from radgroupcheck;
<br>
+----+-------------+-----------+----+---------+
<br>
| id | groupname | attribute | op | value |
<br>
+----+-------------+-----------+----+---------+
<br>
| 1 | normalusers | Auth-Type | := | MS-CHAP |
<br>
+----+-------------+-----------+----+---------+
<br>
1 row in set (0.00 sec)
<br>
<br>
mysql> select * from radgroupreply;
<br>
+----+-------------+--------------------+----+---------------------+
<br>
| id | groupname | attribute | op | value |
<br>
+----+-------------+--------------------+----+---------------------+
<br>
| 1 | normalusers | Framed-Compression | = | Van-Jacobson-TCP-IP |
<br>
+----+-------------+--------------------+----+---------------------+
<br>
1 row in set (0.00 sec)
<br>
<br>
mysql> select * from radpostauth;
<br>
+----+----------+--------------+---------------+---------------------+
<br>
| id | username | pass | reply | authdate
|
<br>
+----+----------+--------------+---------------+---------------------+
<br>
| 1 | testuser | testuserpass | Access-Reject | 2010-12-16 23:45:22
|
<br>
| 2 | testuser | testuserpass | Access-Reject | 2010-12-16 23:52:18
|
<br>
| 3 | testuser | testuserpass | Access-Reject | 2010-12-17 00:24:07
|
<br>
| 4 | root | changed | Access-Accept | 2010-12-17 01:28:43
|
<br>
| 5 | user1 | password1 | Access-Reject | 2010-12-17 01:29:01
|
<br>
| 6 | root | changed | Access-Accept | 2010-12-17 01:38:59
|
<br>
| 7 | todd | changed | Access-Accept | 2010-12-17 01:41:16
|
<br>
| 8 | user1 | password1 | Access-Reject | 2010-12-17 02:06:47
|
<br>
| 9 | user1 | password1 | Access-Reject | 2010-12-17 02:18:37
|
<br>
| 10 | testuser | testpass | Access-Reject | 2010-12-17 05:05:05
|
<br>
| 11 | testuser | testpass | Access-Reject | 2010-12-17 05:10:04
|
<br>
| 12 | testuser | testpass | Access-Reject | 2010-12-17 05:24:06
|
<br>
| 13 | testuser | testpass | Access-Reject | 2010-12-17 05:35:10
|
<br>
| 14 | testuser | testpass | Access-Reject | 2010-12-17 06:09:40
|
<br>
| 15 | testuser | testpass | Access-Reject | 2010-12-17 06:28:45
|
<br>
| 16 | testuser | testpass | Access-Reject | 2010-12-17 06:43:24
|
<br>
+----+----------+--------------+---------------+---------------------+
<br>
16 rows in set (0.00 sec)
<br>
<br>
The Access-Accepts that I got here is when I switched it to use the
/etc/passwd file.
<br>
<br>
mysql> select * from radreply;
<br>
+----+----------+-------------------+----+-----------+
<br>
| id | username | attribute | op | value |
<br>
+----+----------+-------------------+----+-----------+
<br>
| 1 | testuser | Framed-IP-Address | = | 127.0.0.1 |
<br>
+----+----------+-------------------+----+-----------+
<br>
1 row in set (0.00 sec)
<br>
<br>
mysql> select * from radusergroup;
<br>
+----------+-------------+----------+
<br>
| username | groupname | priority |
<br>
+----------+-------------+----------+
<br>
| testuser | normalusers | 1 |
<br>
+----------+-------------+----------+
<br>
1 row in set (0.00 sec)
<br>
<br>
When I start freeradius in debug mode (radiusd -X) I get the
following:
<br>
<br>
root@krazy:/etc/raddb# radiusd -X
<br>
FreeRADIUS Version 2.1.10, for host x86_64-unknown-linux-gnu, built
on Dec 12 2010 at 00:37:40
<br>
Copyright (C) 1999-2009 The FreeRADIUS server project and
contributors.
<br>
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
<br>
PARTICULAR PURPOSE.
<br>
You may redistribute copies of FreeRADIUS under the terms of the
<br>
GNU General Public License v2.
<br>
Starting - reading configuration files ...
<br>
including configuration file /etc/raddb/radiusd.conf
<br>
including configuration file /etc/raddb/proxy.conf
<br>
including configuration file /etc/raddb/clients.conf
<br>
including files in directory <i class="moz-txt-slash"><span
class="moz-txt-tag">/</span>etc/raddb/modules<span
class="moz-txt-tag">/</span></i>
<br>
including configuration file /etc/raddb/modules/smbpasswd
<br>
including configuration file /etc/raddb/modules/mac2ip
<br>
including configuration file /etc/raddb/modules/inner-eap
<br>
including configuration file /etc/raddb/modules/pam
<br>
including configuration file /etc/raddb/modules/ippool
<br>
including configuration file /etc/raddb/modules/detail.log
<br>
including configuration file /etc/raddb/modules/unix
<br>
including configuration file /etc/raddb/modules/dynamic_clients
<br>
including configuration file
/etc/raddb/modules/sqlcounter_expire_on_login
<br>
including configuration file /etc/raddb/modules/detail.example.com
<br>
including configuration file /etc/raddb/modules/preprocess
<br>
including configuration file /etc/raddb/modules/perl
<br>
including configuration file /etc/raddb/modules/always
<br>
including configuration file /etc/raddb/modules/krb5
<br>
including configuration file /etc/raddb/modules/digest
<br>
including configuration file /etc/raddb/modules/realm
<br>
including configuration file /etc/raddb/modules/radutmp
<br>
including configuration file /etc/raddb/modules/expr
<br>
including configuration file /etc/raddb/modules/detail
<br>
including configuration file /etc/raddb/modules/etc_group
<br>
including configuration file /etc/raddb/modules/cui
<br>
including configuration file /etc/raddb/modules/ldap
<br>
including configuration file /etc/raddb/modules/linelog
<br>
including configuration file /etc/raddb/modules/policy
<br>
including configuration file /etc/raddb/modules/echo
<br>
including configuration file /etc/raddb/modules/exec
<br>
including configuration file /etc/raddb/modules/wimax
<br>
including configuration file /etc/raddb/modules/sql_log
<br>
including configuration file /etc/raddb/modules/otp
<br>
including configuration file /etc/raddb/modules/logintime
<br>
including configuration file /etc/raddb/modules/attr_filter
<br>
including configuration file /etc/raddb/modules/pap
<br>
including configuration file /etc/raddb/modules/acct_unique
<br>
including configuration file /etc/raddb/modules/opendirectory
<br>
including configuration file /etc/raddb/modules/mac2vlan
<br>
including configuration file /etc/raddb/modules/passwd
<br>
including configuration file /etc/raddb/modules/mschap
<br>
including configuration file /etc/raddb/modules/checkval
<br>
including configuration file /etc/raddb/modules/files
<br>
including configuration file /etc/raddb/modules/expiration
<br>
including configuration file /etc/raddb/modules/smsotp
<br>
including configuration file /etc/raddb/modules/chap
<br>
including configuration file /etc/raddb/modules/sradutmp
<br>
including configuration file /etc/raddb/modules/counter
<br>
including configuration file /etc/raddb/modules/ntlm_auth
<br>
including configuration file /etc/raddb/modules/attr_rewrite
<br>
including configuration file /etc/raddb/eap.conf
<br>
including configuration file /etc/raddb/sql.conf
<br>
including configuration file /etc/raddb/sql/mysql/dialup.conf
<br>
including configuration file /etc/raddb/policy.conf
<br>
including files in directory <i class="moz-txt-slash"><span
class="moz-txt-tag">/</span>etc/raddb/sites-enabled<span
class="moz-txt-tag">/</span></i>
<br>
including configuration file /etc/raddb/sites-enabled/default
<br>
including configuration file /etc/raddb/sites-enabled/inner-tunnel
<br>
including configuration file /etc/raddb/sites-enabled/control-socket
<br>
main {
<br>
allow_core_dumps = no
<br>
}
<br>
including dictionary file /etc/raddb/dictionary
<br>
main {
<br>
prefix = "/usr/local"
<br>
localstatedir = "/var"
<br>
logdir = "/var/log/radius"
<br>
libdir = "<i class="moz-txt-slash"><span class="moz-txt-tag">/</span>usr/local/lib<span
class="moz-txt-tag">/</span></i>"
<br>
radacctdir = "/var/log/radius/radacct"
<br>
hostname_lookups = no
<br>
max_request_time = 30
<br>
cleanup_delay = 5
<br>
max_requests = 1024
<br>
pidfile = "/var/run/radiusd/radiusd.pid"
<br>
checkrad = "/usr/local/sbin/checkrad"
<br>
debug_level = 0
<br>
proxy_requests = no
<br>
log {
<br>
stripped_names = no
<br>
auth = no
<br>
auth_badpass = no
<br>
auth_goodpass = no
<br>
}
<br>
security {
<br>
max_attributes = 200
<br>
reject_delay = 1
<br>
status_server = yes
<br>
}
<br>
}
<br>
radiusd: #### Loading Realms and Home Servers ####
<br>
proxy server {
<br>
retry_delay = 5
<br>
retry_count = 3
<br>
default_fallback = no
<br>
dead_time = 120
<br>
wake_all_if_all_dead = no
<br>
}
<br>
home_server localhost {
<br>
ipaddr = 127.0.0.1
<br>
port = 1812
<br>
type = "auth"
<br>
secret = "testing123"
<br>
response_window = 20
<br>
max_outstanding = 65536
<br>
require_message_authenticator = yes
<br>
zombie_period = 40
<br>
status_check = "status-server"
<br>
ping_interval = 30
<br>
check_interval = 30
<br>
num_answers_to_alive = 3
<br>
num_pings_to_alive = 3
<br>
revive_interval = 120
<br>
status_check_timeout = 4
<br>
irt = 2
<br>
mrt = 16
<br>
mrc = 5
<br>
mrd = 30
<br>
}
<br>
home_server_pool my_auth_failover {
<br>
type = fail-over
<br>
home_server = localhost
<br>
}
<br>
realm example.com {
<br>
auth_pool = my_auth_failover
<br>
}
<br>
realm LOCAL {
<br>
}
<br>
radiusd: #### Loading Clients ####
<br>
client localhost {
<br>
ipaddr = 127.0.0.1
<br>
require_message_authenticator = no
<br>
secret = "testing123"
<br>
nastype = "other"
<br>
}
<br>
radiusd: #### Instantiating modules ####
<br>
instantiate {
<br>
Module: Linked to module rlm_exec
<br>
Module: Instantiating module "exec" from file
/etc/raddb/modules/exec
<br>
exec {
<br>
wait = no
<br>
input_pairs = "request"
<br>
shell_escape = yes
<br>
}
<br>
Module: Linked to module rlm_expr
<br>
Module: Instantiating module "expr" from file
/etc/raddb/modules/expr
<br>
Module: Linked to module rlm_expiration
<br>
Module: Instantiating module "expiration" from file
/etc/raddb/modules/expiration
<br>
expiration {
<br>
reply-message = "Password Has Expired "
<br>
}
<br>
Module: Linked to module rlm_logintime
<br>
Module: Instantiating module "logintime" from file
/etc/raddb/modules/logintime
<br>
logintime {
<br>
reply-message = "You are calling outside your allowed
timespan "
<br>
minimum-timeout = 60
<br>
}
<br>
}
<br>
radiusd: #### Loading Virtual Servers ####
<br>
server inner-tunnel { # from file
/etc/raddb/sites-enabled/inner-tunnel
<br>
modules {
<br>
Module: Checking authenticate {...} for more modules to load
<br>
Module: Linked to module rlm_pap
<br>
Module: Instantiating module "pap" from file /etc/raddb/modules/pap
<br>
pap {
<br>
encryption_scheme = "auto"
<br>
auto_header = no
<br>
}
<br>
Module: Linked to module rlm_chap
<br>
Module: Instantiating module "chap" from file
/etc/raddb/modules/chap
<br>
Module: Linked to module rlm_mschap
<br>
Module: Instantiating module "mschap" from file
/etc/raddb/modules/mschap
<br>
mschap {
<br>
use_mppe = yes
<br>
require_encryption = no
<br>
require_strong = no
<br>
with_ntdomain_hack = no
<br>
}
<br>
Module: Linked to module rlm_unix
<br>
Module: Instantiating module "unix" from file
/etc/raddb/modules/unix
<br>
unix {
<br>
radwtmp = "/var/log/radius/radwtmp"
<br>
}
<br>
Module: Linked to module rlm_eap
<br>
Module: Instantiating module "eap" from file /etc/raddb/eap.conf
<br>
eap {
<br>
default_eap_type = "peap"
<br>
timer_expire = 60
<br>
ignore_unknown_eap_types = no
<br>
cisco_accounting_username_bug = no
<br>
max_sessions = 4096
<br>
}
<br>
Module: Linked to sub-module rlm_eap_md5
<br>
Module: Instantiating eap-md5
<br>
Module: Linked to sub-module rlm_eap_leap
<br>
Module: Instantiating eap-leap
<br>
Module: Linked to sub-module rlm_eap_gtc
<br>
Module: Instantiating eap-gtc
<br>
gtc {
<br>
challenge = "Password: "
<br>
auth_type = "PAP"
<br>
}
<br>
Module: Linked to sub-module rlm_eap_tls
<br>
Module: Instantiating eap-tls
<br>
tls {
<br>
rsa_key_exchange = no
<br>
dh_key_exchange = yes
<br>
rsa_key_length = 512
<br>
dh_key_length = 512
<br>
verify_depth = 0
<br>
CA_path = "/etc/raddb/certs"
<br>
pem_file_type = yes
<br>
private_key_file = "/etc/raddb/certs/server.pem"
<br>
certificate_file = "/etc/raddb/certs/server.pem"
<br>
CA_file = "/etc/raddb/certs/ca.pem"
<br>
private_key_password = "whatever"
<br>
dh_file = "/etc/raddb/certs/dh"
<br>
random_file = "/etc/raddb/certs/random"
<br>
fragment_size = 1024
<br>
include_length = yes
<br>
check_crl = no
<br>
cipher_list = "DEFAULT"
<br>
make_cert_command = "/etc/raddb/certs/bootstrap"
<br>
cache {
<br>
enable = no
<br>
lifetime = 24
<br>
max_entries = 255
<br>
}
<br>
verify {
<br>
}
<br>
}
<br>
Module: Linked to sub-module rlm_eap_ttls
<br>
Module: Instantiating eap-ttls
<br>
ttls {
<br>
default_eap_type = "md5"
<br>
copy_request_to_tunnel = no
<br>
use_tunneled_reply = no
<br>
virtual_server = "inner-tunnel"
<br>
include_length = yes
<br>
}
<br>
Module: Linked to sub-module rlm_eap_peap
<br>
Module: Instantiating eap-peap
<br>
peap {
<br>
default_eap_type = "mschapv2"
<br>
copy_request_to_tunnel = no
<br>
use_tunneled_reply = no
<br>
proxy_tunneled_request_as_eap = yes
<br>
}
<br>
Module: Linked to sub-module rlm_eap_mschapv2
<br>
Module: Instantiating eap-mschapv2
<br>
mschapv2 {
<br>
with_ntdomain_hack = no
<br>
}
<br>
Module: Checking authorize {...} for more modules to load
<br>
Module: Linked to module rlm_sql
<br>
Module: Instantiating module "sql" from file /etc/raddb/sql.conf
<br>
sql {
<br>
driver = "rlm_sql_mysql"
<br>
server = "localhost"
<br>
port = ""
<br>
login = "radius"
<br>
password = "neffadmin"
<br>
radius_db = "radius"
<br>
read_groups = yes
<br>
sqltrace = yes
<br>
sqltracefile = "/var/log/radius/sqltrace.sql"
<br>
readclients = yes
<br>
deletestalesessions = yes
<br>
num_sql_socks = 5
<br>
lifetime = 0
<br>
max_queries = 0
<br>
sql_user_name = "%{Stripped-User-Name}"
<br>
default_user_profile = "DEFAULT"
<br>
nas_query = "SELECT id, nasname, shortname, type, secret,
server FROM nas"
<br>
authorize_check_query = "SELECT id, username, attribute,
value, op FROM radcheck WHERE username =
'%{SQL-User-Name}' ORDER BY id"
<br>
authorize_reply_query = "SELECT id, username, attribute,
value, op FROM radreply WHERE username =
'%{SQL-User-Name}' ORDER BY id"
<br>
authorize_group_check_query = "SELECT id, groupname,
attribute, Value, op FROM
radgroupcheck WHERE groupname = '%{Sql-Group}'
ORDER BY id"
<br>
authorize_group_reply_query = "SELECT id, groupname,
attribute, value, op FROM
radgroupreply WHERE groupname = '%{Sql-Group}'
ORDER BY id"
<br>
accounting_onoff_query = " UPDATE radacct
SET acctstoptime = '%S',
acctsessiontime = unix_timestamp('%S')
-
unix_timestamp(acctstarttime), acctterminatecause =
'%{Acct-Terminate-Cause}', acctstopdelay =
%{%{Acct-Delay-Time}:-0} WHERE acctstoptime IS
NULL AND nasipaddress =
'%{NAS-IP-Address}' AND acctstarttime <= '%S'"
<br>
accounting_update_query = " UPDATE
radacct SET framedipaddress =
'%{Framed-IP-Address}', acctsessiontime =
'%{Acct-Session-Time}', acctinputoctets =
'%{%{Acct-Input-Gigawords}:-0}' << 32
|
'%{%{Acct-Input-Octets}:-0}', acctoutputoctets =
'%{%{Acct-Output-Gigawords}:-0}' << 32
|
'%{%{Acct-Output-Octets}:-0}' WHERE acctsessionid =
'%{Acct-Session-Id}' AND username =
'%{SQL-User-Name}' AND nasipaddress =
'%{NAS-IP-Address}'"
<br>
accounting_update_query_alt = " INSERT INTO
radacct (acctsessionid, acctuniqueid,
username, realm, nasipaddress,
nasportid, nasporttype, acctstarttime,
acctsessiontime, acctauthentic, connectinfo_start,
acctinputoctets, acctoutputoctets, calledstationid,
callingstationid, servicetype, framedprotocol,
framedipaddress, acctstartdelay,
xascendsessionsvrkey) VALUES
('%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}',
'%{SQL-User-Name}', '%{Realm}', '%{NAS-IP-Address}',
'%{NAS-Port}', '%{NAS-Port-Type}',
DATE_SUB('%S', INTERVAL
(%{%{Acct-Session-Time}:-0} +
%{%{Acct-Delay-Time}:-0}) SECOND),
'%{Acct-Session-Time}', '%{Acct-Authentic}',
'', '%{%{Acct-Input-Gigawords}:-0}' << 32
| '%{%{Acct-Input-Octets}:-0}',
'%{%{Acct-Output-Gigawords}:-0}' << 32 |
'%{%{Acct-Output-Octets}:-0}', '%{Called-Station-Id}',
'%{Calling-Station-Id}', '%{Service-Type}',
'%{Framed-Protocol}',
'%{Framed-IP-Address}', '0',
'%{X-Ascend-Session-Svr-Key}')"
<br>
accounting_start_query = " INSERT INTO
radacct (acctsessionid, acctuniqueid,
username, realm, nasipaddress,
nasportid, nasporttype, acctstarttime,
acctstoptime, acctsessiontime, acctauthentic,
connectinfo_start, connectinfo_stop, acctinputoctets,
acctoutputoctets, calledstationid, callingstationid,
acctterminatecause, servicetype, framedprotocol,
framedipaddress, acctstartdelay, acctstopdelay,
xascendsessionsvrkey) VALUES
('%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}',
'%{SQL-User-Name}', '%{Realm}', '%{NAS-IP-Address}',
'%{NAS-Port}', '%{NAS-Port-Type}', '%S',
NULL, '0', '%{Acct-Authentic}',
'%{Connect-Info}', '', '0', '0',
'%{Called-Station-Id}', '%{Calling-Station-Id}', '',
'%{Service-Type}', '%{Framed-Protocol}',
'%{Framed-IP-Address}', '%{%{Acct-Delay-Time}:-0}',
'0', '%{X-Ascend-Session-Svr-Key}')"
<br>
accounting_start_query_alt = " UPDATE radacct
SET acctstarttime = '%S',
acctstartdelay = '%{%{Acct-Delay-Time}:-0}',
connectinfo_start = '%{Connect-Info}' WHERE acctsessionid
= '%{Acct-Session-Id}' AND username =
'%{SQL-User-Name}' AND nasipaddress =
'%{NAS-IP-Address}'"
<br>
accounting_stop_query = " UPDATE radacct
SET acctstoptime = '%S',
acctsessiontime = '%{Acct-Session-Time}',
acctinputoctets = '%{%{Acct-Input-Gigawords}:-0}' << 32
|
'%{%{Acct-Input-Octets}:-0}', acctoutputoctets =
'%{%{Acct-Output-Gigawords}:-0}' << 32
|
'%{%{Acct-Output-Octets}:-0}', acctterminatecause =
'%{Acct-Terminate-Cause}', acctstopdelay =
'%{%{Acct-Delay-Time}:-0}', connectinfo_stop =
'%{Connect-Info}' WHERE acctsessionid =
'%{Acct-Session-Id}' AND username =
'%{SQL-User-Name}' AND nasipaddress =
'%{NAS-IP-Address}'"
<br>
accounting_stop_query_alt = " INSERT INTO
radacct (acctsessionid, acctuniqueid,
username, realm, nasipaddress, nasportid,
nasporttype, acctstarttime, acctstoptime,
acctsessiontime, acctauthentic, connectinfo_start,
connectinfo_stop, acctinputoctets, acctoutputoctets,
calledstationid, callingstationid, acctterminatecause,
servicetype, framedprotocol, framedipaddress,
acctstartdelay, acctstopdelay) VALUES
('%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}',
'%{SQL-User-Name}', '%{Realm}', '%{NAS-IP-Address}',
'%{NAS-Port}', '%{NAS-Port-Type}',
DATE_SUB('%S', INTERVAL (%{%{Acct-Session-Time}:-0}
+ %{%{Acct-Delay-Time}:-0}) SECOND),
'%S', '%{Acct-Session-Time}', '%{Acct-Authentic}', '',
'%{Connect-Info}', '%{%{Acct-Input-Gigawords}:-0}'
<< 32 |
'%{%{Acct-Input-Octets}:-0}',
'%{%{Acct-Output-Gigawords}:-0}' << 32 |
'%{%{Acct-Output-Octets}:-0}', '%{Called-Station-Id}',
'%{Calling-Station-Id}',
'%{Acct-Terminate-Cause}', '%{Service-Type}',
'%{Framed-Protocol}', '%{Framed-IP-Address}', '0',
'%{%{Acct-Delay-Time}:-0}')"
<br>
group_membership_query = "SELECT groupname FROM
radusergroup WHERE username = '%{SQL-User-Name}'
ORDER BY priority"
<br>
connect_failure_retry_delay = 60
<br>
simul_count_query = ""
<br>
simul_verify_query = "SELECT radacctid, acctsessionid,
username, nasipaddress, nasportid,
framedipaddress, callingstationid,
framedprotocol FROM
radacct WHERE username =
'%{SQL-User-Name}' AND acctstoptime
IS NULL"
<br>
postauth_query = "INSERT INTO
radpostauth (username, pass, reply,
authdate) VALUES
(
'%{User-Name}',
'%{%{User-Password}:-%{Chap-Password}}',
'%{reply:Packet-Type}', '%S')"
<br>
safe-characters =
"@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_:
/"
<br>
}
<br>
rlm_sql (sql): Driver rlm_sql_mysql (module rlm_sql_mysql) loaded
and linked
<br>
rlm_sql (sql): Attempting to connect to radius@localhost:/radius
<br>
rlm_sql (sql): starting 0
<br>
rlm_sql (sql): Attempting to connect rlm_sql_mysql #0
<br>
rlm_sql_mysql: Starting connect to MySQL server for #0
<br>
rlm_sql (sql): Connected new DB handle, #0
<br>
rlm_sql (sql): starting 1
<br>
rlm_sql (sql): Attempting to connect rlm_sql_mysql #1
<br>
rlm_sql_mysql: Starting connect to MySQL server for #1
<br>
rlm_sql (sql): Connected new DB handle, #1
<br>
rlm_sql (sql): starting 2
<br>
rlm_sql (sql): Attempting to connect rlm_sql_mysql #2
<br>
rlm_sql_mysql: Starting connect to MySQL server for #2
<br>
rlm_sql (sql): Connected new DB handle, #2
<br>
rlm_sql (sql): starting 3
<br>
rlm_sql (sql): Attempting to connect rlm_sql_mysql #3
<br>
rlm_sql_mysql: Starting connect to MySQL server for #3
<br>
rlm_sql (sql): Connected new DB handle, #3
<br>
rlm_sql (sql): starting 4
<br>
rlm_sql (sql): Attempting to connect rlm_sql_mysql #4
<br>
rlm_sql_mysql: Starting connect to MySQL server for #4
<br>
rlm_sql (sql): Connected new DB handle, #4
<br>
rlm_sql (sql): Processing generate_sql_clients
<br>
rlm_sql (sql) in generate_sql_clients: query is SELECT id, nasname,
shortname, type, secret, server FROM nas
<br>
rlm_sql (sql): Reserving sql socket id: 4
<br>
rlm_sql_mysql: query: SELECT id, nasname, shortname, type, secret,
server FROM nas
<br>
rlm_sql (sql): Released sql socket id: 4
<br>
Module: Checking session {...} for more modules to load
<br>
Module: Linked to module rlm_radutmp
<br>
Module: Instantiating module "radutmp" from file
/etc/raddb/modules/radutmp
<br>
radutmp {
<br>
filename = "/var/log/radius/radutmp"
<br>
username = "%{User-Name}"
<br>
case_sensitive = yes
<br>
check_with_nas = yes
<br>
perm = 384
<br>
callerid = yes
<br>
}
<br>
Module: Checking post-proxy {...} for more modules to load
<br>
Module: Checking post-auth {...} for more modules to load
<br>
Module: Linked to module rlm_attr_filter
<br>
Module: Instantiating module "attr_filter.access_reject" from file
/etc/raddb/modules/attr_filter
<br>
attr_filter attr_filter.access_reject {
<br>
attrsfile = "/etc/raddb/attrs.access_reject"
<br>
key = "%{User-Name}"
<br>
}
<br>
} # modules
<br>
} # server
<br>
server { # from file /etc/raddb/radiusd.conf
<br>
modules {
<br>
Module: Checking authorize {...} for more modules to load
<br>
Module: Checking preacct {...} for more modules to load
<br>
Module: Linked to module rlm_acct_unique
<br>
Module: Instantiating module "acct_unique" from file
/etc/raddb/modules/acct_unique
<br>
acct_unique {
<br>
key = "User-Name, Acct-Session-Id, NAS-IP-Address,
Client-IP-Address, NAS-Port"
<br>
}
<br>
Module: Checking accounting {...} for more modules to load
<br>
Module: Checking session {...} for more modules to load
<br>
Module: Checking post-auth {...} for more modules to load
<br>
} # modules
<br>
} # server
<br>
radiusd: #### Opening IP addresses and Ports ####
<br>
listen {
<br>
type = "auth"
<br>
ipaddr = *
<br>
port = 0
<br>
}
<br>
listen {
<br>
type = "acct"
<br>
ipaddr = *
<br>
port = 0
<br>
}
<br>
listen {
<br>
type = "control"
<br>
listen {
<br>
socket = "/var/run/radiusd/radiusd.sock"
<br>
}
<br>
}
<br>
listen {
<br>
type = "auth"
<br>
ipaddr = 127.0.0.1
<br>
port = 18120
<br>
}
<br>
Listening on authentication address * port 1812
<br>
Listening on accounting address * port 1813
<br>
Listening on command file /var/run/radiusd/radiusd.sock
<br>
Listening on authentication address 127.0.0.1 port 18120 as server
inner-tunnel
<br>
Ready to process requests.
<br>
<br>
And when I run radtest testuser testpass localhost 1812 testing123
in another window I get the following output in the radiusd -X
window:
<br>
<br>
rad_recv: Access-Request packet from host 127.0.0.1 port 58413,
id=90, length=60
<br>
User-Name = "testuser"
<br>
User-Password = "testpass"
<br>
NAS-IP-Address = 127.0.0.1
<br>
NAS-Port = 1812
<br>
# Executing section authorize from file
/etc/raddb/sites-enabled/default
<br>
+- entering group authorize {...}
<br>
[sql] expand: %{Stripped-User-Name} ->
<br>
[sql] sql_set_user escaped user --> ''
<br>
rlm_sql (sql): Reserving sql socket id: 3
<br>
[sql] expand: SELECT id, username, attribute, value, op
FROM radcheck WHERE username =
'%{SQL-User-Name}' ORDER BY id -> SELECT id, username,
attribute, value, op FROM radcheck WHERE
username = '' ORDER BY id
<br>
rlm_sql_mysql: query: SELECT id, username, attribute, value,
op FROM radcheck WHERE username = ''
ORDER BY id
<br>
[sql] expand: SELECT groupname FROM
radusergroup WHERE username = '%{SQL-User-Name}'
ORDER BY priority -> SELECT groupname FROM
radusergroup WHERE username = '' ORDER BY
priority
<br>
rlm_sql_mysql: query: SELECT groupname FROM
radusergroup WHERE username = '' ORDER BY
priority
<br>
[sql] Checking profile DEFAULT
<br>
[sql] sql_set_user escaped user --> 'DEFAULT'
<br>
[sql] expand: SELECT groupname FROM
radusergroup WHERE username = '%{SQL-User-Name}'
ORDER BY priority -> SELECT groupname FROM
radusergroup WHERE username = 'DEFAULT' ORDER BY
priority
<br>
rlm_sql_mysql: query: SELECT groupname FROM
radusergroup WHERE username = 'DEFAULT' ORDER BY
priority
<br>
rlm_sql (sql): Released sql socket id: 3
<br>
[sql] User not found
<br>
++[sql] returns notfound
<br>
ERROR: No authenticate method (Auth-Type) found for the request:
Rejecting the user
<br>
Failed to authenticate the user.
<br>
Using Post-Auth-Type Reject
<br>
# Executing group from file /etc/raddb/sites-enabled/default
<br>
+- entering group REJECT {...}
<br>
[sql] expand: %{Stripped-User-Name} ->
<br>
[sql] sql_set_user escaped user --> ''
<br>
[sql] expand: %{User-Password} -> testpass
<br>
[sql] expand: INSERT INTO radpostauth
(username, pass, reply, authdate) VALUES
(
'%{User-Name}',
'%{%{User-Password}:-%{Chap-Password}}',
'%{reply:Packet-Type}', '%S') -> INSERT INTO
radpostauth (username, pass, reply,
authdate) VALUES
( 'testuser',
'testpass', 'Access-Reject', '2010-12-17
07:21:15')
<br>
[sql] expand: /var/log/radius/sqltrace.sql ->
/var/log/radius/sqltrace.sql
<br>
rlm_sql (sql) in sql_postauth: query is INSERT INTO
radpostauth (username, pass, reply,
authdate) VALUES
( 'testuser',
'testpass', 'Access-Reject', '2010-12-17
07:21:15')
<br>
rlm_sql (sql): Reserving sql socket id: 2
<br>
rlm_sql_mysql: query: INSERT INTO
radpostauth (username, pass, reply,
authdate) VALUES
( 'testuser',
'testpass', 'Access-Reject', '2010-12-17
07:21:15')
<br>
rlm_sql (sql): Released sql socket id: 2
<br>
++[sql] returns ok
<br>
[attr_filter.access_reject] expand: %{User-Name} -> testuser
<br>
attr_filter: Matched entry DEFAULT at line 11
<br>
++[attr_filter.access_reject] returns updated
<br>
Delaying reject of request 0 for 1 seconds
<br>
Going to the next request
<br>
Waking up in 0.9 seconds.
<br>
Sending delayed reject for request 0
<br>
Sending Access-Reject of id 90 to 127.0.0.1 port 58413
<br>
Waking up in 4.9 seconds.
<br>
Cleaning up request 0 ID 90 with timestamp +152
<br>
Ready to process requests.
<br>
<br>
And in the window where I ran radtest I get a Access-Reject
<br>
<br>
radtest testuser testpass localhost 1812 testing123
<br>
Sending Access-Request of id 90 to 127.0.0.1 port 1812
<br>
User-Name = "testuser"
<br>
User-Password = "testpass"
<br>
NAS-IP-Address = 127.0.0.1
<br>
NAS-Port = 1812
<br>
rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=90,
length=20
<br>
<br>
I not sure how to fix this I been searching for days with no luck.
</body>
</html>