- Freeradius-2.0 Ajuda
+ Responder ao Tópico
-
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.
-
faz um "dump" do seu mysql ai.. dos dados das tabelas
racdcheck e radreply !!
-
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 */;
-
*!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.
-
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.
-
Da uma olhada neste artigo, que acredito que suas duvidas estão ai.
Linux: Freeradius - servidor radius eficiente e completo [Artigo]
-
a variave eh User-Password
-
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 .
-
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
-
tem uma parte de autenticação que vc deve tirar os comentarios.. onde ta escrito
auth {
users
...
...
}
tem que ter algo assim
auth {
sql
}
-
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 .
-
na verdade.. nao controla banda assim.. ele controa banda se o servidor pppoe for mikrotik, que recebe um parametro e cria uma queue...
-
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
-
Puts era isto mesmo so faltava colocar no dictionary do ppp
valeu mesmo .