Servidor FreeRadius: Atributo RadGroupReply para o máximo de usuários conectados?

2

Eu tenho um servidor FreeRadius e gostaria de definir uma limitação para o número de usuários conectados a um NAS específico. Minha configuração atual é que cada usuário que se conecta a um determinado NAS é adicionado ao grupo de usuários do Radius que está conectado a esse NAS. Então, RadGroupReply faz o material que eu quero fazer para os usuários de um NAS específico. Atualmente, eu posso definir uma restrição máxima de velocidade de download, bem como o tempo limite da sessão, mas estou querendo saber qual é o atributo a ser usado se eu limitar o número máximo de usuários autorizados a se conectar a um NAS específico.

Obrigado.

    
por Kix Panganiban 14.04.2014 / 06:03

1 resposta

1

Claro, primeiro você precisa configurar a contabilização RADIUS com um banco de dados SQL como postgresql ou MySQL.

Em seguida, você precisa implementar uma solução para detecção de sessão obsoleta. Isso pode ser tão simples quanto ativar Interim-Updates e encerrar sessões em que a última atualização foi antes de (NOW() - <interim time>) usando um cron job. Como calcular um tempo no passado varia muito de banco de dados para banco de dados, então você terá que encontrar a sintaxe certa para o banco de dados que você usa.

Por fim, você precisará escrever uma política de unlang que obtenha uma contagem de sessões ao vivo para um NAS e a compare ao máximo configurado. No FreeRADIUS v3.0.x você pode associar pares arbitrários ao NAS, adicionando-os às seções do cliente.

Exemplo da seção do cliente:

client test {
    ipaddr = 127.0.0.1
    secret = 'testing123'
    max_users = 10
}

Exemplo de política:

authorize {
    if ("%{sql:SELECT COUNT(*) FROM radacct WHERE nasipaddress = '%{NAS-IP-Address}' AND acctstoptime != NULL}" > "%{client:max_users}") {
        update reply {
            Reply-Message := 'Sorry, too many users connected, please try again later'
        }
        reject
    }
}
    
por 11.04.2015 / 04:15

Tags