Instalación de ThunderCache 3.1 paralelo a Mikrotik

Publicado en 'Redes Inalámbricas' por joemg6, 8 Ago 2011.





  1. leandro1979

    leandro1979 Miembro frecuente

    Registro:
    9 Set 2011
    Mensajes:
    63
    Likes:
    4
    Temas:
    0




    exelente ya me salio el pluggin
    en caso de que quiera tambien hacer cache de los txt que hay en esa pagina que deberia de agregar al pluggin

    como podria saber que cliente es el que me hace ataques al squid

    saludos
    leandro
     


  2. dgonzaleznet

    dgonzaleznet Miembro maestro

    Registro:
    24 Oct 2011
    Mensajes:
    406
    Likes:
    41
    Temas:
    18
    Como es eso de compilar? explicame un poquito por favor ese proceso porque yo para programar soy nulo... :(
     
  3. ninoh

    ninoh Miembro frecuente

    Registro:
    28 Oct 2011
    Mensajes:
    53
    Likes:
    1
    Temas:
    0
    joemg ayudame tengo un problema al tratar de agregar usuarios al hotspot mediante el thunder report... veras.. me salen los usuarios del mikrotik pero cuando le doy agregar uno nuevo sale como si lo fuece guardado pero ala final no me aparece el usuario ??

    ----- mensaje añadido, 10-ago-2012 a las 17:46 -----

    y cual es el regex de softnix ??
     
  4. Firecold

    Firecold Miembro frecuente

    Registro:
    27 Feb 2012
    Mensajes:
    87
    Likes:
    6
    Temas:
    0
    [​IMG]

    Antes que nada quiero darle las gracias a JoeMG por sus aportes que siempre son una innovacion por lo menos para mi, sigue asi con esos aportazos a esta comunidad, ahora vien con la novedad que como ves en la imagen no me muestra el uso del DNS, tendra algo que ver que estoy usando ubuntu 12.04, Gracias Espero tu respuesta, Saludos
     
  5. joemg6

    joemg6 Miembro maestro

    Registro:
    5 May 2010
    Mensajes:
    455
    Likes:
    198
    Temas:
    4
    Tienes que agregar la orden para que también busque la extensión .txt, entonces modificas la línea:
    Código:
    if ( (url.find(".hsyns.net/") != string::npos) and (url.find(".jpg") != string::npos)
    
    y modificando quedaría así:
    Código:
    if ( (url.find(".hsyns.net/") != string::npos) and ((url.find(".jpg") != string::npos) or (url.find(".txt") != string::npos))
    
    También agregas la extensión en el regex
    http.*\.hsyns\.net.*(\.jpg|\.txt)
    Compilas de nuevo, y eso sería todo.
    Compilar es el proceso en el que se traduce el código de fuente en un programa, en este caso compilamos el código de fuente de los plugins para que sean entendidos por el thunder que también es un programa, en el caso de los plugins teniendo el código de fuente se compila con este código:
    Código:
    g++ -I. -fPIC -shared -g -o nombreplugin.so nombreplugin.cpp
    
    y el resultante es el plugin nombreplugin.so
    Para más información sobre como hacer esto revisar el tema de edición de plugins.
    https://www.peruhardware.net/showpost.php?p=2715921&postcount=1716

    En las demás conexiones con Mikrotik también tienes este problema? o el único problema es con el Hotspot, de todas maneras fíjate que estés escogiendo bien los profiles, por ejm puedes crear un Profile con el nombre de Plan A o en todo caso escoger el Profile default y agrega a ese usuario.
    Sobre el regex de softonix esta en el mismo código de fuente debajo de //regex que es.
    http.*\.softnyx\.com.*\.xfs
    Como veo en la imagen tienes el IP 127.0.0.1 que es el IP que utiliza el servidor DNS y que también es el que hace caché DNS, sería que cambies de IP, luego fíjarte que en la configuración del DNS primero esté el IP 127.0.0.1 luego los demás DNS por ej.
    Código:
    search proxy.routero-os.com
    nameserver 127.0.0.1
    nameserver 8.8.8.8
    nameserver 8.8.4.4
    options timeout:1
    options rotate
    
    También fíjate si pusiste la regla DNS Cache en el crontab.
     
  6. willysantana

    willysantana Miembro frecuente

    Registro:
    15 Abr 2012
    Mensajes:
    189
    Likes:
    7
    Temas:
    5
    amigo joemg.
    que pasa si tengo el dns del microtik activo.
    yo siempre uso el servidor dns del mikrotik.
    gracias.
     
  7. joemg6

    joemg6 Miembro maestro

    Registro:
    5 May 2010
    Mensajes:
    455
    Likes:
    198
    Temas:
    4
    Se tiene que usar solo uno de ellos de preferencia, bien puedes deshabilitar el cache DNS del mikrotik o del Thunder, no confundir Cache DNS con Servidor DNS.
     
    Última edición: 10 Ago 2012
  8. Firecold

    Firecold Miembro frecuente

    Registro:
    27 Feb 2012
    Mensajes:
    87
    Likes:
    6
    Temas:
    0
    gracias joeMG6 por tu ayuda, mi error fue no poner la regla del DNS Cache en el crontab, Gracias por tu pronta ayuda, Saludos :wow: :wow: :wow:
     
  9. willysantana

    willysantana Miembro frecuente

    Registro:
    15 Abr 2012
    Mensajes:
    189
    Likes:
    7
    Temas:
    5
    como puedo apagar el cache dns del thunder.
    me quedo con el cache dns del mikrotik.

    y en el thunder report, ya no saldra el cache dns,o se quedara en [0]
    gracias.
     
  10. joemg6

    joemg6 Miembro maestro

    Registro:
    5 May 2010
    Mensajes:
    455
    Likes:
    198
    Temas:
    4
    Sólo quita la línea nameserver 127.0.0.1 que está en el inicio de la configuración del DNS del Thunder.
     
  11. willysantana

    willysantana Miembro frecuente

    Registro:
    15 Abr 2012
    Mensajes:
    189
    Likes:
    7
    Temas:
    5
    #----------------------------------------------------------------------
    acl denegados url_regex -i "/etc/squid/denegados.lst"
    #----------------------------------------------------------------------
    # Servidor DNS y Politica de Cambios
    #----------------------------------------------------------------------
    #dns_nameservers 8.8.8.8 8.8.4.4
    #dns_retransmit_interval 5 seconds
    #dns_timeout 2 minutes
    #----------------------------------------------------------------------
    acl all src 0.0.0.0/0.0.0.0
    acl manager proto cache_object
    acl localhost src 127.0.0.1/32
    acl to_localhost dst 127.0.0.0/8
    acl con_clients dst 0.0.0.0/0


    amigo joemg.
    con eso basta para desactivar el cache dns.
     
  12. leandro1979

    leandro1979 Miembro frecuente

    Registro:
    9 Set 2011
    Mensajes:
    63
    Likes:
    4
    Temas:
    0
    muchas gracias por la explicacion de el pluggin
    me gustaria ver si nos puedes ayudar con lo de tproxy
    porque tengo muchos clientes con publicas y ellos no pasan por cache

    como podria identificar si un cliente me esta matando el squid

    gracias por toda tu ayuda

    leandro
     
  13. joemg6

    joemg6 Miembro maestro

    Registro:
    5 May 2010
    Mensajes:
    455
    Likes:
    198
    Temas:
    4
    No deberías haber modificado en el squid.conf, dije en la configuración del DNS puedes acceder a este desde el thundeReport en la opción de ajustes-DNS o también puedes hacer esto modificando el archivo /etc/resolv.conf solo quita la línea nameserver 127.0.0.1
    Claro como te dije posteriormente estaré publicando la instalación en modo Tproxy, se que es importante esa configuración.
    Sobre las conexiones puedes instalar el iptraf para que veas y monitorees todas tus conexiones y de acuerdo a eso veas que IP te genera más conexiones.
     
    Última edición: 10 Ago 2012
  14. leandro1979

    leandro1979 Miembro frecuente

    Registro:
    9 Set 2011
    Mensajes:
    63
    Likes:
    4
    Temas:
    0
    en tu experiencia cuanto seria lo maximo de conexion por cliente
    podria limitar las conexiones por ip en mikrotik
    pero no se exactamente cual seria un numero de conexion prudente
    saludos
    leandro
     
  15. rochi_b

    rochi_b Miembro nuevo

    Registro:
    28 Jul 2012
    Mensajes:
    21
    Likes:
    4
    Temas:
    0
    Millones de Gracias! joemg6 thunder funcionando perfectamente! Sos un verdadero genio! y gracias por compartir tanta sabiduria con nosotros! :wow:
     
    A Firecold le gustó este mensaje.
  16. krisanlord

    krisanlord Miembro nuevo

    Registro:
    24 Jul 2012
    Mensajes:
    10
    Likes:
    0
    Temas:
    0
    se puede hacer el plugin para la pagina de mercadolibre en venezuela este es el codigo que utilizo pero no me hace cache

    #include <iostream>
    #include <cstring>
    #include <vector>
    #include "../utils.cpp"
    // use this line to compile
    // g++ -I. -fPIC -shared -g -o img1.mlstatic.com.so img1.mlstatic.com.cpp
    // regex
    // http.*\.img1\.mlstatic\.com.*\.jpg
    string get_filename(string url) {
    vector<string> resultado;
    if (url.find("?") != string::npos) {
    stringexplode(url, "?", &resultado);
    stringexplode(resultado.at(resultado.size()-2), "/", &resultado);
    return resultado.at(resultado.size()-1);
    } else {
    stringexplode(url, "/", &resultado);
    return resultado.at(resultado.size()-1);
    }
    }
    extern "C" resposta getmatch(const string url) {
    resposta r;
    if ( (url.find(".img1.mlstatic.com/") != string::npos) and (url.find(".jpg") != string::npos)
    ) {

    r.file = get_filename(url);
    if (!r.file.empty()) {
    r.match = true;
    r.domain = "mercadolibre";
    } else {
    r.match = false;
    }
    } else {
    r.match = false;
    }
    return r;
    }
     
  17. btocarmona

    btocarmona Miembro frecuente

    Registro:
    22 Oct 2011
    Mensajes:
    77
    Likes:
    6
    Temas:
    1
    2 consultas primero mi thunder me dice siempre dns cache 0 porque será que no hace cache de DNS, y la otra consulta es compile el movistar.com.pe intente hacer dos plugin más con juegosjuegos,com y compile el codigo puesto aqui de softnix pero no logro que me aparezca en los repositorios lo agregue en le regex le di permisos cuando lo copio a la carpeta plugin del thunder reinicio thunder y squid y nada ni tampoco me crea una carpeta con el nombre del plugin en la carpeta thunder no se en que le puedo estar errando para un dato es que veo que todos los plugin que viene compilados por Joemg no pesan mas de 40 kb pero los que yo compile se van arriba de los 100 kb alguien me podrá dar una mano o alguien pudo crear algún plugin ???
     
    Última edición: 11 Ago 2012
  18. ronaldo09

    ronaldo09 Miembro nuevo

    Registro:
    27 Oct 2011
    Mensajes:
    46
    Likes:
    0
    Temas:
    0
    hola joemg felicitaciones y gracias por el aporte, estoy retomando algo de programcion. Una consulta en el codigo de speedtest esta esto de esta manera if ( (url.find(".movistar.com.pe/") y en la softnys esta de esta manera if ( ((url.find(".softnyx.com") != string::npos) ) hay alguna diferencia o esto no afecta al cacheo de archivos
     
    Última edición: 11 Ago 2012
  19. joemg6

    joemg6 Miembro maestro

    Registro:
    5 May 2010
    Mensajes:
    455
    Likes:
    198
    Temas:
    4
    Ahora el número de conexiones que generan las paginas es más alto que antes, recuerdo que antes se podía limitar hasta 30 conexiones por IP ahora esto generaría cierto tipo de lentitud en la navegación y eso que no menciono los juegos, algo prudente sería 80 conexiones, ya sabes en los protocolos más usados.
    Hay un detalle con respecto a los plugins cuando el contenido a hacer caché este al final de la URL y esté sin una incógnita o sea de esta forma (URL mercadolibre imagenes):

    http ://img2.mlstatic.com/s_MPE_v_I_f_2610761467_042012.jpg

    Ya no es necesario declarar la búsqueda de la extensión en el código de fuente, entonces el código sería:
    mlstatic.com.cpp
    Código:
    #include <iostream>
    #include <cstring>
    #include <vector>
    #include "../utils.cpp"
    
    // use this line to compile
    // g++ -I. -fPIC -shared -g -o mlstatic.com.so mlstatic.com.cpp
    // regex
    // http.*\[COLOR=Red].mlstatic[/COLOR]\[COLOR=Red].com.[/COLOR]*\[COLOR=Blue].jpg[/COLOR]
    
    
    string get_filename(string url) {
            vector<string> resultado;
            if (url.find("?") != string::npos) {
                stringexplode(url, "?", &resultado);
                stringexplode(resultado.at(resultado.size()-2), "/", &resultado);
                return resultado.at(resultado.size()-1);           
            } else {
                stringexplode(url, "/", &resultado);
                return resultado.at(resultado.size()-1);
            }
    }
    
    extern "C" resposta getmatch(const string url) {
        resposta r;   
    
    if ( (url.find("[COLOR=Red].mlstatic.com"[/COLOR]) != string::npos) 
       ) {
          
           r.file = get_filename(url);
          if (!r.file.empty()) {
             r.match = true;         
             r.domain = "[COLOR=Lime]mercadolibre_img[/COLOR]";
          } else {
             r.match = false;
          }
       } else {
          r.match = false;
       }
       return r;
    }
    
    Si e DNS caché se queda en 0 quiere decir que no está funcionando, fíjate que el IP del Servidor DNS 127.0.0.1 este al inicio en la configuración del DNS, y también si pusiste la regla DNS Cache en el crontab.
    Sobre los plugins no olvides algún paso, tal vez no le estas dando los permisos, en el caso del plugin de página juegosjuegos.com sería:

    http ://cdn.juegosjuegos.com/games14/9324.swf

    como vemos el contenido es del tipo que describi en el ejemplo anterior por lo tanto el código sería:
    juegosjuegos.com.cpp
    Código:
    #include <iostream>
    #include <cstring>
    #include <vector>
    #include "../utils.cpp"
    
    // use this line to compile
    // g++ -I. -fPIC -shared -g -o juegosjuegos.com.so juegosjuegos.com.cpp
    // regex
    // http.*\[COLOR=Red].juegosjuegos[/COLOR]\[COLOR=Red].com.[/COLOR]*(\[COLOR=Blue].swf|\.jpg|\.png[/COLOR])
    
    
    string get_filename(string url) {
            vector<string> resultado;
            if (url.find("?") != string::npos) {
                stringexplode(url, "?", &resultado);
                stringexplode(resultado.at(resultado.size()-2), "/", &resultado);
                return resultado.at(resultado.size()-1);           
            } else {
                stringexplode(url, "/", &resultado);
                return resultado.at(resultado.size()-1);
            }
    }
    
    extern "C" resposta getmatch(const string url) {
        resposta r;   
    
    if ( (url.find("[COLOR=Red].juegosjuegos.com[/COLOR]") != string::npos) 
       ) {
          
           r.file = get_filename(url);
          if (!r.file.empty()) {
             r.match = true;         
             r.domain = "[COLOR=Lime]juegosjuegos[/COLOR]";
          } else {
             r.match = false;
          }
       } else {
          r.match = false;
       }
       return r;
    }
    

    No hay problema, no afecta en el caché.
     
    Última edición: 11 Ago 2012
  20. dgonzaleznet

    dgonzaleznet Miembro maestro

    Registro:
    24 Oct 2011
    Mensajes:
    406
    Likes:
    41
    Temas:
    18
    Estaba haciendo un plugin para una página www.eluniverso.com y puse el codigo compile di permisos agregue el http.*\.eluniverso\.com .*\.jpg

    Este es el código que modifique...

    #include <iostream>
    #include <cstring>
    #include <vector>
    #include "../utils.cpp"

    // use this line to compile
    // g++ -I. -fPIC -shared -g -o movistar.com.pe.so movistar.com.pe.cpp
    // regex
    // http.*\.eluniverso\.com.*\.jpg

    string get_filename(string url) {
    vector<string> resultado;
    if (url.find("?") != string::npos) {
    stringexplode(url, "?", &resultado);
    stringexplode(resultado.at(resultado.size()-2), "/", &resultado);
    return resultado.at(resultado.size()-1);
    } else {
    stringexplode(url, "/", &resultado);
    return resultado.at(resultado.size()-1);
    }
    }

    extern "C" resposta getmatch(const string url) {
    resposta r;

    if ( (url.find(".eluniverso.com/") != string::npos) and (url.find(".jpg") != string::npos)
    ) {

    r.file = get_filename(url);
    if (!r.file.empty()) {
    r.match = true;
    r.domain = "eluniverso";
    } else {
    r.match = false;
    }
    } else {
    r.match = false;
    }
    return r;
    }

    Pero no me sale en el thunder report el plugin y parece que no está haciendo HIT

    Alguien me ayuda por favor?
     
Etiquetas: