+ Responder ao Tópico



  1. #1

    Padrão Bloqueio msn squid autenticado

    Tenho squid autenticado e libero o msn com a acl abaixo:


    #MSN S� PARA USUARIOS DESSA ACL##################
    acl bloqueiamsn url_regex -i "/etc/squid/bloqueiamsn"
    acl g_liberado proxy_auth itamar carlos.eduardo fernandocomercial alisson neide ademario marinalva fernando rmartins vicente handerson
    http_access deny bloqueiamsn !g_liberado


    dentro do bloqueiamsn teho todos os ips e sites que o msn conecta.


    em cada usuário que tem o msn liberado, coloco todos os links permitindo o acesso ao msn mesmo assim dá como negado.
    só que a liberação não está funcionando para todo mundo...para funcionar, tenho que colocar alguns sites do msn detro de uma acl que não pede autenticação.

    essa acl vem antes da acl acima:

    #SITES QUE N�O PRECISAM DE AUTENTICACAO COM SENHA
    acl NO_AUTH url_regex -i '/etc/squid/no_auth_url'
    http_access allow NO_AUTH


    e de dentro do no_auth tenho vários links e ips do msn.

    como faço para liberar o msn somente para esses usuários?

  2. #2

    Padrão Re: Bloqueio msn squid autenticado

    com o msn 9 e 2011 vc só consegue bloquear com o iptables também pq o msn procura outras rotas para abrir, eu faço assim:

    no iptables vc coloca os ips dos clientes para liberar ou bloquear
    iptables -A FORWARD -s 192.168.1.253 -p tcp --dport 1863 -j REJECT
    iptables -A FORWARD -s 192.168.1.253 -d loginnet.passport.com -j REJECT

    no squid vc coloca as acl

    acl mns1 dstdomain "/usr/local/squid/restricoes/msn"
    acl msn2 url_regex x-msn
    acl msn3 url_regex -i gateway\.dll

    http_access deny msn1
    http_access deny msn2
    http_access deny msn3

    no arquivo msn vc coloca os seguinte dominios

    br.msn.com
    loginnet.passport.com
    passport.com
    msn.com.br
    msn.com
    sc.msn.com
    MSN | Hotmail | Messenger | Nieuws, sport, entertainment, video, lifestyle, auto en nog veel meer, dat is MSN !
    207.46.110.11
    messenger.msn.com.br
    http.msg.yahoo.com
    nickname.msn.com.br
    chat.msn.com
    chat.msn.com.br
    msgr.hotmail.com
    gateway.messenger.hotmail.com
    http1.msgr.hotmail.com
    http2.msgr.hotmail.com
    http3.msgr.hotmail.com
    http4.msgr.hotmail.com
    http5.msgr.hotmail.com
    http6.msgr.hotmail.com
    http7.msgr.hotmail.com
    http8.msgr.hotmail.com
    http9.msgr.hotmail.com
    http10.msgr.hotmail.com
    http11.msgr.hotmail.com
    http12.msgr.hotmail.com
    http13.msgr.hotmail.com
    http14.msgr.hotmail.com
    http15.msgr.hotmail.com
    http16.msgr.hotmail.com
    http17.msgr.hotmail.com
    http18.msgr.hotmail.com
    http19.msgr.hotmail.com
    http20.msgr.hotmail.com

  3. #3

    Padrão Re: Bloqueio msn squid autenticado

    Acho que você não entendeu....

    Bloquear o msn eu consigo, preciso agora liberar somente para alguns usuários.

    faço o bloqueio geral e libero via acl g_liberado para alguns usuários mas o msn continua sem acessar...só volta a funcionar quando coloco os links para não pedir autenticação dentro de no_auth.

    OBS: o boloqueio já funciona diretamente no squid como te disse e minha rede é dhcp, logo, não posso utilizar o iptables com regras por ip.

    Entendeu agora?

  4. #4

    Padrão Re: Bloqueio msn squid autenticado

    Pode, eu uso dhcp, amarro o ip ao mac no squid, faço tudo via script as acls do squid, crio as regras de dhcp, com um banco de dados onde fica o ip, mac, etc... e script.
    Amigo, depende de vc, se vc pode bloquear vc pode também liberar.
    Vc pode criar um banco de dados em mysql onde vc cadastra os usuarios: nome, mac, ip etc...

    e criar um scrip em php ou shell

    liberacli.php

    #----------------------------------------------------------------------------------------------
    #!/usr/bin/php -q

    <?
    {

    $link = mysqli_connect("localhost", "root", "senha") 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 msn = true 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 -F msn');
    $iptables2 = shell_exec('sudo iptables -X msn');
    $iptables2 = shell_exec('sudo iptables -N msn');
    $iptables2 = shell_exec('sudo iptables -A INPUT -j msn');
    $iptables2 = shell_exec('sudo iptables -A FORWARD -j msn');
    $iptables2 = shell_exec('sudo iptables -F msn');
    $iptables2 = shell_exec('iptables -A msn -s '.$row['ip'].' -p tcp --dport 1863 -j REJECT');
    $iptables2 = shell_exec('iptables -A msn -s '.$row['ip'].' -d loginnet.passport.com -j REJECT');


    }

    }

    }

    ?>
    #----------------------------------------------------------------------------------------------


    Nesse Script, vc filtra os clientes que vão receber restrição ao msn, os outros não serão bloqueados e cria uma chain msn e adciona a regras, se for necessário liberar ou bloquear outros, vc cria uma pagina em php onde os cliente irão receber no campo msn o valor true ou false e depois manda rodar o script quem tiver com o campo msn true fica bloqueado quem não tiver fica liberado.

    Add. msn: [email protected]
    Última edição por danillorc; 20-04-2011 às 11:04.

  5. #5

    Padrão Re: Bloqueio msn squid autenticado

    não tem outra forma sem ter que usar mysql + php?

    tipo como estou fazendo acima?

    criando um regra de bloqueio e liberando só para alguns usuários?

    Sei que mysql é mais robusto mas só vale a pena quando teno muitos usuários e na rede toda s;o tenho 40 usuários e poucos que acessam o mss.

    Deve ter uma forma tipo aque estou fazendo...na verdade era para funcionar se seguir a lógica das acls mas não sei porque tenho que colocar os ips e links do hotmail/msn na acl que não precisa de autenticação.

    Estranho isso pois se um usuário tem permissão para acessar os links mesmo que seja por autenticação, isso deveria estar liberado para ele não?

  6. #6

    Padrão Re: Bloqueio msn squid autenticado

    Scrip para o dhcp;

    #----------------------------------------------------------------------------------
    #!/usr/bin/php -q

    <?
    {

    $link = mysqli_connect("localhost", "root", "senha") 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 nome";
    if ($select != "") {
    $Query = mysqli_query($link, $select) or die (mysql_error($link));
    $Cliente = fopen("/etc/dhcp3/dhcpd.conf","w");

    fwrite($Cliente,'ddns-update-style none;'."\n");
    fwrite($Cliente,'default-lease-time 600;'."\n");
    fwrite($Cliente,'max-lease-time 7200;'."\n");
    fwrite($Cliente,'authoritative;'."\n");

    fwrite($Cliente,'#definindo a rede que o dhcp ira funcionar'."\n");
    fwrite($Cliente,'subnet 192.168.1.0 netmask 255.255.255.0 {'."\n");
    fwrite($Cliente,'#range 192.168.1.1 192.168.1.199;'."\n");
    fwrite($Cliente,'option routers 192.168.1.1;'."\n");
    fwrite($Cliente,'option domain-name-servers 2.2.2.1,2.2.2.2,2.2.2.3;'."\n");
    fwrite($Cliente,'option broadcast-address 192.168.1.255;'."\n");
    fwrite($Cliente,''."\n");
    fwrite($Cliente,'#maq com ip fixo'."\n");

    $i = 0;
    while ($row = mysqli_fetch_array($Query)) {
    $i++;
    $Host = 'host IP'.$i.' {';
    $MAC = 'hardware ethernet '.$row['mac'].';';
    $IP = 'fixed-address '.$row['ip'].';';

    $Todos1 = $Host."\n";
    $Todos2 = $MAC."\n";
    $Todos3 = $IP."\n";

    fwrite($Cliente,$Todos1);
    fwrite($Cliente,$Todos2);
    fwrite($Cliente,$Todos3);
    fwrite($Cliente,'}'."\n");
    }


    fwrite($Cliente,'}'."\n");
    fclose($Cliente);

    }

    }

    $killsquid = system('sudo /etc/init.d/dhcp3-server restart', $retkill);

    ?>

    #----------------------------------------------------------------------------------

  7. #7

    Padrão Re: Bloqueio msn squid autenticado

    Bom dia amigo..como te disse, não tem como fazer isso sem ser por banco de dados? tenho poucos usuários e fica inviável usar banco nesse meu caso.

    desde já agradeço,

  8. #8

    Padrão Re: Bloqueio msn squid autenticado

    vc já tentou fazer a mesma regra só que liberando

    #AQUI VC BLOQUEIA
    acl bloqueiamsn url_regex -i "/etc/squid/bloqueiamsn"
    acl g_liberado proxy_auth itamar carlos.eduardo fernandocomercial
    http_access deny bloqueiamsn !g_liberado

    #AQUI VC LIBERA
    acl bloqueiamsn1 url_regex -i "/etc/squid/bloqueiamsn"
    acl g_liberado1 proxy_auth alisson neide ademario marinalva fernando rmartins vicente handerson
    http_access allow bloqueiamsn1 !g_liberado1

    onde vc bloqueia o: itamar carlos.eduardo fernandocomercial
    e libera o: alisson neide ademario marinalva fernando rmartins vicente handerson
    Última edição por danillorc; 20-04-2011 às 11:25.