<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: freeradius et rlm_sqlcounter</title>
	<atom:link href="http://aandre.evolix.net/2009/04/15/freeradius-et-rlm_sqlcounter/feed/" rel="self" type="application/rss+xml" />
	<link>http://aandre.evolix.net/2009/04/15/freeradius-et-rlm_sqlcounter/</link>
	<description>geeky lines</description>
	<lastBuildDate>Sun, 31 Jan 2010 11:16:07 +0100</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Ahmed</title>
		<link>http://aandre.evolix.net/2009/04/15/freeradius-et-rlm_sqlcounter/comment-page-1/#comment-18714</link>
		<dc:creator>Ahmed</dc:creator>
		<pubDate>Sun, 31 Jan 2010 11:16:07 +0000</pubDate>
		<guid isPermaLink="false">http://aandre.evolix.net/?p=260#comment-18714</guid>
		<description>Bonjour, j&#039;ai ajouté ce module mais tjrs il n&#039;est pas pris en considération.

Voici mon fichier de config :

prefix = /usr
exec_prefix = ${prefix}
sysconfdir = /etc
localstatedir = /var
sbindir = ${exec_prefix}/sbin
logdir = ${localstatedir}/log/freeradius
raddbdir = ${sysconfdir}/freeradius
radacctdir = ${logdir}/radacct
confdir = ${raddbdir}
run_dir = ${localstatedir}/run/freeradius
log_file = ${logdir}/radius.log
log_destination = files
libdir = ${exec_prefix}/lib/freeradius
pidfile = ${run_dir}/freeradius.pid
max_request_time = 30
delete_blocked_requests = no
cleanup_delay = 5
max_requests = 1024
listen {
    ipaddr = *
    port = 0
    type = auth
}
listen {
    ipaddr = *
    port = 0
    type = acct
}
hostname_lookups = no
allow_core_dumps = no
regular_expressions    = yes
extended_expressions    = yes
log {
    syslog_facility = daemon
}
log_stripped_names = no
log_auth = no
log_auth_badpass = no
log_auth_goodpass = no
checkrad = ${sbindir}/checkrad
security {
    max_attributes = 200
    reject_delay = 1
    status_server = no
}
proxy_requests  = no
$INCLUDE  ${confdir}/clients.conf
snmp    = no
thread pool {
    start_servers = 5
    max_servers = 32
    min_spare_servers = 3
    max_spare_servers = 10
    max_requests_per_server = 0
}
modules {
    pap {
        auto_header = no
    }
    chap {
        authtype = CHAP
    }
    pam {
        pam_auth = radiusd
    }
    unix {
        radwtmp = ${logdir}/radwtmp
    }
$INCLUDE ${confdir}/eap.conf
    mschap {
    }
    ldap ldap {
        server = &quot;ldap-neel.grenoble.cnrs.fr&quot;
                identity = &quot;cn=radius,dc=grenoble,dc=cnrs,dc=fr&quot;
        password = admin-pwd
        basedn = &quot;dc=grenoble,dc=cnrs,dc=fr&quot;
                filter = &quot;(&#124;(&#124;(uid=%{Stripped-User-Name:-%{User-Name}})(mail=%{Stripped-User-Name:-%{User-Name}}))(mail=%{Stripped-User-Name:-%{User-Name}}@grenoble.cnrs.fr))&quot;
        base_filter = &quot;(objectclass=radiusprofile)&quot;
        ldap_connections_number = 5
        timeout = 4
        timelimit = 3
        net_timeout = 1
        tls {
            start_tls = no
        }
        dictionary_mapping = ${raddbdir}/ldap.attrmap
        auto_header = yes
        groupname_attribute = radiusGroupName
                #groupmembership_filter = &quot;(&#124;(&amp;(uid=%{Stripped-User-Name:-%{User-Name}}))(&amp;(aliasMail=%{Stripped-User-Name:-%{User-Name}})))(objectclass=radiusProfile)&quot;
                groupmembership_filter = &quot;(&#124;(&#124;(uid=%{Stripped-User-Name:-%{User-Name}})(mail=%{Stripped-User-Name:-%{User-Name}}))(mail=%{Stripped-User-Name:-%{User-Name}}@grenoble.cnrs.fr))&quot;
        groupmembership_attribute = radiusGroupName
    }
    realm IPASS {
        format = prefix
        delimiter = &quot;/&quot;
    }
    realm suffix {
        format = suffix
        delimiter = &quot;@&quot;
    }
    realm realmpercent {
        format = suffix
        delimiter = &quot;%&quot;
    }
    realm ntdomain {
        format = prefix
        delimiter = &quot;\\&quot;
    }   
    checkval {
        item-name = Calling-Station-Id
        check-name = Calling-Station-Id
        data-type = string
    }
    attr_rewrite addtunneltype {
        attribute = Tunnel-Type
                searchin = proxy_reply
                searchfor = &quot;[+ ]&quot;
                replacewith = &quot;VLAN&quot;
                new_attribute = yes
    }
    attr_rewrite  addtunnelmediumtype {
        attribute = Tunnel-Medium-Type
                searchin = proxy_reply
                searchfor = &quot;[+ ]&quot;
                replacewith = &quot;IEEE-802&quot;
                new_attribute = yes   
    }
    attr_rewrite addvlanmcbt {
           attribute = Tunnel-Private-Group-ID
               searchin = proxy_reply
               searchfor = &quot;[+ ]&quot;
               replacewith = &quot;244&quot;
               new_attribute = yes
    }
    preprocess {
        huntgroups = ${confdir}/huntgroups
        hints = ${confdir}/hints
        with_ascend_hack = no
        ascend_channels_per_line = 23
        with_ntdomain_hack = no
        with_specialix_jetstream_hack = no
        with_cisco_vsa_hack = no
    }
    files {
        usersfile = ${confdir}/users
        acctusersfile = ${confdir}/acct_users
        preproxy_usersfile = ${confdir}/preproxy_users
        compat = no
    }
    detail {
        detailfile = ${radacctdir}/%{Client-IP-Address}/detail-%Y%m%d
        detailperm = 0600
        header = &quot;%t&quot;
    }
    acct_unique {
        key = &quot;User-Name, Acct-Session-Id, NAS-IP-Address, Client-IP-Address, NAS-Port&quot;
    }
    $INCLUDE  ${confdir}/sql.conf
    radutmp {
        filename = ${logdir}/radutmp
        username = %{User-Name}
        case_sensitive = yes
        check_with_nas = yes       
        perm = 0600
        callerid = &quot;yes&quot;
    }
    radutmp sradutmp {
        filename = ${logdir}/sradutmp
        perm = 0644
        callerid = &quot;no&quot;
    }
    attr_filter attr_filter.post-proxy {
        attrsfile = ${confdir}/attrs
    }
    attr_filter attr_filter.pre-proxy {
        attrsfile = ${confdir}/attrs.pre-proxy
    }

sqlcounter noresetcounter {
                 counter-name = Max-All-Session-Time
              check-name = &quot;Max-All-Session&quot;
          reply-name = Session-Timeout
             sqlmod-inst = sql
               key = User-Name
                  reset = never
                  query = &quot;SELECT SUM(AcctSessionTime) FROM radacct WHERE UserName=&#039;%{%k}&#039;&quot;
}

sqlcounter hourlycounter {
                counter-name = Hourly-Session-Time
                check-name = Max-Hourly-Session
                reply-name = Session-Timeout
                sqlmod-inst = sql
                key = User-Name
                reset = hourly
                query = &quot;SELECT SUM(AcctSessionTime - \
                 GREATEST((%b - UNIX_TIMESTAMP(AcctStartTime)), 0)) \
                 FROM radacct WHERE UserName=&#039;%{%k}&#039; AND \
                 UNIX_TIMESTAMP(AcctStartTime) + AcctSessionTime &gt; &#039;%b&#039;&quot;
}

sqlcounter dailycounter {
                counter-name = Daily-Session-Time
                check-name = Max-Daily-Session
                reply-name = Session-Timeout
                sqlmod-inst = sql
                key = User-Name
                reset = daily
                query = &quot;SELECT SUM(AcctSessionTime - \
                 GREATEST((%b - UNIX_TIMESTAMP(AcctStartTime)), 0)) \
                 FROM radacct WHERE UserName=&#039;%{%k}&#039; AND \
                 UNIX_TIMESTAMP(AcctStartTime) + AcctSessionTime &gt; &#039;%b&#039;&quot;
}
     
sqlcounter monthlycounter {
                counter-name = Monthly-Session-Time
                check-name = Max-Monthly-Session
                reply-name = Session-Timeout
                sqlmod-inst = sql
                key = User-Name
                reset = monthly
                query = &quot;SELECT SUM(AcctSessionTime - \
                 GREATEST((%b - UNIX_TIMESTAMP(AcctStartTime)), 0)) \
                 FROM radacct WHERE UserName=&#039;%{%k}&#039; AND \
                 UNIX_TIMESTAMP(AcctStartTime) + AcctSessionTime &gt; &#039;%b&#039;&quot;
        }

sqlcounter yearlycounter {
                counter-name = Yearly-Session-Time
                check-name = Max-Yearly-Session
                reply-name = Session-Timeout
                sqlmod-inst = sql
                key = User-Name
                reset = 12m
                query = &quot;SELECT SUM(AcctSessionTime - \
                 GREATEST((%b - UNIX_TIMESTAMP(AcctStartTime)), 0)) \
                 FROM radacct WHERE UserName=&#039;%{%k}&#039; AND \
                 UNIX_TIMESTAMP(AcctStartTime) + AcctSessionTime &gt; &#039;%b&#039;&quot;
        }

   



    always fail {
        rcode = fail
    }
    always reject {
        rcode = reject
    }
    always ok {
        rcode = ok
        simulcount = 0
        mpp = no
    }
    expr {
    }
    digest {
    }
    expiration {
        reply-message = &quot;Password Has Expired\r\n&quot;
    }
    logintime {
        reply-message = &quot;You are calling outside your allowed timespan\r\n&quot;
        minimum-timeout = 60
    }
    exec {
        wait = yes
        input_pairs = request
        shell_escape = yes
        output = none
    }
    exec echo {
        wait = yes
        program = &quot;/bin/echo %{User-Name}&quot;
        input_pairs = request
        output_pairs = reply
        shell_escape = yes
    }
    logintime {
    }
}


   

instantiate {
    exec
    expr
    }

authorize {
    preprocess
    sql
    pap   
    chap
    mschap
    unix
    suffix
    eap
    files
Autz-Type LDAP {
        ldap
    }
    expiration   
    logintime
    noresetcounter
        hourlycounter
        dailycounter
        monthlycounter
        yearlycounter
}



authenticate {
        Auth-Type PAP {
          pap
        }
        Auth-Type CHAP {
          chap
        }
        eap
}

preacct {
    preprocess
    acct_unique
    suffix
    files
}
accounting {
    detail
    unix
    radutmp
    sql
}
session {
    radutmp
    sql
}
post-auth {
}
pre-proxy {
    files
}
post-proxy {
    Post-Proxy-Type post.proxy.mcbt {
        addtunneltype
        addtunnelmediumtype
        addvlanmcbt
        }
    eap
}



Est vous pouvez m&#039;aider ??</description>
		<content:encoded><![CDATA[<p>Bonjour, j&#8217;ai ajouté ce module mais tjrs il n&#8217;est pas pris en considération.</p>
<p>Voici mon fichier de config :</p>
<p>prefix = /usr<br />
exec_prefix = ${prefix}<br />
sysconfdir = /etc<br />
localstatedir = /var<br />
sbindir = ${exec_prefix}/sbin<br />
logdir = ${localstatedir}/log/freeradius<br />
raddbdir = ${sysconfdir}/freeradius<br />
radacctdir = ${logdir}/radacct<br />
confdir = ${raddbdir}<br />
run_dir = ${localstatedir}/run/freeradius<br />
log_file = ${logdir}/radius.log<br />
log_destination = files<br />
libdir = ${exec_prefix}/lib/freeradius<br />
pidfile = ${run_dir}/freeradius.pid<br />
max_request_time = 30<br />
delete_blocked_requests = no<br />
cleanup_delay = 5<br />
max_requests = 1024<br />
listen {<br />
    ipaddr = *<br />
    port = 0<br />
    type = auth<br />
}<br />
listen {<br />
    ipaddr = *<br />
    port = 0<br />
    type = acct<br />
}<br />
hostname_lookups = no<br />
allow_core_dumps = no<br />
regular_expressions    = yes<br />
extended_expressions    = yes<br />
log {<br />
    syslog_facility = daemon<br />
}<br />
log_stripped_names = no<br />
log_auth = no<br />
log_auth_badpass = no<br />
log_auth_goodpass = no<br />
checkrad = ${sbindir}/checkrad<br />
security {<br />
    max_attributes = 200<br />
    reject_delay = 1<br />
    status_server = no<br />
}<br />
proxy_requests  = no<br />
$INCLUDE  ${confdir}/clients.conf<br />
snmp    = no<br />
thread pool {<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 />
modules {<br />
    pap {<br />
        auto_header = no<br />
    }<br />
    chap {<br />
        authtype = CHAP<br />
    }<br />
    pam {<br />
        pam_auth = radiusd<br />
    }<br />
    unix {<br />
        radwtmp = ${logdir}/radwtmp<br />
    }<br />
$INCLUDE ${confdir}/eap.conf<br />
    mschap {<br />
    }<br />
    ldap ldap {<br />
        server = &#8220;ldap-neel.grenoble.cnrs.fr&#8221;<br />
                identity = &#8220;cn=radius,dc=grenoble,dc=cnrs,dc=fr&#8221;<br />
        password = admin-pwd<br />
        basedn = &#8220;dc=grenoble,dc=cnrs,dc=fr&#8221;<br />
                filter = &#8220;(|(|(uid=%{Stripped-User-Name:-%{User-Name}})(mail=%{Stripped-User-Name:-%{User-Name}}))(mail=%{Stripped-User-Name:-%{User-Name}}@grenoble.cnrs.fr))&#8221;<br />
        base_filter = &#8220;(objectclass=radiusprofile)&#8221;<br />
        ldap_connections_number = 5<br />
        timeout = 4<br />
        timelimit = 3<br />
        net_timeout = 1<br />
        tls {<br />
            start_tls = no<br />
        }<br />
        dictionary_mapping = ${raddbdir}/ldap.attrmap<br />
        auto_header = yes<br />
        groupname_attribute = radiusGroupName<br />
                #groupmembership_filter = &#8220;(|(&amp;(uid=%{Stripped-User-Name:-%{User-Name}}))(&amp;(aliasMail=%{Stripped-User-Name:-%{User-Name}})))(objectclass=radiusProfile)&#8221;<br />
                groupmembership_filter = &#8220;(|(|(uid=%{Stripped-User-Name:-%{User-Name}})(mail=%{Stripped-User-Name:-%{User-Name}}))(mail=%{Stripped-User-Name:-%{User-Name}}@grenoble.cnrs.fr))&#8221;<br />
        groupmembership_attribute = radiusGroupName<br />
    }<br />
    realm IPASS {<br />
        format = prefix<br />
        delimiter = &#8220;/&#8221;<br />
    }<br />
    realm suffix {<br />
        format = suffix<br />
        delimiter = &#8220;@&#8221;<br />
    }<br />
    realm realmpercent {<br />
        format = suffix<br />
        delimiter = &#8220;%&#8221;<br />
    }<br />
    realm ntdomain {<br />
        format = prefix<br />
        delimiter = &#8220;\\&#8221;<br />
    }<br />
    checkval {<br />
        item-name = Calling-Station-Id<br />
        check-name = Calling-Station-Id<br />
        data-type = string<br />
    }<br />
    attr_rewrite addtunneltype {<br />
        attribute = Tunnel-Type<br />
                searchin = proxy_reply<br />
                searchfor = &#8220;[+ ]&#8221;<br />
                replacewith = &#8220;VLAN&#8221;<br />
                new_attribute = yes<br />
    }<br />
    attr_rewrite  addtunnelmediumtype {<br />
        attribute = Tunnel-Medium-Type<br />
                searchin = proxy_reply<br />
                searchfor = &#8220;[+ ]&#8221;<br />
                replacewith = &#8220;IEEE-802&#8243;<br />
                new_attribute = yes<br />
    }<br />
    attr_rewrite addvlanmcbt {<br />
           attribute = Tunnel-Private-Group-ID<br />
               searchin = proxy_reply<br />
               searchfor = &#8220;[+ ]&#8221;<br />
               replacewith = &#8220;244&#8243;<br />
               new_attribute = yes<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 />
    files {<br />
        usersfile = ${confdir}/users<br />
        acctusersfile = ${confdir}/acct_users<br />
        preproxy_usersfile = ${confdir}/preproxy_users<br />
        compat = no<br />
    }<br />
    detail {<br />
        detailfile = ${radacctdir}/%{Client-IP-Address}/detail-%Y%m%d<br />
        detailperm = 0600<br />
        header = &#8220;%t&#8221;<br />
    }<br />
    acct_unique {<br />
        key = &#8220;User-Name, Acct-Session-Id, NAS-IP-Address, Client-IP-Address, NAS-Port&#8221;<br />
    }<br />
    $INCLUDE  ${confdir}/sql.conf<br />
    radutmp {<br />
        filename = ${logdir}/radutmp<br />
        username = %{User-Name}<br />
        case_sensitive = yes<br />
        check_with_nas = yes<br />
        perm = 0600<br />
        callerid = &#8220;yes&#8221;<br />
    }<br />
    radutmp sradutmp {<br />
        filename = ${logdir}/sradutmp<br />
        perm = 0644<br />
        callerid = &#8220;no&#8221;<br />
    }<br />
    attr_filter attr_filter.post-proxy {<br />
        attrsfile = ${confdir}/attrs<br />
    }<br />
    attr_filter attr_filter.pre-proxy {<br />
        attrsfile = ${confdir}/attrs.pre-proxy<br />
    }</p>
<p>sqlcounter noresetcounter {<br />
                 counter-name = Max-All-Session-Time<br />
              check-name = &#8220;Max-All-Session&#8221;<br />
          reply-name = Session-Timeout<br />
             sqlmod-inst = sql<br />
               key = User-Name<br />
                  reset = never<br />
                  query = &#8220;SELECT SUM(AcctSessionTime) FROM radacct WHERE UserName=&#8217;%{%k}&#8217;&#8221;<br />
}</p>
<p>sqlcounter hourlycounter {<br />
                counter-name = Hourly-Session-Time<br />
                check-name = Max-Hourly-Session<br />
                reply-name = Session-Timeout<br />
                sqlmod-inst = sql<br />
                key = User-Name<br />
                reset = hourly<br />
                query = &#8220;SELECT SUM(AcctSessionTime &#8211; \<br />
                 GREATEST((%b &#8211; UNIX_TIMESTAMP(AcctStartTime)), 0)) \<br />
                 FROM radacct WHERE UserName=&#8217;%{%k}&#8217; AND \<br />
                 UNIX_TIMESTAMP(AcctStartTime) + AcctSessionTime &gt; &#8216;%b&#8217;&#8221;<br />
}</p>
<p>sqlcounter dailycounter {<br />
                counter-name = Daily-Session-Time<br />
                check-name = Max-Daily-Session<br />
                reply-name = Session-Timeout<br />
                sqlmod-inst = sql<br />
                key = User-Name<br />
                reset = daily<br />
                query = &#8220;SELECT SUM(AcctSessionTime &#8211; \<br />
                 GREATEST((%b &#8211; UNIX_TIMESTAMP(AcctStartTime)), 0)) \<br />
                 FROM radacct WHERE UserName=&#8217;%{%k}&#8217; AND \<br />
                 UNIX_TIMESTAMP(AcctStartTime) + AcctSessionTime &gt; &#8216;%b&#8217;&#8221;<br />
}</p>
<p>sqlcounter monthlycounter {<br />
                counter-name = Monthly-Session-Time<br />
                check-name = Max-Monthly-Session<br />
                reply-name = Session-Timeout<br />
                sqlmod-inst = sql<br />
                key = User-Name<br />
                reset = monthly<br />
                query = &#8220;SELECT SUM(AcctSessionTime &#8211; \<br />
                 GREATEST((%b &#8211; UNIX_TIMESTAMP(AcctStartTime)), 0)) \<br />
                 FROM radacct WHERE UserName=&#8217;%{%k}&#8217; AND \<br />
                 UNIX_TIMESTAMP(AcctStartTime) + AcctSessionTime &gt; &#8216;%b&#8217;&#8221;<br />
        }</p>
<p>sqlcounter yearlycounter {<br />
                counter-name = Yearly-Session-Time<br />
                check-name = Max-Yearly-Session<br />
                reply-name = Session-Timeout<br />
                sqlmod-inst = sql<br />
                key = User-Name<br />
                reset = 12m<br />
                query = &#8220;SELECT SUM(AcctSessionTime &#8211; \<br />
                 GREATEST((%b &#8211; UNIX_TIMESTAMP(AcctStartTime)), 0)) \<br />
                 FROM radacct WHERE UserName=&#8217;%{%k}&#8217; AND \<br />
                 UNIX_TIMESTAMP(AcctStartTime) + AcctSessionTime &gt; &#8216;%b&#8217;&#8221;<br />
        }</p>
<p>    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 />
    expr {<br />
    }<br />
    digest {<br />
    }<br />
    expiration {<br />
        reply-message = &#8220;Password Has Expired\r\n&#8221;<br />
    }<br />
    logintime {<br />
        reply-message = &#8220;You are calling outside your allowed timespan\r\n&#8221;<br />
        minimum-timeout = 60<br />
    }<br />
    exec {<br />
        wait = yes<br />
        input_pairs = request<br />
        shell_escape = yes<br />
        output = none<br />
    }<br />
    exec echo {<br />
        wait = yes<br />
        program = &#8220;/bin/echo %{User-Name}&#8221;<br />
        input_pairs = request<br />
        output_pairs = reply<br />
        shell_escape = yes<br />
    }<br />
    logintime {<br />
    }<br />
}</p>
<p>instantiate {<br />
    exec<br />
    expr<br />
    }</p>
<p>authorize {<br />
    preprocess<br />
    sql<br />
    pap<br />
    chap<br />
    mschap<br />
    unix<br />
    suffix<br />
    eap<br />
    files<br />
Autz-Type LDAP {<br />
        ldap<br />
    }<br />
    expiration<br />
    logintime<br />
    noresetcounter<br />
        hourlycounter<br />
        dailycounter<br />
        monthlycounter<br />
        yearlycounter<br />
}</p>
<p>authenticate {<br />
        Auth-Type PAP {<br />
          pap<br />
        }<br />
        Auth-Type CHAP {<br />
          chap<br />
        }<br />
        eap<br />
}</p>
<p>preacct {<br />
    preprocess<br />
    acct_unique<br />
    suffix<br />
    files<br />
}<br />
accounting {<br />
    detail<br />
    unix<br />
    radutmp<br />
    sql<br />
}<br />
session {<br />
    radutmp<br />
    sql<br />
}<br />
post-auth {<br />
}<br />
pre-proxy {<br />
    files<br />
}<br />
post-proxy {<br />
    Post-Proxy-Type post.proxy.mcbt {<br />
        addtunneltype<br />
        addtunnelmediumtype<br />
        addvlanmcbt<br />
        }<br />
    eap<br />
}</p>
<p>Est vous pouvez m&#8217;aider ??</p>
]]></content:encoded>
	</item>
</channel>
</rss>
