Script NoIP

Cuando el proveedor de internet no brinda IP fija, y tenemos algún servicio hosteado en nuestra red, podemos publicarlo con una regla dst-nat, pero debemos conocer la IP pública para poder accederlo. También podemos querer tener administración del router MikroTik para brindar soporte por ejemplo. El siguiente script viene a suplir esa necesidad.

Verán que primero se realiza una falsa actualización, esto se debe a que si la dirección IP permanece estática NO-IP suele dar de baja el host o solicitar nuestra confirmación del host. Con esta falsa actualización evitamos esta molesta re confirmación.

/system script export

#Se envía una falsa actualización

:log info “NO-IP-FAKE”
:global ddnslastip2
:global ddnsipcn2
:global ddnsip2
:global str2
:set ddnsip2 192.168.168.1
:if ($ddnsip2 != $ddnslastip2) do={
:log info “Enviando actualizacion no-ip Antes: $ddnslastip2 Ahora: $ddnsip2”
:set str2 “/nic/update?hostname=NombreHost.noip.me&myip=$ddnsip2″
/tool fetch address=dynupdate.no-ip.com src-path=$str2 mode=http user=Usuario password=Clave dst-path=noip
:delay 1
/file remove noip
:set ddnslastip2 “”
:log info “Falsa Actualización enviada”
} else={
:log info ” No es necesario actualizar Antes: $ddnslastip2 Ahora: $ddnsip2″
}

:log info “En 10 minutos se enviara la direccion IP real”
:delay 600

#Se envía la actualización real

:log info “NO-IP”
:global ddnslastip
:global ddnsipcn
:global ddnsip
:global str
:set ddnsipcn [ /ip address get [/ip address find interface=1WAN] address ] :for i from=( [:len $ddnsipcn] – 1) to=0 do={
:if ( [:pick $ddnsipcn $i] = “/”) do={
:set ddnsip [:pick $ddnsipcn 0 $i] }
}
:set ddnslastip “”
:if ($ddnsip != $ddnslastip) do={
:log info “Enviando actualizacion no-ip Antes: $ddnslastip Ahora: $ddnsip”
:set str “/nic/update?hostname=NombreHost.noip.me&myip=$ddnsip”
/tool fetch address=dynupdate.no-ip.com src-path=$str mode=http user=Usuario password=Clave dst-path=noip
:delay 1
/file remove noip
:set ddnslastip “”
:log info “Actualización enviada”
} else={
:log info ” No es necesario actualizar Antes: $ddnslastip Ahora: $ddnsip”
}

 

Luego, se debe programar un evento para que el script corra, por ejemplo, cada 12 horas.

sched

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Luego de configurar ambas partes, contaremos con acceso a nuestro equipo de manera remota. Esto puede combinarse con el Port-Knocking para mayor seguridad. Ver artículo al respecto.

One thought on “Script NoIP

Dejá un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *