Porque não fazem um "discador", que irá acessar a página do hotspot automaticamente, logando? O user e a senha poderiam como as chaves WPA, armazenados no programa, assim ninguém, nem mesmo o cliente saberiam a senha.
ola pessoa estou começando agora nesta briga contra clonagem , tabem gosto muito do hostpost..teria agunha regra de segurança para apena um ip nagevega e se aparece um segundo ip igual se direcionado para um pagina de aviso
Eu também tenho hotspot. Mas só login e senha do hotspot não previnem nada. Eles estão lá para organizar seu hotspot. Usar paginas de comunicação com a sua comunidade, etc. Nada além disso.
E configura no perfil para uma só conexão. Assim, mesmo que alguém quebre a chave, consiga login e senha, só vai navegar ele. O verdadeiro vai telefonar reclamando.
Mas em se falando de segurança, não devia aparecer outro ip.
Para previnir qualquer invasão, a primeira barreira está na cripto. Usando WPA2+AES, fica muito mais difícil de quebrar.
Agora, se quisermos usar hotspot para fazer propaganda do provedor, vai ter que deixar tudo aberto, ou fazer uma rede paralela para isso.
Veja esta apresentação sobre segurança;
Trabalho com C/C++, mas acho que vai dar para entender:
Não trabalho com mikrotik, então: o hotspot passa o user e senha via GET ou POST?
Tirado dos exemplos da libcURL
Via GET:
Com POST é mais complicadinho um pouco:Código :#[B][COLOR=#5f9ea0]include[/COLOR][/B] [B][COLOR=#bc8f8f]<iostream>[/COLOR][/B] #[B][COLOR=#5f9ea0]include[/COLOR][/B] [B][COLOR=#bc8f8f]<curl/curl.h>[/COLOR][/B] #include <cstdio> using namespace std; [B][COLOR=#228b22]int[/COLOR][/B] [B][COLOR=#0000ff]main[/COLOR][/B]([B][COLOR=#228b22]void[/COLOR][/B]) { CURL *curl; CURLcode res; string url = "[B][COLOR=#bc8f8f][URL="http://curl.haxx.se/"]http://meuservidorhotspot/pagina_do_hotspot?user=[/URL][/COLOR][/B]USUARIO&password=SENHA"; curl = curl_easy_init(); [B][COLOR=#a020f0]if[/COLOR][/B](curl) { curl_easy_setopt(curl, CURLOPT_URL, [B][COLOR=#bc8f8f]url.c_str()[/COLOR][/B]); curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1); curl_easy_setopt(curl, CURLOPT_MAXREDIRS, 500); res = curl_easy_perform(curl); if(res) { cout << "Cannot access authentication server!\n"; logadd(sc_curl_errbuf); cout << "Error: " << sc_curl_errbuf << endl; } curl_easy_cleanup(curl); } [B][COLOR=#a020f0]return[/COLOR][/B] 0; }
Claro, vocês podem fazer isso com interface gráfica, com logo da empresa, tudo bonitinho.Código :#include <stdio.h> #include <string.h> #include <curl/curl.h> #include <curl/types.h> #include <curl/easy.h> int main(int argc, char *argv[]) { CURL *curl; CURLcode res; struct curl_httppost *formpost=NULL; struct curl_httppost *lastptr=NULL; struct curl_slist *headerlist=NULL; static const char buf[] = "Expect:"; curl_global_init(CURL_GLOBAL_ALL); /* Fill in the filename field */ curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "user", CURLFORM_COPYCONTENTS, "USUARIO", CURLFORM_END); /* Fill in the filename field */ curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "password", CURLFORM_COPYCONTENTS, "SENHA", CURLFORM_END); /* Fill in the submit field too, even if this is rarely needed */ curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "submit", CURLFORM_COPYCONTENTS, "send", CURLFORM_END); curl = curl_easy_init(); /* initalize custom header list (stating that Expect: 100-continue is not wanted */ headerlist = curl_slist_append(headerlist, buf); if(curl) { /* what URL that receives this POST */ curl_easy_setopt(curl, CURLOPT_URL, "[B][COLOR=#bc8f8f][URL="http://curl.haxx.se/"]http://meuservidorhotspot/pagina_do_hotspot[/URL][/COLOR][/B]"); if ( (argc == 2) && (!strcmp(argv[1], "noexpectheader")) ) /* only disable 100-continue header if explicitly requested */ curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist); curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost); res = curl_easy_perform(curl); /* always cleanup */ curl_easy_cleanup(curl); /* then cleanup the formpost chain */ curl_formfree(formpost); /* free slist */ curl_slist_free_all (headerlist); } return 0; }
Última edição por osmano807; 08-08-2009 às 15:48.
Ok. Fariam um programa que rodaria em "background" no pc do cliente, ou seja, rodaria sem que o usuário percebesse. Esse programa constantemente iria dar ping em um servidor remoto ou iria fazer o download de uma página que falaria se ele estava autenticado ou não (usando a API do mikrotik?).
Se ele detectasse que não tinha internet no cliente, ele iria acessar a página do form do hotspot, colocando o usuário e a senha, e assim autenticando.
Esse usuário e senha seriam armazenados com alguma criptografia no programa, só desencriptando em run-time, algo como um md5 ou bash64 já serviria, evitando assim um editor hexadecimal de descobrir a senha. Como o mikrotik usa md5, era só pegar a senha já encriptada, ou se pode encriptar a senha já encriptada, desencriptando em run-time, liberando o md5 feito pelo mikrotik (viajei na segurança!)
Há como se fazer isto com SSL também, e com certificado "embutido" no programa.
Há outras alternativas, como usar a API do mikrotik para só liberar o cliente no firewall quando o "discador" do computador dele se autenticar em uma página no servidor ou até mesmo usando sockets.
Há um mundo de soluções, é só parar para pensar.
Última edição por osmano807; 08-08-2009 às 16:09.
o problema e que eu e muitos nao sacam de programaçao eu entendo um pouco de mikrotik
mas c++ ja ouvi falar kkkkkkkk
esses codigos e para pagina de loguin ou isso ai cria um discador que tem que ser instalado na maquina de cliente
por essa soluçao podemos começar a falar em remuneraçao
[email protected]
Esses códigos são C++, é o "discador", eles se conectam ao servidor e mandam um usuario e senha, o primeiro via GET e o segundo via POST. Usando a libcURL.
Não sei se posso fazer algo amigável ao cliente, pois não trabalho com o Visual C++ da Microsoft, só GCC. Mas se for para poder instalar em clientes Linux também, tem que ser GCC mesmo, com uma interface bonitinha, tipo QT ou wxWidgets.
Uma pergunta: a API do mikrotik oferece a informação se o usuario X está logado no Hotspot?
Pergunta 2: O Hotspot manda o login via GET ou POST?
Última edição por osmano807; 09-08-2009 às 10:03.
Olha só, o cliente nem vai saber que está acessando via hotspot, ou seja, não vai saber usuário nem senha. Se alguém conseguir entrar na rede wireless, não vai saber conectar, pois não possui usuário nem senha.
Nesse momento, para a maioria, já acaba com os problemas de clones, pois ninguém vai saber o user e a senha.
Agora, se o "hacker" for mais esperto, vai rodar um sniffer. Ele vai capturar a senha, mas encriptada, não adiantando nada...
Se ele pegar o programa no cliente, é só trocar o user e a senha no hotspot, e mandar outro programa para o cliente.
Se voltar a ocorrer, você avisa o cliente, vê o qu está acontecendo.
Se o "hacker" tentar pegar a senha diretamente do programa, com algum programa hexadecimal ou assembly, não vai coseguir, pois a senha no próprio programa já estará encriptada duas vezes, desencriptando em run-time e mandando no nivel de criptografia que o mikrotik aceita.
Pode-se aumentar ainda mais as funcionalidades, como checar números de série, usar isso sem ser hotspot, com o programa liberando o cliente via API do mikrotik.
Ah, por favor, se alguém resolver fazer isto, coloquem sobre GPL, não tentem vender isto. Pode-se fazer algo mais personalizado, com o programador gerenciando tudo e vendendo o pacote, mas os fontes deverão ser disponibilizados. É ruim quando vemos uma coisa que seria bom para todo mundo, mas que todos tem que pagar porque querem lucrar em cima de idéias e programas GPL, como muitos firmwares por aí.
mas o problema e o seguinte amigo quando um cliente ja esta logado o clone passa direto pelo hotspot sem fazer logim cara ai e que ta a peleja ********
como assim tunel como fazer isso tem um tuto porai ? se tiver me manda ae li bastante aqui e meu mk e o 2.9.27 e ajo que nao tem isso tem??
muito obrigado a todos que me ajudam e ajudam ao proximo isso será recompensado nao por mim mas por uma pessoa que pode te oferecer muito mais que nos humanos tenha serteza"""""""!!!!
Vídeo:
Código :ftp://ftp.registro.br/pub/gter/gter26/videos/mp4/gter-09-autenticacao-wifi-l2tp-ipsec_256.mp4
Slides:
Código :ftp://ftp.registro.br/pub/gter/gter26/09-autenticacao-wifi-l2tp-ipsec.pdf
O concentrador de túneis da apresentação não é Mikrotik, mas tem um artigo na Mikrotik Wiki explicando como fazer em Mikrotik:
Código :http://wiki.mikrotik.com/wiki/MikroTik_RouterOS_and_Windows_XP_IPSec/L2TP
Se isso funciona em Mikrotik 2.x eu não sei.
Em tempo: O Rubens que fez a apresentação não sou eu não.
muito bom isso vou dar uma olhada e reporto a voce muito obrigado que deus te abençoe
Achei em um artigo um teste de segurança totalmente gratuito muito fod****** o ruim e que e em ingles fora isso e o bicho
ele te fala qual porta esta aberta em seu mikrotik oque esta faltando e muito mais cara muito bom
assim aconomizando regras que nao servem para nada e um monte de coisa
vou deixar o link aqui quem quizer :
https://www.grc.com/x/ne.dll?rh1dkyd2
o nome do teste e ShieldsUP!! Services
dai e so voce fazer os texte como as porta abertas e vulneraveis "common ports"
a evoluçao de pessoas interesadas e inevitavel !!!!!!!!!!!!!!!!!!!
bom dia amigos, sobre hostspot ser POST ou GET ta ae a resposta...é POST
Código :<form name="login" action="$(link-login-only)" method="post" onsubmit="$(if chap-id) return doLogin(); // $(endif)savePassCookie();" style="margin:0; padding:0;">
eu estava pensando a algum tempo em alguma coisa pra validar os dados da maquina do cliente, vi q e possivel com activeX, mas dae o problema do firefox, nao sei se existe algo equivalente pra ele ?...sobre esse esquema de C++, posso dar uma ajuda em outras coisas (PHP, Hotspot, Mikrotik), menos em C..eheheh
abraços