+ Responder ao Tópico



  1. #1

    Padrão Instalação do FreeRADIUS no Ubunto 8

    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??

  2. #2

    Padrão

    Ola amigos,

    Esse problema já foi resolvido, a verdade é que era um erro de bibliteca mesmo. Instalei com apt-get o build-essential e resolveu o problema, em partes. Sou totalmente inesperiente, tanto em linux quanto em programaçao e a cada passo que dou é uma vitoria.
    Mas vamos lá, agora parei no MySql, estou usando uma dica do viva o linux do Patrik Brandão vou colocar aqui o que aconteceu agora e por favor. Alguem pode me ajudar, meu prazo está acabando e estou ja desesperado.


    Estou seguindo este tutorial.

    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

    Quando chego neste ponto dá o seguinte erro...

    root@jjunior:/usr/local/src/freeradius-server-2.0.4/src/modules/rlm_sql/drivers/rlm_sql_mysql# mysqladmin -psenharoot create radius
    mysqladmin: connect to server at 'localhost' failed
    error: 'Access denied for user 'root'@'localhost' (using password: YES)'
    root@jjunior:/usr/local/src/freeradius-server-2.0.4/src/modules/rlm_sql/drivers/rlm_sql_mysql#



    Se puder me ajudar ficarei muito grato
    Josias

    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!

  3. #3

    Padrão

    Ola amigo...
    Bom primeiro vamos analisar o erro, parece que você não consegue ter conexão com o mysql! Você de alguma forma se conecta?

    Código :
    andre@linux:~$ mysql
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 8237
    Server version: 5.0.51a-3ubuntu5.1 (Ubuntu)
     
    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
     
    mysql>
    Ja tentou sem senha?
    Vamos tentar o basico primeiro!

  4. #4

    Padrão

    E outra coisa amigo!
    Você esta usando ubuntu pode instalar o freeradius usando apt!

    Código :
    apt-get install freeradius freeradius-mysql
    Só vai precisar criar a base de dados do freeradius no mysql, configurar o sql.conf passando os dados do banco de dados que você criou e modificar umas linhas no radiusd.conf! O bom de fazer por apt é a facilidade na atualização!

    Coloque o source somente se você precisar de alguma função que existe somente nessa versão e que não tenha disponivel por um pacote pre-compilado!

    Outro detalhe, o freeradius 2.0.4 esta disponível para a versão unstable do debian, que na verdade não é tão unstable assim! Se for um servidor para testes pode usar!

  5. #5

    Padrão

    André,

    Eu não conecto ao banco, como eu isse não tenho costume de usar linux, quando escolhi o tema não esperava que haveria necessidade.
    Bom. resolvi seguir sua sugestao de instalar via apt,mas como eu disse nao tenho quase nenhuma esperiencia no assunto.
    Poderiame ajudar na configuracção nos arquivos .conf?
    Como crio a base de dados?

  6. #6

    Padrão

    Então camarada, todos passam por suas primeiras vezes, e como você também tive a minha árdua jornada em se acostumar e aprender a usar os serviços e a configura-los.

    Basicamente você precisa do mysql se quiser autenticar seus usuários pelo radius usando uma base de dados! Você também pode optar por configurar arquivos texto, é o modo tradicional. Usar o MySQL como um backend é bem interessante quando você possui alguma aplicação que gerencia seus usuários! É muito mais eficiente do que ficar editando arquivos texto!

    Mas primeiramente você precisa conseguir se conectar ao MySQL com um usuário administrativo, como root para poder criar o banco (do radius) pela primeira vez.Você tentou conectar ao banco mysql sem senha? Se você instalou ele muito provavel não colocou senha. Se sim você precisa se lembrar qual foi.

    Quero poder te ajudar, mas você precisa fazer sua parte dai!

  7. #7

    Padrão

    André, estou conectando no banco com senha.
    No momento da instalação me foi solicitado que inserisse a senha do root, não há esqueci.
    Mas durante a tentativa de criação do banco de dados não é solicitado a senha.
    Acho que facilitaria a conexão sem senha, más como retiro a senha que já foi inserida.
    tentei mudar a senha... veja abaixo:

    josias@josias-laptop:/etc/mysql/conf.d$ mysql -u root -p mysql
    Enter password:
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A

    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 1
    Server version: 5.0.51a-3ubuntu5.1 (Ubuntu)

    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

    mysql>


    Acho que deveria ser solicitado uma nova senha...Não sei o que acontece. Nao sei se o MySql esta rodando, como verifico isso?

    Por enquanto obrigado.

    Josias

  8. #8

    Padrão

    Então cara, você tem a senha do banco, estamos bem!
    Quando você conectar no mysql execute o seguinte comando para criar a base de dados:

    Código :
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 7
    Server version: 5.0.32-Debian_7etch5-log Debian etch distribution
     
    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
     
    mysql> create database radius;
    Query OK, 1 row affected (0.00 sec)
     
    mysql> quit
    Bye
    Assim tu cria a base de dados!
    Agora é necessario você criar as tabelas! Eu sempre fiz assim:

    Código :
    mysql -uroot -p<sua senha> radius < /caminho/ate/o/source/freeradius-server-2.0.5/raddb/sql/mysql/schema.sql

    Depois disso feito é configurar o radiusd.conf!
    Tenta aee!

    André

  9. #9

    Padrão

    E encontrei aqui no source mesmo as dicas para você setar o password e permissões para o usuario mysql que usara as tabelas do radius:

    freeradius-server-2.0.5/raddb/sql/mysql/admin.sql

    Código :
    # -*- text -*-
    ##
    ## admin.sql -- MySQL commands for creating the RADIUS user.
    ##
    ##      WARNING: You should change 'localhost' and 'radpass'
    ##               to something else.  Also update raddb/sql.conf
    ##               with the new RADIUS password.
    ##
    ##      $Id: admin.sql,v 1.1 2008/04/30 08:41:30 aland Exp $
     
    #
    #  Create default administrator for RADIUS
    #
    CREATE USER 'radius'@'localhost';
    SET PASSWORD FOR 'radius'@'localhost' = PASSWORD('radpass');
     
    # The server can read any table in SQL
    GRANT SELECT ON radius.* TO 'radius'@'localhost';
     
    # The server can write to the accounting and post-auth logging table.
    #
    #  i.e. 
    GRANT ALL on radius.radacct TO 'radius'@'localhost';
    GRANT ALL on radius.radpostauth TO 'radius'@'localhost';

    Você pode só substituir os valores do usuario e senha e ai carregar o arquivo da mesma forma que instrui você para criar o banco!