Evitando login simultâneo FreeRADIUS MySQL PPPoE

Publicado por Carlos Vasconcelos em 02/07/2015

[ Hits: 5.590 ]

 


Evitando login simultâneo FreeRADIUS MySQL PPPoE



Para quem usa PPPoE com FreeRADIUS e MySQL, segue a dica para evitar login simultâneo dos clientes.

Editar o arquivo /etc/freeradius/sql/mysql/dialup.conf:

Comentar:

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

Alterar para evitar login simultâneo:

        authorize_check_query = "SELECT c.id, c.username, c.attribute, c.value,
          FROM ${authcheck_table} c \
          LEFT JOIN radippool i on i.username = c.username \
          WHERE c.username = '%{SQL-User-Name}' and isNULL(i.username) \
          ORDER BY c.id"

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Bitnami - Configure aplicações no servidor com poucos cliques

Como desativar o IPv6 no Debian 8

Configuração do yum com proxy no CentOS

Criando um THINCLIENT de baixo custo com Raspberry

Instalar adaptador DWA-131 D-Link no Ubuntu 16.04

  

Comentários
[1] Comentário enviado por plizolan em 08/07/2015 - 19:04h


Ola amigo, teria como disser como vc deixo o cadastro de usuarios no banco? estou com o problema em tirar as conexões simultâneas no freeradius, fiz a dica de vc postou e nada, teria como me dar mais alguma dica ?

agradecido pela atenção.

[2] Comentário enviado por carlosthepi em 09/07/2015 - 08:21h

Olá,
Aqui fazemos da seguinte maneira, usamos a tabela radcheck com o username, attribute, op e value, sendo que informamos duas linhas para cada login, sendo um com username="<logindousuario>", attribute="Password", op="=" e value="<senhadousuario>" a outra linha do mesmo login incluída segue com username="<logindousuario>", attribute="Auth-Type", op="=" e value="Accept".

Também incluímos para cada usuário uma linha na tabela radusergroup: username=<logindousuario>, groupname=<plano>, priority=1.

O plano é definido na tabela radgroupreply, onde ponho os atributos de velocidade, tipo de serviço, etc..

Também usamos a tabela radgroupcheck incluímos para cada "plano" a ligação com a tabela radippool, sendo groupname=<plano>, attribute="Pool-Name", op=":=" e value=<nomedapool>.

Pra finalizar, na tabela radippool, incluímos para cada ip possível de ser atribuído aos clientes em suas conexões o nome da pool com o ip sequencial, sendo pool_name=<nomedapool>, framedipaddress=<sequenciadeIP>, expiry_time=NULL e pool_key=0

Aí está o lance da dica. Nesta última tabela, radippool, o freeradius atribui o login do usuário com o ip que o foi atribuído e o campo pool_key deixa de ser 0 para ser um número de controle do freeradius. Desta forma, ao ser testado um novo login, é feito agora uma pesquisa nesta tabela, caso o login já exista, é pq alguém já logou com este login.

Foi meio longo, mas espero ter detalhado com está sendo usado aqui.

A disposição.

[3] Comentário enviado por plizolan em 09/07/2015 - 10:54h


Olá Carlos, Primeiro gostaria de agradece por ceder o seu tempo em tentar me ajudar hj no q chegar no serviço foi analisar seu comentário e tentar implementar, uma coisa que olhando na net e lendo seu comentário e percebi são que em varias situações existem tabelas diferentes, no meu caso a tabela que vc citou 'radippool' ñ existe em meu banca radius, sendo que fiz a migração do arquivo .sql do próprio freeradius. poderia me disser se vc criou esta tabela ou fez o mesmo procedimento que eu fiz "#mysql -u root -p radius < /etc/freeradius/sql/mysql/schema.sql"?.
acredito que ñ seja mais eu utilizo o Debian 7.5 com o freeRaius 2.12 instalado via apt-get.

mais uma fez obrigado pela atenção.

[4] Comentário enviado por carlosthepi em 09/07/2015 - 15:34h

Não tenho o tutorial de instalação do freeradius com este recurso, mas dê uma olhada no link abaixo.

http://www.netexpertise.eu/en/freeradius/ip-pools.html

A disposição no que eu puder ajudar.

[5] Comentário enviado por plizolan em 09/07/2015 - 16:05h


Ola Carlo, obrigado mais uma vez pela atenção,

Analisei o link que vc me mandou, e pelo oque intendi o seu freeradius entrega as configurações de rede para os seus clientes(como um dhcp-server), uma falha minha ñ ter me explicado melhor meu problema, trabalho em uma escola federal, um IFE, ja tenho uma rede fluente com ap's para acesso wireless, o acesso para rede wi-fi é feita atraves de um cadastro que amarra o mac para um ip de minha rede, o problema é que desta forma fica passível de alguém clonar um mac e assim ter o acesso como um usuário cadastrado, por isso minha ideia era apenas apontar os ap para fazer autenticação no radius, até aq esta funcionando o problema é que esta com conexão simultânea, espero q tenha intendido minha situação embora eu va testa as dicas que me mandas-te caso eu consiga fazer como vc fez ñ vejo problema deixa o serviço dhcp para o radius.

Obrigado pela atenção, abraço.

[6] Comentário enviado por carlosthepi em 09/07/2015 - 16:50h

Não sei o que você usa por trás do APs. Se usar mikrotik ou algo parecido, e caso seja só um para toda a rede, no caso do mikrotik tem uma opções bem simples para evitar conexão simultânea, porém só funciona para aquele mikrotik, no meu caso esta solução não se aplica por eu ter vários pela rede.

No seu caso, pelo que entendi, você informa o IP amarrado ao MAC, neste caso, vc terá IP duplicado na rede, o que impedirá o verdadeiro usuário e o falso de utilizar a rede corretamente.

Usamos usuário e senha para autenticar e o IP é entregue após autenticação e de forma dinâmica.

[7] Comentário enviado por plizolan em 09/07/2015 - 17:39h


Na realidade ñ uso nada, os meus ap's estão em modo bridge o usuario se conecta no ap o servidor dhcp entrega o ip registrado para o mac e ele acessa a porta do meu firewall onde ele analisa se o ip combina com o mac , assim liberando ou negando internet, ja ouvi fala muito deste mais por falha minha ñ estudei o serviço, na realidade ñ sei qual a função dele na rede.

agradecido.



Contribuir com comentário