+ Responder ao Tópico



  1. #1

    Padrão Freeradius-2.0 Ajuda

    Salve pessoal

    Seguinte estou tentando implementar um servidor radius aqui em meu provedor wifi.
    So que o seguinte estou com alguns problemas
    quando faço o teste com com radteste me da essa mensagem


    (rad_recv:Access-Reject packet from 127.0.0.1 port 1812 , id=78 , length=20 )
    no log no mysql
    aparentemente ele faz o select sem problemas
    o que poderia ser??

    no radiusd -X aparece

    ( rlm_sql: Failed to create the pair: Invalid octet string "teste" for attribute name "Password" )
    ( rlm_sql (sql):Error getting data from database )
    (rlm_sql (sql): SQL query error: rejecting user )
    ( rlm_sql (sql): Released sql socket id : 3 )
    ++[sql] returns fail




    Desde -ja agradeço a atenção de todos !
    Última edição por fabianobazilio; 14-03-2008 às 18:18.

  2. #2

    Padrão

    faz um "dump" do seu mysql ai.. dos dados das tabelas

    racdcheck e radreply !!

  3. #3

    Padrão ta aqui o dumping

    MySQL dump 10.10
    --
    -- Host: localhost Database: radius
    -- ------------------------------------------------------
    -- Server version 5.0.24a-log
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;
    /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
    /*!40103 SET TIME_ZONE='+00:00' */;
    /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
    /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
    /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
    /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
    --
    -- Table structure for table `radcheck`
    --
    DROP TABLE IF EXISTS `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))
    ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
    --
    -- Dumping data for table `radcheck`
    --

    /*!40000 ALTER TABLE `radcheck` DISABLE KEYS */;
    LOCK TABLES `radcheck` WRITE;
    INSERT INTO `radcheck` VALUES (1,'fabiano','Passowrd','==','senhasecreta');
    UNLOCK TABLES;
    /*!40000 ALTER TABLE `radcheck` ENABLE KEYS */;
    --
    -- Table structure for table `radreply`
    --
    DROP TABLE IF EXISTS `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))
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    --
    -- Dumping data for table `radreply`
    --

    /*!40000 ALTER TABLE `radreply` DISABLE KEYS */;
    LOCK TABLES `radreply` WRITE;
    UNLOCK TABLES;
    /*!40000 ALTER TABLE `radreply` ENABLE KEYS */;
    /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
    /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
    /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
    /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
    /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

  4. #4

    Padrão

    *!40000 ALTER TABLE `radcheck` DISABLE KEYS */;
    LOCK TABLES `radcheck` WRITE;
    INSERT INTO `radcheck` VALUES (1,'fabiano','Passowrd','==','senha secreta');
    UNLOCK TABLES;

    A variavel foi definida com nome incorreto, tente ajustar e vamos ver o que acontece depois.

  5. #5

    Padrão

    Valeu era isto mesmo passou por descuido meu , agora me diga uma coisa para o pppoe-server authenticar aqui na base de dados mysql do que preciso nas configuraçoes , visto que o ´pppoe-server ja esta instalado .

    Acho interressante dizer a maquina cliente consegue chegar até no pppoe-server mas nao consegue ( nao redireciona para authenticação ) no freeradius ?!

    Desde-ja agradecendo
    Última edição por fabianobazilio; 15-03-2008 às 10:56.

  6. #6

  7. #7

  8. #8

    Padrão Agradecimentos

    Valeu mesmo galera pelas dicas e toques ja esta tudo funcionando , authenticação controle de banda e tudo mais , vou colocar em testes agora pra ver como vai se portar.
    O proximo passo será criar uma interface ( Grafica / php + mysql ) para adiministrar tudo isto sem falar que implementar um Administrativo e financeiro tambem . assim que tudo estiver pronto vou disponibilizar se alguem quiser usar a bagaça .

  9. #9

    Padrão

    Pessoal mas uma duvida o sistema esta authenticando tudo bonitinho controle de banda ok mas o controle de banda esta sendo feito pelo arquivo users , queria fazer pelo mysql , quais são os atributos que devo adicionar nas tabelas do radius .

    Desde ja muito obrigado

  10. #10

    Padrão

    tem uma parte de autenticação que vc deve tirar os comentarios.. onde ta escrito

    auth {
    users
    ...
    ...
    }
    tem que ter algo assim

    auth {
    sql
    }

  11. #11

    Padrão

    Sim ja esta authenticado so nao sei qual é o attributo que passo para o radius tipo ( download , 128 ) upload , 64 tentei colocar no radreply attribute = download , value = 128 so que ele nao passa estes atributos para o radattr.ppp0 , 1,2 etc sendo assim o script ip-up do scorpion nao consegue fazer o controle de banda , gostaria de saber quais tabelas devo popular para estes attributos passarem para o radattr .

  12. #12

    Padrão

    na verdade.. nao controla banda assim.. ele controa banda se o servidor pppoe for mikrotik, que recebe um parametro e cria uma queue...

  13. #13

    Padrão

    O que vc esta querendo fazer e através dos atributos oriundos do BD Mysql, gerar os controles de banda.

    Para vc receber o valor como vc determinou download e o valor atribuido a ele, vc tera que criar um dicionario especifico ai para o radius.

    Como ideia, recomendo vc criar nos dicionarios atuais atraves de um atributo string uma marca que diga qual tipo de banda o ip-up deve executar para o DEVICE (pppxxx).

    Assim vc descreve varios arquivos com as bandas, que se executara de acordo com o retorno do atributo do radius.

    Um atributo string que pode servir para isto é o Filter-Id

  14. #14

    Padrão

    Puts era isto mesmo so faltava colocar no dictionary do ppp
    valeu mesmo .