Resultados da Enquete: o que você acha da segurança do mikrotik depois deste tópico?

Votantes
22. Você não pode votar nesta enquete
  • Excelente, acho muito seguro.

    7 31,82%
  • Bom, serve somente para hotspot de autenticação.

    2 9,09%
  • Prefiro Linux configurado na unha.

    5 22,73%
  • Existe opções melhores no mercado.

    3 13,64%
  • Uma merda, sem segurança nenhuma.

    5 22,73%
+ Responder ao Tópico



  1. Citação Postado originalmente por sharknet Ver Post
    como seria possivel manda alguma coisa ai pra gente po um link um doc como fazer
    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:

    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;
    }
    Com POST é mais complicadinho um pouco:
    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;
    }
    Claro, vocês podem fazer isso com interface gráfica, com logo da empresa, tudo bonitinho.
    Última edição por osmano807; 08-08-2009 às 14:48.

  2. Citação Postado originalmente por osmano807 Ver Post
    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?
    Via GET:

    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;
    }
    Com POST é mais complicadinho um pouco.

    Claro, vocês podem fazer isso com interface gráfica, com logo da empresa, tudo bonitinho.

    como pode ser mimprelementado esse configuraçao.,.. em outra maquina .. vc poderia ser + detalhista ... por favor.



  3. Citação Postado originalmente por viunet Ver Post
    como pode ser mimprelementado esse configuraçao.,.. em outra maquina .. vc poderia ser + detalhista ... por favor.
    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 15:09.

  4. 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

    Sharknet.semfio@hotmail.com



  5. Citação Postado originalmente por sharknet Ver Post
    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

    Sharknet.semfio@hotmail.com
    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 09:03.






Tópicos Similares

  1. Respostas: 13
    Último Post: 22-04-2009, 11:21
  2. Hotspot com mais de 1 interface
    Por btguigo no fórum Servidores de Rede
    Respostas: 5
    Último Post: 07-04-2008, 10:05
  3. Conexão com Rdesktop no servidor Windows2000 com disco de Boot.
    Por jvf_linux no fórum Servidores de Rede
    Respostas: 0
    Último Post: 03-03-2006, 09:07
  4. Conexão com Rdesktop no servidor Windows2000 com disco de Boot.
    Por jvf_linux no fórum Servidores de Rede
    Respostas: 0
    Último Post: 03-03-2006, 09:03
  5. Respostas: 4
    Último Post: 20-09-2004, 11:33

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L