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"
[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 ?
[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.
[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.
[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.
[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.