Página 2 de 3 PrimeiroPrimeiro 123 ÚltimoÚltimo
+ Responder ao Tópico



  1. #6
    Não Registrado(s)
    JorgeAldo,

    Blz, eu deixei meu msn, me add e aí trocamos uma idéia.

    Na realidade eu fiz todo um sistema, há uns 3 anos atrás eu criei um sistema no linux feito em Lazarus, com base de dados firebird, que fazia um controle de cliente e financeiro, amarrava o mac ao ip, controlava os downloads por tipo de arquivo, bloqueio de determinados sites e etc.. no squid, cadastrava a banda pra cada cliente ou todos os clientes de uma só vez com CBQ Shaper, cadastrava o cliente no DHCP3 pelo mac, tirava um extrato de cada cliente através do sarg, fazia monitoramento do cliente com tail e grep, mostrava quais os clientes conectados, pingava uma determinada faixa de ips. e etc, mas aí eu tinha que acessar o servidor toda vez q iria cadastrar um cliente, depois eu criei o mesmo sistema no delphi, pegando a base de dados em rede, mas fiquei com dificuldade em fazer os dois sistemas se comunicarem, pq eu queria fazer isso atraves de socketes, mas não encontrei nenhum componente pro lazarus, fazia uma comunicação entre os dois a base de ganbiarra, mas num gostei não.
    Depois eu fiz a mesma coisa com Apache, html, php, mysql, só q eu não gostei por causa de keyloogers na casa dos clientes quando eu ia dar manuntenção, aqui tem uns cara esperto. Foi aí que eu fiz outro sistema com delphi e php, e através do delphi com o componente indy, acesso as paginas em php, e faço o cadastro cadastro.

    Mais ou menos assim:

    Código pascal:
    procedure TForm1.SpeedButton1Click(Sender: TObject);
    var
    Valores,Retorno : TStringList;
    begin
     
       Valores := TStringList.Create;
       Retorno := TStringList.Create;
       Valores.Clear;
       Valores.Add('EditNome=' + edtNome.text);
       Valores.Add('EditSenha=' + edtSenha.text);
       try
         Retorno.Text := Idhttp1.Post('http://servidor/autenticacao/aut.php', Valores);
       finally
         Valores.Free;
         Retorno.Free;
       end;
     
    end;
    Dessa forma não preciso acessar a web para digitar senhas ou cadastrar os clientes.

    Dá pra fazer em qualquer pagina de cadastro, hotspot e etc.

    É bom pela segurança, por exemplo: pegando o Hotspot do Mikrotik, em vez de capiturar a pagina de login, basta redirecionar com outra pagina informando que está bloqueado para acesso até q seja efetuado o login, login q será feito através do programa em delphi.
    Última edição por osmano807; 15-10-2010 às 15:37.

  2. JorgeAldo,

    Blz, eu deixei meu msn, me add e aí trocamos uma idéia.

    Na realidade eu fiz todo um sistema, há uns 3 anos atrás eu criei um sistema no linux feito em Lazarus, com base de dados firebird, que fazia um controle de cliente e financeiro, amarrava o mac ao ip, controlava os downloads por tipo de arquivo, bloqueio de determinados sites e etc.. no squid, cadastrava a banda pra cada cliente ou todos os clientes de uma só vez com CBQ Shaper usando CBQ+Cache Full (Squid) com marcação de pacote, cadastrava o cliente no DHCP3 pelo mac, tirava um extrato de cada cliente através do sarg, fazia monitoramento do cliente com tail e grep, mostrava quais os clientes conectados, fazia o monitoramento de consumo por pacote ou por Kb/Mb/Gb, pingava uma determinada faixa de ips, o sistema fazia isso e umas coisas a mais, mas aí eu tinha que acessar o servidor toda vez q iria cadastrar um cliente ou monitorar um. Depois eu criei o mesmo sistema no delphi, pegando a base de dados em rede, mas fiquei com dificuldade em fazer os dois sistemas se comunicarem, pq eu queria fazer isso atraves de socketes, mas não encontrei nenhum componente pro lazarus, fazia uma comunicação entre os dois a base de ganbiarra, mas num gostei não.
    Depois eu fiz a mesma coisa com Apache, html, php, mysql, só q eu não gostei por causa de keyloogers na casa dos clientes quando eu ia dar manuntenção, aqui tem uns cara esperto. Foi aí que eu fiz outro sistema com delphi e php, e através do delphi com o componente indy, acesso as paginas em php, e faço o cadastro cadastro.

    Mais ou menos assim:

    Código pascal:
    procedure TForm1.SpeedButton1Click(Sender: TObject);
    var
    Valores,Retorno : TStringList;
    begin
     
       Valores := TStringList.Create;
       Retorno := TStringList.Create;
       Valores.Clear;
       Valores.Add('EditNome=' + edtNome.text);
       Valores.Add('EditSenha=' + edtSenha.text);
       try
         Retorno.Text := Idhttp1.Post('http://servidor/autenticacao/aut.php', Valores);
       finally
         Valores.Free;
         Retorno.Free;
       end;
     
    end;


    Antes eu rodava um shell em php pra bloquear todos os clientes:

    Código php:
    #!/usr/bin/php -q
    <?
    {
    $iptables0 = shell_exec("iptables -F inform");
    $iptables1 = shell_exec("iptables -N inform");
    $iptables2 = shell_exec("iptables -A INPUT -j inform");
    $iptables3 = shell_exec("iptables -A FORWARD -j inform");
     
    $link = mysqli_connect("localhost", "root", "123456") or die ("Não foi possível conectar1");
    mysqli_select_db($link,"dados") or die("Não foi possível selecionar o banco de dados2");
     
    $select = "SELECT * FROM clientes order by codigo";
    if ($select != "") {
    $Query = mysqli_query($link, $select) or die (mysql_error($link));
     
    $i = 0;
    while ($row = mysqli_fetch_array($Query)) {
    $i++;
    echo $i.' - '.$row['nome']."\n";
    $iptables2 = shell_exec('iptables -A inform -d '.$row['ip'].' -j REJECT ');
    echo "$iptables2"."<br>";
    }
    }
    }
    ?>

    Coloca em ordem de codigo todos os cliente de uma tabela "cliente" q tem os campos "nome","ip","mac" etc...
    Criei a 'chain' inform

    quando esse programa é rodado todos os cliente são bloqueados.

    para autenticar um cliente eu crei um aut.php

    Código php:
    <?
    if($_POST)
    {
     
    $login = $_POST['EditNome'];
    $senha = $_POST['EditSenha'];
     
    $link = mysqli_connect("localhost", "root", "123456") or die ("Não foi possível conectar1");
    mysqli_select_db($link,"dados") or die("Não foi possível selecionar o banco de dados2");
     
    $select = "SELECT * FROM clientes WHERE login='$login' AND senha='$senha' order by codigo";
    if ($select != "") {
    $Query = mysqli_query($link, $select) or die (mysql_error($link));
     
    $i = 0;
    while ($row = mysqli_fetch_array($Query)) {
    $i++;
     
    $iptables2 = shell_exec("sudo iptables -R inform ".$row['codigo']." -d ".$row['ip']." -j ACCEPT");
    echo "$iptables2";
     
    echo "sudo iptables -R inform ".$row['codigo']." -d ".$row['ip']." -j ACCEPT";
    $Cliente = fopen("/var/www/portal/log.log","a");
    fwrite($Cliente,$row['codigo']." - ".$row['nome']." - ".$row['ip']." - ".$row['mac']."\n");
    fclose($Cliente);
    echo"
    <form class='style1' action='index.php' name='login' method='post' style='width:300px; height:400px; z-index:4'><br>
    <input style='width:100px; height:20px;' class='style1' type='text' name='EdtCod' id='EdtCod'>
    <input style='width:100px; height:20px;' class='style1' type='text' name='Edtnome' id='Edtnome'>
    <input style='width:100px; height:20px;' class='style1' type='text' name='EdtIP' id='EdtIP'>
    <input style='width:100px; height:20px;' class='style1' type='text' name='EdtMac' id='EdtMac'>
    <script type='text/javascript'>
    document.login.EdtCod.value = '".$row['codigo']."';
    document.login.Edtnome.value = '".$row['nome']."';
    document.login.EdtIP.value = '".$row['ip']."';
    document.login.EdtMac.value = '".$row['mac']."';
    </script>
    ";
     
    }
     
    }
     
    }
     
    ?>

    Dessa forma não preciso acessar a web para digitar senhas ou cadastrar os clientes.

    Dá pra fazer em qualquer pagina de cadastro, hotspot e etc.

    A pagina autentica pois pega a range da chain
    com -R eu substituo uma regra de acordom com a posição em uma chain pelo codigo do cliente q foi colocado em ordem.
    o problema é q o cliente tem q ter o codigo em ordem sem 1,2,3,4,5,6,....

    para que o cliente não seja bloqueado pelo comando do iptables: "iptables -A inform -d IP -j REJECT"

    eu coloquei uma acl no squid q dá permissão para acessar a intranet ou o ip 192.168.1.1

    "acl intranet dst 192.168.1.1"
    "http_access allow inrtanet"

    mas ficou beleza.

    O programa é configurado para rodar com Serial do HD, Mac, IP e nome da maquina, nome do cliente etc...

    fica mais dificil, pro cara hackear, pois os cara tem que clonar Mac, IP, Serial do HD, Nome da maquina e ainda ter a senha e o login do cliente.

    O programa fica sendo como um discador. quando o programa é encerrado ele bloquea novamente o cliente.

    É bom pela segurança, por exemplo: pegando o Hotspot do Mikrotik, em vez de capiturar a pagina de login, basta redirecionar com outra pagina informando que está bloqueado para acesso até q seja efetuado o login, login q será feito através do programa em delphi.

    Gostei da questão do socket TCP/IP do pascal com php, será se dá pra fazer com do pascal com delphi.

    Eu também tenho umas ferramentas feito em fpc q faz alguns controles como adm, uso também como uma especie de cgi entre php e fpc.

    blz.

    me add pra gente trocar umas ideias.
    Última edição por danillorc; 15-10-2010 às 16:49.



  3. Po tem uma cacetada disso por ai mas a base é quase sempre esse aqui
    Using iptables and PHP to create a captive portal - Andywiki

  4. e aí JorgeAldo tem como fazer um socket entre o (pascal e pascal) ou (pascal e lazaros) ou (pascal e delphi.) ou (lazaros e delphi de preferencia)?
    A um tempo atras eu fiz um programa pra controle de lan house utilizando somente com socket's no Delphi.
    Também tenho interesse de fazer para o linux. Além de melhorar meu controle do meu servidor Vs Cliente.

    Cadê vamo ou não vamo criar um sistema.



  5. Eu eu fiz outro com LAMP + Iptables + Delphi ou Lazarus ou Java ou VB, além de usuário e senha em Criptografia md5, amarro: mac + ip + serial do hd + id da placa mãe que é grande pra caramba + Tipo de processador + sistema operacional + chave do produto + nome do computador + nome do usuário e ainda expalho uma porrada de dll na pasta windows e system32 e algumas configurações no regedit e tudo criptografado e ainda informa ao cliente se estiver tendo excesso de upload informando qual o programa que está fazendo a requisição, podendo ser um virus o que é muito bom, pois já tive bastante problemas com esse tipo de virus deixando a rede pesada. O melhor o que fica quase impossivil de haver clonagem e hacker, o programa funciona como um discador paracido com o da oi pppoe, redireciona para a pagina pricipal do servidor, tem contator de tempo de acesso, e muitas outras informações, para o cliente... como extrato de acesso com ou sem graficos, com horáios e sites acessados, caso o cliente queira, ou pode navegar com privacidade, tem impressão de bloqueto bancário e extratos dos pagamentos efetuados, bloquetos online no proprio programa, para os bancos: Banco do Brasil, Caixa Economica e Bradesco, indica quando o boleto pago já tiver sido processado pelo provedor indicando ao cliente que ele está em dias, ou informando que o cliente está inadimplente. com x dias de atraso conforme a configuração do provedor ele bloqueia o cliente fica informando que com tantos dias irá ser bloqueado por inadiplencia, lhe informado o mês em atraso, essa configuração também pode ficar a critério do provedor. Tem também um medidor de sinal (velocimento) para medir a velocidade do seu sinal que vai de 30k a 1000mb. É um sistema bem simples e maneiro o tamanho dele é 900k, e tenho ele nas seguintes linguagens:
    (LAMP + Delphi) ou (LAMP + Lazarus) ou (LAMP + Java) ou (LAMP + VB).
    não precisa instalar, quem tiver interesse posso enviar o parte do codigo font ou o demo. ou VC pode entrar em contato: www.informtreinamento.com.br.

    Quem tiver interessado também faço sistemas gerenciador para provedor, com boletos bancários, com retorno altomatico, validação de cliente, controle financeiro, gereciador de hardware. e etc.
    Última edição por danillorc; 12-07-2011 às 21:39.






Tópicos Similares

  1. Respostas: 5
    Último Post: 26-01-2015, 09:01
  2. Respostas: 10
    Último Post: 23-07-2013, 15:43
  3. Portal de Autenticação Wireless (Hotspot)
    Por lordbeowulf no fórum Sistemas Operacionais
    Respostas: 8
    Último Post: 17-07-2010, 20:28
  4. Portal de Autenticação Wireless (Hotspot)
    Por lordbeowulf no fórum Servidores de Rede
    Respostas: 1
    Último Post: 23-04-2010, 07:47
  5. Respostas: 1
    Último Post: 05-05-2008, 08:18

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L