Freeradius - servidor radius eficiente e completo

Se você não precisa de um servidor radius hoje, um dia vai precisar! Este artigo ensinará como funciona, como instalar e gerenciar um serviço radius usando um dos melhores softwares GNU da categoria: Freeradius.

[ Hits: 882.254 ]

Por: Patrick Brandao em 19/01/2005 | Blog: http://www.patrick.eti.br


Autenticando na base de dados MySQL e evitando conexões simultâneas



Usar freeradius e base de dados MySQL é uma das melhores opções disponíveis. A flexibilidade e suporte do MySQL garante muita segurança aos seus dados e muita rapidez.

Certifique-se de que no arquivo radiusd.conf, a seguinte linha está declarada:

$INCLUDE ${confdir}/sql.conf

Primeiro passo e editar o arquivo /usr/local/etc/raddb/sql.conf e alterar as seguintes linhas:

sql {
    driver = "rlm_sql_mysql"
    # informa ao freeradius qual modulo de banco
    # de dados usar, neste caso, mysql

    server = "localhost"
    # diz ao freeradius em qual
    # host está o servidor mysql

    login = "root"
    # define o nome de usuário registrado no mysql

    password = "senhadologinaqui"
    # senha do usuário definido no parâmetro "login"

    radius_db = "radius"
    # nome do banco de dados que contem
    # as tabelas

    # abaixo deste texto (arquivo truncado aqui) se encontram definições de SQL para
    # pesquisa de dados, não altere, ao menos
    # que tenha um propósito
    # ......
    # ....
}

Segundo, criar o banco de dados e as tabelas. Os criadores do freeradius já deixaram a DDL pronta para você, basta ir até a pasta onde estão os fontes, na subpasta:

src/modules/rlm_sql/drivers/rlm_sql_mysql

Se você descompactou em /usr/local/src, o caminho completo é:

/usr/local/src/freeradius-1.0.1/src
/modules/rlm_sql/drivers/rlm_sql_mysql

Dentro desta pasta existe um arquivo chamado db_mysql.sql contendo todos os comandos para criar as tabelas. Crie o banco de dados com o comando:

# mysqladmin -psenharoot create radius

E crie as tabelas com o comando:

# mysql -psenharoot radius < db_mysql.sql

Agora edite o radiusd.conf, vamos configurá-lo para autenticar os dados no MySQL. Procure no final do arquivo pela sessão "authorize" e adicione "sql", ficando assim:

authorise {
    sql
}

Isso fará com que os usuários sejam procurados na tabela radcheck, banco de dados radius no MySQL.

Próximo passo é registrar a contabilidade dos acessos, muito útil para provedores que tem planos limitados de horas. Vá até a sessão "accounting" e adicione "sql", ficando assim:

accounting {
    sql
}

Isso fará com que os dados das conexões sejam armazenadas na tabela radacct.

Um recurso interessante é o controle de conexão simultânea. Isso impede que um usuário passe suas credencias (login/senha) para amigos e todos usem ao mesmo tempo, dando "preju". Na sessão "session" adicione "sql", ficando assim:

session {
    sql
}

Ainda não está pronto o controle de sessão, você terá que editar o sql.conf e descomentar as linhas que definem as variáveis:

simul_count_query
simul_verify_query

Vamos criar um usuário chamado "joao", que terá direito a apenas uma conexão. Conecte-se ao MySQL no banco radius:

# mysql -psenharoot radius

Criar usuário:

mysql> INSERT INTO radcheck (username, attribute, op, value)
mysql> VALUES ('joao', 'Password', '==', 'senhasecreta');

Criar grupo com direito a uma conexão chamado 'sessaounica':

mysql> INSERT INTO radgroupcheck (groupname, attribute,
mysql> op, value) VALUES ('sessaounica', 'Simultaneous-Use',
mysql> ':=', 1);

Inserir joao nesse grupo:

mysql> INSERT INTO usergroup (username, groupname) VALUES ('joao', 'sessaounica');

Pronto. João agora não pode passar seu login pra ninguém, senão ficará sem acesso! Para conexões ISDN 128k, crie um grupo de dupla permissão, pois senão o segundo canal não conseguirá conectar-se. Veja como aparece no log, uma tentativa de conexão simultânea após o usuário já estar conectado de outro lugar:

Auth: Login OK: [joao/senhasecreta] (from client pr4k port 326 cli 31555xxxx)
Auth: Multiple logins (max 1) : [joao/senhasecreta] (from client pr4k port 315 cli 31552xxxx)

Acontece, de vez em quando, do usuário ficar "agarrado" no radius. Ele é desconectado do RAS ou NAS, porém o radius não da baixa na sessão, os motivos podem ser, principalmente, perda do pacote no caminho até o radius, problema muito comum para provedores que lidam com ADSL de outras operadoras. A próxima vez que o usuário tenta logar, o acesso é negado - o servidor radius pensa que é sessão simultânea. Para resolver esse problema, sempre que um usuário (joao por exemplo) ficar "agarrado", você libera ele com a SQL:

mysql> DELETE FROM radacct WHERE username = 'joao' AND acctsessiontime = 0 ORDER BY radacctid DESC LIMIT 1;

A desvantagem é que João terá que solicitar suporte técnico para ter o problema resolvido!

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Instalação e comandos
   3. Arquivos de configuração detalhados
   4. Autenticando na base de dados MySQL e evitando conexões simultâneas
   5. Checagem e retorno de atributos em banco de dados
   6. Autenticando na base de dados PostgreSQL, Oracle e outros
   7. Negando temporariamente o acesso de clientes inadimplentes usando SQL
   8. Autenticando na base de dados de usuários do sistema
   9. Testando o servidor radius antes de colocá-lo em produção
   10. Criando gráficos de monitoramento com MRTG
   11. Extrato de horas
   12. Administração de usuários
   13. Ajuda
Outros artigos deste autor

NoCatAuth - Construindo um firewall/gateway autenticado

Acelerador de conexões dial-up para provedores de acesso

Gateway de email com Qmail - proteção antivírus e antispam

Ziproxy - Proxy de compactação e redução de imagens

Qmail e chkuser - fila de mensagens limpa

Leitura recomendada

SuperDNS: Solução definitiva para DNS dinâmico

Compartilhando acesso à internet com iptables

Configurando BIND 9 + chroot sem mistérios

Velox: Como configurar sua conexão após a mudança

Porque segurança importa?

  
Comentários
[1] Comentário enviado por fernandoamador em 19/01/2005 - 04:23h

Ótimo artigo...

[2] Comentário enviado por slex em 19/01/2005 - 08:29h

O que é um servidor radius? Pra que serve?

[3] Comentário enviado por patrickbrandao em 19/01/2005 - 09:35h

RADIUS é uma tecnologia de autenticação, autorização e contabilidade, usada para validar credenciais, autorizar certas credenciais em um recurso de rede e manter registros de tempo, detalhes da conexão e duração do acesso, respectivamente.

Quando você se conecta em um provedor de acesso discado, ou quando se autentica em um velox ou speedy e em algumas implementações de VPN, você está usando RADIUS: autenticação e autorização. Quando abre a página de um provedor que disponibiliza o extrato de uso (hora que conectou, desconectou, tempo de duração): contabilidade.

[4] Comentário enviado por vodooo em 19/01/2005 - 10:44h

Bom artigo, bem completo!

Parabéns

Abraços

[5] Comentário enviado por lacierdias em 22/01/2005 - 12:50h

Este maluco é um animal!!!!!!!!!!!!...mandou muito mano adorei o artigo.....
Abraço

[6] Comentário enviado por rjacomel em 25/01/2005 - 21:37h


Excelente artigo e bem didático... Parabéns!

[7] Comentário enviado por hardl em 12/02/2005 - 10:31h

Ótimo artigo. Desmistifica o radius server. Gostei muito!

[8] Comentário enviado por kdanilo em 24/02/2005 - 10:04h

Patrick estou com um problema quando estou executando o teste do radius, voce poderia me ajudar? o erro é esse:

Error: Ignoring request from unknown home server 127.0.0.1:32768


desde ja agradeço.

[9] Comentário enviado por patrickbrandao em 24/02/2005 - 13:51h

Estranho hein! nunca vi esse erro!

Creio que 127.0.0.1 nao esteja cadastrado no arquivo "clients.conf" ou o segredo nao seja o mesmo!

Faça essas alterações e depois reinicie o radius (rc.radiusd restart)

Aquele abraço.

[10] Comentário enviado por TheHawk em 08/03/2005 - 09:49h

Olá, estou seguindo esse artigo, já fiz de tudo e estou tendo erro em dois pontos, um é na hora que vou adicionar a tabela do radius no mysql, dá esse erro: ERROR 1067 (42000) at line 155: Invalid default value for 'id' e o outro é na hora que dou um debug para testar o dito cujo: Tue Mar 8 09:52:51 2005 : Debug: sql: safe-characters = "@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_: /"
Falha de segmentação
e dai não funciona, alguem tem como me dar uma ajuda?? agradeço desde já

[11] Comentário enviado por patrickbrandao em 08/03/2005 - 15:22h

Bom meu colega,

voce nao foi muito especifico, qual linux ta usando?
qual versao do mysql?

eu fiz o artigo testando um monte de vez no slackware 10.0 com o mysql que vem na distro.
Leia o arquivo de schema das tabelas e adicione no dedo!

Patrick Brandao
www.patrick.eti.br

[12] Comentário enviado por danhylo em 21/03/2005 - 10:30h

Gostaria de fazer uma observação.
Ná página 7 do Artigo é pedido para alterar a estrutura da tabela usando o seguinte commando:

ALTER TABLE radacct ADD enable enum('Y','N') NOT NULL DEFAULT 'Y';

Mais a frente pede para fazer um update das informações com o seguinte commando:

UPDATE radcheck SET enable = 'N' WHERE username = 'joao';

Mas a tabela radcheck não foi alterada para aceitar enable.


Outra coisa:
É pedido para localizar no sql.conf a linha:

authorize_check_query = "SELECT id, UserName, Attribute, Value,op FROM ${authreply_table} WHERE Username = '%{SQL-User-Name}' ORDER BY id"

porém é encontrado no sql.conf a seguinte linha:
authorize_check_query = "SELECT id,UserName,Attribute,Value,op FROM ${authcheck_table} WHERE Username = '%{SQL-User-Name}' ORDER BY id"

Observe no FROM a tabela e outra.

[13] Comentário enviado por danhylo em 21/03/2005 - 10:31h

Gostaria de fazer uma observação.
Ná página 7 do Artigo é pedido para alterar a estrutura da tabela usando o seguinte commando:

ALTER TABLE radacct ADD enable enum('Y','N') NOT NULL DEFAULT 'Y';

Mais a frente pede para fazer um update das informações com o seguinte commando:

UPDATE radcheck SET enable = 'N' WHERE username = 'joao';

Mas a tabela radcheck não foi alterada para aceitar enable.


Outra coisa:
É pedido para localizar no sql.conf a linha:

authorize_check_query = "SELECT id, UserName, Attribute, Value,op FROM ${authreply_table} WHERE Username = '%{SQL-User-Name}' ORDER BY id"

porém é encontrado no sql.conf a seguinte linha:
authorize_check_query = "SELECT id,UserName,Attribute,Value,op FROM ${authcheck_table} WHERE Username = '%{SQL-User-Name}' ORDER BY id"

Observe no FROM a tabela e outra.

Caso eu esteja errado, me corrijam por favor !

[14] Comentário enviado por patrickbrandao em 21/03/2005 - 14:26h

e' um erro de digitacao, perdoe-me, corrigindo:

mysql> ALTER TABLE radcheck ADD enable enum('Y','N') NOT NULL DEFAULT 'Y';

a intencao e' criar um campo que define o status do usuario na tabela radcheck, de forma que somente usuarios marcados como ativos possam ser autenticados. Logo, a sql que pesquisa a tabela radcheck deve ser alterada tambem, para checar o campo de status (coluna enable).

obs.: trata-se de uma dica, nao e' um requisito para instalar ou usar o freeradius com mysql

[15] Comentário enviado por claudiano em 30/03/2005 - 12:21h

vc conhece algum artigo q utiliza pppoe+radius

[16] Comentário enviado por patrickbrandao em 30/03/2005 - 12:47h

Sim,
voce vai encontrar um artigo muito bom no underlinux.com.br
como nao consegui fazer funcionar no slackware ate' hoje,
ainda nao montei um artigo sobre isso, mas pode aguardar!

[17] Comentário enviado por realmode em 16/04/2005 - 21:09h

Primeiramente gostaria de parabenizar o Sr Patrick Brandao pelo artigo, realmente muito bom, gostei! Ótimo mesmo.

Referente ao problema encontrado por TheHawk em 08/03/2005,
quanto a execucao do script, encontrei o mesmo erro e solucionei fazendo o update do mysql, eu usava o 3.21 mudei para o 4.xx
ou tambem ele tambem pode alterar o script nas ultimas tabelas:
CREATE TABLE radpostauth(
id int(11) NOT NULL auto_increment,
mude para
CREATE TABLE radpostauth(
id int(11) unsigned NOT NULL auto_increment,
o restante permanece igual.
o mesmo procedimento para a table nas.
porem aconselho verificar a versao do mysql e se for abaixo da 4.xx fazer o update, para nao encontrar mais problemas originados pelo mysql.

[18] Comentário enviado por realmode em 19/04/2005 - 12:33h

Referente ao problema encontrado por TheHawk em 08/03/2005,
quanto a falha de segmentacao, encontrei o mesmo erro usando mandreake linux 10.1, instalei o slackware 10 e funcionou tudo direitinho, deve ser alguma diferença entre as distros. nao fui mais a fundo no erro por falta de tempo mas pode ser alguma diferenca de configuracao ou libs..flws

[19] Comentário enviado por vitoriodantona em 14/05/2005 - 04:46h

Mas como fazer para resitringir a conexão para um (ou vários) determinado número(s) de telefone?

[20] Comentário enviado por FK013 em 16/05/2005 - 10:11h

Bom dia colegas! Preciso disponilizar um range de IP´s para meus clientes (main_pool). Estou utilizando o free-Radius + Mysql no SUSE 9. Os IP´s estão sendo liberados como previsto porém uma vez alocado este IP NÃO VOLTA para o poll. Alguma dica/ Obrigado.

[21] Comentário enviado por claudiano em 24/05/2005 - 19:23h

Bom patrick fazer o pppoe funcionar com radius e mysql + controle de banda, porem meus usuarios estavam muito acostumados não utilizar nada para fazer a autenticação, era so abrir o browse e pronto, como agora eles tem q conectar via pppoe eles so lembram de fazer a conexão, porem na hora de desconecta simplesmente desligam a maquina ou coisa parecida, com isso ficam com a conexao bloqueada, tem alguma mandeira de fazer com q isso não aconteça mais.


[22] Comentário enviado por claudiano em 24/05/2005 - 19:32h

observei o seu comentario "Autenticando na base de dados MySQL e evitando conexões simultâneas" porem não tem como fazer isso automaticamente.

[23] Comentário enviado por patrickbrandao em 24/05/2005 - 21:56h

Vamos por partes:

1 - evitando conexões simultâneas automaticamente
R: não conheço um metodo de fazer isso sem ser como o Simultaneous-Use

2 - suspender pppoe sem travar
R: não faço ideia, até hoje (24/05) não consegui fazer o pppoe+radius funcionar no slackware. Uma ideia é: veja se é possivel suspender a conexão atravez de um script considerando um tempo de inatividade.

boa sorte!
Patrick Brandão

[24] Comentário enviado por rferigollo em 17/11/2005 - 13:51h

olá patrick ... gostaria de saber se tem alguma forma de autenticar sem testar o user ou senha???, passar tudo em branco pq assim quebra um tremendo galho qnd não se possui todos os usuarios na base ainda...

[25] Comentário enviado por k40s em 26/12/2005 - 17:14h

Parabéns !!


Seu artigo foi muito bem escrito até mesmo na parte de documentação. Algo dificil de se ver nos dias de hoje.

[[]]

[26] Comentário enviado por leandrof1980 em 11/01/2006 - 03:16h

Uma dúvida:

O rágius serve somente para autenticar clients de rede discada?
Eu posso usar o esse servidor para autenticar clients de uma rede wireless?


[27] Comentário enviado por patrickbrandao em 11/01/2006 - 10:32h

Pode sim, porém, como disse no artigo, o radius não é um protocolo de cliente-servidor, ele é um protocolo servidor-servidor. O cliente vai até algum equipamento ou serviço (servidor RAS, NAS, AP, etc..) e o equipamento pergunta ao radius sobre a validade das credenciais.

Em redes wireless, o radius é usado integrado com AP (validação de mac, equipamentos) e PPPoE (cliente -> PPPoE <-> radius)

[28] Comentário enviado por fabiorvs em 07/02/2006 - 20:46h

Ola Patrick parabens pelo artigo, tenho uma duvida, sera que com essas configurações consigo usar o ChilliSpot para autenticar meus usuarios wifi

Valeu

[29] Comentário enviado por patrickbrandao em 07/02/2006 - 23:46h

O Freeradius segue as normas exatas do protocolo radius, se o chilli também seguir, funcionará!

[30] Comentário enviado por kdanilo em 23/02/2006 - 10:07h

Patrick estou com um baita problema e gostaria de saber se pode me ajudar.... Estou usando o Freeradius com banco de dados para autenticacao.... Uso o mesmo para autenticar conexoes ADSL "telefonica" e preciso alem do nome de usuario e senha autenticar tambem o "connect Info" informacao do tipo de conexao referente a telefonica.... bom na questao de nome de usuario e senha ele autentica sem problema algum, so que o mesmo nao faz a verificaçao do connect info... deixando passar livremente qualquer tipo.
na realidade gostaria de saber se existe alguma configuração referente a isso.

[31] Comentário enviado por pasternak em 15/03/2006 - 00:30h

Olá sou novo por aqui, quero saber se o freeradius pode ser usado com o pppoe para autenticar usuarios wireless de um provedor. Caso sim, favor postem alguns links que poderiam me ajudar.

Desde já agradecido.
ps_aux

[32] Comentário enviado por john_hunt3r em 16/03/2006 - 17:41h

!!PROBLEMA!!

quando a conexão de um user "cai", ou seja ele nao manda um sig de desconectar normal, o radius nao atualiza a tabela radacct, logo, o user fica "pindurado" sem conseguir re-conectar por causa do Simultanous-Use.
Existe alguma maneira de implementar um "ping-timeout" para esse caso?
obrigado

[33] Comentário enviado por lijandre em 20/03/2006 - 17:32h

Otimo artigo o seu, mas ainda estou com problemas, estou usando Fedora 4 utilizando a base de usuarios do sistema para fazer a autenticação, mas na hora de usar os utilitarios de teste do Radius retorna a seguimte linha:

rad_recv: Access-Reject packet from host 127.0.0.1:1812, id=24, length=20

o que pode ser? Desde já agradeço o interresse...


[34] Comentário enviado por patrickbrandao em 20/03/2006 - 19:41h

Significa que a autenticação falhou, login/senha invalido.

[35] Comentário enviado por nemphilis em 12/04/2006 - 14:22h

Parabéns pelo artigo patrick....
Por aqui estou convivendo com um problema um tanto comum, mas, que não consigo resolver...freeradius conversa com o mysql, mas, está rejeitando usuarios...apos repassar várias vezes toda a configuração tomando como base a configuração aqui apresentada no VOL, não consegui resolver o problema...segue o log:

rlm_sql (sql): Released sql socket id: 4
modcall[authorize]: module "sql" returns ok for request 0
modcall: leaving group authorize (returns ok) for request 0
rad_check_password: Found Auth-Type Local
auth: type Local
auth: No User-Password or CHAP-Password attribute in the request
auth: Failed to validate the user.
Delaying request 0 for 1 seconds
Finished request 0
Going to the next request
--- Walking the entire request list ---
Waking up in 1 seconds...
--- Walking the entire request list ---
Sending Access-Reject of id 7 to 192.168.109.12 port 60006
Waking up in 4 seconds...
--- Walking the entire request list ---
Cleaning up request 0 ID 7 with timestamp 443d3578
Nothing to do. Sleeping until we see a request.


mysql Ver 14.12 Distrib 5.0.19, for pc-linux-gnu (i486) using readline 5.1

Rodando sobre Debian Unstable
Se alguém puder ajudar...

Um abração a todos!

[36] Comentário enviado por nemphilis em 12/04/2006 - 14:27h

Ía me esquecendo, minha versão mysql rodando sobre Debian
mysql Ver 14.12 Distrib 5.0.19, for pc-linux-gnu (i486) using readline 5.1

[37] Comentário enviado por spina em 17/04/2006 - 18:39h

Olá Patrick,

Primeiramente Parabéns pelo artigo... muito bom...

Gostaria de saber se você tem algum material sobre como integrar Radius com Tacacs+ e também algum comparativo do FreeRadius com o OpenRadius.

Obrigado.

[38] Comentário enviado por patrickbrandao em 18/04/2006 - 08:51h

Olá pessoal.

Problemas com MySQL são faceis de resolver: edite o sql.conf e configure-o para logar os comandos SQL executados na busca de logins. Verifique também se não ativou ao mesmo tempo, autenticação no MySQL e no sistema (passwd).

Infelizmente nao estudei nada sobre integração de radius com tacacs, e se procurar no google por freeradius e openradius, vai encontrar uma tabela de comparação (eu nao procurei, tentei trabalhar com o openradius e achei complicado demais, o freeradius é muito mais facil de trabalhar e manipular).

[39] Comentário enviado por emborsatti em 02/05/2006 - 16:31h

Patrick, fazem dois dias que estou com um problema na instalacao do freeradius. Uso Slackware 10 + MySql 5.1.9 e Freeradius 1.1.1, estou usando seu artigo como base da instalacao depois de tudo pronto, executo radiusd -X e no final do resultado aparece:

rlm_sql (sql): Could not link driver rlm_sql_mysql: rlm_sql_mysql.so: cannot open shared object file: No such file or directory
rlm_sql (sql): Make sure it (and all its dependent libraries!) are in the search path of your system's ld.
radiusd.conf[14]: sql: Module instantiation failed.
radiusd.conf[1219] Unknown module "sql".
radiusd.conf[1177] Failed to parse authorize section.


Como resolvo isso ?

[40] Comentário enviado por martinho_cv em 09/07/2006 - 13:58h

Martinho Rodrigues Monteiro

Para correção do problema instala a versão anterior
freeradius-1.1.0.tar.gz e depois faz um upgrade com a versão actual freeradius-1.1.2.tar.gz para correção de alguns bugs


[41] Comentário enviado por dtux em 10/07/2006 - 08:04h

Ptuz cara parabénas to começando agora a trabalhar em um provedor de internet issso vai me ajudar mto para meu aprendizado e pra dar novas ideias para o nosso tecnico....

[42] Comentário enviado por patrickbrandao em 10/07/2006 - 12:01h

Eu escrevi quando trabalhava em um provedor, 2 anos quase! Eu tirei algumas semanas pra aprender e parar de apanha, fico feliz que tenha ajudado muita gente trabalhadora!

[43] Comentário enviado por jacoramos em 06/08/2006 - 12:52h

Pessoal estou com um problema e preciso da ajuda de voces, instalei o freeradius e o chillispot. E esta funcionando beleza. Mas quando coloco no banco de dados na tabela radreply o attributo Framed-IP-Netmask e framed-IP-Address, o cliente chilli só recebe o IP que escifiquei no Framed-IP-Address, não recebe a mascara que especifiquei.

aguem tem alguma sugestao de como resolver isto.

Desde ja agradeço pela ajuda.

Grato

Jacó

[44] Comentário enviado por jacolinux em 06/08/2006 - 18:37h

coloquei no banco do freeradius, na tabela radreply o atributo Framed-IP-Netmask, mas o cliente chillispot nao recebeu a mascara que especifiquei. Ele recebe sempre a mascara do tunel.

Alguem tem alguma ideia do que esteja acontecendo?????

[45] Comentário enviado por patrickbrandao em 07/08/2006 - 08:08h

Teste a autenticação com o comando radtest, se o freeradius não retornar o parametro, é culpa dele. Se retornar, é culpa do chillispot.

[46] Comentário enviado por jacolinux em 07/08/2006 - 13:39h

Com o radtest retorna a mascara que especifiquei, mas o cliente chilli nao recebe a mascara, ele sempre recebe a mascara do tunel. Sera se nao tem alguma forma de fixar a mascara dos clientes para 0.0.0.0/24. Assim resolveria todos os meus problemas. Pois a ideia é seguinte: eu definirei o tunel como sendo 0.0.0.0/16 e os clintes chilli como 0.0.0.0/24, para que possa criar redes diferentes.

Sugestoes???

Grato.

Jacó

[47] Comentário enviado por patrickbrandao em 07/08/2006 - 15:05h

0.0.0.0/24 não é mascara, mascará é 255.255.255.0, vc deve estar fazendo errado.

[48] Comentário enviado por jacolinux em 08/08/2006 - 10:16h

cara beleza com o radtest funciona, o parametro retornado e Framed-IP-Netmask = 255.255.255.0 mas o cliente chilli nao recebe esta mascara so recebe a mascara do tunel. Vc já testou isto??? Qual a versao do chillispot e do radius que vc usou ????


Grato.

Jacó

[49] Comentário enviado por patrickbrandao em 08/08/2006 - 10:20h

Ola Jacó,

infelizmente nunca testei o chillispot, cria um topico sobre isso no forum do underlinux, tem muita gente lá que pode te ajudar.

[50] Comentário enviado por jacolinux em 08/08/2006 - 10:23h

Estou usando autenticação por MAC e a resposta do radius é essa: Recebo o IP , mas a Mascara NAO.

Ready to process requests.
rad_recv: Access-Request packet from host 192.168.199.254:2052, id=0, length=171
User-Name = "00-E0-7D-88-85-AE"
User-Password = "password"
Calling-Station-Id = "00-E0-7D-88-85-AE"
Called-Station-Id = "00-0D-0B-1A-7B-1C"
NAS-Port = 0
NAS-IP-Address = 0.0.0.0
Service-Type = Login-User
NAS-Identifier = "192.168.199.57"
Acct-Session-Id = "44d88dae00000000"
NAS-Port-Type = Wireless-802.11
Message-Authenticator = 0xca6652c76b9922fc0fd23952f511100c
Processing the authorize section of radiusd.conf
modcall: entering group authorize for request 0
modcall[authorize]: module "preprocess" returns ok for request 0
modcall[authorize]: module "chap" returns noop for request 0
modcall[authorize]: module "mschap" returns noop for request 0
rlm_realm: No '@' in User-Name = "00-E0-7D-88-85-AE", looking up realm NULL
rlm_realm: No such realm "NULL"
modcall[authorize]: module "suffix" returns noop for request 0
radius_xlat: '00-E0-7D-88-85-AE'
rlm_sql (sql): sql_set_user escaped user --> '00-E0-7D-88-85-AE'
radius_xlat: 'SELECT id, UserName, Attribute, Value, op FROM radcheck
WHERE Username = '00-E0-7D-88-85-AE' AND enable = 'Y' ORDER
BY id'
rlm_sql (sql): Reserving sql socket id: 4
radius_xlat: 'SELECT radgroupcheck.id,radgroupcheck.GroupName,radgroupcheck.Att
ribute,radgroupcheck.Value,radgroupcheck.op FROM radgroupcheck,usergroup WHERE
usergroup.Username = '00-E0-7D-88-85-AE' AND usergroup.GroupName = radgroupcheck
.GroupName ORDER BY radgroupcheck.id'
radius_xlat: 'SELECT id, UserName, Attribute, Value, op FROM radreply
WHERE Username = '00-E0-7D-88-85-AE' ORDER BY id'
radius_xlat: 'SELECT radgroupreply.id,radgroupreply.GroupName,radgroupreply.Att
ribute,radgroupreply.Value,radgroupreply.op FROM radgroupreply,usergroup WHERE
usergroup.Username = '00-E0-7D-88-85-AE' AND usergroup.GroupName = radgroupreply
.GroupName ORDER BY radgroupreply.id'
rlm_sql (sql): Released sql socket id: 4
modcall[authorize]: module "sql" returns ok for request 0
modcall: leaving group authorize (returns ok) for request 0
auth: type Local
auth: user supplied User-Password matches local User-Password
Processing the post-auth section of radiusd.conf
modcall: entering group post-auth for request 0
rlm_sql (sql): Processing sql_postauth
radius_xlat: '00-E0-7D-88-85-AE'
rlm_sql (sql): sql_set_user escaped user --> '00-E0-7D-88-85-AE'
radius_xlat: 'INSERT into radpostauth (id, user, pass, reply, date) values ('',
'00-E0-7D-88-85-AE', 'password', 'Access-Accept', NOW())'
rlm_sql (sql) in sql_postauth: query is INSERT into radpostauth (id, user, pass,
reply, date) values ('', '00-E0-7D-88-85-AE', 'password', 'Access-Accept', NOW(
))
rlm_sql (sql): Reserving sql socket id: 3
rlm_sql (sql): Released sql socket id: 3
modcall[post-auth]: module "sql" returns ok for request 0
modcall: leaving group post-auth (returns ok) for request 0
Sending Access-Accept of id 0 to 192.168.199.254 port 2052
Framed-IP-Address == 10.10.50.1
WISPr-Bandwidth-Max-Down == 64000
WISPr-Bandwidth-Max-Up == 64000
Framed-IP-Netmask == 255.255.255.0
Finished request 0
Going to the next request
--- Walking the entire request list ---
Waking up in 6 seconds...
rad_recv: Accounting-Request packet from host 192.168.199.254:2052, id=1, length
=151
Acct-Status-Type = Start
User-Name = "00-E0-7D-88-85-AE"
Calling-Station-Id = "00-E0-7D-88-85-AE"
Called-Station-Id = "00-0D-0B-1A-7B-1C"
NAS-Port-Type = Wireless-802.11
NAS-Port = 0
NAS-Port-Id = "00000000"
NAS-IP-Address = 0.0.0.0
NAS-Identifier = "192.168.199.57"
Framed-IP-Address = 10.10.50.1
Acct-Session-Id = "44d88dae00000000"
Processing the preacct section of radiusd.conf
modcall: entering group preacct for request 1
modcall[preacct]: module "preprocess" returns noop for request 1
rlm_realm: No '@' in User-Name = "00-E0-7D-88-85-AE", looking up realm NULL
rlm_realm: No such realm "NULL"
modcall[preacct]: module "suffix" returns noop for request 1
modcall: leaving group preacct (returns noop) for request 1
Processing the accounting section of radiusd.conf
modcall: entering group accounting for request 1
radius_xlat: '00-E0-7D-88-85-AE'
rlm_sql (sql): sql_set_user escaped user --> '00-E0-7D-88-85-AE'
radius_xlat: 'INSERT into radacct (AcctSessionId, AcctUniqueId, UserName, Realm , NASIPAddress, NASPortId, NASPortType, AcctStartTime, AcctStopTime, AcctSession Time, AcctAuthentic, ConnectInfo_start, ConnectInfo_stop, AcctInputOctets, AcctO utputOctets, CalledStationId, CallingStationId, AcctTerminateCause, ServiceType, FramedProtocol, FramedIPAddress, AcctStartDelay, AcctStopDelay) values('44d88da e00000000', '', '00-E0-7D-88-85-AE', '', '0.0.0.0', '0', 'Wireless-802.11', '200 6-08-08 10:17:49', '0', '0', '', '', '', '0', '0', '00-0D-0B-1A-7B-1C', '00-E0-7 D-88-85-AE', '', '', '', '10.10.50.1', '', '0')'
rlm_sql (sql): Reserving sql socket id: 2
rlm_sql (sql): Released sql socket id: 2
modcall[accounting]: module "sql" returns ok for request 1
modcall: leaving group accounting (returns ok) for request 1
Sending Accounting-Response of id 1 to 192.168.199.254 port 2052
Finished request 1
Going to the next request
--- Walking the entire request list ---
Cleaning up request 1 ID 1 with timestamp 44d88efd
Waking up in 5 seconds...
--- Walking the entire request list ---
Cleaning up request 0 ID 0 with timestamp 44d88efc
Nothing to do. Sleeping until we see a request.

[51] Comentário enviado por carolhelp em 26/08/2006 - 10:01h

Quando o cliente fica agarrado no radius qual o comando dou pra liberar o mesmo? ja digitei aquele comando delete from radacct where... e nao adiantou.. como faco?

[52] Comentário enviado por levv em 29/08/2006 - 12:21h

Um otimo artigo mas gostaria de saber se o freeradius faz controle de banda como o CBQ ou bandwidth, se faz como que faco isso nele.

[53] Comentário enviado por patrickbrandao em 29/08/2006 - 14:07h

Levv, voce não leu o artigo! O radius é um protocolo de pergunta/resposta, não é um software de gerenciamento!

[54] Comentário enviado por leone03 em 24/09/2006 - 09:09h

Cara, cadê o artigo?

[55] Comentário enviado por dimas.caires em 03/10/2006 - 18:09h

FALA AMIGO!!
meu na parte de "serviços" quando dou duplo clique em NTSquid, e dou iniciar..
da o erro 1067
e diz que nao foi possivel inicdiar o NTSquid em computador local!!!

[56] Comentário enviado por guimpel em 25/10/2006 - 18:01h

Prezado amigo preciso de sua ajuda:

bem uso o Slackware 11.0, freeradius-1.1.3, mysql-5.0.24a, mrtg-2.10.15.

e acompanhei seu artigo passo a passo porem no final da o seguinte erro na autenticação:

Error: rlm_sql (sql): Failed to connect DB handle #4
Info: rlm_sql (sql): There are no DB handles to use! skipped 5, tried to connect 1

Sei que e um erro de conexão porem via shel conecto normal.

sabe o que pode estar acontecendo.

grato

[57] Comentário enviado por guimpel em 26/10/2006 - 13:46h

Slackware 11.0, freeradius-1.1.3, mysql-5.0.24a, mrtg-2.10.15

no tutorial tem este arquivo que voce pede mais não o encontrei devido a nova versão.

nesta parte do seu artigo pede que use este arquivo
mysql -psenharoot radius < db_mysql.sql

porem no freeradius-1.1.3 o similar a que encontrei e este:

/freeradius-1.1.3/doc/examples/mysql.sql

com este conteudo:
______________________________
##############################
# db_mysql.sql rlm_sql - FreeRADIUS SQL Module #
# #
# Database schema for MySQL rlm_sql module #
# #
# To load: #
# mysql -uroot -prootpass radius < db_mysql.sql #
# #
# Mike Machado <mike@innercite.com> #
###########################
#
# Table structure for table 'radacct'
#

CREATE TABLE radacct (
RadAcctId bigint(21) NOT NULL auto_increment,
AcctSessionId varchar(32) NOT NULL default '',
AcctUniqueId varchar(32) NOT NULL default '',
UserName varchar(64) NOT NULL default '',
Realm varchar(64) default '',
NASIPAddress varchar(15) NOT NULL default '',
NASPortId varchar(15) default NULL,
NASPortType varchar(32) default NULL,
AcctStartTime datetime NOT NULL default '0000-00-00 00:00:00',
AcctStopTime datetime NOT NULL default '0000-00-00 00:00:00',
AcctSessionTime int(12) default NULL,
AcctAuthentic varchar(32) default NULL,
ConnectInfo_start varchar(50) default NULL,
ConnectInfo_stop varchar(50) default NULL,
AcctInputOctets bigint(12) default NULL,
AcctOutputOctets bigint(12) default NULL,
CalledStationId varchar(50) NOT NULL default '',
CallingStationId varchar(50) NOT NULL default '',
AcctTerminateCause varchar(32) NOT NULL default '',
##########################
# db_mysql.sql rlm_sql - FreeRADIUS SQL Module #
# #
# Database schema for MySQL rlm_sql module #
# #
# To load: #
# mysql -uroot -prootpass radius < db_mysql.sql #
# #
# Mike Machado <mike@innercite.com> #
##########################
#
# Table structure for table 'radacct'
#

CREATE TABLE radacct (
RadAcctId bigint(21) NOT NULL auto_increment,
AcctSessionId varchar(32) NOT NULL default '',
AcctUniqueId varchar(32) NOT NULL default '',
UserName varchar(64) NOT NULL default '',
Realm varchar(64) default '',
NASIPAddress varchar(15) NOT NULL default '',
NASPortId varchar(15) default NULL,
NASPortType varchar(32) default NULL,
AcctStartTime datetime NOT NULL default '0000-00-00 00:00:00',
AcctStopTime datetime NOT NULL default '0000-00-00 00:00:00',
AcctSessionTime int(12) default NULL,
AcctAuthentic varchar(32) default NULL,
ConnectInfo_start varchar(50) default NULL,
ConnectInfo_stop varchar(50) default NULL,
AcctInputOctets bigint(12) default NULL,
AcctOutputOctets bigint(12) default NULL,
CalledStationId varchar(50) NOT NULL default '',
CallingStationId varchar(50) NOT NULL default '',
AcctTerminateCause varchar(32) NOT NULL default '',
AcctTerminateCause varchar(32) NOT NULL default '',
ServiceType varchar(32) default NULL,
FramedProtocol varchar(32) default NULL,
FramedIPAddress varchar(15) NOT NULL default '',
AcctStartDelay int(12) default NULL,
AcctStopDelay int(12) default NULL,
PRIMARY KEY (RadAcctId),
KEY UserName (UserName),
KEY FramedIPAddress (FramedIPAddress),
KEY AcctSessionId (AcctSessionId),
KEY AcctUniqueId (AcctUniqueId),
KEY AcctStartTime (AcctStartTime),
KEY AcctStopTime (AcctStopTime),
KEY NASIPAddress (NASIPAddress)
) ;

#
# Table structure for table 'radcheck'
#

CREATE TABLE radcheck (
id int(11) unsigned NOT NULL auto_increment,
UserName varchar(64) NOT NULL default '',
Attribute varchar(32) NOT NULL default '',
op char(2) NOT NULL DEFAULT '==',
Value varchar(253) NOT NULL default '',
PRIMARY KEY (id),
KEY UserName (UserName(32))
) ;

#
# Table structure for table 'radgroupcheck'
#
CREATE TABLE radgroupcheck (
id int(11) unsigned NOT NULL auto_increment,
GroupName varchar(64) NOT NULL default '',
Attribute varchar(32) NOT NULL default '',
op char(2) NOT NULL DEFAULT '==',
Value varchar(253) NOT NULL default '',
PRIMARY KEY (id),
KEY GroupName (GroupName(32))
) ;

#
# Table structure for table 'radgroupreply'
#

CREATE TABLE radgroupreply (
id int(11) unsigned NOT NULL auto_increment,
GroupName varchar(64) NOT NULL default '',
Attribute varchar(32) NOT NULL default '',
op char(2) NOT NULL DEFAULT '=',
Value varchar(253) NOT NULL default '',
PRIMARY KEY (id),
KEY GroupName (GroupName(32))
) ;

#
# Table structure for table 'radreply'
#

CREATE TABLE radreply (
id int(11) unsigned NOT NULL auto_increment,
UserName varchar(64) NOT NULL default '',
Attribute varchar(32) NOT NULL default '',
op char(2) NOT NULL DEFAULT '=',
Value varchar(253) NOT NULL default '',
PRIMARY KEY (id),
KEY UserName (UserName(32))
) ;


#
# Table structure for table 'usergroup'
#

CREATE TABLE usergroup (
UserName varchar(64) NOT NULL default '',
GroupName varchar(64) NOT NULL default '',
priority int(11) NOT NULL default '1',
KEY UserName (UserName(32))
) ;

#
# Table structure for table 'radpostauth'
#

CREATE TABLE radpostauth (
id int(11) NOT NULL auto_increment,
user varchar(64) NOT NULL default '',
pass varchar(64) NOT NULL default '',
reply varchar(32) NOT NULL default '',
date timestamp(14) NOT NULL,
PRIMARY KEY (id)
) ;

##########################
# The next table is commented out because it is not
# currently used in the server.
#
#
# Table structure for table 'dictionary'
#
#CREATE TABLE dictionary (
# id int(10) DEFAULT '0' NOT NULL auto_increment,
# Type varchar(30),
# Attribute varchar(64),
# Value varchar(64),
# Format varchar(20),
# Vendor varchar(32),
# PRIMARY KEY (id)
#);

#
# Table structure for table 'nas'
#
CREATE TABLE nas (
id int(10) NOT NULL auto_increment,
nasname varchar(128) NOT NULL,
shortname varchar(32),
type varchar(30) DEFAULT 'other',
ports int(5),
secret varchar(60) DEFAULT 'secret' NOT NULL,
community varchar(50),
description varchar(200) DEFAULT 'RADIUS Client',
PRIMARY KEY (id),
KEY nasname (nasname)
);
===========================


e os erros de conexão continuam:

Error: rlm_sql (sql): Failed to connect DB handle #4
Info: rlm_sql (sql): There are no DB handles to use! skipped 5, tried to connect 1

se puder me apontar por onde recomeçar, fiz e refiz seu artigo inteiro.

Grato.

[58] Comentário enviado por lucianodecastro em 28/10/2006 - 18:01h

estou com o seguite problema é quando eu tento instalar o dialup_admin
# mysql -pSENHA -u USUARIO -h SERVIDOR radius -e badusers.sql
um erro
ERROR 1067 (42000) at line 4: Invalid default value for 'id'
eu baixei outro arquivo pra comparar as linha 4 + os dois estao com valor 10
posso alteralo se posso pra qual
obrigado pelo artigo gostei muito ha eu uso a debian

[59] Comentário enviado por cytron em 03/12/2006 - 18:25h

Tenho procurado por toda a internet por material sobre freeradius, em português este é o melhor que tem, encontrei um em inglês que é bem completo.

Mas tem um probleminha com todos esses artigos sobre freeradius, só explicam como colocar o server pra funcionar e uma leve pincelada no cliente.

Não entendo quase nada de radius, e graças a este artigo coloquei o meu server pra funcionar. No entanto ainda não consegui usar autenticação nele, passa direto como se ele não existisse.

O meu apelo é o seguinte:

Todo mundo fala que radius é para autenticação e contabilidade, mas ninguém disse além disso.

Ou seja, depois de concluír o tutorial, o leigo diz: Pronto, usei o radtest e meu radius tá rodando legal... E agora?

Caros amigos, parece que não, mas a parte mais complicada do rádius é o uso. E não existe tutorial ensinando a usar, só a instalar e configurar.

Meu radius está pronto, daí tive que presumir como se usa. Não deu certo.

VEJA BEM... Não estou passando cermão, longe de mim. (é o meu modo de falar mesmo! hehe) O que estou fazendo é pedindo para que alguém que domine o assunto pudesse escrever um básico da estrutura do radius, como funciona e como se usa, pode pular a configuração, dê pelo menos o exêmplo mais básico: um clientes winXP conectando no ISP pra navegar na net. O ISP tem radius. Apartir desse exêmplo o leigo poderá encaixar no que ele precisa.

Já sabemos que o cliente (suplicant) envia a requisição para o autenticador que repassa para o radius, se o radius aprovar então o autenticador libera para o cliente.

O ponto X é... se o autenticador é quem libera... então como funciona o controle de banda no radius? como ele controla alguma coisa além do login? a conexão do cliente se passa dentro de um túnel ou isso é só durante o login?

Tentei explicar o que aprendi sobre radius pruns colegas meus... eles fizeram as mesmas perguntas minhas hahahaha!

Ajuda aí gente!!!

Eu configuro um samba e um proxy com as mão amarradas nas costas e pendurado de ponta-cabeça,..., mas esse radius tá me matando. hahahahaha!!!

[60] Comentário enviado por mantunes em 07/12/2006 - 10:47h

Bem cytron... tanto eu quanto vc temos q dar uma olhada na lista do freeradius... tem bastante coisa q da para fazer com ele, algumas delas até conseguimos implementar... porém como funciona por "debaixo dos panos" tbem não sei.
To mexendo com o chillispot e apanhando um pouco pra faze ele funciona com o Radius do jeito que quero.

O Tutorial do patrick é mto bom, e me ajudou tambem a entender um pouco mais.

Parabéns!

[61] Comentário enviado por leobruno em 21/12/2006 - 23:32h

Ola Patrick ...

Primeiramente gostaria de parabenizar pelo artigo, que e bem completo.
Mas gostaria de repetir a pergunta do colega.

E o controle de banda ?
Como deveremos proceder ?

[62] Comentário enviado por patrickbrandao em 22/12/2006 - 10:42h

Vc esta se enganando, o freeradius é um protocolo de pergunta e resposta, e nao um software de controle de pacotes! Leia os comentarios do artigo que vc aprenderá como chegar ao seu objetivo e usar o radius pra responder esses parametros para o software que voce usará como controlador (AP, Mikrotic, etc...), leia tb a documentação dos equipamentos para se inteirar dos dicionarios usados.

[63] Comentário enviado por marcaodonacional em 27/12/2006 - 20:57h

ola!
quando o cliente conecta o icone de conexao diz a velocidade do link (11Mbts wireless por exemplo), mas com raspppoe é possivel configurar a velocidade q vai aparecer nesse icone....pergunto ...tem como configurar isso no ras, no freeradius ou nos dois.

[64] Comentário enviado por removido em 29/12/2006 - 17:23h

Pessoal estava com problema para fazer o radius autenticar na minha base de usuarios local do sistema, e descobri que o problema era que o usuário criado por pardrao o "radiusd" não tem permissão para ler o "/etc/shadow" entao tive que criar outra base local por motivos de seguraca tb.... e funcionou blza....utilizo o OpenSuSE....

[65] Comentário enviado por cytron em 07/01/2007 - 01:17h

Caramba!!! A coisa tá complicada por aqui. Estou a horas tentando arrumar uma solução para desconectar o login do usuário se a conexão dele cair, eu tinha encontrado um artigo sobre derrubar a conexão caso um outro pedido seja enviado, mas não sei mais onde está.

Alguém sabe?

[66] Comentário enviado por cytron em 10/01/2007 - 00:58h

patrickbrandao, como faço para automaticamente gravar num log todo o tráfico de um determinado usuário???

Digo, assim que um cliente se conectar, todos os pacotes da conexção dele fique registrados para uma posterior análise com o wireshack.

[67] Comentário enviado por removido em 28/01/2007 - 01:02h

Olá, alguem sabe como fazer o controle de banda pelo radius ?

[68] Comentário enviado por patrickbrandao em 29/01/2007 - 10:35h

Se de ao trabalho de ler os comentarios anteriores!

[69] Comentário enviado por urisso em 07/02/2007 - 11:24h

Gostaria de reportar uma duvida. porque que no lugar do IP do NAS aparece a mascara de sub-rede ?

Obs.: Nao fiz nenhuma alteracao nos arquivos radiusd.conf e o clients.conf que estao definidos nesse howto, segui todos os passos conformo o mostrado. Uso FreeBSD 6.2-Release + mysql-server-5.0.33 + freeradius-1.1.4_1.

(root@freenet) /usr/local/etc/raddb# radtest joao senhasecreta 127.0.0.1:1645 0 reioceleste
Sending Access-Request of id 50 to 127.0.0.1 port 1645
User-Name = "joao"
User-Password = "senhasecreta"
NAS-IP-Address = 255.255.255.255
NAS-Port = 0
Re-sending Access-Request of id 50 to 127.0.0.1 port 1645
User-Name = "joao"
User-Password = "senhasecreta"
NAS-IP-Address = 255.255.255.255
NAS-Port = 0
^C

[70] Comentário enviado por joabes em 12/02/2007 - 14:18h

Caro Patrick.

Segui seu howto e o radius funcionou blz autenticando em base do sistema, só que passei ele para autenticar no mysql e sempre me da acesso negado acompanhando o log vi que o usuário é recusando no mysql.

Minha dúvida é nessa linha:

INSERT INTO radcheck (username, attribute, op, value) VALUES ('usuario', 'Password', '==', 'senha');


Os campos Password seria a senha do usuário, ou fica password mesmo?
O campo == seria o que ali?
Onde está senha, seria o segredo do radius a senha do usuário?

Ainda no log no radius ele mostra unknown attribute , o que vem a ser isso?

Grato.
Joabes

Aguardo retorno.

[71] Comentário enviado por marcoeloy em 14/02/2007 - 00:28h

Patrick, eu gostei muito mesmo do seu tutorual. Eu ja sou usuario do radius pra autenticação de usuarios discados e estou montando estrutura pra clientes via radio, ajudou a esclarecer algumas dúvidas.

joabes, pra cada usuario vc da um insert separado nesa tabela(radcheck).
Se vc tem os seguintes susarios/senhas:
joao / j123
pedro / p234
maria / m345
zeca / p999
vc faria:
INSERT INTO radcheck (username, attribute, op, value) VALUES ('joao', 'Password', '==', 'j123');
INSERT INTO radcheck (username, attribute, op, value) VALUES ('pedro', 'Password', '==', 'p234');
INSERT INTO radcheck (username, attribute, op, value) VALUES ('maria, 'Password', '==', 'm345');
INSERT INTO radcheck (username, attribute, op, value) VALUES ('zeca', 'Password', '==', 'p999');

o termo Password aqui é um parametro para os logins joao, pedro, maria e zeca.
Espero ter ajudado.

[72] Comentário enviado por marcoeloy em 14/02/2007 - 00:45h

snaikerz e outros que querem saber pra que serve o Radius. Segue aqui um exemplo...

FreeRadius não faz controle de banda. Para tal vc devc pesquisar exipts especificos para esse fim com oo CQB e o HTB. A função do radius é a mesma do chaveiro no flme matrix 2. Ele o ponto de partida para usuarios que querem ter acesso a redes. No meu caso, por exemplo:
1-Tenho os ips/macs das placas de rede dos clientes cadastradas em um banco de dados mysql.
2-o radio checa a chave WEP pra ver se o cliente pode ter acesso à rede wireless.
3-Quando o cara conecta o DHCP atribui o ip para ele o ip que ta reservado para aquele mac(precisa amarrar o mac ao ip do cliene por causa do controle de banda que é por ip). Dessa forma a maquina recebe ip/mascara/gateway/dominio específicos dela.
4- agora o cara vai no raduis e autentica o usuario e a senha que foi passado pra ele. Porque fazer isso se ele ja tem o mac/ip/wep corretos? Porque exitem programas que clonam macs da placa de rede e é muito facil quebrar a chave WEP(no caso de clientes que se conectam via radio). Se o cara possui mac/ip/wep/usuario e senha corretos, um script que fica "escutando as conexoes radius bem sucedidas" aplicas as regras no firewall(iptables) e libera o car pra navegar
5-outro script fica escurtando as conexoes que cairam e desconecta remove as regras do firewall caso ele desligue o computador

No meu caso serve par isso, mas existem inumeras possibilidades. Se vc quer manter uma base centralizada de autenticacao de usuarios para diversos fins, essa é na minha opiniao uma ótima saida.

Abraço a todos,
Marco Antonio Eloy

[73] Comentário enviado por marcoeloy em 14/02/2007 - 00:48h

cytron pra esse tipo de LOG vc deve usar o a diretiva LOG do iptables. Pega tudo que vc quiser.

Sds,
Marco

[74] Comentário enviado por auditor em 23/02/2007 - 13:49h

Amigos, Gostaria de autenticar clientes wirelless usando esse tutorial..existe essa possibilidade? Nunca fiz algo semelhante entao se puderem dar umas dicas de inicio agradeço imensamente...Desde ja agradeço a todos flw

[75] Comentário enviado por lavoie em 27/03/2007 - 16:28h

existe alguma forma de nao deixar os usuarios "agarrados" ao radius ?
pois os caras enchem o saco!!, com o comando para apagar a sessao funciona, so que os usuarios tentam mais de mil vezes ai os caras ligam putos da vida.


se alguem souber de algo, ja procurei na net e naum achei nada!

[76] Comentário enviado por patrickbrandao em 27/03/2007 - 16:39h

Provavelmente se NAS ou RAS é ineficiente ao finalizar as sessoes ou sua rede esta com perda de pacotes consideravel.

A solução é localizar o problema e corrigi-lo. Trocar o equipamento ruim ou nao fazer controle de login simultaneo.

Ja a gambiarra seria voce desenvolver um script que verificasse, via snmp ou outro protocolo os usuários discrepantes no radius.

[77] Comentário enviado por removido em 29/07/2007 - 02:33h

ola será que alguem poderia me ajudar aconteceu o seguinte erro mostrado abaixo na hora de instalar o freeRAdius no ubuntu breezy
make[1]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7'
Making all in libltdl...
make[2]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/libltdl'
/usr/bin/make all-am
make[3]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/libltdl'
make[3]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/libltdl'
make[2]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/libltdl'
Making all in src...
make[2]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src'
make[3]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src'
Making all in include...
make[4]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/include'
make[4]: Nada a ser feito para `all'.
make[4]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/include'
Making all in lib...
make[4]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/lib'
make[4]: Nada a ser feito para `all'.
make[4]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/lib'
Making all in modules...
make[4]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules'
make[5]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules'
Making all in rlm_acct_unique...
make[6]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_acct_unique'
make[6]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_acct_unique'
Making all in rlm_always...
make[6]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_always'
make[6]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_always'
Making all in rlm_attr_filter...
make[6]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_attr_filter'
make[6]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_attr_filter'
Making all in rlm_attr_rewrite...
make[6]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_attr_rewrite'
make[6]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_attr_rewrite'
Making all in rlm_chap...
make[6]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_chap'
make[6]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_chap'
Making all in rlm_counter...
make[6]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_counter'
make[6]: Nada a ser feito para `all'.
make[6]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_counter'
Making all in rlm_dbm...
make[6]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_dbm'
make[6]: Nada a ser feito para `all'.
make[6]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_dbm'
Making all in rlm_detail...
make[6]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_detail'
make[6]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_detail'
Making all in rlm_digest...
make[6]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_digest'
make[6]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_digest'
Making all in rlm_eap...
make[6]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap'
Making all in libeap...
make[7]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/libeap'
make[7]: Nada a ser feito para `all'.
make[7]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/libeap'
Making all in types...
make[7]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types'
/usr/bin/make -w WHAT_TO_MAKE=all common
make[8]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types'
Making all in rlm_eap_gtc...
make[9]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_gtc'
make[9]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_gtc'
Making all in rlm_eap_leap...
make[9]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_leap'
make[9]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_leap'
Making all in rlm_eap_md5...
make[9]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_md5'
make[9]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_md5'
Making all in rlm_eap_mschapv2...
make[9]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_mschapv2'
make[9]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_mschapv2'
Making all in rlm_eap_peap...
make[9]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_peap'
make[9]: Nada a ser feito para `all'.
make[9]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_peap'
Making all in rlm_eap_sim...
make[9]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_sim'
make[9]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_sim'
Making all in rlm_eap_tls...
make[9]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_tls'
make[9]: Nada a ser feito para `all'.
make[9]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_tls'
Making all in rlm_eap_ttls...
make[9]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_ttls'
make[9]: Nada a ser feito para `all'.
make[9]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_ttls'
make[8]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types'
make[7]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types'
make[7]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap'
Making all in libeap...
make[8]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/libeap'
make[8]: Nada a ser feito para `all'.
make[8]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/libeap'
Making all in types...
make[8]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types'
/usr/bin/make -w WHAT_TO_MAKE=all common
make[9]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types'
Making all in rlm_eap_gtc...
make[10]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_gtc'
make[10]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_gtc'
Making all in rlm_eap_leap...
make[10]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_leap'
make[10]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_leap'
Making all in rlm_eap_md5...
make[10]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_md5'
make[10]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_md5'
Making all in rlm_eap_mschapv2...
make[10]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_mschapv2'
make[10]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_mschapv2'
Making all in rlm_eap_peap...
make[10]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_peap'
make[10]: Nada a ser feito para `all'.
make[10]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_peap'
Making all in rlm_eap_sim...
make[10]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_sim'
make[10]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_sim'
Making all in rlm_eap_tls...
make[10]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_tls'
make[10]: Nada a ser feito para `all'.
make[10]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_tls'
Making all in rlm_eap_ttls...
make[10]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_ttls'
make[10]: Nada a ser feito para `all'.
make[10]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_ttls'
make[9]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types'
make[8]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap/types'
make[7]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap'
make[6]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_eap'
Making all in rlm_exec...
make[6]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_exec'
make[6]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_exec'
Making all in rlm_expr...
make[6]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_expr'
make[6]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_expr'
Making all in rlm_fastusers...
make[6]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_fastusers'
make[6]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_fastusers'
Making all in rlm_files...
make[6]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_files'
make[6]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_files'
Making all in rlm_ippool...
make[6]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_ippool'
make[6]: Nada a ser feito para `all'.
make[6]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_ippool'
Making all in rlm_krb5...
make[6]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_krb5'
make[6]: Nada a ser feito para `all'.
make[6]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_krb5'
Making all in rlm_ldap...
make[6]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_ldap'
make[6]: Nada a ser feito para `all'.
make[6]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_ldap'
Making all in rlm_mschap...
make[6]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_mschap'
make[6]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_mschap'
Making all in rlm_ns_mta_md5...
make[6]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_ns_mta_md5'
make[6]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_ns_mta_md5'
Making all in rlm_otp...
make[6]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_otp'
make[6]: Nada a ser feito para `all'.
make[6]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_otp'
Making all in rlm_pam...
make[6]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_pam'
make[6]: Nada a ser feito para `all'.
make[6]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_pam'
Making all in rlm_pap...
make[6]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_pap'
make[6]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_pap'
Making all in rlm_passwd...
make[6]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_passwd'
make[6]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_passwd'
Making all in rlm_perl...
make[6]: Entrando no diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_perl'
/home/alexmonassa/Desktop/freeradius-1.1.7/libtool --mode=link gcc -release 1.1.7 \
-module -export-dynamic -o rlm_perl.la \
-rpath /usr/local/lib rlm_perl.lo rlm_perl.c /home/alexmonassa/Desktop/freeradius-1.1.7/src/lib/libradius.la \
`perl -MExtUtils::Embed -e ldopts` -lnsl -lresolv -lpthread

*** Warning: Linking the shared library rlm_perl.la against the
*** static library /usr/lib/perl/5.8/auto/DynaLoader/DynaLoader.a is not portable!
gcc -shared .libs/rlm_perl.o -Wl,--rpath -Wl,/home/alexmonassa/Desktop/freeradius-1.1.7/src/lib/.libs -Wl,--rpath -Wl,/usr/local/lib /home/alexmonassa/Desktop/freeradius-1.1.7/src/lib/.libs/libradius.so -L/usr/local/lib /usr/lib/perl/5.8/auto/DynaLoader/DynaLoader.a -L/usr/lib/perl/5.8/CORE -lperl -ldl -lm -lc -lcrypt -lnsl -lresolv -lpthread -Wl,-E -Wl,-soname -Wl,rlm_perl-1.1.7.so -o .libs/rlm_perl-1.1.7.so
make[6]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules/rlm_perl'
make[5]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules'
make[4]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src/modules'
make[3]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src'
make[2]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7/src'
make[1]: Saindo do diretório `/home/alexmonassa/Desktop/freeradius-1.1.7'

/usr/bin/ld: cannot find -lperl
collect2: ld returned 1 exit status
make[6]: ** [rlm_perl.la] Erro 1
make[5]: ** [common] Erro 2
make[4]: ** [all] Erro 2
make[3]: ** [common] Erro 2
make[2]: ** [all] Erro 2
make[1]: ** [common] Erro 2
make: ** [all] Erro 2

O comando ./configure funcionou bem mas na hora de dar o comando make é que deu esse erro.
um abraço

Mano

manomonassa.blogspot.com

[78] Comentário enviado por mauHumb em 16/08/2007 - 12:54h

Bom dia, patrick!

parece q esse artigo é realmente bom. imprimi ele e stou m baseando nele pra fazer um trabalho aki d faculdade (Implementação do Freeradius p/ Autenticação em Redes Wirelles).
tipo... consegui acompanhar até o passo 8 (Autenticando na base de dasos MySQL e evitando conexões simultãneas) qdo pede pra acesar o arquivo db_mysql.sql, seguindo o caminho completo:

/usr/local/src/freeradius-1.1.1/src/modules/rlm_sql/drivers/rlm_sql_mysql

O problema é o seguinte: não tem esse arquivo db_mysql.sql nesse diretório. Qdo dei ls listou apenas os seguintes arquivos:

config.h config.log configure Makefile rlm_sql_mysql.la sql_mysql.lo
config.h.in config.status configure.in Makefile.in sql_mysql.c sql_mysql.o

Exite a possibilidade de o MySQL não star instalado corretamente? Ele foi instalado juntamente com o Fedora (vem no CD).

Stou usando o Fedora Core 3 e Freeradius 1.1.1 e MySQL 3.2.5.

Obrigado!

[79] Comentário enviado por jairovisks em 29/08/2007 - 12:55h



alexmoreira, tive o mesmo problema e resolvi instalando o pacote libperl-devel

Flow

[80] Comentário enviado por danilo_montagna em 11/09/2007 - 23:23h

Apenas uma duvida ref a essa questao de limitar o usuario em 1 conexao simultanea, o que acontece em uma situacao que um usuario que estava autenticado normal desligar o modem da tomada e liga novamente, a conexao dele ficara presa se isso acontecer? se acontecer isso mesmo é meio chato pois eu vou ter que toda hora ficar limpando o usuario da tabela radacct.

Obrigado..

[81] Comentário enviado por danilo_montagna em 12/09/2007 - 15:30h

outra duvida, é possivel encriptar a senha no banco mysql? ou tem que ser em texto simples mesmo?

[82] Comentário enviado por iuredaluz em 09/10/2007 - 01:42h

Ae galera, instalei meu servidor radius,)estou usando pppoe-server + mikrotik) porem não esta autenticando, eu n sei mais o que faço para funcionar, eu executo ele em modo debug, e inicia blz, mais quando vou conectar da erro. Olhe:

rad_recv: Access-Request packet from host 192.168.10.1:42948, id=84, length=258
Service-Type = Framed-User
Framed-Protocol = PPP
NAS-Port = 120
NAS-Port-Type = Ethernet
User-Name = "iure@netexpress.com.br"
Calling-Station-Id = "00:19:21:8D:66:FC"
Called-Station-Id = "PPPoE-WinXP"
NAS-Port-Id = "Local"
MS-CHAP-Domain = "netexpress.com.br"
MS-CHAP-Challenge = 0xc74ceaf7d0b2c5514ce2a0d191e1833b
MS-CHAP2-Response = 0x01003ef5ea2cc2dd9309fc2d1edad45c3b14000000000000 0000c6cb688188e9e7c15379f1958dd1afb27abcb866208f5c df
NAS-Identifier = "Eletron Luz"
NAS-IP-Address = 192.168.10.1
Mikrotik-Realm = "netexpress.com.br"
Processing the authorize section of radiusd.conf
modcall: entering group authorize for request 0
modcall[authorize]: module "preprocess" returns ok for request 0
modcall[authorize]: module "chap" returns noop for request 0
rlm_mschap: Found MS-CHAP attributes. Setting 'Auth-Type = mschap'
modcall[authorize]: module "mschap" returns ok for request 0
rlm_realm: Looking up realm "netexpress.com.br" for User-Name = "iure@netexpress.com.br"
rlm_realm: Found realm "netexpress.com.br"
rlm_realm: Adding Stripped-User-Name = "iure"
rlm_realm: Proxying request from user iure to realm netexpress.com.br
rlm_realm: Adding Realm = "netexpress.com.br"
rlm_realm: Preparing to proxy authentication request to realm "netexpress.com.br"
modcall[authorize]: module "suffix" returns updated for request 0
radius_xlat: 'iure@netexpress.com.br'
rlm_sql (sql): sql_set_user escaped user --> 'iure@netexpress.com.br'
radius_xlat: 'SELECT id, UserName, Attribute, Value, op FROM radcheck WHERE Username = 'iure@netexpress.com.br' ORDER BY id'
rlm_sql (sql): Reserving sql socket id: 4
rlm_sql (sql): User iure@netexpress.com.br not found in radcheck
radius_xlat: 'SELECT radgroupcheck.id,radgroupcheck.GroupName,radgroupc heck.Attribute,radgroupcheck.Value,radgroupcheck.o p FROM radgroupcheck,usergroup WHERE usergroup.Username = 'iure@netexpress.com.br' AND usergroup.GroupName = radgroupcheck.GroupName ORDER BY radgroupcheck.id'
radius_xlat: 'SELECT radgroupreply.id,radgroupreply.GroupName,radgroupr eply.Attribute,radgroupreply.Value,radgroupreply.o p FROM radgroupreply,usergroup WHERE usergroup.Username = 'iure@netexpress.com.br' AND usergroup.GroupName = radgroupreply.GroupName ORDER BY radgroupreply.id'
rlm_sql (sql): User iure@netexpress.com.br not found in radgroupcheck
rlm_sql (sql): Released sql socket id: 4
rlm_sql (sql): User not found
modcall[authorize]: module "sql" returns notfound for request 0
modcall: leaving group authorize (returns updated) for request 0
Sending Access-Request of id 0 to 192.168.10.5 port 1812
Service-Type = Framed-User
Framed-Protocol = PPP
NAS-Port = 120
NAS-Port-Type = Ethernet
User-Name = "iure"
Calling-Station-Id = "00:19:21:8D:66:FC"
Called-Station-Id = "PPPoE-WinXP"
NAS-Port-Id = "Local"
MS-CHAP-Domain = "netexpress.com.br"
MS-CHAP-Challenge = 0xc74ceaf7d0b2c5514ce2a0d191e1833b
MS-CHAP2-Response = 0x01003ef5ea2cc2dd9309fc2d1edad45c3b14000000000000 0000c6cb688188e9e7c15379f1958dd1afb27abcb866208f5c df
NAS-Identifier = "Eletron Luz"
NAS-IP-Address = 192.168.10.1
Mikrotik-Realm = "netexpress.com.br"
Proxy-State = 0x3834
--- Walking the entire request list ---
Waking up in 6 seconds...
rad_recv: Access-Request packet from host 192.168.10.5:1814, id=0, length=244
Service-Type = Framed-User
Framed-Protocol = PPP
NAS-Port = 120
NAS-Port-Type = Ethernet
User-Name = "iure"
Calling-Station-Id = "00:19:21:8D:66:FC"
Called-Station-Id = "PPPoE-WinXP"
NAS-Port-Id = "Local"
MS-CHAP-Domain = "netexpress.com.br"
MS-CHAP-Challenge = 0xc74ceaf7d0b2c5514ce2a0d191e1833b
MS-CHAP2-Response = 0x01003ef5ea2cc2dd9309fc2d1edad45c3b14000000000000 0000c6cb688188e9e7c15379f1958dd1afb27abcb866208f5c df
NAS-Identifier = "Eletron Luz"
NAS-IP-Address = 192.168.10.1
Mikrotik-Realm = "netexpress.com.br"
Proxy-State = 0x3834
Processing the authorize section of radiusd.conf
modcall: entering group authorize for request 1
modcall[authorize]: module "preprocess" returns ok for request 1
modcall[authorize]: module "chap" returns noop for request 1
rlm_mschap: Found MS-CHAP attributes. Setting 'Auth-Type = mschap'
modcall[authorize]: module "mschap" returns ok for request 1
rlm_realm: No '@' in User-Name = "iure", looking up realm NULL
rlm_realm: No such realm "NULL"
modcall[authorize]: module "suffix" returns noop for request 1
radius_xlat: 'iure'
rlm_sql (sql): sql_set_user escaped user --> 'iure'
radius_xlat: 'SELECT id, UserName, Attribute, Value, op FROM radcheck WHERE Username = 'iure' ORDER BY id'
rlm_sql (sql): Reserving sql socket id: 3
radius_xlat: 'SELECT radgroupcheck.id,radgroupcheck.GroupName,radgroupc heck.Attribute,radgroupcheck.Value,radgroupcheck.o p FROM radgroupcheck,usergroup WHERE usergroup.Username = 'iure' AND usergroup.GroupName = radgroupcheck.GroupName ORDER BY radgroupcheck.id'
radius_xlat: 'SELECT id, UserName, Attribute, Value, op FROM radreply WHERE Username = 'iure' ORDER BY id'
radius_xlat: 'SELECT radgroupreply.id,radgroupreply.GroupName,radgroupr eply.Attribute,radgroupreply.Value,radgroupreply.o p FROM radgroupreply,usergroup WHERE usergroup.Username = 'iure' AND usergroup.GroupName = radgroupreply.GroupName ORDER BY radgroupreply.id'
rlm_sql (sql): Released sql socket id: 3
rlm_sql (sql): No matching entry in the database for request from user [iure]
modcall[authorize]: module "sql" returns notfound for request 1
modcall: leaving group authorize (returns ok) for request 1
rad_check_password: Found Auth-Type MS-CHAP
auth: type "MS-CHAP"
Processing the authenticate section of radiusd.conf
modcall: entering group MS-CHAP for request 1
rlm_mschap: No User-Password configured. Cannot create LM-Password.
rlm_mschap: No User-Password configured. Cannot create NT-Password.
rlm_mschap: Told to do MS-CHAPv2 for iure with NT-Password
rlm_mschap: FAILED: No NT/LM-Password. Cannot perform authentication.
rlm_mschap: FAILED: MS-CHAP2-Response is incorrect
modcall[authenticate]: module "mschap" returns reject for request 1
modcall: leaving group MS-CHAP (returns reject) for request 1
auth: Failed to validate the user.
Delaying request 1 for 1 seconds
Finished request 1
Going to the next request
Waking up in 6 seconds...
rad_recv: Access-Request packet from host 192.168.10.1:42948, id=84, length=258
Ignoring duplicate packet from client mikrotik:42948 - ID: 84, due to outstanding proxied request 0.
--- Walking the entire request list ---
Waking up in 1 seconds...
rad_recv: Access-Request packet from host 192.168.10.1:42948, id=84, length=258
Ignoring duplicate packet from client mikrotik:42948 - ID: 84, due to outstanding proxied request 0.
Sending Access-Reject of id 0 to 192.168.10.5 port 1814
Proxy-State = 0x3834
Waking up in 1 seconds...
rad_recv: Access-Reject packet from host 192.168.10.5:1812, id=0, length=24
Proxy-State = 0x3834
Processing the post-proxy section of radiusd.conf
modcall: entering group post-proxy for request 0
modcall[post-proxy]: module "eap" returns noop for request 0
modcall: leaving group post-proxy (returns noop) for request 0
Delaying request 0 for 1 seconds
Finished request 0
Going to the next request
Waking up in 1 seconds...
--- Walking the entire request list ---
Waking up in 1 seconds...
--- Walking the entire request list ---
Sending Access-Reject of id 84 to 192.168.10.1 port 42948
Waking up in 3 seconds...
--- Walking the entire request list ---
Cleaning up request 1 ID 0 with timestamp 470770c9
Waking up in 1 seconds...
--- Walking the entire request list ---
Cleaning up request 0 ID 84 with timestamp 470770ca
Nothing to do. Sleeping until we see a request.


Me ajudem

[83] Comentário enviado por nibuAguiar em 11/10/2007 - 20:45h

Olá amigo, instalei o freeradius e configurei o mesmo. Estou logando com o radtest, tanto no modo debug quanto na execução normal. Porém, mesmo com o daemon inicializado consigo logar via ssh e ter acesso ao mundo apartir de um PC que é "masquereado" (pelo iptables)pela maquina onde o freeradius está rodando...

Você teria alguma idéia do que estou fazendo de errado?

Obrigado.

[84] Comentário enviado por land73 em 23/10/2007 - 08:31h

Artigo interessante e super completo!!! Mas para iniciantes é confuso :)
Existe alguma interface gráfica para gerenciar o free radius?

[85] Comentário enviado por proteus_n em 23/10/2007 - 12:24h

Ola estou tentando seguir o artigo mais estou com o mesmo problema do amigo """alexmoreira""" o colega falou do pacote libperl-devel """jairovisks"""
Como resolver ?


que pacote é este onde esta ?
Estou usando o Fedora Core 6 e freeradius-1.1.7

Obrigado!

[86] Comentário enviado por proteus_n em 24/10/2007 - 18:59h

ola toda vez que tento criar a tabela banco de dados , mysql -psenharoot radius < db_mysql.sql da erro : ERROR 1046 (3D000) at line 15: No database selected

O QUE PODE SER ?

[87] Comentário enviado por cytron em 27/10/2007 - 15:12h

Olá galera!!! Venho estudando o freeradius a um bom tempo e estou me disponibilizando a troca de idéias, meu e-mail é cytron@pop.com.br

Comecei aqui também, nesse ótimo guia feito pelo Patrick Brandão, fiz várias melhorias, entendi mais a fundo algumas outras características.

Atualmente falta mesmo é fazer o IP Pool funcionar sem remendos, ví que no script doc/examples/mysql.sql não consta a tabela sqlippool e tive que portar de outro script. Na internet não estou encontrando documentação sobre esse assunto, até mesmo a documentação do freeradius é muito vaga e não explica como usar. Quem souber me avise.

Quero me aprofundar ainda mais no freeradius, por isso troco idéias.

[88] Comentário enviado por removido em 06/12/2007 - 12:07h

Alguém pode me ajudar??
Estou com um problema na hora de fazer o teste..
Aparece o seguinte erro:
rad_recv: Access-Reject packet from host 127.0.0.1:1645, id=198, length=20

Alguem sabe oq pode estar acontecendo??
fjonasr@gmail.com

Obrigado

[89] Comentário enviado por LuisDuarte em 04/01/2008 - 14:41h

Pessoal, as versões mais novas do FreeRADIUS (usei a 1.1.7) não possuem o arquivo db_mysql.sql no diretório indicado pelo artigo.

Não adianta fazer o download de uma versão mais antiga (no caso a 1.0.1) e usar o db_mysql.sql dela numa instalação mais nova.

Segue o link para o arquivo db_mysql.sql atualizado:
http://wiki.freeradius.org/MySQL_DDL_script

[90] Comentário enviado por Jeremias Costa em 05/01/2008 - 15:27h

muito completo o artigo
está de parabens !!

[91] Comentário enviado por alsiqueira em 04/02/2008 - 11:12h

Salve Patrick

Estou seguindo um tuturial seu que vc postou no vivaolinux sobre radius que por sinal parabens mas esta dando um erro se vc puder me ajudar





Estou instalando um FreeRadius em um Slack 12 na autenticação pelo usuario do sistema linux vai muito bem mas quando abilito pra sql pra rodar com Mysql


Da um erro assim no log do radius








Mon Feb 4 10:51:03 2008 : Info: Using deprecated naslist file. Support for this will go away soon.
Mon Feb 4 10:51:03 2008 : Info: rlm_exec: Wait=yes but no output defined. Did you mean output=none?
Mon Feb 4 10:51:03 2008 : Error: rlm_sql (sql): Could not link driver rlm_sql_mysql: rlm_sql_mysql.so: cannot open shared object file: No such file or directory
Mon Feb 4 10:51:03 2008 : Error: rlm_sql (sql): Make sure it (and all its dependent libraries!) are in the search path of your system's ld.
Mon Feb 4 10:51:03 2008 : Error: radiusd.conf[14]: sql: Module instantiation failed.
Mon Feb 4 10:51:03 2008 : Error: radiusd.conf[1860] Unknown module "sql".
Mon Feb 4 10:51:03 2008 : Error: radiusd.conf[1789] Failed to parse authorize section.






esta tal de rlm_sql_mysql.so nao achei ela no servidor





se vc puder me ajudar


Sem mais


Alexandre Luis Siqueira

[92] Comentário enviado por rafengenharia em 08/04/2008 - 20:37h

Alguém pode me ajudar?
Estou com um problema quando vou testar o serviço de Radius.
Segui a risca este artigo. Estou usando a distribuição OpenSuse 10.2.
Sou novo nesta area....
O erro segue abaixo:


pppoeserver:~ # radiusd -x
Starting - reading configuration files ...
/etc/raddb/radiusd.conf[246]: Unable to open file "/usr/local/src/etc/raddb/proxy.conf": No such file or directory
Errors reading radiusd.conf

[93] Comentário enviado por marenet em 24/04/2008 - 15:09h

estou com erro na hora de criar o banco... da o seguinte erro
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)'
Check that mysqld is running and that the socket: '/var/lib/mysql/mysql.sock' exists!
o que pode ser

[94] Comentário enviado por marenet em 08/05/2008 - 22:16h

estou com o seguinte erro....
quando altero as configuração no radiusd.conf descomentando o SQL..
da um erro no levantar o serviço do radius...
Thu May 8 18:13:57 2008 : Info: Ready to process requests.
Thu May 8 18:14:30 2008 : Info: Using deprecated naslist file. Support for this will go away soon.
Thu May 8 18:14:30 2008 : Info: rlm_exec: Wait=yes but no output defined. Did you mean output=none?
Thu May 8 18:14:30 2008 : Info: rlm_eap_tls: Loading the certificate file as a chain
Thu May 8 18:14:30 2008 : Info: rlm_sql (sql): Driver rlm_sql_mysql (module rlm_sql_mysql) loaded and linked
Thu May 8 18:14:30 2008 : Info: rlm_sql (sql): Attempting to connect to root@localhost:/radius
Thu May 8 18:14:30 2008 : Info: rlm_sql_mysql: Starting connect to MySQL server for #0
Thu May 8 18:14:30 2008 : Error: rlm_sql_mysql: Couldn't connect socket to MySQL server root@localhost:radius
Thu May 8 18:14:30 2008 : Error: rlm_sql_mysql: Mysql error 'Can't connect to local MySQL server through socket '/var/lib/my
Thu May 8 18:14:30 2008 : Error: rlm_sql (sql): Failed to connect DB handle #0
Thu May 8 18:14:30 2008 : Info: Ready to process requests.

o que pode ser.;.

[95] Comentário enviado por jjunior_cba em 04/06/2008 - 17:27h

Olá a todos, estou fazendo um trabalho sobre segurança em rede sem fiu e meu estudo de caso é a istalação do freeradius..
Estou tentando seguir esse tutorial, mas nao estou conseguindo nem descompilar o freeradisus, preciso de ajuda se alguem puder ajudar, o erro é o seguinte.

checking for gcc... gcc
checking for C compiler default output file name...
configure: error: C compiler cannot create executables
See `config.log' for more details.
root@jjunior:/usr/local/src/freeradius-server-2.0.4#


Verifiquei aa versao do meu gcc e aparece o seguinte:

Usando especificações internas.
Destino: i486-linux-gnu
Configurado com: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.2 --program-suffix=-4.2 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-targets=all --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Modelo de fluxo de execução (thread): posix
gcc versão 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
root@jjunior:/usr/local/src/freeradius-server-2.0.4#

O que pode ser??

[96] Comentário enviado por fabriciomontelo em 15/07/2008 - 11:48h

OLá amigo, não estou conseguindo utilizar senha criptografas no mysql, pois o freeradius não precessa. Quando coloco senhas em formato de texto puro ai funciona. Existe algo a ser configurado no freeradius para que ele aceite senhas criptografas?

Excelente artigo!

[97] Comentário enviado por rogerio em 30/07/2008 - 17:39h

jjunior_cba basta instalar o g++ que irá funcionar, sei pq aconteceu comigo também.

Abraços

[98] Comentário enviado por rogerio em 30/07/2008 - 18:05h

A nova versão não vem com esse arquico db_mysql.sql, por isso o comando:

# mysql -psenharoot radius < db_mysql.sql

não funciona, como faço para criar as tabelas?

Abraços

[99] Comentário enviado por rogerio em 30/07/2008 - 18:12h

A nova versão não vem com esse arquivo db_mysql.sql, por isso o comando:

# mysql -psenharoot radius < db_mysql.sql

Tentei fazer o mesmo para o arquivo sql_mysql.c, achando que pudesse funcionar, porém não funcionou.

Como faço para criar as tabelas?

Abraços

[100] Comentário enviado por bruno_batista em 06/10/2008 - 11:33h

Boa tarde galera do VOL!

Estou querendo configurar um servidor radius no meu servidor Slackware 12.1 para rodar juntamente com o pppoe-server. O artigo acima funciona perfeitamente no Slackware 12.1 ou tenho que fazer alguma coisa diferente para que o mesmo funcione???

Desde já eu agradeço.....

[101] Comentário enviado por gzanatta00 em 29/10/2008 - 17:52h

alguem sabe qual é o erro disso?

quanto testo pelo radtest após algumas tentativas aparece isso
radclient: no response from server for ID 140

[102] Comentário enviado por enemy100 em 15/12/2008 - 09:42h

Olá,

Estou a alguns meses ja configurando esse Freeradius com o intuito de Autenticar roteadores e SW cisco, mas problemas no freeradius nao ajudam, é o seguinte:

quando dou um Radtest para uns dos ip's que esta cadastrado no clients.conf ele vai com sucesso.

rad_recv: Access-Accept packet from host 10.3.7.66:1812, id=37, length=62
Reply-Message = "Acesso liberado!"
Framed-Compression = Van-Jacobson-TCP-IP
Service-Type = Framed-User
Framed-MTU = 1500
Framed-Protocol = PPP
mas pra qualquer outro ip nao funciona!!!

meu radius.log só mostra erro quando tento com 127.0.0.1 . ele nao mostra o access acept e nem o rejeitado, é normal?
pq eu keria armazenar os comandos do cisco nele

no caso esse ip (10.3.7.66) ai é o do proprio servidor, e quando tento fazer o teste com o ip do roteador que tb esta cadastrado nao funciona :( fica dando access request a vida toda, mas ele ta certim no clients.conf e o usuario é o mesmo!!


olha oq aparece:
Re-sending Access-Request of id 206 to 10.3.0.251 port 1812
User-Name = "rgomes"
User-Password = "xxxxxx"
NAS-IP-Address = 255.255.255.255
NAS-Port = 0
agora alguem sabe me dizer pq q aparece NAS-IP-Address inves de aparecer como cadastrado no radgroupreply na tebela radius do mysql :

# Framed-Compression = Van-Jacobson-TCP-IP
Service-Type = Framed-User
Framed-MTU = 1500
Framed-Protocol = PPP #

eu uso o freeradius 1.1.7 com fedora 6 e mysql


ta certo oq eu fiz?

obs: a configuracao AAA do cisco ta blzinha:

aaa authentication attempts login 2
aaa authentication login default group radius local
aaa authentication enable default group radius enable
aaa authorization exec default group radius local
aaa authorization network default group radius
aaa accounting exec default start-stop group radius
aaa accounting network default start-stop group radius
aaa accounting connection default start-stop group radius
aaa session-id common

radius-server host 10.3.7.66 auth-port 1812 acct-port 1813 key xxxxxxxxxxxxxxxxxxxxx

[103] Comentário enviado por mrjeday em 20/01/2009 - 19:38h

Olha só, quem sabe pode me ajudar.
A situação é a seguinte:
Eu já havia pensado em uma autenticação radius para minha situação, mas como não sabia e ainda nem sei se dará certo, não sei como proceder.
A situação que vc criou foi pra autenticação de toda rede via freeradius, com cadastro em uma tabela mysql.
Agora a minha. Tenho uma rede com 100 computadores rodando via cabo, distribuídos em 3 prédios, interligados por switchs. Tenho 2 servidores, um Debian Etch, roteando e como proxy da rede, e outro Win 2003 server como PDC. Tenho uma parte da rede, além dos 100 Micros, utilizando wireless local com criptografia WEP 128 bits. Daí pensei usar WPA e autenticar usuário por usuário, porém devido esta tecnologia não ser totalmente compatível com determinados hardwares, pensei no radius. Então, quem acessa wireless aqui, conecta através de um AP Router wireless, que entrega o endereço DHCP. Estamos mudando algumas coisas aqui, então queria aproveitar pra apesar de manter a criptografia WEP, aumentar a segurança com autenticação radius.
Então...
AP = XXX.XXX.70.XXX (como roteador wireless)
Rede wireless = XXX.XXX.2.XXX (onde os endereços são entregues via DHCP configurado no AP)

Tenho Debian ETCH
Mysql 5.0
Apache 2.0

E o pacote freeradius 1.1.3-3 pronto pra ser instalado.

Como eu poderia autenticar esses usuários com radius? Tem como? Ou uma outra sugestão de autenticação.
Ajudem aí.

Agradeço desde já,

Victor Figueira

[104] Comentário enviado por cytron em 23/01/2009 - 01:42h

Tem jeito sim, com uma analisada do radiusd.conf você consegue usar esse esquema.

Mas vou te dizer... com essa versão do freeradius você tá perdido!

Usa a última versão.

[105] Comentário enviado por enemy100 em 27/01/2009 - 16:04h

Olá,

Estou a alguns meses ja configurando esse Freeradius com o intuito de Autenticar roteadores e SW cisco, mas problemas no freeradius nao ajudam, é o seguinte:

quando dou um Radtest para uns dos ip's que esta cadastrado no clients.conf ele vai com sucesso.

rad_recv: Access-Accept packet from host 10.3.7.66:1812, id=37, length=62
Reply-Message = "Acesso liberado!"
Framed-Compression = Van-Jacobson-TCP-IP
Service-Type = Framed-User
Framed-MTU = 1500
Framed-Protocol = PPP
mas pra qualquer outro ip nao funciona!!!

meu radius.log só mostra erro quando tento com 127.0.0.1 . ele nao mostra o access acept e nem o rejeitado, é normal?
pq eu keria armazenar os comandos do cisco nele

no caso esse ip (10.3.7.66) ai é o do proprio servidor, e quando tento fazer o teste com o ip do roteador que tb esta cadastrado nao funciona :( fica dando access request a vida toda, mas ele ta certim no clients.conf e o usuario é o mesmo!!


olha oq aparece:
Re-sending Access-Request of id 206 to 10.3.0.251 port 1812
User-Name = "rgomes"
User-Password = "xxxxxx"
NAS-IP-Address = 255.255.255.255
NAS-Port = 0
agora alguem sabe me dizer pq q aparece NAS-IP-Address inves de aparecer como cadastrado no radgroupreply na tebela radius do mysql :

# Framed-Compression = Van-Jacobson-TCP-IP
Service-Type = Framed-User
Framed-MTU = 1500
Framed-Protocol = PPP #

eu uso o freeradius 1.1.7 com fedora 6 e mysql


ta certo oq eu fiz?

obs: a configuracao AAA do cisco ta blzinha:

aaa authentication attempts login 2
aaa authentication login default group radius local
aaa authentication enable default group radius enable
aaa authorization exec default group radius local
aaa authorization network default group radius
aaa accounting exec default start-stop group radius
aaa accounting network default start-stop group radius
aaa accounting connection default start-stop group radius
aaa session-id common

radius-server host 10.3.7.66 auth-port 1812 acct-port 1813 key xxxxxxxxxxxxxxxxxxxxx

[106] Comentário enviado por joabes em 07/02/2009 - 16:15h

Caro Patrick, boa tarde.

Primeiramente agradeço pela leitura desse contato.

Estou com um pequeno problema.

Configurei o Servidor conforme seu tututorial, instalei também o ppposerver para autenticar adsl, só que surgiu um questão. A GVT que é a operadora a qual homologuei para autenticar o ADSL, precisa que eu adicione em meu radius duas informações referente a eles, para que meu radius possa trocar informações com o deles:

Autenticação: No caso dois IPS
Accounting: No caso um ip.

Isso para que quando o usuário tente se conectar, a gvt consiga consultar em meu radius e devolver o login com ok ou negado ao usuário.

Onde eu adiciono essas informações e qual o formato?

Creio que deve ter entendido minha necessidade.

Caso algum dos membros saiba o que preciso fazer, agradeço a dica.

Aguardo seu retorno.

Grato

Joabes

[107] Comentário enviado por gustavo_marcon em 19/03/2009 - 22:21h

Olá estou tentando seguir este tutorial para configurar meu servidor freeradius no slackware 10 mas quando tento startar o freeradius usando o comando /usr/local/sbin/rc.radiusd start recebo a seguinte mensagem de erro:
Starting FreeRADIUS:/usr/local/sbin/radiusd: error while loading shared libraries: libradius-1.1.7.so: cannot open shared object file: No such file or directory
radiusd


Não tenho idéia de como resolver isso. Alguém poderia me ajudar?
Obrigado desde já.

OBS: A versão que baixei do freeradius é a freeradius-1.1.7

[108] Comentário enviado por gustavo_marcon em 22/03/2009 - 22:19h

Para resolver o problema que comentei acima usei o comando ldconfig.

[109] Comentário enviado por ricardo.btu em 07/04/2009 - 11:54h

Bom dia,

Galera gostaria de saber se alguem aqui conhece alguma forma de limitar o uso de internet em MB de forma transparente para o usuario assim como a net faz e a telefonica fazia, tipo uma franquia mensal de trafego

Ex: usuario01 limite de trafego mensal 20GB
Ex: usuario02 limite de trafego mensal 10GB

Se estourar esse limite a net é bloqueada, procurei na net mais nao achei muitas opções, acredito com pppoe+radius seja possivel mais nao enctrei nada em minha buscas.

Muito Obrigado.
Editar

[110] Comentário enviado por jgama em 10/05/2009 - 08:29h

Olá pessoal será que alguém poderia ajudar-me?

Pois estou na parte do mysql e pelo visto esta parte do tutorial abaixo não corresponde para a versão freeradius-server-2.1.4.

"Segundo, criar o banco de dados e as tabelas. Os criadores do freeradius já deixaram a DDL pronta para você, basta ir até a pasta onde estão os fontes, na subpasta:

src/modules/rlm_sql/drivers/rlm_sql_mysql

Se você descompactou em /usr/local/src, o caminho completo é:

/usr/local/src/freeradius-1.0.1/src
/modules/rlm_sql/drivers/rlm_sql_mysql

Dentro desta pasta existe um arquivo chamado db_mysql.sql contendo todos os comandos para criar as tabelas. Crie o banco de dados com o comando"

Como faço para criar as tabelas?

Já tentei e não encontra o arquivo:

root@firewall1:/usr/local/src/freeradius-server-2.1.4/src/modules/rlm_sql/drivers/rlm_sql_mysql# smysql -pSony145 radius < db_mysql.sql
-su: db_mysql.sql: No such file or directory

Agora tem como criar esta pastas sem este arquivo de ajuda?

Abraço

[111] Comentário enviado por mauricio1976 em 13/05/2009 - 13:01h

Patrick,

Necessito de uma solução Radius operando em Cluster com EAP TTLS.
Poderia me dar algumas dicas do que exatamente utilizar para este solução ???

Um grande abraço,

Maurício.

[112] Comentário enviado por GanG_ em 11/09/2009 - 11:07h

Estou tendo problema para autenticar com um AP 2100 da D`Link...
segue o erro


rad_recv: Access-Request packet from host 192.168.2.50 port 1042, id=0, length=198
Message-Authenticator = 0xf38c7c1b67c64de1873270e3038c3603
Service-Type = Framed-User
User-Name = "gang{COMENTARIO}00"
Framed-MTU = 1488
Called-Station-Id = "00-1B-11-C8-34-D9:Testing_radius"
Calling-Station-Id = "00-90-4B-9D-F1-10"
NAS-Identifier = "D-Link Access Point"
NAS-Port-Type = Wireless-802.11
Connect-Info = "CONNECT 54Mbps 802.11g"
EAP-Message = 0x020000090167616e67
NAS-IP-Address = 192.168.2.50
NAS-Port = 1
NAS-Port-Id = "STA port # 1"
+- entering group authorize
++[preprocess] returns ok
++[chap] returns noop
++[mschap] returns noop
rlm_realm: No '@' in User-Name = "gang", looking up realm NULL
rlm_realm: No such realm "NULL"
++[suffix] returns noop
rlm_eap: EAP packet type response id 0 length 9
rlm_eap: No EAP Start, assuming it's an on-going EAP conversation
++[eap] returns updated
++[unix] returns updated
++[files] returns noop
++[expiration] returns noop
++[logintime] returns noop
rlm_pap: Found existing Auth-Type, not changing it.
++[pap] returns noop
rad_check_password: Found Auth-Type EAP
auth: type "EAP"
+- entering group authenticate
rlm_eap: EAP Identity
rlm_eap: processing type md5
rlm_eap_md5: Issuing Challenge
++[eap] returns handled
Sending Access-Challenge of id 0 to 192.168.2.50 port 1042
EAP-Message = 0x0101001604106c6b730323bc68dfb61a3a0e8ad9f145
Message-Authenticator = 0x00000000000000000000000000000000
State = 0x9362934593639757ebfd9ef20ca49b69
Finished request 0.
Going to the next request
Waking up in 4.9 seconds.
rad_recv: Access-Request packet from host 192.168.2.50 port 1042, id=0, length=198
Sending duplicate reply to client User/16 port 1042 - ID: 0
Sending Access-Challenge of id 0 to 192.168.2.50 port 1042
Waking up in 2.0 seconds.
Cleaning up request 0 ID 0 with timestamp +89
Ready to process requests.

alguem pode me ajudar ?

[113] Comentário enviado por gfalat em 27/10/2009 - 10:25h

O freeradius funciona no windows ?

[114] Comentário enviado por gfalat em 27/10/2009 - 10:28h

o pessoal aqui da empresa insiste em maneter o dito cujo do windows como servidor o que fazer ?????????????

[115] Comentário enviado por fabionunes em 08/11/2009 - 15:57h

Estou tentando configurar o radiusd com pppoe-server e quando tentar autenticar ocorre erro 691 de user e senha no log (/var/log/messages) aparece o seguinte
Nov 8 16:51:16 srvcond01 pppoe-server[4621]: Session 1 created for client 00:17:a4:e0:c6:82 (192.168.1.1) on eth1 using Service-Name ''
Nov 8 16:51:16 srvcond01 pppd[4621]: Plugin radius.so loaded.
Nov 8 16:51:16 srvcond01 pppd[4621]: RADIUS plugin initialized.
Nov 8 16:51:16 srvcond01 pppd[4621]: Plugin radattr.so loaded.
Nov 8 16:51:16 srvcond01 pppd[4621]: RADATTR plugin initialized.
Nov 8 16:51:16 srvcond01 pppd[4621]: pppd 2.4.4 started by root, uid 0
Nov 8 16:51:16 srvcond01 pppd[4621]: Using interface ppp1
Nov 8 16:51:16 srvcond01 pppd[4621]: Connect: ppp1 <--> /dev/pts/2
Nov 8 16:51:18 srvcond01 pppd[4621]: /etc/radiusclient/radiusclient.conf: line 83: unrecognized keyword: radius_deadtime
Nov 8 16:51:18 srvcond01 pppd[4621]: PAP peer authentication failed for joao
Nov 8 16:51:18 srvcond01 pppd[4621]: Connection terminated.
Nov 8 16:51:18 srvcond01 pppoe-server[3962]: Sent PADT
Nov 8 16:51:18 srvcond01 pppoe-server[4012]: Sent PADT
Nov 8 16:51:18 srvcond01 pppd[4621]: Terminating on signal 15
Nov 8 16:51:18 srvcond01 pppd[4621]: Exit.
Nov 8 16:51:18 srvcond01 pppoe-server[4012]: Session 1 closed for client 00:17:a4:e0:c6:82 (192.168.1.1) on eth1

Alguem consegue me ajudar ???? O que coloco no /etc/radiusclient/radiusclient.conf ??? veja este arquivo abaixo
auth_order radius
login_tries 4
login_timeout 60
nologin /etc/nologin
issue /etc/radiusclient/issue
authserver 127.0.0.1:1842
servers /etc/radiusclient/servers
dictionary /etc/radiusclient/dictionary
login_radius /usr/sbin/login.radius
default_realm
radius_timeout 10
radius_retries 3
radius_deadtime 0
bindaddr *
login_local /bin/login


Por Favor me ajudem !

[116] Comentário enviado por cytron em 28/11/2009 - 18:20h

Bom, segundo o log, seu radiusclient.conf está com uma keyword desconhecida na linha 83, coloca um comentário (ou retire a linha) onde se encontra esse "radius_deadtime" e reinicie o freeradius.

Olhei aqui no meu radiusclient.conf e não existe citação sobre essa keyword. Vai ver esse radius_deadtime fica em outro arquivo.

[117] Comentário enviado por cytron em 28/11/2009 - 18:25h

Agora vamos ver se alguém tem solução pro meu caso:

Como impedir uma conexão pppoe dentro da outra?

Tipo assim:

1. O cliente se conecta via pppoe

2. O mesmo cliente dispara um segundo discador utilizando OUTRO LOGIN e a requisição passa dentro da conexão pppoe já estabelecida.

Dificilmente vou me deparar com os clientes fazendo isso, mas sabe como é, quando se trata de segurança... vale tudo.

Testei no mikrotik e também passou!

OUTRO PROBLEMA

Uns dias pra cá estou percebendo que tem um cliente conseguindo conectar duas vezes, sendo que o Simultaneous-Use está limitando em 1, muito estranho isso, já testei e não consigo conectar duplicado, só o cliente kkkk.

[118] Comentário enviado por cytron em 28/11/2009 - 19:42h

Caraca!!!! kkkkkkkkkk

Que falha de segurança!!!!!

Achei o motivo do freeradius permitir conexão duplicada, mesmo com Simultaneous-Use marcado com 1

É bem simples... basta o usuário mal intencionado colocar um espaço no final do login, pronto! kkkkk
O mysql ignora espaços no final da string, e o radius mantém os espaços no radutmp, inclusive na hora da comparação, pois uma conexão está sem espaço no final, e a nova tem espaço, então no radutmp ele considera logins diferentes... puxa!!!! Agora vou em busca da solução... no próprio radius.conf tem como resolver isso.

Nas versões anteriores a 1.1 o freeradius tem a keyword chamada nospace_user e nospace_pass que realiza um 'trim' nos valores, mas sabe-se lá porque mistério resolveram tirar.

Deixaram para fazer isso via expressão regular, mas tentei de todas as maneiras e não consegui, pois não encontro a maneira correta de se fazer isso.

No log do radius aparece assim:

Sat Nov 28 20:35:16 2009 : Auth: Login OK: [cytron ] (from client nas1 port 15)
Sat Nov 28 20:35:16 2009 : Auth: Login OK: [cytron] (from client nas1 port 15)

Sacaram?

Na primira linha tem espaços no final do username [cytron ]
Na segunda linha não tem espaços... com isso o usuário pode se conectar bilhões de vezes, dá até pra revender kkkkkkk.

Que emoção!!! 3 anos de provedor e finalmente alguém passou entre meus dedos kkkkkk, legal demais!

Agora é proteger ehehe!

[119] Comentário enviado por cytron em 29/11/2009 - 01:38h

Bom, estou de volta... :)

Testei no radiusd.conf na sessão radutmp onde existe essa linha:

username = %{Stripped-User-Name:-%{User-Name}}

Subistitui por:

username = "cytron"

E pude constatar que qualquer tentativa de conexão ele usa o user cytron e nega acesso se já houver cytron conectado (no radutmp)

Moral da história: Basta retirar os espaços da variável User-Name (ou username).

Enquanto isso vou ficar monitorando o cliente mala e bloqueando.

[120] Comentário enviado por cytron em 29/11/2009 - 11:24h

Bom, na internet não tem muita coisa falando sobre isso, na verdade só encontrei 1 tópico. Então resolvi investigar no source do freeradius.

O comando checkrad é responsável pela verificação do radutmp, é um script em perl. Mas pra minha tristeza descobri que neste script já existe um recurso para retirar os espaços do username.

Tá assim:

$user =~ s/^\s*(.*?)\s*$/$1/;

Criei um script só pra teste, esta ER está funcionando.

Coloquei [ ] no User-Name (username = "[%{...}]" para que os colchetes fossem gravados no radutmp, assim poderia ver o espaço no final do username, foi certinho, lá estava o espaço. Com isso percebo que ainda não cheguei a lugar algum kkkkk.

Tenho que encontrar onde é que manda gravar o username no radutmp.

[121] Comentário enviado por dgcordeiro em 08/12/2009 - 20:09h

Estou tentando montar um servidor radius que consulte o usuario em um servidor LDAP e valide a senha no AD (MS-CHAP)

- o Servidor já esta no Dominio e esta validando o usuario no LDAP, mas não estou conseguindo fazer ele validar a senha no AD.

Alguem tem alguma nossão de como deve ser configurado?

segue erro durante o teste:

modcall[authorize]: module "ldap" returns ok for request 1
modcall: leaving group authorize (returns ok) for request 1
rad_check_password: Found Auth-Type MS-CHAP
auth: type "MS-CHAP"
Processing the authenticate section of radiusd.conf
modcall: entering group MS-CHAP for request 1
rlm_mschap: No User-Password configured. Cannot create LM-Password.
rlm_mschap: No User-Password configured. Cannot create NT-Password.
rlm_mschap: No MS-CHAP-Challenge in the request
modcall[authenticate]: module "mschap" returns reject for request 1
modcall: leaving group MS-CHAP (returns reject) for request 1
auth: Failed to validate the user.

[122] Comentário enviado por cytron em 11/12/2009 - 18:07h

Mais um bug dureza do freeradius, só acontece quando o cliente é linux (linux é tão violento que hackeia até sem querer kkkk).

Caso o cliente abra duas instâncias do pppd, a primeira conecta, a segunda fica dando erro de conexão duplicada (Simultaneous-Use), mas sem explicação aparente o freeradius permite a segunda conexão de tanto insistir. Só uma tem tráfego de rede, a outra fica parada.

[123] Comentário enviado por grupo.redes.ifce em 15/03/2010 - 14:57h

Galera, tem como montar esse projeto na distribuicao Debian?
Agradeco desde ja!
Abraco..

[124] Comentário enviado por fsoaress76 em 02/04/2010 - 09:05h

Para o Colega Cytron...

#########no radiusd.conf
nospace_user = no
nospace_pass = no
# as duas opções acima
# servem para retirar espaços de nome
# de usuário e senha. Os seus clientes
# podem, sem perceber, colocar
# um espaço no final ou no começo
# das credenciais, o que gera uma
# chamada desnecessária no suporte técnico
# três valores poderão ser escolhidos:
# after, before e no

[125] Comentário enviado por cytron em 03/04/2010 - 19:17h

Olá fsoaress76,


Infelismente me parece que essa općão foi estinda apartir da versão 1.1

Veja aqui: http://lists.freeradius.org/pipermail/freeradius-users/2005-November/msg00329.html

Na própria documentaćão nãos encontra sobre isso.

Vou enviar um e-mail pra freeradius e ver o que respondem. Conforme o caso o jeito é alterar o fonte, igual fiz com radwho (http://www.vivaolinux.com.br/dica/Corrigindo-bug-de-data-no-comando-radwho-%28FreeRADIUS%29/)

Qualquer resultado posto aqui.

[126] Comentário enviado por henriquefr em 14/08/2010 - 11:12h

Pra quem deu erro com o modulo do mysql.

------------
Sat Aug 14 06:08:19 2010 : Error: ERROR: Cannot find a configuration entry for module "sql".
Sat Aug 14 06:08:19 2010 : Error: radiusd.conf[2001] Unknown module "sql".
Sat Aug 14 06:08:19 2010 : Error: radiusd.conf[1973] Failed to parse accounting section.
------------

descomentar a linha $INCLUDE ${confdir}/sql.conf
e verificar se o caminho esta correto tbm.

[127] Comentário enviado por lf_sm em 07/07/2011 - 11:28h

Olá pessoal

hoje tenho um freeradius rodando com mysql, perfeitamente porém pego muitos erros de autenticação, cujo meu interesse é apenas efetuar o account por usuario.

Mesmo tendo somente 1 usuario e 1 senha, meus clientes insistem em errar.
porém ao analisar o log tenho a seguinte informação:

Thu Jul 7 11:00:09 2011 : Auth: Login OK: [padrao/<CHAP-Password>] (from client localhost port 1236 cli xxxxxxxx)

porém gostaria de ter a informação da seguinte forma:

Thu Jul 7 11:00:09 2011 : Auth: Login OK: [padrao/padrao] (from client localhost port 1236 cli xxxxxxxx)

Outra coisa, criei no arquivo users o DEFAULT para autenticar tudo, porém quando a autenticação vem como PAP, o freeradius segue o arquivo users.
Ao receber a autenticação pelo metodo CHAP, o freeradius usa o mysql.
Caso alguém possa me dara um dica de como fazer o metodo CHAP, utilizar o arquivo users.

[128] Comentário enviado por uggboots em 24/07/2011 - 05:16h

Mit Exclusive etwa drei Grindwale, darunter ein Kalb, für das Ufer in den See gestrandet. A New Royal Deep blue Bombe Bequemlichkeit Besatzung des Fremdsprachenunterrichts in den Ort geliefert hat es die in fast jedem Rettungsarbeiten zu unterstützen., http://www.botasugg2011.com Scottish SPCA Inspektoren auch gehen mit der Landschaft. Highland Lokale Behörde oder Rat Landschaft ranger Donald Mitchell und auch 9 Küstenwache Probanden der Fall., http://www.botasugg2011.com/ugg-classic-short-5825-boots-wholesale-8.html Herr Mitchell erklärte dies von kleinen Flut einfach einen schmalen Kanal mit marine fortgesetzt werden. Kyle über Durness startet weg direkt in Balnakeil Bay,. http://www.botasugg2011.com/ mit exklusiven, erklärt Charlie Phillips, ein neues Whale neben Dolphin Conservation moderne Gesellschaft (WDCS) Stabsoffizier,: "Es gehen zu schwierig sein,.http://www.botasugg2011.com/ugg-classic-argyle-knit-5879-wholesale-5.html "Es ist oft eine Fernbedienung und auch herausfordernde Position zu bekommen. ".

[129] Comentário enviado por cytron em 21/09/2012 - 20:04h

Opa!!!

Depois de 1 ano me lembrei que fiquei devendo a solução pra contornar o bug de conexções simultâneas usando "espaço" no final do username.

Criei um módulo e coloquei em raddb/modules/

Este módulo executa um script em bash que utiliza o radwho para checar se o usuário já está conectado.

Caso alguém está passando pelo bug do espaço no final do username e estiver interessado no módulo pode me avisar que dou um help.

[130] Comentário enviado por IsabellaMoreira em 03/12/2012 - 17:34h

Olá,
estou instalando um servidor radius (freeradius) no Ubuntu 10.04, porém não estou conseguindo deixá-lo up. Alguém teria uma dica de tutorial que pudesse seguir? Ou algo que eu pudesse testar?
Desde já agradeço.

Isabella Moreira

[131] Comentário enviado por cytron em 03/12/2012 - 18:49h

Basicamente esta é uma das melhores fontes, mas uma boa dica é rodar seu radius em debug (-X), se houver algum problema vai aparecer.

[132] Comentário enviado por IsabellaMoreira em 15/01/2013 - 11:23h

Obrigada, Cytron. Já estou rodando em debug e aparentemente está tudo certo.

[133] Comentário enviado por edikoston em 15/07/2013 - 12:04h

Nossa cara muito bom esse tópico..vou ler com muita calma e analise pra mim será uma otima pra pre-projeto de mestrado junto com mais outras coisas que quero desenvolver...Bom deixa eu te falar...se eu tiver um duvida posso entrar en contato com você se você me permitir claro...sei implantar um freeradius-mysql com daloradius gerenciado de freeradius em front-end mais tenho certas dificuldades com framed-ip então se eu precisar entrar de uma ajudinha e se você tiver a dispor claro, seria uma honra....muito obrigado!

[134] Comentário enviado por josestevao em 02/08/2013 - 09:40h

Bom dia senhores!
Uso o Debian na versão 7.1.0 e estou tentando instalar o FREERADIUS na versão server 2.2.0 e na hora de rodar o make me retorna a seguinte mensagem "Makefile:10: Make.inc: Arquivo ou diretório não encontrado make: *** Sem regra para processar o alvo `Make.inc'. Pare." como devo proceder? Conto com a colaboração de vocês.

[135] Comentário enviado por cytron em 02/08/2013 - 13:50h

Rodou ./configure antes? caso sim, talvez algum diretório não foi criado durante o configure. Neste caso é preciso olhar o log do configure. Já passei por isso em compilações.

[136] Comentário enviado por josestevao em 09/08/2013 - 08:30h

Funcionou, obrigado!

[137] Comentário enviado por arthurbernardes1 em 26/08/2013 - 16:03h

Já tentei de tudo aqui, nada dá certo. :(

[138] Comentário enviado por josestevao em 28/08/2013 - 14:29h

Mesmo após reinstalar o Mysql Server não consigo localizar o arquivo db_mysql.sql dos comandos para criar as tabelas. Podem me ajudar?

[139] Comentário enviado por josestevao em 04/09/2013 - 17:18h

Ao rodar o comando mysqladmin -psenharoot create radius
Me retorna a seguinte a mensagem: mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'

Podem me ajudar?

[140] Comentário enviado por cytron em 05/09/2013 - 07:54h

Caso não especifique o user ele pega por padrão o seu. Mas provavelmente o user que acessa o db é outro, por isso use p parâmetro: -u<usuário>

[141] Comentário enviado por cleiton.rs em 21/01/2014 - 16:30h

Olá Patrick,
e quanto a criptografia das senhas dos usuários?
Do jeito que está sendo feito, elas estão sendo armazenadas no banco de dados em texto puro, ou seja, o administrador saberá a senha do usuário conforme você mesmo comento "...que alguns usuários acham que os donos de provedores sabem a senha deles..."

Neste caso como seria tratado a senha se fosse criptografada?

[142] Comentário enviado por paulohso em 23/01/2014 - 14:09h

Boa tarde, será que alguém poderia me ajudar?

Estou usando a distro Debian 7. Quando passo o comando make o resultado é o seguinte, no final do arquivo:

make[6]: Saindo do diretório `/usr/local/src/freeradius-1.0.1/src/modules/rlm_unix'
Making static dynamic in rlm_x99_token...
make[6]: Entrando no diretório `/usr/local/src/freeradius-1.0.1/src/modules/rlm_x99_token'
gcc -g -O2 -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DOPENSSL_NO_KRB5 -Wall -D_GNU_SOURCE -g -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -W -Wredundant-decls -Wundef -I../../include -DX99_MODULE_NAME=\"rlm_x99_token\" -DFREERADIUS -c x99_rlm.c -o x99_rlm.o
In file included from x99_rlm.c:54:0:
x99.h:26:42: fatal error: openssl/des.h: Arquivo ou diretório não encontrado
compilation terminated.
make[6]: ** [x99_rlm.o] Erro 1
make[6]: Saindo do diretório `/usr/local/src/freeradius-1.0.1/src/modules/rlm_x99_token'
make[5]: ** [common] Erro 1
make[5]: Saindo do diretório `/usr/local/src/freeradius-1.0.1/src/modules'
make[4]: ** [all] Erro 2
make[4]: Saindo do diretório `/usr/local/src/freeradius-1.0.1/src/modules'
make[3]: ** [common] Erro 1
make[3]: Saindo do diretório `/usr/local/src/freeradius-1.0.1/src'
make[2]: ** [all] Erro 2
make[2]: Saindo do diretório `/usr/local/src/freeradius-1.0.1/src'
make[1]: ** [common] Erro 1
make[1]: Saindo do diretório `/usr/local/src/freeradius-1.0.1'
make: ** [all] Erro 2

Como posso resolver este problema?

Desde já, agradeço.

PH

P.S. Tentei prosseguir com a instalação, no entanto, nenhum dos arquivos (radiusd.conf, clients.conf etc.) estão em seus respectivos diretórios...

[143] Comentário enviado por guimpel em 23/01/2014 - 14:17h

olha o erro x99.h:26:42: fatal error: openssl/des.h: Arquivo ou diretório não encontrado

cara instala isto

# apt-get install libssl-dev

[144] Comentário enviado por montoanel em 23/01/2014 - 16:34h

Boa tarde, será que tem alguém ai? rsrsrs



Bom, eu consegui fazer com que o enable = N/Y funcione, ou seja, cliente está ativo Y ,cliente está bloqueado N, porém, como faz para que quando seja setado status N, ele seja desconectado automaticamente?

[145] Comentário enviado por paulohso em 23/01/2014 - 18:05h

Olá,

Ótima dica Guimpel... Estou apanhando muito da instalação do Freeradius. Não sabia que tinham alguns pacotes que deveriam ser instalados antes...

Obrigado pela dica! Infelizmente continua dando o erro rsrsrs. Vou tentar outro tutorial.

PH

[146] Comentário enviado por mantunes em 23/01/2014 - 18:38h

mantoanel,

Já vi isso sendo feito da seguinte forma. No momento em que é feito o update no sql é enviado um comando por um script para o seu nas com as informações da seção do cliente. Não lembro agora se é via radclient ou radzap.

Espero ter ajudado :D


[147] Comentário enviado por montoanel em 23/01/2014 - 23:31h

Entao mantunes,

cara eu vi em alguns sites a respeito do radkill, porém não sei qual é a certa, vou pesquisar essas ai que você falou. Mais o que eu li é isso mesmo, assim que o cliente é bloqueado no banco, 'algo' roda e comunica com o NAS client, no nosso caso o MIKROTIK, dai algo referente ao serviço incoming e relacionados as portas 3799 e 1700, faz todo o serviço de verificar realmente se determinado cliente está ativo ou bloqueado, se estiver bloqueado ele da um kill no nas, em seguida o cara cai do freeradius.

Mais vou pesquisando, se eu achar eu posto aqui, se vc achar algo avisa hehehe!!!

[148] Comentário enviado por montoanel em 30/01/2014 - 15:13h

Alguma ajuda??

T_t

no MKauth ele altera o valor "s" para "n" no campo ativo e manda comando ssh para o mikrotik (disconnect request from 'unknow' ip(ip do cliente bloqueado) e derruba o cara, mais onde está o secredo?? como fazer essa magica funcionnar?

[149] Comentário enviado por montoanel em 31/01/2014 - 16:08h

!#/bin/bash

MYCMD "mysql -u root -p123*abc -e"



$username select username from racheck where enable = "n"; (Selecione o username na tabela radcheck onde enable for igual a "n")


$username como faz ?????????? smnp????(Pergunte ao mikrotik se "$username" está conectado)

(ou perguntar no proprio freeradius se o cliente está conectado? ) radwho ------ /ppp active where name=$username



se $username estiver conectado (no radius)


entao


$username radkill (mikrotik manda mensagem de disconnect)

senao

loop

[150] Comentário enviado por montoanel em 12/02/2014 - 13:06h

ainda vai ser melhorado, tive ajuda de um amigo.



#!/bin/bash
MYCMD="mysql -u root -p123*abc -e "
$MYCMD "use radius; select username from radcheck where enable='n' INTO OUTFILE '/tmp/texto.txt';"

for i in $(cat /tmp/texto.txt); do sudo echo User-Name=$i | radclient -t 0 192.168.5.151:3799 disconnect 123456; done

rm -r /tmp/texto.txt

[151] Comentário enviado por rootss em 13/02/2014 - 14:48h

Estou usando a versão 2.1.12 do Radius em um Debian 7.1, porém parece que nao tem mais esse atributo "Simultaneous-Use". Alguém sabe qual é o atributo correspondente nesta versão.
vlws..

[152] Comentário enviado por montoanel em 14/02/2014 - 20:20h

rootss,

na tabela radgroupcheck para cada grupo (assinatura) que eu adicionei, eu adicionei attribute Simultaneous-Use op :=1 .


funciona, e no mikrotik eu sempre deixo one session per host e (ONLY ONE).


Ontem eu tentei colocar outro mikrotik como NAS CLIENT, porém ele permitiu que um login ja autenticado na outra RB autenticasse também, alguém poderia dizer porque? Sendo que o simultaneous-use esta habilitado.

E tambem estou tendo problemas quando mando desconectar manualmente, eu estou utilizando o SNMP do mikrotik e o interium update 30segundos para falar ao radius que determinado login deu disconnect, porem eles ainda ficam amarrados no radius e não dao saida no radacct(acctstoptime).


alguem ajuda?

[153] Comentário enviado por mantunes em 14/02/2014 - 20:42h

montoanel,

verifica no sql.conf como esta a consulta para os usuários simultaneos. Se não me falha a memória (vi isso no Debian) a consulta para checar o simultâneo fazia a checagem do acctstoptime=NULL mas no banco de dados o campo acctstoptime era 0000-00-00 00:00.
Talvez o teu controle do simultâneo esteja sendo feito pelo one session per host.


[154] Comentário enviado por montoanel em 14/02/2014 - 22:46h

será vei????


entao eu vou fazer o teste, vou desativar o onesession per-host e o Only One la no mikrotik e ve r se autentica, se autenticar entao significa que o simultaneous-use no banco não ta fazendo é nada ne?!

agora eu acrredito que vc inverteu a coluna ai do acctstoptime=NULL, eu acredito que seria acctstartime=NOT NULL, caso o radius faça alguma verificaçao de qndo foi a ultima conexao do cara se houve disconect, dai ele libera a conexao pro cara d novo.


não consegui encontrar nada no sql.conf. vou postar
******************************************************************************************************************************


# -*- text -*-
##
## sql.conf -- SQL modules
##
## $Id$

######################################################################
#
# Configuration for the SQL module
#
# The database schemas and queries are located in subdirectories:
#
# sql/DB/schema.sql Schema
# sql/DB/dialup.conf Basic dialup (including policy) queries
# sql/DB/counter.conf counter
# sql/DB/ippool.conf IP Pools in SQL
# sql/DB/ippool.sql schema for IP pools.
#
# Where "DB" is mysql, mssql, oracle, or postgresql.
#

sql {
#
# Set the database to one of:
#
# mysql, mssql, oracle, postgresql
#
database = "mysql"

#
# Which FreeRADIUS driver to use.
#
driver = "rlm_sql_${database}"

# Connection info:
server = "localhost"
#port = 3306
login = "root"
password = "123*abc"

# Database table configuration for everything except Oracle
radius_db = "radius"
# If you are using Oracle then use this instead
# radius_db = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SID=your_sid)))"

# If you want both stop and start records logged to the
# same SQL table, leave this as is. If you want them in
# different tables, put the start table in acct_table1
# and stop table in acct_table2
acct_table1 = "radacct"
acct_table2 = "radacct"

# Allow for storing data after authentication
postauth_table = "radpostauth"

authcheck_table = "radcheck"
authreply_table = "radreply"

groupcheck_table = "radgroupcheck"
groupreply_table = "radgroupreply"

# Table to keep group info
usergroup_table = "radusergroup"

# If set to 'yes' (default) we read the group tables
# If set to 'no' the user MUST have Fall-Through = Yes in the radreply table
# read_groups = yes

# Remove stale session if checkrad does not see a double login
deletestalesessions = yes

# Print all SQL statements when in debug mode (-x)
sqltrace = no
sqltracefile = ${logdir}/sqltrace.sql

# number of sql connections to make to server
num_sql_socks = 5

# number of seconds to dely retrying on a failed database
# connection (per_socket)
connect_failure_retry_delay = 60

# lifetime of an SQL socket. If you are having network issues
# such as TCP sessions expiring, you may need to set the socket
# lifetime. If set to non-zero, any open connections will be
# closed "lifetime" seconds after they were first opened.
lifetime = 0

# Maximum number of queries used by an SQL socket. If you are
# having issues with SQL sockets lasting "too long", you can
# limit the number of queries performed over one socket. After
# "max_qeuries", the socket will be closed. Use 0 for "no limit".
max_queries = 0

# Set to 'yes' to read radius clients from the database ('nas' table)
# Clients will ONLY be read on server startup. For performance
# and security reasons, finding clients via SQL queries CANNOT
# be done "live" while the server is running.
#
#readclients = yes

# Table to keep radius client info
nas_table = "nas"

# Read driver-specific configuration
$INCLUDE sql/${database}/dialup.conf
}

[155] Comentário enviado por montoanel em 14/02/2014 - 23:00h

00:56:50 pppoe,ppp,info,account biscatinha logged in, 10.2.1.253
00:56:53 pppoe,info PPPoE connection established from 08:00:27:5E:27:9F
00:56:53 pppoe,ppp,info <pppoe-0>: waiting for call...
00:56:53 pppoe,ppp,info <pppoe-0>: authenticated
00:56:54 pppoe,ppp,info <pppoe-0>: connected
00:56:54 pppoe,ppp,info,account biscatinha logged in, 10.2.1.252


autenticação duplicada, radusergroup := plano256k

alterei o group para radusergroup := plano1mb , para testar, tambem permitiu dupla autenticação, entao o simultaneous-use nao ta funcionando.

00:58:52 pppoe,ppp,info,account biscatinha logged in, 10.2.1.252
00:58:54 pppoe,info PPPoE connection established from 08:00:27:90:D7:52
00:58:54 pppoe,ppp,info <pppoe-0>: waiting for call...
00:58:55 pppoe,ppp,info <pppoe-0>: authenticated
00:58:56 pppoe,ppp,info <pppoe-0>: connected
00:58:56 pppoe,ppp,info,account biscatinha logged in, 10.2.1.253
00:59:43 pppoe,ppp,info,account biscatinha logged out, 49 854 98 11 8
00:59:43 pppoe,ppp,info <pppoe-biscatinha-1>: terminating... - administrator request
00:59:43 pppoe,ppp,info <pppoe-biscatinha-1>: disconnected
00:59:47 pppoe,info PPPoE connection established from 08:00:27:90:D7:52
00:59:47 pppoe,ppp,info <pppoe-0>: waiting for call...
00:59:47 pppoe,ppp,info <pppoe-0>: authenticated
00:59:48 pppoe,ppp,info <pppoe-0>: connected
00:59:48 pppoe,ppp,info,account biscatinha logged in, 10.2.1.253

[156] Comentário enviado por montoanel em 14/02/2014 - 23:02h

consegue me ajudar mantunes?

[157] Comentário enviado por montoanel em 14/02/2014 - 23:12h

dialup.conf

eu acho que a query para verificar o simultaneous está nela,


# Uncomment simul_count_query to enable simultaneous use checking
#simul_count_query = "SELECT COUNT(*) \
#FROM ${acct_table1} \
#WHERE username = '%{SQL-User-Name}' \
#AND acctstoptime IS NULL"

simul_verify_query = "SELECT radacctid, acctsessionid, username, \
nasipaddress, nasportid, framedipaddress, \
callingstationid, framedprotocol \
FROM ${acct_table1} \
WHERE username = '%{SQL-User-Name}' \
AND acctstoptime IS NULL"






achoq eu enao descomentei!!!

[158] Comentário enviado por montoanel em 14/02/2014 - 23:30h

não funcionou com 2 rb T_T


ele deixou autenticar o mesmo login nas 2 rbs e nao inseriu nada no radacct e nem aparece no radwho T_T


vou dormir,abrs!!

[159] Comentário enviado por mantunes em 14/02/2014 - 23:53h

Como esta o seu acctstoptime no banco?

No meu dialup.conf esta assim:

simul_count_query = "SELECT COUNT(*) \
FROM ${acct_table1} \
WHERE username = '%{SQL-User-Name}' \
AND acctstoptime = '0000-00-00 00:00:00'"

simul_verify_query = "SELECT radacctid, acctsessionid, username, \
nasipaddress, nasportid, framedipaddress, \
callingstationid, framedprotocol \
FROM ${acct_table1} \
WHERE username = '%{SQL-User-Name}' \
AND acctstoptime = '0000-00-00 00:00:00'"

[160] Comentário enviado por montoanel em 15/02/2014 - 11:37h

bom cara,

esta comentado algumas partes do select por isso deve que nao funfa, e tambem AND acctstoptime IS NULL, o seu esta acctstoptime= '0000-00-00 00:00:00'

que significa que o usuario fez desconect ne? se está IS NULL entao significaque o cara ta autenticado e nao deu disconnect. Se eu remover os comentarios e adicionar os 0000-00-00 igual ao seu ai vai funcionar?


# Uncomment simul_count_query to enable simultaneous use checking
simul_count_query = "SELECT COUNT(*) \
#FROM ${acct_table1} \
#WHERE username = '%{SQL-User-Name}' \
#AND acctstoptime IS NULL"

simul_verify_query = "SELECT radacctid, acctsessionid, username, \
nasipaddress, nasportid, framedipaddress, \
callingstationid, framedprotocol \
FROM ${acct_table1} \
WHERE username = '%{SQL-User-Name}' \
AND acctstoptime IS NULL"

[161] Comentário enviado por mantunes em 15/02/2014 - 11:53h

Isso,

descomente estas linhas.
Quanto ao 0000-00-00 checa como esta ficando o acctstoptime no seu banco para um usuário que esta conectado.
No meu caso ele fica 0000-00-00. Se no seu o campo ficar com NULL não há a necessidade de fazer a alteração.

Em uma instalação mais antiga do freeradius que eu tinha não houve a necessidade de fazer essa alteração.

[162] Comentário enviado por montoanel em 15/02/2014 - 13:14h

Infelizmente não bloqueou a duplicidade na authenticação, tanto ele authentica na RB1 duas vezes, quanto ja estando authenticado na RB1 ele libera authenticação na RB2.


ve ai na foto.
e tambem ele nao insere nada no radacct e nao aparece nada no radwho T_T. (Vou verificar se quando ele faz a segunda autenticação'duplicidade' se ele insere algum valor no acctstoptime)


http://imageshack.com/a/img600/5169/5da5.jpg




1 ºUm dos problemas está sendo o seguinte tambem:
eu dou disconnect no cara, tanto pelo proprio discador quanto pelo mikrotik, o FDP ainda fica amarrado no radwho véi T_T.




Uma pergunta, na outra RB eu tenho que adicionar alguma porta diferente para autenticação? Eu fiz exatamente igual a primeira, adicionei o radius, coloquei outro secret, ou seja a configuração está exatamente igual, unica coisa que mudei foi o secret.

[163] Comentário enviado por mantunes em 15/02/2014 - 14:59h

Certifique-se que o authorize, accounting e session estão configurados para fazer uso do BD (http://www.vivaolinux.com.br/artigo/Freeradius-servidor-radius-eficiente-e-completo/?pagina=4).

Da um freeradius -X e acompanha as consultas SQL que ele esta fazendo.

Teu PPP no Mikrotik esta configurado para fazer o accounting?
/ppp aaa
set interim-update=5m use-radius=yes

[164] Comentário enviado por montoanel em 15/02/2014 - 21:02h

mikrotik esta fazendo accounting e o interim update eu testei varios tempos, 30 segundos, tres minutos, 5 minutos.

agora a respeito do radius.conf eu não consegui identificar oq o cara manda "descomentar" ou se ele manda adicionar somente authorize{ sql} ??

segue abaixo o meu radius.conf
*************************************************************************************************************

# -*- text -*-
##
## radiusd.conf -- FreeRADIUS server configuration file.
##
## www.freeradius.org/">http://www.freeradius.org/
## $Id$
##

######################################################################
#
# Read "man radiusd" before editing this file. See the section
# titled DEBUGGING. It outlines a method where you can quickly
# obtain the configuration you want, without running into
# trouble.
#
# Run the server in debugging mode, and READ the output.
#
# $ radiusd -X
#
# We cannot emphasize this point strongly enough. The vast
# majority of problems can be solved by carefully reading the
# debugging output, which includes warnings about common issues,
# and suggestions for how they may be fixed.
#
# There may be a lot of output, but look carefully for words like:
# "warning", "error", "reject", or "failure". The messages there
# will usually be enough to guide you to a solution.
#
# If you are going to ask a question on the mailing list, then
# explain what you are trying to do, and include the output from
# debugging mode (radiusd -X). Failure to do so means that all
# of the responses to your question will be people telling you
# to "post the output of radiusd -X".

######################################################################
#
# The location of other config files and logfiles are declared
# in this file.
#
# Also general configuration for modules can be done in this
# file, it is exported through the API to modules that ask for
# it.
#
# See "man radiusd.conf" for documentation on the format of this
# file. Note that the individual configuration items are NOT
# documented in that "man" page. They are only documented here,
# in the comments.
#
# As of 2.0.0, FreeRADIUS supports a simple processing language
# in the "authorize", "authenticate", "accounting", etc. sections.
# See "man unlang" for details.
#

prefix = /usr
exec_prefix = /usr
sysconfdir = /etc
localstatedir = /var
sbindir = ${exec_prefix}/sbin
logdir = /var/log/freeradius
raddbdir = /etc/freeradius
radacctdir = ${logdir}/radacct

#
# name of the running server. See also the "-n" command-line option.
name = freeradius

# Location of config and logfiles.
confdir = ${raddbdir}
run_dir = ${localstatedir}/run/${name}

# Should likely be ${localstatedir}/lib/radiusd
db_dir = ${raddbdir}

#
# libdir: Where to find the rlm_* modules.
#
# This should be automatically set at configuration time.
#
# If the server builds and installs, but fails at execution time
# with an 'undefined symbol' error, then you can use the libdir
# directive to work around the problem.
#
# The cause is usually that a library has been installed on your
# system in a place where the dynamic linker CANNOT find it. When
# executing as root (or another user), your personal environment MAY
# be set up to allow the dynamic linker to find the library. When
# executing as a daemon, FreeRADIUS MAY NOT have the same
# personalized configuration.
#
# To work around the problem, find out which library contains that symbol,
# and add the directory containing that library to the end of 'libdir',
# with a colon separating the directory names. NO spaces are allowed.
#
# e.g. libdir = /usr/local/lib:/opt/package/lib
#
# You can also try setting the LD_LIBRARY_PATH environment variable
# in a script which starts the server.
#
# If that does not work, then you can re-configure and re-build the
# server to NOT use shared libraries, via:
#
# ./configure --disable-shared
# make
# make install
#
libdir = /usr/lib/freeradius

# pidfile: Where to place the PID of the RADIUS server.
#
# The server may be signalled while it's running by using this
# file.
#
# This file is written when ONLY running in daemon mode.
#
# e.g.: kill -HUP `cat /var/run/radiusd/radiusd.pid`
#
pidfile = ${run_dir}/${name}.pid

# chroot: directory where the server does "chroot".
#
# The chroot is done very early in the process of starting the server.
# After the chroot has been performed it switches to the "user" listed
# below (which MUST be specified). If "group" is specified, it switchs
# to that group, too. Any other groups listed for the specified "user"
# in "/etc/group" are also added as part of this process.
#
# The current working directory (chdir / cd) is left *outside* of the
# chroot until all of the modules have been initialized. This allows
# the "raddb" directory to be left outside of the chroot. Once the
# modules have been initialized, it does a "chdir" to ${logdir}. This
# means that it should be impossible to break out of the chroot.
#
# If you are worried about security issues related to this use of chdir,
# then simply ensure that the "raddb" directory is inside of the chroot,
# end be sure to do "cd raddb" BEFORE starting the server.
#
# If the server is statically linked, then the only files that have
# to exist in the chroot are ${run_dir} and ${logdir}. If you do the
# "cd raddb" as discussed above, then the "raddb" directory has to be
# inside of the chroot directory, too.
#
#chroot = /path/to/chroot/directory

# user/group: The name (or #number) of the user/group to run radiusd as.
#
# If these are commented out, the server will run as the user/group
# that started it. In order to change to a different user/group, you
# MUST be root ( or have root privleges ) to start the server.
#
# We STRONGLY recommend that you run the server with as few permissions
# as possible. That is, if you're not using shadow passwords, the
# user and group items below should be set to radius'.
#
# NOTE that some kernels refuse to setgid(group) when the value of
# (unsigned)group is above 60000; don't use group nobody on these systems!
#
# On systems with shadow passwords, you might have to set 'group = shadow'
# for the server to be able to read the shadow password file. If you can
# authenticate users while in debug mode, but not in daemon mode, it may be
# that the debugging mode server is running as a user that can read the
# shadow info, and the user listed below can not.
#
# The server will also try to use "initgroups" to read /etc/groups.
# It will join all groups where "user" is a member. This can allow
# for some finer-grained access controls.
#
user = freerad
group = freerad

# max_request_time: The maximum time (in seconds) to handle a request.
#
# Requests which take more time than this to process may be killed, and
# a REJECT message is returned.
#
# WARNING: If you notice that requests take a long time to be handled,
# then this MAY INDICATE a bug in the server, in one of the modules
# used to handle a request, OR in your local configuration.
#
# This problem is most often seen when using an SQL database. If it takes
# more than a second or two to receive an answer from the SQL database,
# then it probably means that you haven't indexed the database. See your
# SQL server documentation for more information.
#
# Useful range of values: 5 to 120
#
max_request_time = 30

# cleanup_delay: The time to wait (in seconds) before cleaning up
# a reply which was sent to the NAS.
#
# The RADIUS request is normally cached internally for a short period
# of time, after the reply is sent to the NAS. The reply packet may be
# lost in the network, and the NAS will not see it. The NAS will then
# re-send the request, and the server will respond quickly with the
# cached reply.
#
# If this value is set too low, then duplicate requests from the NAS
# MAY NOT be detected, and will instead be handled as seperate requests.
#
# If this value is set too high, then the server will cache too many
# requests, and some new requests may get blocked. (See 'max_requests'.)
#
# Useful range of values: 2 to 10
#
cleanup_delay = 5

# max_requests: The maximum number of requests which the server keeps
# track of. This should be 256 multiplied by the number of clients.
# e.g. With 4 clients, this number should be 1024.
#
# If this number is too low, then when the server becomes busy,
# it will not respond to any new requests, until the 'cleanup_delay'
# time has passed, and it has removed the old requests.
#
# If this number is set too high, then the server will use a bit more
# memory for no real benefit.
#
# If you aren't sure what it should be set to, it's better to set it
# too high than too low. Setting it to 1000 per client is probably
# the highest it should be.
#
# Useful range of values: 256 to infinity
#
max_requests = 1024

# listen: Make the server listen on a particular IP address, and send
# replies out from that address. This directive is most useful for
# hosts with multiple IP addresses on one interface.
#
# If you want the server to listen on additional addresses, or on
# additionnal ports, you can use multiple "listen" sections.
#
# Each section make the server listen for only one type of packet,
# therefore authentication and accounting have to be configured in
# different sections.
#
# The server ignore all "listen" section if you are using '-i' and '-p'
# on the command line.
#
listen {
# Type of packets to listen for.
# Allowed values are:
# auth listen for authentication packets
# acct listen for accounting packets
# proxy IP to use for sending proxied packets
# detail Read from the detail file. For examples, see
# raddb/sites-available/copy-acct-to-home-server
# status listen for Status-Server packets. For examples,
# see raddb/sites-available/status
# coa listen for CoA-Request and Disconnect-Request
# packets. For examples, see the file
# raddb/sites-available/coa-server
#
type = auth

# Note: "type = proxy" lets you control the source IP used for
# proxying packets, with some limitations:
#
# * A proxy listener CANNOT be used in a virtual server section.
# * You should probably set "port = 0".
# * Any "clients" configuration will be ignored.
#
# See also proxy.conf, and the "src_ipaddr" configuration entry
# in the sample "home_server" section. When you specify the
# source IP address for packets sent to a home server, the
# proxy listeners are automatically created.

# IP address on which to listen.
# Allowed values are:
# dotted quad (1.2.3.4)
# hostname (radius.example.com)
# wildcard (*)
ipaddr = *

# OR, you can use an IPv6 address, but not both
# at the same time.
# ipv6addr = :: # any. ::1 == localhost

# Port on which to listen.
# Allowed values are:
# integer port number (1812)
# 0 means "use /etc/services for the proper port"
port = 0

# Some systems support binding to an interface, in addition
# to the IP address. This feature isn't strictly necessary,
# but for sites with many IP addresses on one interface,
# it's useful to say "listen on all addresses for eth0".
#
# If your system does not support this feature, you will
# get an error if you try to use it.
#
# interface = eth0

# Per-socket lists of clients. This is a very useful feature.
#
# The name here is a reference to a section elsewhere in
# radiusd.conf, or clients.conf. Having the name as
# a reference allows multiple sockets to use the same
# set of clients.
#
# If this configuration is used, then the global list of clients
# is IGNORED for this "listen" section. Take care configuring
# this feature, to ensure you don't accidentally disable a
# client you need.
#
# See clients.conf for the configuration of "per_socket_clients".
#
# clients = per_socket_clients
}

# This second "listen" section is for listening on the accounting
# port, too.
#
listen {
ipaddr = *
# ipv6addr = ::
port = 0
type = acct
# interface = eth0
# clients = per_socket_clients
}

# hostname_lookups: Log the names of clients or just their IP addresses
# e.g., www.freeradius.org (on) or 206.47.27.232 (off).
#
# The default is 'off' because it would be overall better for the net
# if people had to knowingly turn this feature on, since enabling it
# means that each client request will result in AT LEAST one lookup
# request to the nameserver. Enabling hostname_lookups will also
# mean that your server may stop randomly for 30 seconds from time
# to time, if the DNS requests take too long.
#
# Turning hostname lookups off also means that the server won't block
# for 30 seconds, if it sees an IP address which has no name associated
# with it.
#
# allowed values: {no, yes}
#
hostname_lookups = no

# Core dumps are a bad thing. This should only be set to 'yes'
# if you're debugging a problem with the server.
#
# allowed values: {no, yes}
#
allow_core_dumps = no

# Regular expressions
#
# These items are set at configure time. If they're set to "yes",
# then setting them to "no" turns off regular expression support.
#
# If they're set to "no" at configure time, then setting them to "yes"
# WILL NOT WORK. It will give you an error.
#
regular_expressions = yes
extended_expressions = yes

#
# Logging section. The various "log_*" configuration items
# will eventually be moved here.
#
log {
#
# Destination for log messages. This can be one of:
#
# files - log to "file", as defined below.
# syslog - to syslog (see also the "syslog_facility", below.
# stdout - standard output
# stderr - standard error.
#
# The command-line option "-X" over-rides this option, and forces
# logging to go to stdout.
#
destination = files

#
# The logging messages for the server are appended to the
# tail of this file if destination == "files"
#
# If the server is running in debugging mode, this file is
# NOT used.
#
file = ${logdir}/radius.log

#
# If this configuration parameter is set, then log messages for
# a *request* go to this file, rather than to radius.log.
#
# i.e. This is a log file per request, once the server has accepted
# the request as being from a valid client. Messages that are
# not associated with a request still go to radius.log.
#
# Not all log messages in the server core have been updated to use
# this new internal API. As a result, some messages will still
# go to radius.log. Please submit patches to fix this behavior.
#
# The file name is expanded dynamically. You should ONLY user
# server-side attributes for the filename (e.g. things you control).
# Using this feature MAY also slow down the server substantially,
# especially if you do thinks like SQL calls as part of the
# expansion of the filename.
#
# The name of the log file should use attributes that don't change
# over the lifetime of a request, such as User-Name,
# Virtual-Server or Packet-Src-IP-Address. Otherwise, the log
# messages will be distributed over multiple files.
#
# Logging can be enabled for an individual request by a special
# dynamic expansion macro: %{debug: 1}, where the debug level
# for this request is set to '1' (or 2, 3, etc.). e.g.
#
# ...
# update control {
# Tmp-String-0 = "%{debug:1}"
# }
# ...
#
# The attribute that the value is assigned to is unimportant,
# and should be a "throw-away" attribute with no side effects.
#
#requests = ${logdir}/radiusd-%{%{Virtual-Server}:-DEFAULT}-%Y%m%d.log

#
# Which syslog facility to use, if ${destination} == "syslog"
#
# The exact values permitted here are OS-dependent. You probably
# don't want to change this.
#
syslog_facility = daemon

# Log the full User-Name attribute, as it was found in the request.
#
# allowed values: {no, yes}
#
stripped_names = no

# Log authentication requests to the log file.
#
# allowed values: {no, yes}
#
auth = no

# Log passwords with the authentication requests.
# auth_badpass - logs password if it's rejected
# auth_goodpass - logs password if it's correct
#
# allowed values: {no, yes}
#
auth_badpass = no
auth_goodpass = no

# Log additional text at the end of the "Login OK" messages.
# for these to work, the "auth" and "auth_goopass" or "auth_badpass"
# configurations above have to be set to "yes".
#
# The strings below are dynamically expanded, which means that
# you can put anything you want in them. However, note that
# this expansion can be slow, and can negatively impact server
# performance.
#
# msg_goodpass = ""
# msg_badpass = ""
}

# The program to execute to do concurrency checks.
checkrad = ${sbindir}/checkrad

# SECURITY CONFIGURATION
#
# There may be multiple methods of attacking on the server. This
# section holds the configuration items which minimize the impact
# of those attacks
#
security {
#
# max_attributes: The maximum number of attributes
# permitted in a RADIUS packet. Packets which have MORE
# than this number of attributes in them will be dropped.
#
# If this number is set too low, then no RADIUS packets
# will be accepted.
#
# If this number is set too high, then an attacker may be
# able to send a small number of packets which will cause
# the server to use all available memory on the machine.
#
# Setting this number to 0 means "allow any number of attributes"
max_attributes = 200

#
# reject_delay: When sending an Access-Reject, it can be
# delayed for a few seconds. This may help slow down a DoS
# attack. It also helps to slow down people trying to brute-force
# crack a users password.
#
# Setting this number to 0 means "send rejects immediately"
#
# If this number is set higher than 'cleanup_delay', then the
# rejects will be sent at 'cleanup_delay' time, when the request
# is deleted from the internal cache of requests.
#
# Useful ranges: 1 to 5
reject_delay = 1

#
# status_server: Whether or not the server will respond
# to Status-Server requests.
#
# When sent a Status-Server message, the server responds with
# an Access-Accept or Accounting-Response packet.
#
# This is mainly useful for administrators who want to "ping"
# the server, without adding test users, or creating fake
# accounting packets.
#
# It's also useful when a NAS marks a RADIUS server "dead".
# The NAS can periodically "ping" the server with a Status-Server
# packet. If the server responds, it must be alive, and the
# NAS can start using it for real requests.
#
# See also raddb/sites-available/status
#
status_server = yes
}

# PROXY CONFIGURATION
#
# proxy_requests: Turns proxying of RADIUS requests on or off.
#
# The server has proxying turned on by default. If your system is NOT
# set up to proxy requests to another server, then you can turn proxying
# off here. This will save a small amount of resources on the server.
#
# If you have proxying turned off, and your configuration files say
# to proxy a request, then an error message will be logged.
#
# To disable proxying, change the "yes" to "no", and comment the
# $INCLUDE line.
#
# allowed values: {no, yes}
#
proxy_requests = yes
$INCLUDE proxy.conf


# CLIENTS CONFIGURATION
#
# Client configuration is defined in "clients.conf".
#

# The 'clients.conf' file contains all of the information from the old
# 'clients' and 'naslist' configuration files. We recommend that you
# do NOT use 'client's or 'naslist', although they are still
# supported.
#
# Anything listed in 'clients.conf' will take precedence over the
# information from the old-style configuration files.
#
$INCLUDE clients.conf


# THREAD POOL CONFIGURATION
#
# The thread pool is a long-lived group of threads which
# take turns (round-robin) handling any incoming requests.
#
# You probably want to have a few spare threads around,
# so that high-load situations can be handled immediately. If you
# don't have any spare threads, then the request handling will
# be delayed while a new thread is created, and added to the pool.
#
# You probably don't want too many spare threads around,
# otherwise they'll be sitting there taking up resources, and
# not doing anything productive.
#
# The numbers given below should be adequate for most situations.
#
thread pool {
# Number of servers to start initially --- should be a reasonable
# ballpark figure.
start_servers = 5

# Limit on the total number of servers running.
#
# If this limit is ever reached, clients will be LOCKED OUT, so it
# should NOT BE SET TOO LOW. It is intended mainly as a brake to
# keep a runaway server from taking the system with it as it spirals
# down...
#
# You may find that the server is regularly reaching the
# 'max_servers' number of threads, and that increasing
# 'max_servers' doesn't seem to make much difference.
#
# If this is the case, then the problem is MOST LIKELY that
# your back-end databases are taking too long to respond, and
# are preventing the server from responding in a timely manner.
#
# The solution is NOT do keep increasing the 'max_servers'
# value, but instead to fix the underlying cause of the
# problem: slow database, or 'hostname_lookups=yes'.
#
# For more information, see 'max_request_time', above.
#
max_servers = 32

# Server-pool size regulation. Rather than making you guess
# how many servers you need, FreeRADIUS dynamically adapts to
# the load it sees, that is, it tries to maintain enough
# servers to handle the current load, plus a few spare
# servers to handle transient load spikes.
#
# It does this by periodically checking how many servers are
# waiting for a request. If there are fewer than
# min_spare_servers, it creates a new spare. If there are
# more than max_spare_servers, some of the spares die off.
# The default values are probably OK for most sites.
#
min_spare_servers = 3
max_spare_servers = 10

# When the server receives a packet, it places it onto an
# internal queue, where the worker threads (configured above)
# pick it up for processing. The maximum size of that queue
# is given here.
#
# When the queue is full, any new packets will be silently
# discarded.
#
# The most common cause of the queue being full is that the
# server is dependent on a slow database, and it has received
# a large "spike" of traffic. When that happens, there is
# very little you can do other than make sure the server
# receives less traffic, or make sure that the database can
# handle the load.
#
# max_queue_size = 65536

# There may be memory leaks or resource allocation problems with
# the server. If so, set this value to 300 or so, so that the
# resources will be cleaned up periodically.
#
# This should only be necessary if there are serious bugs in the
# server which have not yet been fixed.
#
# '0' is a special value meaning 'infinity', or 'the servers never
# exit'
max_requests_per_server = 0
}

# MODULE CONFIGURATION
#
# The names and configuration of each module is located in this section.
#
# After the modules are defined here, they may be referred to by name,
# in other sections of this configuration file.
#
modules {
#
# Each module has a configuration as follows:
#
# name [ instance ] {
# config_item = value
# ...
# }
#
# The 'name' is used to load the 'rlm_name' library
# which implements the functionality of the module.
#
# The 'instance' is optional. To have two different instances
# of a module, it first must be referred to by 'name'.
# The different copies of the module are then created by
# inventing two 'instance' names, e.g. 'instance1' and 'instance2'
#
# The instance names can then be used in later configuration
# INSTEAD of the original 'name'. See the 'radutmp' configuration
# for an example.
#

#
# As of 2.0.5, most of the module configurations are in a
# sub-directory. Files matching the regex /[a-zA-Z0-9_.]+/
# are loaded. The modules are initialized ONLY if they are
# referenced in a processing section, such as authorize,
# authenticate, accounting, pre/post-proxy, etc.
#
$INCLUDE ${confdir}/modules/

# Extensible Authentication Protocol
#
# For all EAP related authentications.
# Now in another file, because it is very large.
#
$INCLUDE eap.conf

# Include another file that has the SQL-related configuration.
# This is another file only because it tends to be big.
#
$INCLUDE sql.conf

#
# This module is an SQL enabled version of the counter module.
#
# Rather than maintaining seperate (GDBM) databases of
# accounting info for each counter, this module uses the data
# stored in the raddacct table by the sql modules. This
# module NEVER does any database INSERTs or UPDATEs. It is
# totally dependent on the SQL module to process Accounting
# packets.
#
# $INCLUDE sql/mysql/counter.conf

#
# IP addresses managed in an SQL table.
#
# $INCLUDE sqlippool.conf
}

# Instantiation
#
# This section orders the loading of the modules. Modules
# listed here will get loaded BEFORE the later sections like
# authorize, authenticate, etc. get examined.
#
# This section is not strictly needed. When a section like
# authorize refers to a module, it's automatically loaded and
# initialized. However, some modules may not be listed in any
# of the following sections, so they can be listed here.
#
# Also, listing modules here ensures that you have control over
# the order in which they are initalized. If one module needs
# something defined by another module, you can list them in order
# here, and ensure that the configuration will be OK.
#
instantiate {
#
# Allows the execution of external scripts.
# The entire command line (and output) must fit into 253 bytes.
#
# e.g. Framed-Pool = `%{exec:/bin/echo foo}`
exec

#
# The expression module doesn't do authorization,
# authentication, or accounting. It only does dynamic
# translation, of the form:
#
# Session-Timeout = `%{expr:2 + 3}`
#
# So the module needs to be instantiated, but CANNOT be
# listed in any other section. See 'doc/rlm_expr' for
# more information.
#
expr

#
# We add the counter module here so that it registers
# the check-name attribute before any module which sets
# it
# daily
expiration
logintime

# subsections here can be thought of as "virtual" modules.
#
# e.g. If you have two redundant SQL servers, and you want to
# use them in the authorize and accounting sections, you could
# place a "redundant" block in each section, containing the
# exact same text. Or, you could uncomment the following
# lines, and list "redundant_sql" in the authorize and
# accounting sections.
#
#redundant redundant_sql {
# sql1
# sql2
#}
}

######################################################################
#
# Policies that can be applied in multiple places are listed
# globally. That way, they can be defined once, and referred
# to multiple times.
#
######################################################################
$INCLUDE policy.conf

######################################################################
#
# Load virtual servers.
#
# This next $INCLUDE line loads files in the directory that
# match the regular expression: /[a-zA-Z0-9_.]+/
#
# It allows you to define new virtual servers simply by placing
# a file into the raddb/sites-enabled/ directory.
#
$INCLUDE sites-enabled/

######################################################################
#
# All of the other configuration sections like "authorize {}",
# "authenticate {}", "accounting {}", have been moved to the
# the file:
#
# raddb/sites-available/default
#
# This is the "default" virtual server that has the same
# configuration as in version 1.0.x and 1.1.x. The default
# installation enables this virtual server. You should
# edit it to create policies for your local site.
#
# For more documentation on virtual servers, see:
#
# raddb/sites-available/README
#
######################################################################

[165] Comentário enviado por montoanel em 15/02/2014 - 21:06h

eu vi la embaixo que foi movido para /etc/freeradius/sites-avaliable/ default

All of the other configuration sections like "authorize {}",
# "authenticate {}", "accounting {}", have been moved to the
# the file:
#
# raddb/sites-available/default



entao tem que adicionar somente o sql ??? só adicionar SQL??

*******************************************************************
######################################################################
#
# As of 2.0.0, FreeRADIUS supports virtual hosts using the
# "server" section, and configuration directives.
#
# Virtual hosts should be put into the "sites-available"
# directory. Soft links should be created in the "sites-enabled"
# directory to these files. This is done in a normal installation.
#
# If you are using 802.1X (EAP) authentication, please see also
# the "inner-tunnel" virtual server. You wll likely have to edit
# that, too, for authentication to work.
#
# $Id$
#
######################################################################
#
# Read "man radiusd" before editing this file. See the section
# titled DEBUGGING. It outlines a method where you can quickly
# obtain the configuration you want, without running into
# trouble. See also "man unlang", which documents the format
# of this file.
#
# This configuration is designed to work in the widest possible
# set of circumstances, with the widest possible number of
# authentication methods. This means that in general, you should
# need to make very few changes to this file.
#
# The best way to configure the server for your local system
# is to CAREFULLY edit this file. Most attempts to make large
# edits to this file will BREAK THE SERVER. Any edits should
# be small, and tested by running the server with "radiusd -X".
# Once the edits have been verified to work, save a copy of these
# configuration files somewhere. (e.g. as a "tar" file). Then,
# make more edits, and test, as above.
#
# There are many "commented out" references to modules such
# as ldap, sql, etc. These references serve as place-holders.
# If you need the functionality of that module, then configure
# it in radiusd.conf, and un-comment the references to it in
# this file. In most cases, those small changes will result
# in the server being able to connect to the DB, and to
# authenticate users.
#
######################################################################

#
# In 1.x, the "authorize", etc. sections were global in
# radiusd.conf. As of 2.0, they SHOULD be in a server section.
#
# The server section with no virtual server name is the "default"
# section. It is used when no server name is specified.
#
# We don't indent the rest of this file, because doing so
# would make it harder to read.
#

# Authorization. First preprocess (hints and huntgroups files),
# then realms, and finally look in the "users" file.
#
# Any changes made here should also be made to the "inner-tunnel"
# virtual server.
#
# The order of the realm modules will determine the order that
# we try to find a matching realm.
#
# Make *sure* that 'preprocess' comes before any realm if you
# need to setup hints for the remote radius server
authorize {
#
# Security settings. Take a User-Name, and do some simple
# checks on it, for spaces and other invalid characters. If
# it looks like the user is trying to play games, reject it.
#
# This should probably be enabled by default.
#
# See policy.conf for the definition of the filter_username policy.
#
# filter_username

#
# The preprocess module takes care of sanitizing some bizarre
# attributes in the request, and turning them into attributes
# which are more standard.
#
# It takes care of processing the 'raddb/hints' and the
# 'raddb/huntgroups' files.
preprocess

#
# If you want to have a log of authentication requests,
# un-comment the following line, and the 'detail auth_log'
# section, above.
# auth_log

#
# The chap module will set 'Auth-Type := CHAP' if we are
# handling a CHAP request and Auth-Type has not already been set
chap

#
# If the users are logging in with an MS-CHAP-Challenge
# attribute for authentication, the mschap module will find
# the MS-CHAP-Challenge attribute, and add 'Auth-Type := MS-CHAP'
# to the request, which will cause the server to then use
# the mschap module for authentication.
mschap

#
# If you have a Cisco SIP server authenticating against
# FreeRADIUS, uncomment the following line, and the 'digest'
# line in the 'authenticate' section.
digest

#
# The WiMAX specification says that the Calling-Station-Id
# is 6 octets of the MAC. This definition conflicts with
# RFC 3580, and all common RADIUS practices. Un-commenting
# the "wimax" module here means that it will fix the
# Calling-Station-Id attribute to the normal format as
# specified in RFC 3580 Section 3.21
# wimax

#
# Look for IPASS style 'realm/', and if not found, look for
# '@realm', and decide whether or not to proxy, based on
# that.
# IPASS

#
# If you are using multiple kinds of realms, you probably
# want to set "ignore_null = yes" for all of them.
# Otherwise, when the first style of realm doesn't match,
# the other styles won't be checked.
#
suffix
# ntdomain

#
# This module takes care of EAP-MD5, EAP-TLS, and EAP-LEAP
# authentication.
#
# It also sets the EAP-Type attribute in the request
# attribute list to the EAP type from the packet.
#
# As of 2.0, the EAP module returns "ok" in the authorize stage
# for TTLS and PEAP. In 1.x, it never returned "ok" here, so
# this change is compatible with older configurations.
#
# The example below uses module failover to avoid querying all
# of the following modules if the EAP module returns "ok".
# Therefore, your LDAP and/or SQL servers will not be queried
# for the many packets that go back and forth to set up TTLS
# or PEAP. The load on those servers will therefore be reduced.
#
eap {
ok = return
}

#
# Pull crypt'd passwords from /etc/passwd or /etc/shadow,
# using the system API's to get the password. If you want
# to read /etc/passwd or /etc/shadow directly, see the
# passwd module in radiusd.conf.
#
# unix

#
# Read the 'users' file
files

#
# Look in an SQL database. The schema of the database
# is meant to mirror the "users" file.
#
# See "Authorization Queries" in sql.conf
sql

#
# If you are using /etc/smbpasswd, and are also doing
# mschap authentication, the un-comment this line, and
# configure the 'etc_smbpasswd' module, above.
# etc_smbpasswd

#
# The ldap module will set Auth-Type to LDAP if it has not
# already been set
# ldap

#
# Enforce daily limits on time spent logged in.
# daily

#
# Use the checkval module
# checkval

expiration
logintime

#
# If no other module has claimed responsibility for
# authentication, then try to use PAP. This allows the
# other modules listed above to add a "known good" password
# to the request, and to do nothing else. The PAP module
# will then see that password, and use it to do PAP
# authentication.
#
# This module should be listed last, so that the other modules
# get a chance to set Auth-Type for themselves.
#
pap

#
# If "status_server = yes", then Status-Server messages are passed
# through the following section, and ONLY the following section.
# This permits you to do DB queries, for example. If the modules
# listed here return "fail", then NO response is sent.
#
# Autz-Type Status-Server {
#
# }
}


# Authentication.
#
#
# This section lists which modules are available for authentication.
# Note that it does NOT mean 'try each module in order'. It means
# that a module from the 'authorize' section adds a configuration
# attribute 'Auth-Type := FOO'. That authentication type is then
# used to pick the apropriate module from the list below.
#

# In general, you SHOULD NOT set the Auth-Type attribute. The server
# will figure it out on its own, and will do the right thing. The
# most common side effect of erroneously setting the Auth-Type
# attribute is that one authentication method will work, but the
# others will not.
#
# The common reasons to set the Auth-Type attribute by hand
# is to either forcibly reject the user (Auth-Type := Reject),
# or to or forcibly accept the user (Auth-Type := Accept).
#
# Note that Auth-Type := Accept will NOT work with EAP.
#
# Please do not put "unlang" configurations into the "authenticate"
# section. Put them in the "post-auth" section instead. That's what
# the post-auth section is for.
#
authenticate {
#
# PAP authentication, when a back-end database listed
# in the 'authorize' section supplies a password. The
# password can be clear-text, or encrypted.
Auth-Type PAP {
pap
}

#
# Most people want CHAP authentication
# A back-end database listed in the 'authorize' section
# MUST supply a CLEAR TEXT password. Encrypted passwords
# won't work.
Auth-Type CHAP {
chap
}

#
# MSCHAP authentication.
Auth-Type MS-CHAP {
mschap
}

#
# If you have a Cisco SIP server authenticating against
# FreeRADIUS, uncomment the following line, and the 'digest'
# line in the 'authorize' section.
digest

#
# Pluggable Authentication Modules.
# pam

#
# See 'man getpwent' for information on how the 'unix'
# module checks the users password. Note that packets
# containing CHAP-Password attributes CANNOT be authenticated
# against /etc/passwd! See the FAQ for details.
#
# For normal "crypt" authentication, the "pap" module should
# be used instead of the "unix" module. The "unix" module should
# be used for authentication ONLY for compatibility with legacy
# FreeRADIUS configurations.
#
unix

# Uncomment it if you want to use ldap for authentication
#
# Note that this means "check plain-text password against
# the ldap database", which means that EAP won't work,
# as it does not supply a plain-text password.
# Auth-Type LDAP {
# ldap
# }

#
# Allow EAP authentication.
eap

#
# The older configurations sent a number of attributes in
# Access-Challenge packets, which wasn't strictly correct.
# If you want to filter out these attributes, uncomment
# the following lines.
#
# Auth-Type eap {
# eap {
# handled = 1
# }
# if (handled && (Response-Packet-Type == Access-Challenge)) {
# attr_filter.access_challenge.post-auth
# handled # override the "updated" code from attr_filter
# }
# }
}


#
# Pre-accounting. Decide which accounting type to use.
#
preacct {
preprocess

#
# Session start times are *implied* in RADIUS.
# The NAS never sends a "start time". Instead, it sends
# a start packet, *possibly* with an Acct-Delay-Time.
# The server is supposed to conclude that the start time
# was "Acct-Delay-Time" seconds in the past.
#
# The code below creates an explicit start time, which can
# then be used in other modules.
#
# The start time is: NOW - delay - session_length
#

# update request {
# FreeRADIUS-Acct-Session-Start-Time = "%{expr: %l - %{%{Acct-Session-Time}:-0} - %{%{Acct-Delay-Time}:-0}}"
# }


#
# Ensure that we have a semi-unique identifier for every
# request, and many NAS boxes are broken.
acct_unique

#
# Look for IPASS-style 'realm/', and if not found, look for
# '@realm', and decide whether or not to proxy, based on
# that.
#
# Accounting requests are generally proxied to the same
# home server as authentication requests.
# IPASS
suffix
# ntdomain

#
# Read the 'acct_users' file
files
}

#
# Accounting. Log the accounting data.
#
accounting {
#
# Create a 'detail'ed log of the packets.
# Note that accounting requests which are proxied
# are also logged in the detail file.
detail
# daily

# Update the wtmp file
#
# If you don't use "radlast", you can delete this line.
unix

#
# For Simultaneous-Use tracking.
#
# Due to packet losses in the network, the data here
# may be incorrect. There is little we can do about it.
radutmp
# sradutmp

# Return an address to the IP Pool when we see a stop record.
# main_pool

#
# Log traffic to an SQL database.
#
# See "Accounting queries" in sql.conf
sql

#
# If you receive stop packets with zero session length,
# they will NOT be logged in the database. The SQL module
# will print a message (only in debugging mode), and will
# return "noop".
#
# You can ignore these packets by uncommenting the following
# three lines. Otherwise, the server will not respond to the
# accounting request, and the NAS will retransmit.
#
# if (noop) {
# ok
# }

#
# Instead of sending the query to the SQL server,
# write it into a log file.
#
# sql_log

# Cisco VoIP specific bulk accounting
# pgsql-voip

# For Exec-Program and Exec-Program-Wait
exec

# Filter attributes from the accounting response.
attr_filter.accounting_response

#
# See "Autz-Type Status-Server" for how this works.
#
# Acct-Type Status-Server {
#
# }
}


# Session database, used for checking Simultaneous-Use. Either the radutmp
# or rlm_sql module can handle this.
# The rlm_sql module is *much* faster
session {
radutmp

#
# See "Simultaneous Use Checking Queries" in sql.conf
sql
}


# Post-Authentication
# Once we KNOW that the user has been authenticated, there are
# additional steps we can take.
post-auth {
# Get an address from the IP Pool.
# main_pool

#
# If you want to have a log of authentication replies,
# un-comment the following line, and the 'detail reply_log'
# section, above.
# reply_log

#
# After authenticating the user, do another SQL query.
#
# See "Authentication Logging Queries" in sql.conf
# sql

#
# Instead of sending the query to the SQL server,
# write it into a log file.
#
# sql_log

#
# Un-comment the following if you have set
# 'edir_account_policy_check = yes' in the ldap module sub-section of
# the 'modules' section.
#
# ldap

# For Exec-Program and Exec-Program-Wait
exec

#
# Calculate the various WiMAX keys. In order for this to work,
# you will need to define the WiMAX NAI, usually via
#
# update request {
# WiMAX-MN-NAI = "%{User-Name}"
# }
#
# If you want various keys to be calculated, you will need to
# update the reply with "template" values. The module will see
# this, and replace the template values with the correct ones
# taken from the cryptographic calculations. e.g.
#
# update reply {
# WiMAX-FA-RK-Key = 0x00
# WiMAX-MSK = "%{EAP-MSK}"
# }
#
# You may want to delete the MS-MPPE-*-Keys from the reply,
# as some WiMAX clients behave badly when those attributes
# are included. See "raddb/modules/wimax", configuration
# entry "delete_mppe_keys" for more information.
#
# wimax

# If there is a client certificate (EAP-TLS, sometimes PEAP
# and TTLS), then some attributes are filled out after the
# certificate verification has been performed. These fields
# MAY be available during the authentication, or they may be
# available only in the "post-auth" section.
#
# The first set of attributes contains information about the
# issuing certificate which is being used. The second
# contains information about the client certificate (if
# available).
#
# update reply {
# Reply-Message += "%{TLS-Cert-Serial}"
# Reply-Message += "%{TLS-Cert-Expiration}"
# Reply-Message += "%{TLS-Cert-Subject}"
# Reply-Message += "%{TLS-Cert-Issuer}"
# Reply-Message += "%{TLS-Cert-Common-Name}"
#
# Reply-Message += "%{TLS-Client-Cert-Serial}"
# Reply-Message += "%{TLS-Client-Cert-Expiration}"
# Reply-Message += "%{TLS-Client-Cert-Subject}"
# Reply-Message += "%{TLS-Client-Cert-Issuer}"
# Reply-Message += "%{TLS-Client-Cert-Common-Name}"
# }


# If the WiMAX module did it's work, you may want to do more
# things here, like delete the MS-MPPE-*-Key attributes.
#
# if (updated) {
# update reply {
# MS-MPPE-Recv-Key !* 0x00
# MS-MPPE-Send-Key !* 0x00
# }
# }

#
# Access-Reject packets are sent through the REJECT sub-section of the
# post-auth section.
#
# Add the ldap module name (or instance) if you have set
# 'edir_account_policy_check = yes' in the ldap module configuration
#
Post-Auth-Type REJECT {
# log failed authentications in SQL, too.
# sql
attr_filter.access_reject
}
}

#
# When the server decides to proxy a request to a home server,
# the proxied request is first passed through the pre-proxy
# stage. This stage can re-write the request, or decide to
# cancel the proxy.
#
# Only a few modules currently have this method.
#
pre-proxy {
# attr_rewrite

# Uncomment the following line if you want to change attributes
# as defined in the preproxy_users file.
# files

# Uncomment the following line if you want to filter requests
# sent to remote servers based on the rules defined in the
# 'attrs.pre-proxy' file.
# attr_filter.pre-proxy

# If you want to have a log of packets proxied to a home
# server, un-comment the following line, and the
# 'detail pre_proxy_log' section, above.
# pre_proxy_log
}

#
# When the server receives a reply to a request it proxied
# to a home server, the request may be massaged here, in the
# post-proxy stage.
#
post-proxy {

# If you want to have a log of replies from a home server,
# un-comment the following line, and the 'detail post_proxy_log'
# section, above.
# post_proxy_log

# attr_rewrite

# Uncomment the following line if you want to filter replies from
# remote proxies based on the rules defined in the 'attrs' file.
# attr_filter.post-proxy

#
# If you are proxying LEAP, you MUST configure the EAP
# module, and you MUST list it here, in the post-proxy
# stage.
#
# You MUST also use the 'nostrip' option in the 'realm'
# configuration. Otherwise, the User-Name attribute
# in the proxied request will not match the user name
# hidden inside of the EAP packet, and the end server will
# reject the EAP request.
#
eap

#
# If the server tries to proxy a request and fails, then the
# request is processed through the modules in this section.
#
# The main use of this section is to permit robust proxying
# of accounting packets. The server can be configured to
# proxy accounting packets as part of normal processing.
# Then, if the home server goes down, accounting packets can
# be logged to a local "detail" file, for processing with
# radrelay. When the home server comes back up, radrelay
# will read the detail file, and send the packets to the
# home server.
#
# With this configuration, the server always responds to
# Accounting-Requests from the NAS, but only writes
# accounting packets to disk if the home server is down.
#
# Post-Proxy-Type Fail {
# detail
# }
}


[166] Comentário enviado por montoanel em 15/02/2014 - 21:11h

eu acredito que todos estão com o sql descomentado

[167] Comentário enviado por montoanel em 15/02/2014 - 21:15h

quando eu mando dar um connect, é isto que ele aparece executando em freeradius -X


************************88000000000000000000000000000000000000000000000000000000000000000000000000000000000000


rad_recv: Access-Request packet from host 192.168.0.126 port 48181, id=2, length=152
Service-Type = Framed-User
Framed-Protocol = PPP
NAS-Port = 3
NAS-Port-Type = Ethernet
User-Name = "biscatinha"
Calling-Station-Id = "08:00:27:4A:5D:9A"
Called-Station-Id = "Servidor-PPPoE"
NAS-Port-Id = "ether2"
CHAP-Challenge = 0x474695d2e837d8f8d7106131b54d6088
CHAP-Password = 0x011f80ac0b5d7ea53d45137611d1ff988c
NAS-Identifier = "MikroTik"
NAS-IP-Address = 192.168.0.126
# Executing section authorize from file /etc/freeradius/sites-enabled/default
+- entering group authorize {...}
++[preprocess] returns ok
[chap] Setting 'Auth-Type := CHAP'
++[chap] returns ok
++[mschap] returns noop
++[digest] returns noop
[suffix] No '@' in User-Name = "biscatinha", looking up realm NULL
[suffix] No such realm "NULL"
++[suffix] returns noop
[eap] No EAP-Message, not doing EAP
++[eap] returns noop
[files] users: Matched entry DEFAULT at line 172
++[files] returns ok
[sql] expand: %{User-Name} -> biscatinha
[sql] sql_set_user escaped user --> 'biscatinha'
rlm_sql (sql): Reserving sql socket id: 4
[sql] expand: SELECT id, username, attribute, value, op FROM radcheck WHERE username = '%{SQL-User-Name}' AND enable = 'Y' ORDER BY id -> SELECT id, username, attribute, value, op FROM radcheck WHERE username = 'biscatinha' AND enable = 'Y' ORDER BY id
[sql] User found in radcheck table
[sql] expand: SELECT id, username, attribute, value, op FROM radreply WHERE username = '%{SQL-User-Name}' AND enable = 'Y' ORDER BY id -> SELECT id, username, attribute, value, op FROM radreply WHERE username = 'biscatinha' AND enable = 'Y' ORDER BY id
[sql] expand: SELECT groupname FROM radusergroup WHERE username = '%{SQL-User-Name}' ORDER BY priority -> SELECT groupname FROM radusergroup WHERE username = 'biscatinha' ORDER BY priority
[sql] expand: SELECT id, groupname, attribute, Value, op FROM radgroupcheck WHERE groupname = '%{Sql-Group}' ORDER BY id -> SELECT id, groupname, attribute, Value, op FROM radgroupcheck WHERE groupname = 'plano1mb' ORDER BY id
[sql] User found in group plano1mb
[sql] expand: SELECT id, groupname, attribute, value, op FROM radgroupreply WHERE groupname = '%{Sql-Group}' ORDER BY id -> SELECT id, groupname, attribute, value, op FROM radgroupreply WHERE groupname = 'plano1mb' ORDER BY id
rlm_sql (sql): Released sql socket id: 4
++[sql] returns ok
++[expiration] returns noop
++[logintime] returns noop
[pap] WARNING: Auth-Type already set. Not setting to PAP
++[pap] returns noop
Found Auth-Type = CHAP
# Executing group from file /etc/freeradius/sites-enabled/default
+- entering group CHAP {...}
[chap] login attempt by "biscatinha" with CHAP password
[chap] Using clear text password "123" for user biscatinha authentication.
[chap] chap user biscatinha authenticated succesfully
++[chap] returns ok
# Executing section session from file /etc/freeradius/sites-enabled/default
+- entering group session {...}
[radutmp] expand: /var/log/freeradius/radutmp -> /var/log/freeradius/radutmp
[radutmp] expand: %{User-Name} -> biscatinha
++[radutmp] returns ok
# Executing section post-auth from file /etc/freeradius/sites-enabled/default
+- entering group post-auth {...}
++[exec] returns noop
Sending Access-Accept of id 2 to 192.168.0.126 port 48181
Framed-Protocol = PPP
Framed-Compression = Van-Jacobson-TCP-IP
Mikrotik-Rate-Limit := "256k/1024k"
Finished request 0.
Going to the next request
Waking up in 4.9 seconds.
rad_recv: Accounting-Request packet from host 192.168.0.126 port 52244, id=3, length=155
Service-Type = Framed-User
Framed-Protocol = PPP
NAS-Port = 3
NAS-Port-Type = Ethernet
User-Name = "biscatinha"
Calling-Station-Id = "08:00:27:4A:5D:9A"
Called-Station-Id = "Servidor-PPPoE"
NAS-Port-Id = "ether2"
Acct-Session-Id = "81b00000"
Framed-IP-Address = 10.2.1.254
Acct-Authentic = RADIUS
Event-Timestamp = "Feb 15 2014 20:13:46 AMST"
Acct-Status-Type = Start
NAS-Identifier = "MikroTik"
NAS-IP-Address = 192.168.0.126
Acct-Delay-Time = 0
# Executing section preacct from file /etc/freeradius/sites-enabled/default
+- entering group preacct {...}
++[preprocess] returns ok
[acct_unique] Hashing 'NAS-Port = 3,Client-IP-Address = 192.168.0.126,NAS-IP-Address = 192.168.0.126,Acct-Session-Id = "81b00000",User-Name = "biscatinha"'
[acct_unique] Acct-Unique-Session-ID = "49a0ce51b6473d11".
++[acct_unique] returns ok
[suffix] No '@' in User-Name = "biscatinha", looking up realm NULL
[suffix] No such realm "NULL"
++[suffix] returns noop
++[files] returns noop
# Executing section accounting from file /etc/freeradius/sites-enabled/default
+- entering group accounting {...}
[detail] expand: %{Packet-Src-IP-Address} -> 192.168.0.126
[detail] expand: /var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/detail-%Y%m%d -> /var/log/freeradius/radacct/192.168.0.126/detail-20140215
[detail] /var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/detail-%Y%m%d expands to /var/log/freeradius/radacct/192.168.0.126/detail-20140215
[detail] expand: %t -> Sat Feb 15 20:13:46 2014
++[detail] returns ok
++[unix] returns ok
[radutmp] expand: /var/log/freeradius/radutmp -> /var/log/freeradius/radutmp
[radutmp] expand: %{User-Name} -> biscatinha
++[radutmp] returns ok
[sql] expand: %{User-Name} -> biscatinha
[sql] sql_set_user escaped user --> 'biscatinha'
[sql] expand: %{Acct-Delay-Time} -> 0
[sql] expand: 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}',
rlm_sql (sql): Reserving sql socket id: 3
rlm_sql (sql): Released sql socket id: 3
++[sql] returns ok
++[exec] returns noop
[attr_filter.accounting_response] expand: %{User-Name} -> biscatinha
attr_filter: Matched entry DEFAULT at line 12
++[attr_filter.accounting_response] returns updated
Sending Accounting-Response of id 3 to 192.168.0.126 port 52244
Finished request 1.
Cleaning up request 1 ID 3 with timestamp +12
Going to the next request
Waking up in 4.8 seconds.
Cleaning up request 0 ID 2 with timestamp +12
Ready to process requests.

[168] Comentário enviado por montoanel em 15/02/2014 - 21:28h

aqui é quando faço disconnect.

888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888



rad_recv: Accounting-Request packet from host 192.168.0.126 port 40248, id=8, length=203
Service-Type = Framed-User
Framed-Protocol = PPP
NAS-Port = 3
NAS-Port-Type = Ethernet
User-Name = "biscatinha"
Calling-Station-Id = "08:00:27:4A:5D:9A"
Called-Station-Id = "Servidor-PPPoE"
NAS-Port-Id = "ether2"
Acct-Session-Id = "81b00000"
Framed-IP-Address = 10.2.1.254
Acct-Authentic = RADIUS
Event-Timestamp = "Feb 15 2014 20:26:00 AMST"
Acct-Session-Time = 733
Acct-Input-Octets = 1337
Acct-Input-Gigawords = 0
Acct-Input-Packets = 14
Acct-Output-Octets = 98
Acct-Output-Gigawords = 0
Acct-Output-Packets = 8
Acct-Status-Type = Stop
Acct-Terminate-Cause = User-Request
NAS-Identifier = "MikroTik"
NAS-IP-Address = 192.168.0.126
Acct-Delay-Time = 0
# Executing section preacct from file /etc/freeradius/sites-enabled/default
+- entering group preacct {...}
++[preprocess] returns ok
[acct_unique] Hashing 'NAS-Port = 3,Client-IP-Address = 192.168.0.126,NAS-IP-Address = 192.168.0.126,Acct-Session-Id = "81b00000",User-Name = "biscatinha"'
[acct_unique] Acct-Unique-Session-ID = "49a0ce51b6473d11".
++[acct_unique] returns ok
[suffix] No '@' in User-Name = "biscatinha", looking up realm NULL
[suffix] No such realm "NULL"
++[suffix] returns noop
++[files] returns noop
# Executing section accounting from file /etc/freeradius/sites-enabled/default
+- entering group accounting {...}
[detail] expand: %{Packet-Src-IP-Address} -> 192.168.0.126
[detail] expand: /var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/detail-%Y%m%d -> /var/log/freeradius/radacct/192.168.0.126/detail-20140215
[detail] /var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/detail-%Y%m%d expands to /var/log/freeradius/radacct/192.168.0.126/detail-20140215
[detail] expand: %t -> Sat Feb 15 20:26:00 2014
++[detail] returns ok
++[unix] returns ok
[radutmp] expand: /var/log/freeradius/radutmp -> /var/log/freeradius/radutmp
[radutmp] expand: %{User-Name} -> biscatinha
++[radutmp] returns ok
[sql] expand: %{User-Name} -> biscatinha
[sql] sql_set_user escaped user --> 'biscatinha'
[sql] expand: %{Acct-Input-Gigawords} -> 0
[sql] expand: %{Acct-Input-Octets} -> 1337
[sql] expand: %{Acct-Output-Gigawords} -> 0
[sql] expand: %{Acct-Output-Octets} -> 98
[sql] expand: %{Acct-Delay-Time} -> 0
[sql] expand: 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}' -> UPDATE radacct SET acctstoptime = '2014-02-15 20:26:00', acctsessiontime = '733', acctinputoctets = '0' << 32 | '1337', acctoutputoctets = '0' << 32 |
rlm_sql (sql): Reserving sql socket id: 3
rlm_sql (sql): Released sql socket id: 3
++[sql] returns ok
++[exec] returns noop
[attr_filter.accounting_response] expand: %{User-Name} -> biscatinha
attr_filter: Matched entry DEFAULT at line 12
++[attr_filter.accounting_response] returns updated
Sending Accounting-Response of id 8 to 192.168.0.126 port 40248
Finished request 1.
Cleaning up request 1 ID 8 with timestamp +19
Going to the next request
Ready to process requests.

[169] Comentário enviado por montoanel em 15/02/2014 - 21:29h

nos meus olhos eu nao consigo identificar nada de errado, pois é a primeira vez que estou implantando a ferramenta freeradius.

[170] Comentário enviado por fsoaress76 em 17/02/2014 - 12:20h

Não esquecer de conferir o script que esta criando o banco de dados para o freeradius, deve certificar se todas as tabelas estão no mesmo paramentos.

já passei por um problema aqui desta forma:

Script do freeradois estava desta forma: "username"
No Banco de Dados: "UserName"





[171] Comentário enviado por montoanel em 18/02/2014 - 16:46h

CREATE TABLE radacct (
radacctid bigint(21) NOT NULL auto_increment,
acctsessionid varchar(64) NOT NULL default '',
acctuniqueid varchar(32) NOT NULL default '',
username varchar(64) NOT NULL default '',
groupname varchar(64) NOT NULL default '',
realm varchar(64) default '',
nasipaddress varchar(15) NOT NULL default '',
nasportid varchar(15) default NULL,
nasporttype varchar(32) default NULL,
acctstarttime datetime NULL default NULL,
acctstoptime datetime NULL default NULL,
acctsessiontime int(12) default NULL,
acctauthentic varchar(32) default NULL,
connectinfo_start varchar(50) default NULL,
connectinfo_stop varchar(50) default NULL,
acctinputoctets bigint(20) default NULL,
acctoutputoctets bigint(20) default NULL,
calledstationid varchar(50) NOT NULL default '',
callingstationid varchar(50) NOT NULL default '',
acctterminatecause varchar(32) NOT NULL default '',
servicetype varchar(32) default NULL,
framedprotocol varchar(32) default NULL,
framedipaddress varchar(15) NOT NULL default '',
acctstartdelay int(12) default NULL,
acctstopdelay int(12) default NULL,
xascendsessionsvrkey varchar(10) default NULL,
PRIMARY KEY (radacctid),
KEY username (username),
KEY framedipaddress (framedipaddress),
KEY acctsessionid (acctsessionid),
KEY acctsessiontime (acctsessiontime),
KEY acctuniqueid (acctuniqueid),
KEY acctstarttime (acctstarttime),
KEY acctstoptime (acctstoptime),
KEY nasipaddress (nasipaddress)
) ;




CREATE TABLE radcheck (
id int(11) unsigned NOT NULL auto_increment,
username varchar(64) NOT NULL default '',
attribute varchar(64) NOT NULL default '',
op char(2) NOT NULL DEFAULT '==',
value varchar(253) NOT NULL default '',
PRIMARY KEY (id),
KEY username (username(32))
) ;

#
# Table structure for table 'radgroupcheck'
#

CREATE TABLE radgroupcheck (
id int(11) unsigned NOT NULL auto_increment,
groupname varchar(64) NOT NULL default '',
attribute varchar(64) NOT NULL default '',
op char(2) NOT NULL DEFAULT '==',
value varchar(253) NOT NULL default '',
PRIMARY KEY (id),
KEY groupname (groupname(32))
) ;

#
# Table structure for table 'radgroupreply'
#

CREATE TABLE radgroupreply (
id int(11) unsigned NOT NULL auto_increment,
groupname varchar(64) NOT NULL default '',
attribute varchar(64) NOT NULL default '',
op char(2) NOT NULL DEFAULT '=',
value varchar(253) NOT NULL default '',
PRIMARY KEY (id),
KEY groupname (groupname(32))
) ;

#
# Table structure for table 'radreply'
#

CREATE TABLE radreply (
id int(11) unsigned NOT NULL auto_increment,
username varchar(64) NOT NULL default '',
attribute varchar(64) NOT NULL default '',
op char(2) NOT NULL DEFAULT '=',
value varchar(253) NOT NULL default '',
PRIMARY KEY (id),
KEY username (username(32))
) ;

# Table structure for table 'radpostauth'
#

CREATE TABLE radpostauth (
id int(11) NOT NULL auto_increment,
username varchar(64) NOT NULL default '',
pass varchar(64) NOT NULL default '',
reply varchar(32) NOT NULL default '',
authdate timestamp NOT NULL,
PRIMARY KEY (id)
) ;

[172] Comentário enviado por montoanel em 18/02/2014 - 16:49h

esse trem ta faltando coisa rsrs

[173] Comentário enviado por montoanel em 18/02/2014 - 16:50h


# Table structure for table 'nas'
#
CREATE TABLE nas (
id int(10) NOT NULL auto_increment,
nasname varchar(128) NOT NULL,
shortname varchar(32),
type varchar(30) DEFAULT 'other',
ports int(5),
secret varchar(60) DEFAULT 'secret' NOT NULL,
server varchar(64),
community varchar(50),
description varchar(200) DEFAULT 'RADIUS Client',
PRIMARY KEY (id),
KEY nasname (nasname)
);

[174] Comentário enviado por montoanel em 20/02/2014 - 09:27h

http://imageshack.com/a/img545/971/vlx8.jpg

[175] Comentário enviado por montoanel em 20/02/2014 - 12:27h

select count(*) from radacct where username = "renato" and acctstoptime is null;
+----------+
| count(*) |
+----------+
| 1 |
+----------+

[176] Comentário enviado por montoanel em 24/02/2014 - 22:50h

hj dentro de sites-avaliable DEFAULT, eu comentei o radutmp, reiniciei o serviço, reiniciei o debian, depois voltei la e descomentei, parece que o trem funcionou, nao tenho certeza, dpois vou postar uns logs

[177] Comentário enviado por montoanel em 03/03/2014 - 10:01h

alguem pode ajudar com o simultaneous-use ?????? nao ta funfando certo T_T

[178] Comentário enviado por cytron em 04/03/2014 - 18:55h

Olá montoanel .... Tem algumas versões anteriores do freeradius que o Simultaneous-Use não funciona. Tem uma mais anterior ainda que foi até removido isso kkkkk.

Caso seu problema não seja relacionado a versão tem um jeito simples e rápido de resolver isso, sem modificar query e sem dor de cabeça.

Crie um módulo em raddb/modules

Veja o script echo como exemplo. Lá tem os valores que você retorna para o radiusd.

No seu caso, retornar 1 será o reject.
Basta criar um módulo que chega através do radwho se o usuário já está conectado, se quiser ainda poderá fazer um log no mysql de uma tentativa duplicada.
Já usei este recurso quando estava usando uma versão bugada do freeradius onde o Simultaneos-Use não funcionava, me lembro que até arrancaram esta opção, isso é um absurdo kkkkk.

Não sei qual é sua versão, mas talvez esteja usando uma dessas. A minha é a 2.2.0 x64.
Estou usando radutmp (achei melhor que sql, visto que não ficam registros abertos em caso de queda de conexão).
Outro detalhe importante é deixar o case_sensitive em no, mas isso você já deve saber é claro.
Outro detalhe MUITO IMPORTANTE também é testar se seu radius está deixando conectar com "espaço" no início do nome ex: " user". A muito tempo atrás descobri esse terrível bug que na hora do freeradius verificar a existência do usuário no mysql, ele retirava o espaço para fazer a query, já na ora de procurar no radutmp ele considerava o espaço, daí resultava em usuários diferentes no radutmp e não acusava Simultaneous-Use.

Meu servidor está rodando perfeitamente desde 2012. Já tinha mais de 7 meses que eu nem entrava no server kkkkkkk, entrei hoje só relembrar da configuração pra te dar esse help aqui.

[179] Comentário enviado por montoanel em 05/03/2014 - 11:09h

Bom dia Cytron,


1º ehehe cara eu não sou um bom entendedor de freeradius, eu trabalhei em um provedor, porém eu não tinha acesso a manipular o servidor, pois o serviço era terceirizado ou (Franqueado).

2º A respeito do case sensitive no eu acredito que ela esteja marcada como NO mesmo ( porém não me lembro no momento o que esse case sensitive verifica).

3 ºNo caso do espaço, se eu fizer a seguinte tentativa " login1" não autentica, ou seja, espaço login1, porém se eu fizer "login1 " login1 espaço, ele autentica.

4 a respeito do radutmp, tem um carinha no facebook da Tailandia que me disse que uma boa pratica é não utilizar o radutmp, pois ele cria alguns arquivos dentro da maquina e que a melhor pratica seria utilizar somente o mysql para fazer consulta na tabela radacct, select * from radacct where acctstoptime is null; (ou seja, mostra quem ta conectado e não se desconectou) e uma observação, eu não sei se é coincidência, porém quando eu desativei o radutmp, eu não tive mais problemas de o usuario ficar amarrado, ou seja, se eu maando o usuario desconectar, e logo em seguida eu tento conectar novamente, ele não está ficando preso, pois acredito eu que antes de destivar o radutmp, toda vez que desconectava e tentava conectar o cara de novo, ele ficava preso no radius e não saia.


5º fiz um dpkg -l | grep freeradius e acredito que esta é a versão que estou utilizando o radius

ii freeradius 2.1.12+dfsg-1.2 i386 high-performance and highly configurable RADIUS server
ii freeradius-common 2.1.12+dfsg-1.2 all FreeRADIUS common files
ii freeradius-mysql 2.1.12+dfsg-1.2 i386 MySQL module for FreeRADIUS server
ii freeradius-utils 2.1.12+dfsg-1.2 i386 FreeRADIUS client utilities
ii libfreeradius2 2.1.12+dfsg-1.2 i386



6º organizei desta forma, pois o freeradius está me deixando doidão kkkkkk se vc poder me ajudar e quiser ver uns logs que tenho te mando.



obrigado!!!!

[180] Comentário enviado por montoanel em 05/03/2014 - 11:13h

"quote" Estou usando radutmp (achei melhor que sql, visto que não ficam registros abertos em caso de queda de conexão)."/quote".


acredito que no seu caso, ele nao fica registros abertos em caso de queda, porém no meu fica e acredito que seja por isso que foi melhor desativar o radutmp^^

[181] Comentário enviado por montoanel em 05/03/2014 - 11:22h

psc


Banco de Dados: radius, Tabela: radgroupcheck
id groupname attributeattribute op value value
1 bandalarga Framed-Compression := Van-Jacobsen-TCP-IP
2 bandalarga Framed-Protocol := PPP
3 bandalarga Service-Type := Framed-User
4 bandalarga Framed-MTU := 1500
5 bandalarga Simultaneous-Use := 1


e para setar o simultaneous-use eu seto no group eu uso a tabela radgroupcheck

[182] Comentário enviado por montoanel em 05/03/2014 - 11:31h

bom, realmente o case sensitive estava YES

cd /etc/freeradius/modules/radutmp

ele permitiu que o login1 se autenticasse como LOGIN1,

mais ignora essa parte ai por enquanto de case sensitive, porque fazem uns 2 meses que eu to no simultaneous-use rsrs

[183] Comentário enviado por montoanel em 05/03/2014 - 11:49h

Eu não entendi o que está dentro do cd /freeradius/modules/echo


hehe

[184] Comentário enviado por cytron em 05/03/2014 - 13:13h

montoanel...

Te aconselho a pular para a versão 2.2, não por questão de ficar atualizado, mas por questão dos bugs relacionados aos problemas que está enfrentando. Foi exatamente em uma desses 2.1.x que está a dor de cabeça.

O case_sensitive serve para diferenciar maiúsculas de minúsculas e tratar como usuários diferentes: vera e vEra são usuários diferentes quando case_sensitive está YES. Muitos clientes quando estão com pppoe no windows costumam colocar o usuário com a primeira letra em maiúsculo ou tudo em maiúsculo, isso vai fazer com que seu radius negue acesso pois geralmente cadastramos no db tudo em minúsculo.
Algumas versões anteriores vem yes por padrão.

A respeito do espaço, é verdade, tem tanto tempo isso que até inverti a coisa kkk, é no final mesmo: "vera ". Acho que na versão 2.2 isso foi corrigido, só acho, pois não me lembro mais, procurei no meu aqui e não encontrei um módulo que fiz para eliminar este problema, mas me lembro de ter feito isso para versões anteriores.

Sobre o radutmp, já utilizei mysql para isso anteriormente, mas é como eu disse, no caso da conexão do cliente cair (queda de energia, desligar o radinho ou sinal ficar ruim a ponto de dar timeout), então a conexão com o servidor cai mas o freeradius não coloca data de acctstoptime e deixa ele como NULL, daí, quando busca no db, vai achar muitos registros IS NULL. Em algumas versões anteriores do rp-pppoe tinha um problema com o mesmo conceito, a conexão caia e o pppoe não avisava o freeradius, com isso você dava um radwho e via o cliente lá, o único jeito de resolver era apagando o arquivo radutmp. Mas com isso dava pra fazer conexões duplicadas, pois os demais usuários conectados não constavam no novo radutmp. No meu pppoe-server uso -T60, se o cliente não responder em 1 minuto o pppoe derruba o pppd e avisa ao freeradius que o cliente saiu por timeout, a coisa fica tão bonitinha que o freeradius até lança um registro em radacct com a mensagem de timeout.

Quanto aos arquivos criados no server, na verdade é só um, radutmp. A única diferença entre radutmp e mysql, é que usa esse arquivo ao invés de db. Existe também a questão de tempo de acesso aos registros, já que mysql é muitas vezes mais rápido que um arquivo no disco. Mas cá entre nós, 500, 1000 ou 2000 clientes conectados não vai fazer diferença no tempo de acesso, já que o radutmp ou mysql é consultado somente na hora da conexão e desconexão. Imagino que o tempo de acesso faz diferença para provedores gigantescos, que certamente não vão usar o software freeradius. Lembrando que mesmo sem radutmp, acctstoptime continua trabalhando.

Eu poderia até migrar do radutmp para mysql, no entanto, como diz o jaiminho carteiro... Quero evitar a fadiga! kkkkkkkkkkkkkkkkkk

Também estou usando Simultaneous-Use := 1 no radgroupcheck.

Dentro do echo é apenas um exemplo de como desenvolver um módulo. Você poderia fazer um script em php para verificar se o cliente está conectado. Assim que o cliente tenta conectar, o freeradius chama seu script, com isso, você verifica se o usuário consta no radutmp: radwho|grep -w %{User-Name}
Ou no seu caso, fazer uma query para verificar IS NULL em acctstoptime para saber se o cliente está conectado, no entanto, pode dar resultados falsos caso tenha acabado de cair a conexão.

Se está conectado você retorna 1 e o freeradius já entende que é para dar um reject.

Lembrando que isso é um remendo para versões bugadas.

Mas usando este conceito dá pra fazer muita coisa legal. Gostei muito dessa coisa de módulos no freeradius. Possibilidades infinitas!

Tenho um sistema que desenvolvi, ele controla os clientes (cadastro, logs, conexões, caixa, suporte, avisos, ...), este sistema usa acctstoptime para mostrar a quantidade de clientes conectados.

Mas aposto 90% que seu problema está na versão. Caso queira atualizar, me lembro de uma ou duas tabelas mudaram alguns campos, a tabela nas por exemplo adicionou um campo. Mas não chega a ser algo doloroso pra resolver, é coisa simples e rápida. Inclusive se você comparar os scripts .sql em raddb/sql/mysql logo vai perceber as alterações, com isso poderá utilizar o mesmo db. A atualização do freeradius é simples e segura.

Minha versão é 2.2.0 e estou satisfeito, muito estável. Rodando desde 2012 sem problema algum.
A versão atual é 2.2.3 e dei uma lida nos fixes, gostei de algumas coisas.
Já tem também a 3.0, parece boa também.

Se eu for atualizar já vou logo de cara na 3.0... alguém tem que testar kkkkk, faço assim para extrair o melhor do meu cérebro. mas por hora não vou fazer nada.... lembra da fadiga? kkkkkk

Mas espero ter ajudado. Estou aqui pro que precisar. É bom que exercito a mente outra vez, ando meio preguiçoso kkkkk.

[185] Comentário enviado por montoanel em 05/03/2014 - 14:19h

Hehehe, cara muito obrigado pelas dicas. Eu não trabalho mais em provedor, mais para adquirir conhecimento estou brincando com o freeradius e também vou tentar desenvolver uma ferramenta para gerenciar os usuarios, cadastros, logs, financeiro etc, simplesmente para aprender, para saber.


Não sei como faz para atualizar o freeradius automaticamente, mais eu vou baixar a versão atual e vou montar do zero de novo.


Vou salvar seu post aqui e vou ler pra reforçar os pontos que vc disse ai.

[186] Comentário enviado por montoanel em 05/03/2014 - 14:40h

cytron,



cara, pra instalar

http://www.radiusdesk.com/getting_started/install_ubuntu_freeradius


não tem um modo jaiminho de se fazer nao?!

[187] Comentário enviado por montoanel em 05/03/2014 - 14:44h

ops esse ai é ubuntu,


eu uso debian.

[188] Comentário enviado por montoanel em 05/03/2014 - 14:51h

kk ignora, voltei ai nesse mesmo post kkk e fui no inicio kkk ./configure --without-openssl

[189] Comentário enviado por montoanel em 05/03/2014 - 15:57h

eu utilizo isto aqui para setar o cliente como bloqueado:


->>>>>>>>>>>>>>>>> LER
http://www.vivaolinux.com.br/artigo/Freeradius-servidor-radius-eficiente-e-completo/?pagina=7

alterar em cd/etc/freeradius/sql/mysql pico dialup.conf

authorize_check_query = "SELECT id, username, attribute, value, op \
FROM ${authcheck_table} \
WHERE username = '%{SQL-User-Name}' AND enable = 'Y' \
ORDER BY id"
authorize_reply_query = "SELECT id, username, attribute, value, op \
FROM ${authreply_table} \
WHERE username = '%{SQL-User-Name}' AND enable = 'Y'\
ORDER BY id"



eu ja vi que nessa outra versão é tudo igual menos o '%{SQL-User-Name}' que fica como BINARY, vc tb usa esse ENABLE = Y? OU NAO?

[190] Comentário enviado por montoanel em 07/03/2014 - 11:50h

cara, ignora tudo que escrevi ai em cima, você pode analisar meus passos aqui para ve se está faltando algo?

1 - ssh server
2 - mysql-server
3 - phpadmin
- liberar acesso ao phpmyadmin: sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin
4 - adicionar arquivos de instalação do radius em cd /usr/local/src
- tar -xvzf freeradius-1.0.1.tar.gz
- entrar no arquivo freeradius cd /freeradius
- ./configure
- se der erro no openssl fazer seguinte passo ./configure --without-openssl
- make
- make install

5 - Remover dentro de /usr/local/etc/raddb/radiusd.conf (#INCLUDE SQL.CONF) para INCLUDE sql.conf

6 - Criar o banco de dados na mão :mysqladmin -psenharoot create radius
- adicionar as tebelas no banco de dados /usr/local/etc/raddb/sql/mysql/schema.sql : mysql -pSENHA radius <schema.sql
- adicionar a tebela nas /usr/local/etc/raddb/sql/mysql/nas.sql : mysql -pSENHA radius <sql.conf



7 - Adicionar os clientes que farão solicitação ao freeradius, ou seja, adicionar as RBs que vão pergutar ao radius quem pode authenticar.
- cd /usr/local/etc/raddb/clients.conf
-
client 192.168.5.150/24 { /-pode-se adicionar por rede ou por host
secret = # senha para o radius
shortname = MikroTik # nome do host
nastype = mikrotik_snmp # tipo do nasclient, adiciono mikrotik_snmp para habilitar snmp
}


8 - Remover comentarios de Authorize { sql}: cd /usr/local/etc/raddb/sites-avaliable/default

# See "Authorization Queries" in sql.conf
sql

9 - Remover comentarios de Accounting {sql] :cd /usr/local/etc/raddb/sites-avaliable/default
# See "Accounting queries" in sql.conf
sql

10 - Remover comentario Authorize {sql} porém dentro de : cd/usr/local/etc/raddb/sites-avaliable/inner-tunnerl
# See "Authorization Queries" in sql.conf
sql

11 - NOTA IMPORTANTE, caso ao tentar para o serviço do radiusd em cd /etc.init.d radiusd stop e apresentar o seguinte erro:
radiusd: error while loading shared libraries: libfreeradius-radius-020203.so: cannot open shared object file: No such file or directory

utilizar o seguinte comando


*****Reason:

Actually, the libraries have been installed in a place where dynamic linker cannot find it.
Solution:
Use the following command to solve the “cannot open shared object file” error:
sudo /sbin/ldconfig -v ********************

12 - apos fazer a correção do erro, parar 100 % o serviço em
cd /etc/init.d radiusd stop
ps aux | grep -i radius
kill -9 NÚMERO DO SERVIÇO



13 - Adicionando valores dentro do MYSQL

radgroupcheck é a tabela onde se cria os planos dos usuarios e seta os parametros de Framed-Compression= VanJacobsen TCP IP etc.

groupname := Nome do plano

groupname attribute op value
plano5mb Framed-Compression := Van-Jacobsen-TCP-IP
plano5mb Framed-Protocol := PPP
plano5mb Service-Type := Framed-User
plano5mb Framed-MTU := 1500
plano5mb Simultaneous-Use := 1 # parametro para limitar somente uma conexão por usuario (PROBLEMAS NA FRENTE)



radgroupreply é a tabela onde se adiciona velocidade de navegação ao grupo
groupname attribute op value
plano5mb Mikrotik-Rate-Limit := 5M/5M


radcheck tabela onde se cria o usuario

username attribute op value
login1 Cleartext-Password := 123


radusergroup tabela onde se adiciona o usuario no group

username groupname priority
login1 plano5mb 1


nas (adicionar os clientes RB's que solicitam acesso no radius)

nasname = ip do mikrotik
shortname = nome do mikrotik
type = mikrotik_snmp ou other
ports = 1812
secret = senha do radius
DEFAULT
DEFAULT
DEFUALT
DEFAULT


e depois de tudo isso ai estou parendo o serviço e tentando inicia-lo de novo, e aparentemente está faltando um modulo:

Could not link driver rlm_sql_mysql: rlm_sql_mysql.so: cannot open shared object file: No such file or directory
Make sure it (and all its dependent libraries!) are in the search path of your system's ld.
/usr/local/etc/raddb/sql.conf[22]: Instantiation failed for module "sql"
/usr/local/etc/raddb/sites-enabled/default[177]: Failed to find "sql" in the "modules" section.
/usr/local/etc/raddb/sites-enabled/default[69]: Errors parsing authorize section.



[191] Comentário enviado por cytron em 07/03/2014 - 13:35h

No seu post o freeradius tá com versão 1 ainda hehehe, mas provavelmente não foi a que vc usou... seguindo ...

Vc tá usando nas e clientes.conf, mas ao colocar nas em radiusd.conf, o clients.conf é anulado. No meu até apaguei os arquivos desnecessários (client.conf, experimenta.conf, proxy.conf e users).

O erro que tá dando é pq falta a lib libmysqlclient.

Depois de tudo, não esqueça de rodar o radiusd -fX
Com isso você vai ter um log excelente do radius, dá pra descobrir tudo que estiver de errado. Até mesmo quando tem uma conexão e desconexão do cliente ele mostra o passo a passo que ocorre. -f é para não entrar no modo daemon, ou seja, basta um Ctrl+C para derrubar o radiusd, e o -X é para log.

[192] Comentário enviado por montoanel em 07/03/2014 - 14:06h

obrigado cytron,

na verdade sobre o freeradius 1.0 era simplesmente um ctrl+c que fiz no seu post kkk, eu baixei certim a versão 2.2.

um carinha da tailandia, me lembrou de instalar o freeradius-mysql antes de instalar o freeradius, instalei e rodou,


agora eu vou verificar certinho cara

e vou ir tstando os proximos passos.


1 adicionar o enum enable = Y para bloquear e desbloquear o cara

2 verificar o SIMULTANEOUS use, fazer funcionar

3 verificar o case sensitive se vai funcionar

[193] Comentário enviado por montoanel em 07/03/2014 - 14:09h

3 sensitive cara, por default esta usando isso ai embaixo, de uma olhada

# Uncomment simul_count_query to enable simultaneous use checking
simul_count_query = "SELECT COUNT(*) \
FROM ${acct_table1} \
WHERE username = '%{SQL-User-Name}' \
AND acctstoptime IS NULL"

simul_verify_query = "SELECT radacctid, acctsessionid, username, \
nasipaddress, nasportid, framedipaddress, \
callingstationid, framedprotocol \
FROM ${acct_table1} \
WHERE username = '%{SQL-User-Name}' \
AND acctstoptime IS NULL"






e em cima ele mostra isso aqui para verificar o sensitive,
eu comento o de cima o default e descomento esse que tem o binary????


# Use these for case sensitive usernames.
# authorize_check_query = "SELECT id, username, attribute, value, op \
# FROM ${authcheck_table} \
# WHERE username = BINARY '%{SQL-User-Name}' \
# ORDER BY id"



[194] Comentário enviado por cytron em 07/03/2014 - 14:18h

Exatamente, o que tem BINARY é para case senvitive e deve ficar comentado.

[195] Comentário enviado por montoanel em 07/03/2014 - 14:21h

mais eu digo, eu quero habilitar o case sensitive, entao eu tenho que comentar o que eu estou usando e descomentar o q tem o binary, para habilitar a função de verificar se o login ta digitado login ou LOGIN.

cara eu acho que o simultaneous ta funcionando. vou postar o log aqui pra vc verr

1ª autenticação


*****************************************************************************

rad_recv: Access-Request packet from host 192.168.5.151 port 41043, id=71, length=146
Service-Type = Framed-User
Framed-Protocol = PPP
NAS-Port = 42
NAS-Port-Type = Ethernet
User-Name = "login3"
Calling-Station-Id = "08:00:27:FC:F0:3C"
Called-Station-Id = "Server-PPPoE"
NAS-Port-Id = "ether2"
CHAP-Challenge = 0x1be63807de8945982392d4bdc98e6e14
CHAP-Password = 0x01ccd35ddd800e72546f49540a94597aa5
NAS-Identifier = "MikroTik"
NAS-IP-Address = 192.168.5.151
# Executing section authorize from file /etc/freeradius/sites-enabled/default
+- entering group authorize {...}
++[preprocess] returns ok
[chap] Setting 'Auth-Type := CHAP'
++[chap] returns ok
++[mschap] returns noop
++[digest] returns noop
[suffix] No '@' in User-Name = "login3", looking up realm NULL
[suffix] No such realm "NULL"
++[suffix] returns noop
[eap] No EAP-Message, not doing EAP
++[eap] returns noop
[files] users: Matched entry DEFAULT at line 172
++[files] returns ok
[sql] expand: %{User-Name} -> login3
[sql] sql_set_user escaped user --> 'login3'
rlm_sql (sql): Reserving sql socket id: 4
[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 = 'login3' ORDER BY id
[sql] User found in radcheck table
[sql] expand: SELECT id, username, attribute, value, op FROM radreply WHERE username = '%{SQL-User-Name}' ORDER BY id -> SELECT id, username, attribute, value, op FROM radreply WHERE username = 'login3' ORDER BY id
[sql] expand: SELECT groupname FROM radusergroup WHERE username = '%{SQL-User-Name}' ORDER BY priority -> SELECT groupname FROM radusergroup WHERE username = 'login3' ORDER BY priority
[sql] expand: SELECT id, groupname, attribute, Value, op FROM radgroupcheck WHERE groupname = '%{Sql-Group}' ORDER BY id -> SELECT id, groupname, attribute, Value, op FROM radgroupcheck WHERE groupname = 'plano5mb' ORDER BY id
[sql] User found in group plano5mb
[sql] expand: SELECT id, groupname, attribute, value, op FROM radgroupreply WHERE groupname = '%{Sql-Group}' ORDER BY id -> SELECT id, groupname, attribute, value, op FROM radgroupreply WHERE groupname = 'plano5mb' ORDER BY id
rlm_sql (sql): Released sql socket id: 4
++[sql] returns ok
++[expiration] returns noop
++[logintime] returns noop
[pap] WARNING: Auth-Type already set. Not setting to PAP
++[pap] returns noop
Found Auth-Type = CHAP
# Executing group from file /etc/freeradius/sites-enabled/default
+- entering group CHAP {...}
[chap] login attempt by "login3" with CHAP password
[chap] Using clear text password "123" for user login3 authentication.
[chap] chap user login3 authenticated succesfully
++[chap] returns ok
# Executing section session from file /etc/freeradius/sites-enabled/default
+- entering group session {...}
[radutmp] expand: /var/log/freeradius/radutmp -> /var/log/freeradius/radutmp
[radutmp] expand: %{User-Name} -> login3
++[radutmp] returns ok
# Executing section post-auth from file /etc/freeradius/sites-enabled/default
+- entering group post-auth {...}
++[exec] returns noop
Sending Access-Accept of id 71 to 192.168.5.151 port 41043
Framed-Protocol = PPP
Framed-Compression = Van-Jacobson-TCP-IP
Mikrotik-Rate-Limit := "5M/5M"
Finished request 0.
Going to the next request
Waking up in 4.9 seconds.
rad_recv: Accounting-Request packet from host 192.168.5.151 port 48291, id=72, length=149
Service-Type = Framed-User
Framed-Protocol = PPP
NAS-Port = 42
NAS-Port-Type = Ethernet
User-Name = "login3"
Calling-Station-Id = "08:00:27:FC:F0:3C"
Called-Station-Id = "Server-PPPoE"
NAS-Port-Id = "ether2"
Acct-Session-Id = "81200027"
Framed-IP-Address = 10.1.1.250
Acct-Authentic = RADIUS
Event-Timestamp = "Mar 7 2014 09:20:36 AMT"
Acct-Status-Type = Start
NAS-Identifier = "MikroTik"
NAS-IP-Address = 192.168.5.151
Acct-Delay-Time = 0
# Executing section preacct from file /etc/freeradius/sites-enabled/default
+- entering group preacct {...}
++[preprocess] returns ok
[acct_unique] Hashing 'NAS-Port = 42,Client-IP-Address = 192.168.5.151,NAS-IP-Address = 192.168.5.151,Acct-Session-Id = "81200027",User-Name = "login3"'
[acct_unique] Acct-Unique-Session-ID = "9eba24561282a58c".
++[acct_unique] returns ok
[suffix] No '@' in User-Name = "login3", looking up realm NULL
[suffix] No such realm "NULL"
++[suffix] returns noop
++[files] returns noop
# Executing section accounting from file /etc/freeradius/sites-enabled/default
+- entering group accounting {...}
[detail] expand: %{Packet-Src-IP-Address} -> 192.168.5.151
[detail] expand: /var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/detail-%Y%m%d -> /var/log/freeradius/radacct/192.168.5.151/detail-20140307
[detail] /var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/detail-%Y%m%d expands to /var/log/freeradius/radacct/192.168.5.151/detail-20140307
[detail] expand: %t -> Fri Mar 7 13:20:36 2014
++[detail] returns ok
++[unix] returns ok
[radutmp] expand: /var/log/freeradius/radutmp -> /var/log/freeradius/radutmp
[radutmp] expand: %{User-Name} -> login3
++[radutmp] returns ok
[sql] expand: %{User-Name} -> login3
[sql] sql_set_user escaped user --> 'login3'
[sql] expand: %{Acct-Delay-Time} -> 0
[sql] expand: 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}',
rlm_sql (sql): Reserving sql socket id: 3
rlm_sql (sql): Released sql socket id: 3
++[sql] returns ok
++[exec] returns noop
[attr_filter.accounting_response] expand: %{User-Name} -> login3
attr_filter: Matched entry DEFAULT at line 12
++[attr_filter.accounting_response] returns updated
Sending Accounting-Response of id 72 to 192.168.5.151 port 48291
Finished request 1.
Cleaning up request 1 ID 72 with timestamp +12
Going to the next request
Waking up in 4.9 seconds.
Cleaning up request 0 ID 71 with timestamp +12
Ready to process requests.

[196] Comentário enviado por montoanel em 07/03/2014 - 14:22h

2ª autenticação

rad_recv: Access-Request packet from host 192.168.5.151 port 43006, id=74, length=146
Service-Type = Framed-User
Framed-Protocol = PPP
NAS-Port = 43
NAS-Port-Type = Ethernet
User-Name = "login3"
Calling-Station-Id = "08:00:27:1F:5A:AA"
Called-Station-Id = "Server-PPPoE"
NAS-Port-Id = "ether2"
CHAP-Challenge = 0x42c3e3c526c75e64e2449ce923252fbb
CHAP-Password = 0x01d9fe1d9bdaee2b376fd5baafe9796434
NAS-Identifier = "MikroTik"
NAS-IP-Address = 192.168.5.151
# Executing section authorize from file /etc/freeradius/sites-enabled/default
+- entering group authorize {...}
++[preprocess] returns ok
[chap] Setting 'Auth-Type := CHAP'
++[chap] returns ok
++[mschap] returns noop
++[digest] returns noop
[suffix] No '@' in User-Name = "login3", looking up realm NULL
[suffix] No such realm "NULL"
++[suffix] returns noop
[eap] No EAP-Message, not doing EAP
++[eap] returns noop
[files] users: Matched entry DEFAULT at line 172
++[files] returns ok
[sql] expand: %{User-Name} -> login3
[sql] sql_set_user escaped user --> 'login3'
rlm_sql (sql): Reserving sql socket id: 3
[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 = 'login3' ORDER BY id
[sql] User found in radcheck table
[sql] expand: SELECT id, username, attribute, value, op FROM radreply WHERE username = '%{SQL-User-Name}' ORDER BY id -> SELECT id, username, attribute, value, op FROM radreply WHERE username = 'login3' ORDER BY id
[sql] expand: SELECT groupname FROM radusergroup WHERE username = '%{SQL-User-Name}' ORDER BY priority -> SELECT groupname FROM radusergroup WHERE username = 'login3' ORDER BY priority
[sql] expand: SELECT id, groupname, attribute, Value, op FROM radgroupcheck WHERE groupname = '%{Sql-Group}' ORDER BY id -> SELECT id, groupname, attribute, Value, op FROM radgroupcheck WHERE groupname = 'plano5mb' ORDER BY id
[sql] User found in group plano5mb
[sql] expand: SELECT id, groupname, attribute, value, op FROM radgroupreply WHERE groupname = '%{Sql-Group}' ORDER BY id -> SELECT id, groupname, attribute, value, op FROM radgroupreply WHERE groupname = 'plano5mb' ORDER BY id
rlm_sql (sql): Released sql socket id: 3
++[sql] returns ok
++[expiration] returns noop
++[logintime] returns noop
[pap] WARNING: Auth-Type already set. Not setting to PAP
++[pap] returns noop
Found Auth-Type = CHAP
# Executing group from file /etc/freeradius/sites-enabled/default
+- entering group CHAP {...}
[chap] login attempt by "login3" with CHAP password
[chap] Using clear text password "123" for user login3 authentication.
[chap] chap user login3 authenticated succesfully
++[chap] returns ok
# Executing section session from file /etc/freeradius/sites-enabled/default
+- entering group session {...}
[radutmp] expand: /var/log/freeradius/radutmp -> /var/log/freeradius/radutmp
[radutmp] expand: %{User-Name} -> login3
sh: 0: Illegal option -r
# Executing section preacct from file /etc/freeradius/sites-enabled/default
+- entering group preacct {...}
++[preprocess] returns ok
[acct_unique] Hashing 'NAS-Port = 42,Client-IP-Address = 192.168.5.151,NAS-IP-Address = 192.168.5.151,Acct-Session-Id = "81200027",User-Name = "login3"'
[acct_unique] Acct-Unique-Session-ID = "9eba24561282a58c".
++[acct_unique] returns ok
[suffix] No '@' in User-Name = "login3", looking up realm NULL
[suffix] No such realm "NULL"
++[suffix] returns noop
++[files] returns noop
# Executing section accounting from file /etc/freeradius/sites-enabled/default
+- entering group accounting {...}
[detail] expand: %{Packet-Src-IP-Address} -> 192.168.5.151
[detail] expand: /var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/detail-%Y%m%d -> /var/log/freeradius/radacct/192.168.5.151/detail-20140307
[detail] /var/log/freeradius/radacct/%{%{Packet-Src-IP-Address}:-%{Packet-Src-IPv6-Address}}/detail-%Y%m%d expands to /var/log/freeradius/radacct/192.168.5.151/detail-20140307
[detail] expand: %t -> Fri Mar 7 13:21:16 2014
++[detail] returns ok
++[unix] returns ok
[radutmp] expand: /var/log/freeradius/radutmp -> /var/log/freeradius/radutmp
[radutmp] expand: %{User-Name} -> login3

[197] Comentário enviado por montoanel em 07/03/2014 - 14:24h

e o radutmp me atrapalha, ele toda vez que desconecto manualmente o cara ainda fica preso, mais eu acredito que o simultaneous esta funcionando cara!!!!!!!!!!!!!!!!!!!!

[198] Comentário enviado por cytron em 07/03/2014 - 15:04h

Vc tá usando radius.log?

Quando o log ativo em destination = files na sessão log { } do radiusd.conf está ativo, o radius envia os logs de conexões para este arquivo. Lá vai constar "Multiple login (MAX 1) ...". E no -X consta um Access-Reject quando tenta conectar com user já logado.

Se via mysql o controle funcionar tá bom. Se não der certo, o jeito vai ser bater cabeça nele ou no radutmp hehehe.

[199] Comentário enviado por montoanel em 07/03/2014 - 15:36h

log {
#
# Destination for log messages. This can be one of:
#
# files - log to "file", as defined below.
# syslog - to syslog (see also the "syslog_facility", below.
# stdout - standard output
# stderr - standard error.
#
# The command-line option "-X" over-rides this option, and forces
# logging to go to stdout.
#
destination = files

#
# The logging messages for the server are appended to the
# tail of this file if destination == "files"
#
# If the server is running in debugging mode, this file is
# NOT used.
#
file = ${logdir}/radius.log
isto?

[200] Comentário enviado por cytron em 07/03/2014 - 18:55h

Sim! Vigiando o radius.log usando tail -f /usr/local/var/log/radius/radius.log (caminho padrão), você pode ver Login e Logout além de multiplos logins.

É como se estivesse rodando um -X no radiusd. Geralmente uso radius.log para ver os problemas de um modo geral, depois passo para -X para refinar e descobrir o problema.

Mas diz aí? No que deu seus testes?

[201] Comentário enviado por montoanel em 08/03/2014 - 11:21h

cara o negocio é o seguinte, ou eu sou muito burro ou não sei usar o radius nem o linux, ontem qndo eu instalei seguindo o tutoriall aqui, deu um monte de erro e um carinha que ta me ajudando falou que eu esqueci de instalar o freeradius-mysq, instalei certinho cara, mais dai cabei de usar o dpkg -l | grep freeradius, e a versão não é a 2.2 cara e sim a 2.1.


ii freeradius 2.1.12+dfsg-1.2 i386 high-performance and highly configurable RADIUS server
ii freeradius-common 2.1.12+dfsg-1.2 all FreeRADIUS common files
ii freeradius-mysql 2.1.12+dfsg-1.2 i386 MySQL module for FreeRADIUS server
ii freeradius-utils 2.1.12+dfsg-1.2 i386 FreeRADIUS client utilities
ii libfreeradius2 2.1.12+dfsg-1.2 i386 FreeRADIUS shared library
root@debian:/etc/freeradius/sites-enabled#


esse trem da trabalho dmaissssssssssssssssssssss

[202] Comentário enviado por cytron em 08/03/2014 - 14:00h

Esqueça os gerenciadores de pacotes!

Não há nada mais divertido do que compilar hehehe

Eu sempre baixei o fonte direto do site (ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-2.2.3.tar.bz2) e compilei. Comigo nunca deu erro de compilação.

No meu caso é mais simples ainda, como uso Slackware, bastou ter o mysql instalado e pronto. Não existe esse monte de pacotes.
Mas temos que fazer funcionar no seu.

No repositório debian a versão do freeradius é a 2.1. Terá que compilar a 2.2.3.

Este é o procedimento para fazer os pacotes manualmente, caso não queira compilar:
"Se vc for root então nao use fakeroot nessa terceira linha"

tar xjf freeradius-server-2.2.3.tar.gz2
cd freeradius-server-2.2.3
fakeroot dpkg-buildpackage -b -uc
sudo dpkg -i ../*freeradius*_2.2.3-*_*.deb

Se vc não tem dpkg-buildpackage então:

apt-get install dpkg-dev

Se pedir algumas outras coisas:

apt-get build-dep freeradius

Caso não tenha ssl:

apt-get install libssl-dev

-----------------

Mas caso queira compilar na mão mesmo, basta descompactar, compilar e rodar o make install.

[203] Comentário enviado por montoanel em 08/03/2014 - 15:27h

cara hehe ja me estressei com esse trem que tu nao faz ideia, ^^ o carinha da tailandia que ta me ajudando tb usa o radius 2.1.12, e no dele o simultaneous esta funcionando.

eu fiz um teste de Simultaneous-Use := 0 e ele me apresenta a notificação Sending Access-Reject of id 82 to 192.168.0.128 port 48529
Reply-Message := "\r\nYou are already logged in - access denied\r\n\n", oq sginifica entao que a simul_check SQL não está fazendo seu papel

dai pra piorar fiz outra maquina e fui baixar o mysql server deu pau kkkk deixei quieto e fui almoçar e voltei agora stressado kkk.

veja, eu estou seguindo esses passos:

1 - ssh server
2 - mysql-server
- freeradius-mysql
3 - phpadmin
- liberar acesso ao phpmyadmin: sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin
4 - adicionar arquivos de instalação do radius em cd /usr/local/src
- tar -xvzf freeradius-XX.X.X.X.gz
- entrar no arquivo freeradius cd /freeradius
- ./configure
- se der erro no openssl fazer seguinte passo ./configure --without-openssl
- make
- make install

EU vou fazer mais uma tentativa nesse passo ai simplesmente para fazer um dpkg -l | greo freeradius para ver qual versão eele vai ficar, e se ele cair pra 2.1.12 eu vou fazer o seu passo

[204] Comentário enviado por montoanel em 08/03/2014 - 15:28h

Cara tu tem facebook?

[205] Comentário enviado por cytron em 08/03/2014 - 15:33h

Face não, mas tenho google+

google.com/+wilkerazevedo

[206] Comentário enviado por montoanel em 08/03/2014 - 16:10h

vou descansar a cabeça e depois volto pra tentar fazer alguma coisa

[207] Comentário enviado por welington27 em 03/04/2014 - 11:30h

Bom dia meu amigo, deixa eu te falar estou seguindo o mesmo procedimento de instalação que esta no post mais minha pasta raddb esta apenas com um arquivo chamado example.pl estou tentando mesmo instalar esse servidor mais não consigo o que fazer?

[208] Comentário enviado por montoanel em 24/05/2014 - 07:42h

authorize_check_query = "SELECT id, UserName, Attribute, Value,op FROM ${authreply_table} WHERE Username = '%{SQL-User-Name}' AND enable = 'Y' ORDER BY id




pessoal, gostaria de fazer com que essa função acima continuasse a trabalhar normalmente, porém o seguinte, se o cliente estiver enable = N e o cara tentar autenticar, gostaria que o freeradius fizesse a seguinte função


if ("%{enable}" != "Y") {

update reply{
Reply-Message := "UserName is invalid"
Framed-IP-Address = "14.0.0.0+"
Framed-IP-Netmask = "255.255.255.0"
}
update control {
Auth-Type := "Accept"
}
}


para isso eu usei essa função ai, mais nao funciona hehehe, eu acredito que o seguinte:



se está função :



authorize_check_query = "SELECT id, UserName, Attribute, Value,op FROM ${authreply_table} WHERE Username = '%{SQL-User-Name}' AND enable = 'Y' ORDER BY id



for rejeitada, entao faça


update reply{
Reply-Message := "UserName is invalid"
Framed-IP-Address = "14.0.0.0+"
Framed-IP-Netmask = "255.255.255.0"
}
update control {
Auth-Type := "Accept"
}
}



alguem ajuda?rsrsrs

[209] Comentário enviado por Tacioandrade em 03/03/2015 - 18:31h


Patrick Brandao boa noite sei que esse seu artigo já tem anos e bem provável que você não trabalhe mais com o radius diretamente, porem mesmo assim vou tentar. Na instituição de ensino que trabalho estamos tentando implementar uma interface web para castramento de todos os funcionários e alunos, então gostaria de saber se você tem algum material explicando detalhadamente as tabelas do radius e os parâmetros que podem ser usados.
É que no nosso caso vamos colocar algo como uma tela de auto cadastro para o usuário e ativação por alguém do setor de TI, essa parte de ativação achei a melhor forma na página 7 do seu artigo, porem nele não achei opções como colocar um controle de banda por perfil de usuário, etc.

Obrigado desde já por sua ajuda.

Att. Tácio Andrade.

[210] Comentário enviado por mariojsantos em 30/03/2015 - 10:33h

Olá Patrick Brandão, parabéns pelo excelente artigo e muito obrigado por compartilhar. Mesmo depois de mais de 10 anos, o artigo foi muito útil pra mim.

[211] Comentário enviado por magalycaregnato em 03/09/2015 - 14:53h

Boa tarde,

estou tentando realizar um teste com o comando radtest. Porem, ocorre o seguinte erro: "radclient: no response from server for ID 30 socket 3"

Alguém poderia me ajudar?

[212] Comentário enviado por cytron em 03/09/2015 - 20:24h

Qual é exatamente os parâmetros que vc usou no radtest?

Lembre-se que é preciso o nas (local de onde rodou o radtest) precisa estar autorizado no nas.conf ou tabela nas no banco de dados.

Uma boa maneira de ver oque está acontecendo é rodar o radiusd -D (em modo debug)

[213] Comentário enviado por Tacioandrade em 06/10/2015 - 16:15h

Galera boa tarde, alguém aqui no grupo já configurou o freeradius para autenticar o captive portal do pfSense? É que eu configurei e está autenticando normalmente no meu pfSense, porem não está gravando o login na tabela radpostauth e eu preciso disso dai para gerar os relatórios de acesso. Alguém sabe o que tem que modificar no arquivo de configuração do Radius?

No caso preciso gravar o IP usado e horário de início e fim de sessão, alguém sabe o que tem que alterar no radius.conf ou no pfSense?

Att. Tácio Andrade.

[214] Comentário enviado por amaurybsouza em 30/11/2018 - 13:41h

Olá, boa tarde pessoal! Primeiramente gostaria de parabenizar o autor, ficou excelente.

Eu estou precisando de ajuda com a configuração do FreeRADIUS, estou implantando um DHCP na minha rede e pretendo usar esse servidor que usa o protocolo RADIUS.

Alguém teria uma ideia sobre isso, algum comentário que possa me ajudar?

Muito obrigado.

[215] Comentário enviado por amaurybsouza em 30/11/2018 - 13:45h


[213] Comentário enviado por Tacioandrade em 06/10/2015 - 16:15h

Galera boa tarde, alguém aqui no grupo já configurou o freeradius para autenticar o captive portal do pfSense? É que eu configurei e está autenticando normalmente no meu pfSense, porem não está gravando o login na tabela radpostauth e eu preciso disso dai para gerar os relatórios de acesso. Alguém sabe o que tem que modificar no arquivo de configuração do Radius?

No caso preciso gravar o IP usado e horário de início e fim de sessão, alguém sabe o que tem que alterar no radius.conf ou no pfSense?

Att. Tácio Andrade.


Olá, boa tarde Tácio.

Gostaria de saber qual o client de captive portal você usou. Obrigado.

[216] Comentário enviado por Tacioandrade em 30/11/2018 - 18:46h


[215] Comentário enviado por absouza em 30/11/2018 - 13:45h


[213] Comentário enviado por Tacioandrade em 06/10/2015 - 16:15h

Galera boa tarde, alguém aqui no grupo já configurou o freeradius para autenticar o captive portal do pfSense? É que eu configurei e está autenticando normalmente no meu pfSense, porem não está gravando o login na tabela radpostauth e eu preciso disso dai para gerar os relatórios de acesso. Alguém sabe o que tem que modificar no arquivo de configuração do Radius?

No caso preciso gravar o IP usado e horário de início e fim de sessão, alguém sabe o que tem que alterar no radius.conf ou no pfSense?

Att. Tácio Andrade.


Olá, boa tarde Tácio.

Gostaria de saber qual o client de captive portal você usou. Obrigado.


Sim, eu implementei em homologação, porém devido a grande quantidade de usuários ficou pesado para o pfSense fazer isso, então foi decidido comprar um Mikrotik e colocar ele como hotspot e ficou melhor no nosso ambiente, porém para ambientes com menos de 800 usuário ou caso possa fazer upgrade do seu servidor pfSense, da pra usa-lo sem problemas.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts