+ Responder ao Tópico



  1. #1

    Padrão Freeradius 2.x no Debian Lenny (Tutorial)

    Freeradius 2.x no Debian Lenny (Tutorial)


    Bom gente, como tive muita dificuldade em implementar o freeradius da primeira vez que montei meu primeiro server no provedor aqui, ainda nesta epoca com o freeradius 1.x.
    Agora na versão atual as dificuldades aumentaram, pois os desenvolvedores do freeradius colocaram os arquivo de configuração espalhados no diretório do freeradius.


    Bom pra começar vamos preparar o terreno para instalação do freeradius.


    Passo 1: Edite o arquivo /etc/apt/source.list e adicione o seguinte source.


    deb ftp://ftp.br.debian.org/debian/ lenny main contrib


    Salve o arquivo e rode o seguinte comando.


    #apt-get update


    para que possa atualizar nosso repositório com o novo source.


    Passo 2: Faça a instalação do freeradius.


    #apt-get install freeradius freeradius-mysql


    Passo 3: Veja que já instalamos o freeradius vamos partir para a configuração propriamente dita. Mas antes vejamos onde fica os arquivo responsavés pelo funcionamento e configuração do freeradius.


    /etc/freeradius = pasta padrão onde foi feita a instalação do freeradius.
    /etc/freeradius/clients.conf = arquivo de texto contendo todos os NAS do freeradius, isso quer dizer, em meu caso meus aps com Mikrotik.
    /etc/freeradius/users = arquivo de texto contendo os clientes em si, podendo ser usado tanto com hotspot, dhcp e ppoe.
    /etc/freeradius/sql.conf = possui a configuração com variaveis para conexão com banco de dados, ao final desse arquivo faz a chamada a um outro arquivo, que é responsavel pela autenticação e contabilidade dos clientes.
    /etc/freeradius/radius.conf = principal arquivo de configuração do radius, o qual não irei entrar em detalhe, mais sugiro para os iniciantes, ler o seguinte artigo ( Linux: Freeradius - servidor radius eficiente e completo [Artigo] ).
    /etc/freeradius/sql/banco/ = diretório com arquivos de configuração do freeradius, também de suma importância, pois em um deles esta todas as SQL que serão usadas para o funcionamente do freeradius com MySQL e também script para criação do banco.
    /etc/freeradius/sites-enabled = arquivo contendo configurações utéis do freeradius, sendo um complemento do radius.conf.
    /usr/share/freeradius/ = pasta onde estão os arquivos de dictionary do freeradius, nesta nova versão já esta incluso o dictionary do mikrotik, não necessitando adiciona-lo, apesar de que eu nunca precisei adicionar esse dictionary, pois ele sempre esteve la, por default.


    Existe outros arquivos dentro do diretório do freeradius, porém foge do escopo desse tutorial, para quem quizer se aprofundar pode visitar o site do freeradius.org que encontrará mais informações.


    Edite o arquivo /etc/freeradius/sites-enabled/default



    Na sessão authorize deixe as seguintes opções:
    • preprocess,
    • chap,
    • mschap,
    • suffix,
    • eap,
    • sql.


    Na sessão preacct:
    • preprocess,
    • acct_unique,
    • suffix.


    Na sessão accouting:
    • detail,
    • unix,
    • radutmp,
    • sql.


    Na sessão session:
    • radutmp,
    • sql.


    Na sessão post-auth:
    • sql.

    Pronto default configurado.


    Nesse ponto se você rodar o radius em modo debug irá lhe retornar um erro, tal como:


    /etc/freeradius/sites-enabled/default[152]: Failed to find module "sql".
    /etc/freeradius/sites-enabled/default[62]: Errors parsing authorize section.


    Deu um sufoco, mais com muita força e esperança( rsrs ) consegui resolver.
    O erro acontece devido ao módulo do SQL que não está sendo reconhecido, mais depois de perder longas noite de sono, descobri que isso causado por um comentário da linha 1321 do meu radius.conf que estava assim.


    #$INCLUDE sql.conf


    retire o comentário dela ficando assim:


    $INCLUDE sql.conf


    Bom tinha resolvido um problema, mais me surgiu outro, o famoso:


    ERROR: Failed to open socket: cannot bind socket: Address already in use
    /etc/freeradius/radiusd.conf[210]: Error binding to port for 0.0.0.0 port 1812


    O que na verdade não considero um erro e sim uma aviso ( apesar do ERRO com letras maiúsculas ). O freeradius está nos avisando que possui um outro processo escutando na porta 1821, engraçado não é, pois e a mesma porta que está ouvindo o freeradius, sendo que acabei de instalar o Linux agora, achei estranho e fui em busca de respostar, notei em um outro servidor meu, que possui o freeradius porém em sua versão 1.7, instalado através dos fontes que era necessário startar o processo manualmente, senão ninguém conseguia autenticar nele. Sempre que reiniciava o servidor, deveria rodar o comando radius pra poder começar a operar efetivamente, apartir daí já não rodava em modo debug mais, e me apresentava o mesmo erro, fui então que notei que o freeradius não rodava dois processos ao mesmo tempo sendo em modo debug um segundo processo a ouvir a mesma porta. Porém na versão 2.x, instalada apartir do apt não era necessário fazer todo esse processo manual, o freeradius já startava automaticamente depois de sua instalação, e é onde gera esse erro, pois ao rodar o freeradius em debug estará gerando um segundo processo a ouvir na mesma porta, ocasionando o conflito. Para ver em modo debug então deveria matar o processo pra poder funcionar. Daí pra frente ficou fácil.


    Passo 4: Com o MySQL instalando crie o banco que terá os dados do freeradius, com os seguintes comandos.


    #mysql -u root -p
    digite a senha: senhadomysql


    mysql> CREATE DATABASE radius;
    mysql>quit;


    #mysql -u root -p radius < /etc/freeradius/sql/mysql/schema.sql


    Passo 5: Configure o arquivo /etc/freeradius/sql.conf


    server=”localhost” //endereço do servidor MySQL.
    login=”root”// usuário do MySQL
    senha=”senha”//senha do MySQL
    radius_db=”radius” //database criando anteriormente com o MySQL


    Com isso termina as configurações do Freeradius, espero ter ajudado ao pessoal que tenha alguma dúvida e me coloco a disposição para qualquer dúvida, e só posta e o mais breve estarei respondendo.


    Sugiro continuar a leitura dos seguinte post ( https://under-linux.org/f96721-mikro...ip-login-senha ) para implementação com Mikrotik mais Hotspot.
    Existe material de sobre na internet para tais configurações e só com uma boa busca no google que encontrará mais material..


    Um grande abraço a todos e sucesso.


    [email protected]
    Última edição por netxtreme; 23-01-2010 às 11:14.

  2. #2

    Smile Freeradius 2.x no Debian Lenny (Tutorial)

    Senhores, quero dar minha contribuição ao Under-Linux, em função desse artigo do Juliano.

    Antes de dizer que algo funciona ou não, nessa ou naquela distribuição, é importante considerar, além da distribuição GNU/Linux ou BSD-like usada, as versões dos programas também.

    No meu cenário eu tenho:
    - Debian GNU/Linux lenny x86_64 kernel 2.6.26-2-amd64 (isso tudo significa Debian 64 bits)
    - Freeradius 2.0.4
    - MySQL 5.0.51a


    Algumas considerações:


    1. Eu não criei os tipos de autenticação para a tabela radgroupcheck e mesmo assim funcionou (aliás, é altamente recomendável não usar o atributo Auth-Type);
    2. Na tabela radcheck o Attribute pode ser 'Crypt-Password' (que dá uma segurança maior);
    3. Edite o arquivo /etc/freeradius/sites-enabled/default e, além de descomentar as linhas de sql recomendadas pelo Thalles, descomente a linha unix (isso fará com que o freeradius autentique via MySQL e não via /etc/passwd);
    4. No mesmo arquivo /etc/freeradius/sites-enabled/default comente a linha radutmp, conforme abaixo:

    # 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

    5. Na tabela radgroupreply, a coluna Prio não estava criada, então eu precisei criar com o comando ALTER TABLE radgroupreply ADD Prio VARCHAR(1); (rodei na base de dados criada o script de schema.sql e essa coluna Prio não foi criada, por isso a criei manualmente).

    6. Nas propriedades de conexão da tabela radgroupreply, o Attribute Framed-Compression aceita tanto o Value Van-Jacobsen-TCP-IP quanto Van-Jacobson-TCP-IP (mas o recomendado pela IETF na RFC 1144 é o segundo).

    7. Não esquecer de descomentar a linha $INCLUDE sql.conf do arquivo /etc/freeradius/radiusd.conf


    Algumas recomendações:


    1. Além do usuário root da base de dados MySQL, crie um usuário adicional, com privilégio USAGE e com senha diferente da do root, pois será necessário informar esses dados no arquivo /etc/freeradius/sql.conf, na sessão # Connection info; portanto, não é muito seguro deixar a senha do root nesse arquivo. Veja a seguir:

    # Connection info:
    server = "localhost"
    login = "usuario_adicional"
    password = "senha_usuario_adicional"

    2. Verifique sempre se os serviços mysql e freeradius estão rodando. Se não estiverem, faça /etc/init.d/mysql start e /etc/init.d/freeradius start (você pode preferir automatizar essa tarefa com a ferramenta update-rc.d).

    3. Algumas verificações que podem ser feitas para garantir que está tudo configurado corretamente:

    a. ifconfig eth0 (comando para verificar o IP da interface eth0)
    b. editar o arquivo /etc/hostname (para verificar se o nome do servidor está correto)
    c. editar o arquivo /etc/hosts (para verificar se o IP e o hostname estão correspondendo)


    HORA DE ALEGRIA:


    Após toda a instalação e configuração, teste com o radtest:
    Entre na pasta /etc/freeradius
    Digite: radtest {username} {password} {hostnameort} 10 {radius_secret}

    Se retornar a mensagem...

    Sending Access-Request of id 174 to 10.0.0.1 port 1812
    User-Name = "user"
    User-Password = "teste"
    NAS-IP-Address = 10.0.0.1
    NAS-Port = 0
    rad_recv: Access-Accept packet from host 10.0.0.1 port 1812, id=174, length=44
    Framed-Compression = Van-Jacobson-TCP-IP
    Framed-Protocol = PPP
    Service-Type = Framed-User
    Framed-MTU = 1500

    ...então é HORA DE ALEGRIA! Vamos sorrir e cantar! Funcionou! Aproveite para ir tomar um café sossegado : )

    Obs.: o IP privado 10.0.0.1 foi usado para efeito didático apenas, portanto, esse IP será o do seu servidor onde está rodando o freeradius.

    Agradeço o apoio inestimável dos colegas Boni, Ettore, Tati, Roberto e Sidinei; e a confiança do parceiro Rogério Herrera, por me confiar esse desafio.

    Um grande abraço a todos e sucesso!

    Wagner Pereira
    [email protected]
    twitter: @wpereiratecno



  3. #3
    Moderador Avatar de minelli
    Ingresso
    Aug 2006
    Localização
    Pres. Venceslau - SP | Pres. Prudente - SP
    Posts
    1.408
    Posts de Blog
    10

    Padrão Re: Freeradius 2.x no Debian Lenny (Tutorial)

    Bom post parabéns.

  4. #4

    Padrão Re: Freeradius 2.x no Debian Lenny (Tutorial)

    Poxa que bom, eu to testar to do Debian Lenny instalado em VM aqui. Parabens, uma dica poste no seu blog, ficaria bem legal.



  5. #5

    Padrão Re: Freeradius 2.x no Debian Lenny (Tutorial)

    Citação Postado originalmente por mktguaruja Ver Post
    Poxa que bom, eu to testar to do Debian Lenny instalado em VM aqui. Parabens, uma dica poste no seu blog, ficaria bem legal.
    Vlw pela força, vou fazer um post mais bem elaboradado e deixa-lo disponivel para todosno blog, pois terá uma melhor disponibilidade.

    Grande Abraço.

  6. #6

    Padrão Re: Freeradius 2.x no Debian Lenny (Tutorial)

    netXtreme, me tira uma duvida seria os mesmo comando para o Ubuntu, pois eu to achando dificuldade para executar o debian em wm, e o ubuntu ta indo di boa, eu quero somente testar mesmo, para ver o funcionamento dele. Teria como você me add no msn [email protected]. Vlw



  7. #7

    Padrão Re: Freeradius 2.x no Debian Lenny (Tutorial)

    Citação Postado originalmente por mktguaruja Ver Post
    netXtreme, me tira uma duvida seria os mesmo comando para o Ubuntu, pois eu to achando dificuldade para executar o debian em wm, e o ubuntu ta indo di boa, eu quero somente testar mesmo, para ver o funcionamento dele. Teria como você me add no msn [email protected]. Vlw
    Não cheguei a testar no ubuntu, mais creio que será quase os mesmos comandos.

    Att.Juliano.

  8. #8

    Padrão Re: Freeradius 2.x no Debian Lenny (Tutorial)

    obrigado Juliano, estou usando o ubuntu gostei bastante dele. obrigado pelo tutorial.



  9. #9
    Moderador Avatar de minelli
    Ingresso
    Aug 2006
    Localização
    Pres. Venceslau - SP | Pres. Prudente - SP
    Posts
    1.408
    Posts de Blog
    10

    Padrão Re: Freeradius 2.x no Debian Lenny (Tutorial)

    Citação Postado originalmente por mktguaruja Ver Post
    netXtreme, me tira uma duvida seria os mesmo comando para o Ubuntu, pois eu to achando dificuldade para executar o debian em wm, e o ubuntu ta indo di boa, eu quero somente testar mesmo, para ver o funcionamento dele. Teria como você me add no msn [email protected]. Vlw
    Sim são sim os mesmos ubuntu e based debian.

  10. #10

    Padrão Re: Freeradius 2.x no Debian Lenny (Tutorial)

    Obrigado Minelli, por tirar essa duvida minha. Muito obrigado.



  11. #11

    Padrão Re: Freeradius 2.x no Debian Lenny (Tutorial)

    Agora estou na luta pra colocar o Freeradius com o Firebird, mais ta complicado...

    De qualquer maneira vamos tentando sempre....

    Abrs. pra todos.

  12. #12

    Padrão Re: Freeradius 2.x no Debian Lenny (Tutorial)

    Parabens pelo TUTOR!



  13. #13

    Padrão Re: Freeradius 2.x no Debian Lenny (Tutorial)

    Parabens pelo tutorial.

  14. #14
    Moderador Avatar de minelli
    Ingresso
    Aug 2006
    Localização
    Pres. Venceslau - SP | Pres. Prudente - SP
    Posts
    1.408
    Posts de Blog
    10

    Padrão Re: Freeradius 2.x no Debian Lenny (Tutorial)

    Só notei uma coisa em teste ele nao grava os logs 100% nao .



  15. #15

    Post Re: Freeradius 2.x no Debian Lenny (Tutorial)

    Estou tentando fazer a autenticação com LDAP, alguém já conseguiu, gostaria de saber se tem como eu limitar as conexões simultâneas.