Ja tentei quase tudo, quando coloco na tabela arp é so mudar o ip autenticar e navegar, preencho todos os campos(login, senha, ip e mac) mas nao amarra o bendito ip no login, alguem ai ja conseguiu essa proesa??? Me ajudem ou me desenganem!
Versão Imprimível
Ja tentei quase tudo, quando coloco na tabela arp é so mudar o ip autenticar e navegar, preencho todos os campos(login, senha, ip e mac) mas nao amarra o bendito ip no login, alguem ai ja conseguiu essa proesa??? Me ajudem ou me desenganem!
Amigo,
Qual versão do mikrotik você está usando? Faça amarração apenas por mac e funciona normalmente.
Tem sim como fazer, para que apenas MAC e IP cadastrado na ARP e LEASES + HOTSPOT navegem... para isso as configurações devem sergui um padrão para que isso ocorra.
O segredo é o DHCP server.
Olá é simples amigo
cadastra em ip binding como regular e pronto, se o cliente tiver com outro ip, não consegue logar
Amigos há tempos tento fazer isto até que cansei, no cadastro de usuário do hotspot crio o usuário e estabeleço o ip, com seu mac tudo certinho mas quando o danado loga pega outro ip, já coloquei na tabela arp tudo certiho e nada.
Uma certa vez um participante do fórum ( dos feras ) me disse que la no server do hotspot em anddrees pool ele mandou colocar em " none", no final deu erro e parou de navergar.
Hoje voltei a pensar no assunto e creio que descobri porque ele não está amarando o ip, ora se ,como no meu caso, estou usando no hotspot o mesmo pool de ip do dhcp creio que isso está causando o problema. Talvez ( não me certifiquei ainda) aquele ip que foi determindado no cadastro do usuário do hotspot já foi usado no dhcp quando o cliente ligou a máquina.
Então creio que o certo, me corrijam se estiver errado, seria criar um pool de ips somente para o hotspot.
Ainda não tive tempo para implantar a idéia mas quem fizer, por favor mostra os resultados.
Saudações a todos !
Amigo, poste suas configurações do dhcp, apenas uma imagem já dar para saber como estar sua configuração.
Jardel,
Já estava fazendo um tutor para amarrar o IP ao MAC, então vi suas configurações e existe um erro e eu faço as minhas dessa forma e dar certo:
[wiki] Amarrando IP ao MAC corretamente. - FórumWEB
Cara eu tive o mesmo problema por aqui......
cadastrei uma conta para o IP 172.16.1.2 com IPxMACxLogin amarrado e consegui logar com essa conta com o IP 172.16.2.2 que também tinha seu IPxMacxLogin amarrados.
alguem saberia onde isso poderia estar errado???
Amigo, porque você mesmo não responde a sua pergunta?!
Não tem como não funcionar, você estar deixando passar alguma coisa. Você precisa tentar resolver seu problema com ajuda do forum, o pessoal do forum não pode fazer TUDO para você.
então jhone o problema que se eu deixar no ipbinding eu tenho que fazer os controle de velocidade no Queue manualmente neh? pois não da pra eu cadastrar nos profiles que tenho criado.
Amigo edilson, pode ter certeza que tentei de diversas formas resolver o problema...e se recorri ao forum foi por querer saber onde posso estar errando...
Olá,
Quando acessei seu MK vi seu problema, resolvi criar um passo-a-passo para todos, mas com certeza você não seguiu o tutor que fiz...
Me mande por e-mail os dados para eu acessar seu MK e fazer alterações. Da ultima vez eu acessei somente leitura e por isso criei o tutor com a resposta, mas vc não seguiu.
Ahhh entendi jhonne...entao blza..farei o teste por aqui...vlw
Opa também tinha visto e fiquei com duvida no seu hotspot....o que seria o perfil senha?
abraçoo
Amigo o perfil senha serve para usuário que estão usando a senha priovisória (1234), ai de tempo em tempo ele redireciona para uma página de aviso para troca de senha.
deixei meu mikrotik aberto e pegaram minha senha do change ip e trocaram, sacanagem vc age com boa fé e te sacaneiam !
Como registro os ip que acessam meu mikrotik sei que foi um destes ip que fez isto:
189.104.28.112
189.68.46.222
189.104.20.175
189.92.158.102
189.68.38.35
Ah entendi amigo...mais você ja redirenciona pra uma pagina que o propio usuario faz a mudança da senha e te envia por e-mail? como é esse esquema?
vlww
*Ah, infelizmente existem pessoas que não são profissional amigo, ao invés de usar a sua boa vontade de oferecer ajuda mostrando seu serviço, aproveitam para destruir um trabalho sem ao menos ter motivo....esses com certeza não terao muito sucesso.
grande abraço
Neste caso a página tem o email em que ele deve enviar a senha de sua preferência
uso hotspot com ip fixo e radius...
amarro o MAC x Login X IP sem problemas
vamos lá...
1º
Configurar o mysql na Tabela radgroupreply para acessar o arquivo perl:
------------------------------------------------------------------------------
GroupName: nome_do_grupo_dos_seus_usuários (ex: radio)
Attribute: Exec-Program-Wait
op: ==
Value: /etc/raddb/lib3.pl %u %i %C %n %{request:Framed-IP-Address}
PS.: acima temos o caminho do arquivo...é a unica coisa q tem q mudar
--------------------------------------------------------------------------------------------
2º
criar o arquivo lib3.pl (ou o nome que vcs derem acima no caminho passado)
#touch /etc/raddb/lib3.pl
3º
editar o arquivo criado acima
#pico /etc/raddb/lib3.pl (o texto abaixo vai dentro desse arquivo)
---------------------- recorte aqui --------------------------
#!/usr/bin/perl
use POSIX qw(strftime);
use Unix::Syslog qw(:macros :subs);
use DBI;
my $servidor = "localhost";
my $servidor_porta = "3306";
my $servidor_usuario = "usuario_BD";
my $servidor_senha = "senha_BD";
my $servidor_db = "medianeira";
my $servidor_db_radius = "radius";
my $tabela_login = "radcheck";
my $tabela_cont = "contratos";
my $tabela_multi = "contratos_users_radius";
my $tabela_mac = "contratos_macs";
my $tabela_mac_intruso = "contratos_macs_erros";
my $tabela_ip_intruso = "contratos_ips_erros";
my $codigo_erro = "1";
my $codigo_erro_mac = "1";
my $codigo_erro_ip = "1";
sub erro_permitido()
{
openlog(Pemitidos, LOG_PID, LOG_INFO);
syslog(LOG_INFO, "Login=$ARGV[0] MAC=$ARGV[1] IP=$ARGV[4]\n");
closelog;
}
sub erro_bloqueado()
{
openlog(Bloqueados, LOG_PID, LOG_INFO);
syslog(LOG_INFO, "Login=$ARGV[0] MAC PC=$ARGV[1] IP PC=$ARGV[4]\n");
closelog;
}
if (($ARGV[2] eq 'Mikrotik132') || ($ARGV[2] eq 'Mikrotik145') || ($ARGV[2] eq 'Mikrotik194'))
{
# Conecta banco medianeira para verificar mac na tabela contratos_macs
$dbh = DBI->connect("DBI:mysql:database=$servidor_db;host=$servidor;port=$servidor_porta", $servidor_usuario, $servidor_senha);
$pega_mac = $dbh->prepare("SELECT mac FROM $tabela_mac WHERE UserName=\"$ARGV[0]\" LIMIT 1");
$pega_mac->execute;
if(@row = $pega_mac->fetchrow_array)
{
$pega_mac->finish;
$dbh->disconnect;
if ($row[0] =~ /$ARGV[1]/)
{
$codigo_erro_mac = "0";
# Conecta banco medianeira para verificar ip na tabela contratos
$dbh = DBI->connect("DBI:mysql:database=$servidor_db;host=$servidor;port=$servidor_porta", $servidor_usuario, $servidor_senha);
$pega_ip = $dbh->prepare("SELECT c.ip,c.id FROM $tabela_cont c,$tabela_multi m WHERE ((c.login_radio=\"$ARGV[0]\") OR (c.multi_users=1 AND m.login_radius=\"$ARGV[0]\" AND m.idContrato=c.id)) LIMIT 1");
$pega_ip->execute;
if(@row = $pega_ip->fetchrow_array)
{
$pega_ip->finish;
$dbh->disconnect;
# Comparar ip passado com o do banco
if ($row[0] =~ /$ARGV[4]/)
{
$codigo_erro_ip = "0";
}
else
{
$ip_selecionado = $row[0];
if($ip_selecionado == "0" || $ip_selecionado == "")
{
# Conecta banco medianeira e insere ip na tabela de erros
$dbh = DBI->connect("DBI:mysql:database=$servidor_db;host=$servidor;port=$servidor_porta", $servidor_usuario, $servidor_senha);
$grava = $dbh->prepare("UPDATE $tabela_cont SET ip=\"$ARGV[4]\" WHERE id=\"$row[1]\" ");
$grava->execute;
$grava->finish;
$dbh->disconnect;
$codigo_erro_ip = "0";
}
else
{
# Conecta banco medianeira e insere ip na tabela de erros
$dbh = DBI->connect("DBI:mysql:database=$servidor_db;host=$servidor;port=$servidor_porta", $servidor_usuario, $servidor_senha);
$grava = $dbh->prepare("INSERT INTO $tabela_ip_intruso (UserName,ip_pc,ip_banco,data) VALUES (\"$ARGV[0]\",\"$ARGV[4]\",\"$ip_selecionado\",SYSDATE())");
$grava->execute;
$grava->finish;
$dbh->disconnect;
$codigo_erro_ip = "1";
}
}
}
}
else
{
$mac_selecionado = $row[0];
# Conecta banco medianeira e insere mac na tabela de erros
$dbh = DBI->connect("DBI:mysql:database=$servidor_db;host=$servidor;port=$servidor_porta", $servidor_usuario, $servidor_senha);
$grava = $dbh->prepare("INSERT INTO $tabela_mac_intruso (UserName,mac_pc,mac_banco,data) VALUES (\"$ARGV[0]\",\"$ARGV[1]\",\"$mac_selecionado\",SYSDATE())");
$grava->execute;
$grava->finish;
$dbh->disconnect;
$codigo_erro_mac = "1";
}
}
else
{
$pega_mac->finish;
$dbh->disconnect;
# Conecta banco medianeira para verificar mac na tabela contratos_macs
$dbh = DBI->connect("DBI:mysql:database=$servidor_db;host=$servidor;port=$servidor_porta", $servidor_usuario, $servidor_senha);
$grava = $dbh->prepare("INSERT INTO $tabela_mac VALUES (\"\",\"$ARGV[0]\",\"$ARGV[1]\")");
$grava->execute;
$grava->finish;
$dbh->disconnect;
#Possibilidade se inserção ou verificação de IP
$codigo_erro_mac = "0";
$codigo_erro_ip = "0";
}
}
if ($codigo_erro_mac != "0" || $codigo_erro_ip != "0")
{
$mensagem_erro = "MAC ou IP inválidos";
erro_bloqueado();
}
else
{
erro_permitido();
}
if ($codigo_erro_mac == "0" && $codigo_erro_ip == "0")
{
$codigo_erro = "0";
}
exit($codigo_erro);
--------------------- recorte aqui --------------------------
my $tabela_login = "radcheck";
-> padrão dos radius
my $tabela_cont = "contratos";´
-> contem vários campos com dados, os mais importantes são:
-----> login_radio
-----> ip
my $tabela_multi = "contratos_users_radius";
-> campos:
----->id
----->idContrato
----->login_radius
----->senha_radius
my $tabela_mac = "contratos_macs";
-> campos:
----->id
----->UserName
----->mac - formato: xx:xx:xx:xx:xx:xx
my $tabela_mac_intruso = "contratos_macs_erros";
-> campos:
----->id
----->UserName
----->mac_pc
----->mac_banco
----->data
my $tabela_ip_intruso = "contratos_ips_erros";
-> campos:
----->id
----->UserName
----->ip_pc
----->ip_banco
----->data
Algumas observações:
- Se o login ex: testelogin, quando for logar nao for localizado um mac, na tabela 'contratos_mac', o script cadastra automaticamente no banco o mac, pois supoe-se que o primeiro login é feito no cliente com a prescença do técnico do provedor (pelo menos aqui é assim, fica a critério de cada).
- A verificação de login X mac X ip, só é feita após o login ter ocorrido, entao nao estamos verificando o login e senha, q está no banco radius, provável na tabela radcheck, supomos que isto já esteja sendo usado e em funcionamento.
- Bug: Se um ip fizer login e vier pro script pra verificação, e for ele ex: 192.168.1.111, e no banco de dados estiver 192.168.1.1, é provável que deixa passar, (pois ele usa if ($row[0] =~ /$ARGV[4]/) que é como se fosse um like do mysql, mas em perl) é um erro q já estou vendo pra trocar, fica a critério de cada um mexer no script, e tmb por conta próprio o uso ou nao do script, nao me responsabilizo por nda...
- existe tmb uma forma de amarrar via banco de dados, preferi usar script pois tenho logs de tudo, no syslog do linux e tmb no banco de dados.
Existe uma forma de amarrar tal login pra ele sempre pegar o mesmo ip pra quem usa dhcp e controla os usuários no radius, segue:
na tabela radcheck:
UserName: logindocliente (ex: joaodossantos)
Attribute: Framed-IP-Address
op: ==
Value: ipdocliente (ex: 192.168.50.50)
toda vez que o cliente joaodossantos logar ele pegara esse ip cadastrado acima...
Bom, me desculpe por tantas linhas, mas é presciso, desculpe os erros, e estamos ae pra dicas e críticas...espero ter ajudado alguém, assim como tantos me ajudaram já...
Obrigado e passar bem...
Ufa ! quanta informação, valeu cara, mas não uso radius, será que ainda tem jeito ?
Cara ja que você citou do radius...você teria algum tutorial passo a passo de como instalar e configurar?
vlww
ta na hands ( Mikrotik + Freeradius + Mysql + Hotspot ( Casando MAC/IP/Login/Senha ) )
se quiser usar o google tmb...ajuda bastante..hehehe
freeradius + mikrotik - Google Search
flws...qq coisa posta ae...t+
malsss cara nao havia visto este topico...vlww
Pra mim não serve, não uso free radius :dong:
tb gostaria de conseguir fazer isso... vincular o IP ao LOGIN, independente do MAC do cliente..
no pppoe é tranquilo pq o cliente manda a autenticação e depois ele recebe o ip..
já no hotspot ele recebe um ip antes para depois fazer a autenticação..
[]´s