Script para actualizar OPENDNS

Tema en 'Scripting & Scheduling' iniciado por steganos0629, 2 Ene 2012.

  1. steganos0629

    steganos0629 Member

    Me Gusta recibidos:
    0
    Hola a todos, espero alguien pueda ayudarme, resulta que para evitar estar poniendo en cada maquina algun filtro o control antiporno, he optado por usar el dns transparente del mikrotik y usar el servicio gratuito de opendns, todo funciona bien el único problema es que cuando tengo que reiniciar el router por X motivos tengo que actualizar el ip manualmente, aunque he optado por instalar un programita para ello en winxp, el cual lo ejecuto desde una determinada maquina, pero quiero q el mismo mikrotik pueda hacer esta actualización, he probado el script que circula por la red pero este no me funciona, alguien q tenga modificado dicho script y que le funcione?.
    este es el script q estoy usando:

    CODE, HTML o PHP Insertado:
    # DNSoMatic automatic DNS updates
    # User account info of DNSoMatic
    :global maticuser "micorreo@hotmail.com"
    :global maticpass "miclave"
    :global matichost "micabina"
    # No more changes need
     
    :global previousIP
     
    # Print values for debug
    :log info "DNSoMatic: Updating dynamic IP on DNS for host $matichost"
    :log info "DNSoMatic: User $maticuser y Pass $maticpass"
    :log info "DNSoMatic: Last IP $previousIP"
     
    # get the current IP address from the internet (in case of double-nat)
    /tool fetch mode=http address="checkip.dyndns.org" src-path="/" dst-path="/dyndns.checkip.html"
    :local result [/file get dyndns.checkip.html contents]
     
    # parse the current IP result
    :local resultLen [:len $result]
    :local startLoc [:find $result ": " -1]
    :set startLoc ($startLoc + 2)
    :local endLoc [:find $result "</body>" -1]
    :global currentIP [:pick $result $startLoc $endLoc]
    :log info "DNSoMatic: IP actual $currentIP"
     
    # Touching the string passed to fetch command on "src-path" option
    :local str "/nic/update?hostname=$matichost&myip=$currentIP&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG"
     
    :if ($currentIP != $previousIP) do={
    :log info "DNSoMatic: Update need"
    :set previousIP $currentIP
    :log info "DNSoMatic: Sending update $currentIP"
    :log info [ :put [/tool fetch host=MT user=$maticuser password=$maticpass mode=http address="updates.dnsomatic.com" src-path=$str dst-path=$matichost]]
    :log info "DNSoMatic: Host $matichost updated on DNSoMatic with IP $currentIP"
    }  else={
    :log info "DNSoMatic: Previous IP $previousIP and current $currentIP equal, no update need"
    }
    
     
    Última edición por un moderador: 20 Jul 2012
  2. joseph4ever

    joseph4ever Member

    Me Gusta recibidos:
    0
    # DNSoMatic automatic DNS updates
    # User account info of DNSoMatic
    :global maticuser "micorreo@hotmail.com" .... este es el user de dyndns
    :global maticpass "miclave" ......... este es el pass de la cuenta dyndns
    :global matichost "micabina" ......... uhmmm, este creo que es la interface WAN de tu mikrotik, asi como los demas scripts que he visto ..
     
  3. makako

    makako Member

    Me Gusta recibidos:
    4
    No entiendo la relacion de OPENDNS con Dyndns???:confused:

    El compañero quiere actualizar su ip para la pagina www.opendns.com no para dyndns.
    En lo personal yo también uso opendns y no he logrado conseguir el famoso script para actualizar la IP, lo unico que me ha servido es utilizar la herramienta de actualizacion de IP que proporciona Opendns en su pagina...

    A ver si alguien mas nos puede iluminar un poco..

    Saludos!!
     
  4. joseph4ever

    joseph4ever Member

    Me Gusta recibidos:
    0
    Bueno, me equivoquee =(

    Disculpen amigos
     
  5. steganos0629

    steganos0629 Member

    Me Gusta recibidos:
    0
    no te preocupes amigo vale la intención.
     
  6. ADVANCED.Net

    ADVANCED.Net Active Member

    Me Gusta recibidos:
    6
    Qué tal, alguien que me guie para la configuracion del OpenDns, lo quiero configurar al DNS cache de MiKroTiK.

    Saludos!
     
  7. makako

    makako Member

    Me Gusta recibidos:
    4
    Que tal:
    Primero que nada registrarte y configurar una red nueva en la pagina de opendns.
    luego tienes que sustituir los dns que tienes actualmente por los de opendns, solo recuerda que los filtros que apliques seran para todos los que usen tu red, tambien puedes manejar adress list para que solo algunos usen esos dns:
    208.67.222.222
    208.67.220.220

    [FONT=Arial, Helvetica, sans-serif]
    [/FONT]
     
  8. ADVANCED.Net

    ADVANCED.Net Active Member

    Me Gusta recibidos:
    6
    Que tal, lo que sucede es que; ya me registre y configure los dns solo en mí computadora y no funcionan el bloqueo a las web porno.
    aqui la imagen;
    [​IMG]

    sera que tengo que desactivar el dns cache y el dns cache transparente.
     
  9. makako

    makako Member

    Me Gusta recibidos:
    4
    Asi es amigo, recuerda que aunke le pongas los dns de jupiter.. jeje:cool:... el MK va a reemplazarlos por los que configuraste en el DNS de Mikrotik, es por eso que te recomendaba la opcion de usar adress list, asi creas una lista de las ips que quieres que usen dns normal y las demas el de opendns...
     
  10. ADVANCED.Net

    ADVANCED.Net Active Member

    Me Gusta recibidos:
    6
    umh, entonces como seria esa regla? teniendo en cuenta que el rango de ip a bloquear es de 192.168.2.2 - 192.168.2.22... haber si me ayudas :rolleyes:
     
  11. lepumin

    lepumin Well-Known Member

    Me Gusta recibidos:
    37
    Última edición por un moderador: 27 Mar 2014
  12. ADVANCED.Net

    ADVANCED.Net Active Member

    Me Gusta recibidos:
    6
    Última edición por un moderador: 27 Mar 2014
  13. rafaelgc

    rafaelgc Active Member

    Me Gusta recibidos:
    71
    Lo que yo hago.

    Empleo una adaptación de este script, que funciona:
    Dynamic DNS Update Script for DNSoMatic.com behind NAT - MikroTik Wiki

    En realidad lo mezclo con mi script de actualización de dyndns y así aprovecho que gran parte de la tarea es similar. Lo paso con un scheduler cada minuto. Además hay que tener en cuenta que el balanceo de líneas causará problemas, con lo que debemos tomar medidas para que todo el tráfico dns salga por una de ellas, y sea esa la que actualicemos en dns-o-matic. Por cierto, podemos aprovechar para tener varios perfiles de filtrado (tantos como líneas tengamos).

    Tengo una address-list con los clientes que tienen filtrado, llamada "clientes con filtro OPENDNS". Incluyo en ella a los clientes que contraten el filtro.

    Con la siguiente regla redirijo todas sus consultas DNS al servidor de OpenDNS:

    CODE, HTML o PHP Insertado:
    /ip firewall nat
    add action=netmap chain=dstnat comment="DNS de clientes con filtrado redirigido a DNS OPENDNS ------------------" disabled=no dst-port=53 in-interface=05LAN \
        protocol=udp src-address-list="clientes con filtro OPENDNS" to-addresses=208.67.222.222
    No tengo problemas con DNS caché que está activado. Al fin y al cabo parece que DNS caché lo que hace es lo mismo que esta regla, pero poniendo como destino la IP del mikrotik. Evidentemente, no importa la configuración DNS del cliente final, ya que se le redirige siempre al servidor de opendns.

    Todavía no lo tenemos en explotación, pero las pruebas salen bien.
     
  14. marcosmp

    marcosmp New Member

    Me Gusta recibidos:
    0
    hola,

    Podrías colocar las modificaciones que has hecho para que funcione con Opendns?.
    Un saludo
     
  15. Elvicito

    Elvicito Member

    Me Gusta recibidos:
    7
    Alguien que se apiade, me urge un filtro de pornografia, me parece genial la idea que publican aqui pero no se si alguien se pueda dar un tiempito para ayudarnos a implementarlo desde cero plisssssssssss
     
  16. steganos0629

    steganos0629 Member

    Me Gusta recibidos:
    0
    El script q me esta funcionando es este


    # Actualizacion Automatica de OpenDNS
    :global opendnsuser "usuarioopendns"
    :global opendnspass "password"
    # opendnshost lo dejan asi tal como esta no se hace modificaciones
    :global opendnshost "all.dnsomatic.com"
    :global wanpppoe "nombre de la interface del cliente PPPoE"
    :global antiguoIP1


    # Obteniendo la IP publica
    :local miIP [/ip address get [find interface=$wanpppoe] address]
    :local slash [:put [:find $miIP "/"]]
    :local actualIP [:pick $miIP 0 $slash]


    # Touching the string passed to fetch command on "src-path" option
    :local str "/nic/update?hostname=$opendnshost&myip=$actualIP&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG"


    :if ($actualIP != $antiguoIP1) do={
    :log info "OpenDNS: Necesita Actualizacion"
    :set antiguoIP1 $actualIP
    :log info "OpenDNS: Enviando actualizacion $actualIP"
    /tool fetch host=$opendnshost user=$opendnsuser password=$opendnspass mode=http address="updates.dnsomatic.com" src-path=$str dst-path=$opendnshost
    :log info "OpenDNS: Host $opendnshost actualizado con DNSoMatic con el IP $actualIP"
    } else={
    :log info "OpenDNS: IP antigua $antiguoIP1 y la IP actual $actualIP son iguales, no se necesita actualizacion"
    }


    tandras que irte a www.dnsomatic.com y activar ahi el servicio para tu OPENDNS
    Cabe mencionar que esto solo funciona si tienes tu router en modo bridge.
     
  17. rafaelgc

    rafaelgc Active Member

    Me Gusta recibidos:
    71
    Este script funciona correctamente, pero tiene el problema de que actualizará a la vez todos los hosts que tengas configurados en opendns, ya que estás actualizando "all.dnsomatic.com".

    Para actualizar solamente el host que se desee, las líneas:
    CODE, HTML o PHP Insertado:
    # opendnshost lo dejan asi tal como esta no se hace modificaciones
    :global opendnshost "all.dnsomatic.com"
    deben cambiarse por:
    CODE, HTML o PHP Insertado:
    # colocar aquí entre las comillas el nombre del hostopendns configurado
    :global opendnshost "filtradodepornografia"


    Lógicamente, donde dice "filtradodepornografía" debemos poner nuestro propio host

    También, donde dice:
    CODE, HTML o PHP Insertado:
    /tool fetch host=$opendnshost user=$opendnsuser password=$opendnspass mode=http address="updates.dnsomatic.com" src-path=$str dst-path=$opendnshost
    Debemos poner:
    CODE, HTML o PHP Insertado:
    /tool fetch host=updates.dnsomatic.com user=$opendnsuser password=$opendnspass mode=http address="updates.dnsomatic.com" src-path=$str dst-path="/resultadoOpendns.txt"
    De esta forma se actualizan todos los hosts configurados, sino solamente el que especificamos al principio, en nuestro caso ficticio, "filtradodepornografia". Esto es bueno porque quizá querramos tener varios hosts diferentes configurados al mismo tiempo, uno para protección infantil, otro para uso de empresas, etc. Asociando cada host a una línea WAN podremos conseguirlo.
     
  18. ADVANCED.Net

    ADVANCED.Net Active Member

    Me Gusta recibidos:
    6
    Que tal, dime cuando se esta activo el https://www.dnsomatic.com/ ?? cuando el icono de la mano esta en verde ó griss?
    así lo tengo:

    [​IMG]
     
    Última edición por un moderador: 27 Mar 2014
  19. rafaelgc

    rafaelgc Active Member

    Me Gusta recibidos:
    71
    Tienes razón, puede ser confuso. Activo en verde. Inactivo en gris.

    Te recomiendo usar nombres de host sin espacios. En dydns las direcciones no tienen espacios, por lo que no es problema, pero los hosts opendns sí admiten espacios en el nombre y a veces esto me dió guerra.
    Ten en cuenta también que hay un par de erratas en el script que publica el amigo steganos0629, seguramente debidos a que no lo ha etiquetado como código. En concreto las caritas que aparecen y un espacio en la palabra wildcard (salió wildca rd). Las caritas hay que sustituirlas por dos puntos y P, osea
    CODE, HTML o PHP Insertado:
    :p
    Suerte y preguntad lo que necesitéis
     
  20. steganos0629

    steganos0629 Member

    Me Gusta recibidos:
    0
    Hola amigo rafaelgc, al inicio hacia como tu dices poner en
    :global opendnshost "filtradodepornografia" pero lamentablemente no me funcionaba para nada, por eso opte por poner
    :global opendnshost "all.dnsomatic.com", esto lo probe varias veces en mk version 3.30, quizas algo estuve haciendo mal, una vez q me funciono con el codigo q puse arriba lo deje, pero le volvere a dar una revision a ver si puedo quitar eso de :global opendnshost "all.dnsomatic.com".
     

Compartir esta página