Hotspot Social / Auto Cadastor - Com Mikrotik

1. Hotspot Social / Auto Cadastor - Com Mikrotik

LUCAS HENRIQUE AMORIM
lamorim1904

(usa Outra)

Enviado em 30/07/2019 - 07:29h

Caros, bom dia!

Sou novo no fórum, gostaria de previamente me desculpar caso esteja cometendo alguma falha, mas acredito que não.

Gostaria da ajuda dos senhores para ter um norte em um projeto. Um amigo possui um restaurante e gostaria de disponibilizar um hotspot ao seus clientes, topei o projeto por desafio proprio e estou me lascando.
Ele precisa que o login no hotspot seja efetuado de duas maneira; ou o cliente se autocadastra inserindo dados pessoais ou faz o cadastro com facebook.
Ele tambem precisa, por orientação minha, que os dados seja armazenado em algum banco de dados para evitar futuro problemas com a justiça.

Vi alguns sites anunciando o serviço que quero prover pra ele através de RB + apontamento para um servidor Radius externo.
Essa é a melhor forma de se fazer? não há como fazer tudo através da RB?

Caso precise de um servidor externo com o apontamento da RB, esse servidor seria um Radius + Mysql + Php, é isso mesmo?
Caso seja, sabem me informar algum material para eu estudar neste sentido? Não manjo muito de servidor mas sei subir esses serviços, só não tenho ideia de como configurar.


Agradeço muito desde já!!!!!!!!


  


2. Re: Hotspot Social / Auto Cadastor - Com Mikrotik

Carlos Alberto de Souza Barbosa
souzacarlos

(usa Outra)

Enviado em 30/07/2019 - 13:51h

Boa tarde.
Pra não dá muita volta: HotSpot 300 Intelbras
Já busquei muitas soluções, tudo muito trabalhoso, este equipamento é o mais prático que vc vai encontrar
Abs

Network Analyst - Consultor para empresas
contact skype: carlossouzainfo
21 99180-8165 (WhattsApp)


3. Re: Hotspot Social / Auto Cadastor - Com Mikrotik

berghetti
berghetti

(usa Debian)

Enviado em 31/07/2019 - 15:05h

Ele precisa que o login no hotspot seja efetuado de duas maneira; ou o cliente se autocadastra inserindo dados pessoais ou faz o cadastro com facebook.


auto cadastro - você pode fazer uma pagina de cadastro solicitando os dados que acha interessante, e após isso liberar o wifi,
e adicionar os dados no banco de dados,

cadastro com facebook - você ira precisar criar uma conta de desenvolver no facebook e criar um app la, a partir dai poderá usar a API do facebbok para coletar os dados
dos usuarios que derem permissões, após isso jogar os dados no banco de dados e liberar o wifi.

não há como fazer tudo através da RB?

não se você quiser guardar os dados no banco de dados,
pode até fazer uma pagina de cadastro e colocar no mikrotik, porem para guardar esses dados precisa do servidor.

para todas as opções acima, se você não souber pelos menos um pouco de programação, será uma curva de aprendizado muito grande.

numca usei, mas ja vi funcionado a equipamento indicado pelo colega acima, hotspot 300 intelbras.
caso queira algo pratico.





4. Estou quase conseguindo...

LUCAS HENRIQUE AMORIM
lamorim1904

(usa Outra)

Enviado em 12/08/2019 - 10:00h

Caros, bom dia!

Primeiramente me desculpa pela demora para responder,
Acredito estar conseguindo colocar o projeto para funcionar.

Ficou assim;

Mikrotik configurado com o hotspot e solicitando autenticação externa >> Direciono para uma pagina em html > PHP onde o cliente se cadastra. As informações vão para o banco de dados nas as tabelas (radcheck e radreply)
Se eu pegar o usuario e senha que o cliente colocou na hora de se autocadastrar na tela de login do MK funciona normalmente.... mas aqui está uma nova dúvida;

O cliente se cadastra mas o radius não está enviando os dados informando que o cliente está autenticado para o MK, sabem me informar como fazer isso?

Obrigaod desde já!


Abs,
Lucas Amorim



5. detalhando um pouco mais...

LUCAS HENRIQUE AMORIM
lamorim1904

(usa Outra)

Enviado em 12/08/2019 - 10:04h

Meu script que recebe as informações do cadastro do cliente está assim;

<?php

#include_once $_SERVER['DOCUMENT_ROOT'] . '/securimage/securimage.php';
#$securimage = new Securimage();
#if ($securimage->check($_POST['captcha_code']) == false) {
#echo "The CAPTCHA security code entered was incorrect. Make Sure You are HUMAN - zaib!<br /><br />";
#echo "Please go <a href='javascript:history.go(-1)'>back</a> and try again.";
#exit;
#}

# Dados para a conexão com o banco de dados
$servidor = 'localhost';
$usuario = 'lamorim';
$senha = '19041990';
$banco = 'radius';




$MOBILE = $_POST['mobile'];
$CPF = $_POST['cpf'];
$FIRSTNAME = $_POST['firstname'];
$LASTNAME = $_POST['lastname'];
$EMAIL = $_POST['email'];
$ip = "";

if (!empty($_SERVER["HTTP_CLIENT_IP"]))
{
//check for ip from share internet
$ip = $_SERVER["HTTP_CLIENT_IP"];
}
elseif (!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))
{
// Check for the Proxy User
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
}
else
{
$ip = $_SERVER["REMOTE_ADDR"];
}

echo "<h2><u>You have entered the following information:</u></h2>";
echo "<pre>Mobile : $MOBILE</pre>";
echo "<pre>CPF No : $CPF</pre>";
echo "<pre>Firstname : $FIRSTNAME</pre>";
echo "<pre>Lastname : $LASTNAME</pre>";
echo "<pre>Email : $EMAIL</pre>";
echo "<pre>IP Address is : $ip</pre>";



$strcon = mysqli_connect($servidor,$usuario,$senha, $banco) or die('Erro ao conectar ao banco de dados');


$sql = "INSERT INTO radcheck (UserName, Attribute, op, Value) VALUES ";
$sql .= "('$MOBILE', 'Cleartext-Password', ':=', '$MOBILE')";
mysqli_query($strcon,$sql) or die("Erro ao tentar cadastrar registro");


$sql = "INSERT INTO radreply (UserName, Attribute, op, Value) VALUES ";
$sql .= "('$MOBILE', 'Mikrotik-Rate-Limit', ':=', '512k/1024k')";
mysqli_query($strcon,$sql) or die("Erro ao tentar cadastrar registro");
mysqli_close($strcon);
echo "Cliente cadastrado com sucesso!";
?>



6. Continuando a explicação sobre minha duvida...

LUCAS HENRIQUE AMORIM
lamorim1904

(usa Outra)

Enviado em 12/08/2019 - 10:07h

no Wiki do Mikrotik eu achei os codigos abaixo, quando colocado em meu servidor, ele cai na tela padrão do MK solicitando usuario e senha. Se eu inserir os dados coletados no script que postei acima ele libera a conexão....

Então uma forma que provavelmente resolve meu problema seria colocar o script abaixo jujnto com o script acima, chamando no campo de username e password o campo $mobile. tem como fazer isso? se alguem puder me ajudar eu agradeço, falta muita coisa pra deixar tudo LINDO, mas apenas isso para que funcione.

obrigado galera!

<?php
$mac=$_POST['mac'];
$ip=$_POST['ip'];
$username=$_POST['username'];
$linklogin=$_POST['link-login'];
$linkorig=$_POST['link-orig'];
$error=$_POST['error'];
$chapid=$_POST['chap-id'];
$chapchallenge=$_POST['chap-challenge'];
$linkloginonly=$_POST['link-login-only'];
$linkorigesc=$_POST['link-orig-esc'];
$macesc=$_POST['mac-esc'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>mikrotik hotspot > login</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="expires" content="-1" />
<style type="text/css">
body {color: #737373; font-size: 10px; font-family: verdana;}

textarea,input,select {
background-color: #FDFBFB;
border: 1px solid #BBBBBB;
padding: 2px;
margin: 1px;
font-size: 14px;
color: #808080;
}

a, a:link, a:visited, a:active { color: #AAAAAA; text-decoration: none; font-size: 10px; }
a:hover { border-bottom: 1px dotted #c1c1c1; color: #AAAAAA; }
img {border: none;}
td { font-size: 14px; color: #7A7A7A; }
</style>

</head>

<body>
<!-- $(if chap-id) -->

<form name="sendin" action="<?php echo $linkloginonly; ?>" method="post">
<input type="hidden" name="username" />
<input type="hidden" name="password" />
<input type="hidden" name="dst" value="<?php echo $linkorig; ?>" />
<input type="hidden" name="popup" value="true" />
</form>

<script type="text/javascript" src="./md5.js"></script>
<script type="text/javascript">
<!--
function doLogin() {
<?php if(strlen($chapid) < 1) echo "return true;\n"; ?>
document.sendin.username.value = document.login.username.value;
document.sendin.password.value = hexMD5('<?php echo $chapid; ?>' + document.login.password.value + '<?php echo $chapchallenge; ?>');
document.sendin.submit();
return false;
}
//-->
</script>
<!-- $(endif) -->

<div align="center">
<a href="<?php echo $linkloginonly; ?>?target=lv&dst=<?php echo $linkorigesc; ?>">Latviski</a>
</div>

<table width="100%" style="margin-top: 10%;">
<tr>
<td align="center" valign="middle">
<div class="notice" style="color: #c1c1c1; font-size: 9px">Please log on to use the mikrotik hotspot service<br />

<!-- $(if trial == 'yes') -->
Free trial available, <a style="color: #FF8080"href="<?php echo $linkloginonly; ?>?dst=<?php echo $linkorigesc; ?>&username=T-<?php echo $macesc; ?>">click here</a>.
<!-- $(endif) -->

</div><br />
<table width="240" height="240" style="border: 1px solid #cccccc; padding: 0px;" cellpadding="0" cellspacing="0">
<tr>
<td align="center" valign="bottom" height="175" colspan="2">
<!-- removed $(if chap-id) $(endif) around OnSubmit -->
<form name="login" action="<?php echo $linkloginonly; ?>" method="post" onSubmit="return doLogin()" >
<input type="hidden" name="dst" value="<?php echo $linkorig; ?>" />
<input type="hidden" name="popup" value="true" />

<table width="100" style="background-color: #ffffff">
<tr><td align="right">login</td>
<td><input style="width: 80px" name="username" type="text" value="<?php echo $username; ?>"/></td>
</tr>
<tr><td align="right">password</td>
<td><input style="width: 80px" name="password" type="password"/></td>
</tr>
<tr><td> </td>
<td><input type="submit" value="OK" /></td>
</tr>
</table>
</form>
</td>
</tr>
</table>

<!-- $(if error) -->
<br /><div style="color: #FF8080; font-size: 9px"><?php echo $error; ?></div>
<!-- $(endif) -->

</td>
</tr>
</table>

<script type="text/javascript">
<!--
document.login.username.focus();
//-->
</script>
</body>
</html>


7. Re: Hotspot Social / Auto Cadastor - Com Mikrotik

LUCAS HENRIQUE AMORIM
lamorim1904

(usa Outra)

Enviado em 14/08/2019 - 20:10h

Ainda tô preso nessa parte, ng aí pra dar uma luz?






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts