Powershell_> Obteniendo listado de Ips de Gmail

Hola a todos aprendices:

Se que hace tiempo que no escribimos, pero la verdad es que estamos muy liados, aunque prometo que no nos olvidamos de vosotros.

Hoy os traigo un script que por falta de tiempo lo suelo hacer a mano pero como no me gusta repetirme, lo he automatizado con nuestro querido PowerShell, expliquemos un poco el porqué, hace un tiempo que un cliente tiene montado para temas de marketing un servicio en AWS y como hacen las cosas bien lo tienen todo capado, ¿qué ocurre?, pues que usan Google apps y cada cierto tiempo te cambian las ips de los servicios de correo, y hay que estar haciendo lo que te dice el siguiente articulo de Google: https://support.google.com/a/answer/60764?hl=es para coger dichas ips y permitirlas en el correspondiente FW. Problema; el listado de los comandos deja el resultado “sucio” y luego hay que limpiarlo manualmente, lo que aunque no es demasiado trabajo si es un engorro, así que vamos a  buscar una solución para facilitarnos la vida.

Según el artículo de soporte de Google, primero hay que recuperar los registros spf de Google con el comando nslookup y después buscar los registros DNS asociados a los dominios uno a uno, veamos primero lo que os comentaba antes:

Como se puede observar no es muy cómodo tener los listados de ips así, para ello viene al rescate nuestro amigo PowerShell con su cmdlet Resolve-DnsName y un par de tips para ahorrarnos trabajo.

Vaya, esto me deja basura y no puedo trabajar directamente con los strings, bueno en realidad si, veamos como:

Vale,  ya tenemos los strings pero tengo que limpiarlos para poder quedarme con lo que me interesa, que es _netblocks.google.com, _netblocks2.google.com y _netblocks3.google.com el resto me sobra, no pasa nada usaremos el Split para ello veamos como:

Definimos $opciones y los $separadores (aquello que no nos gusta que aparezca) y con Split nos dejará el resultado pristino 😉 , ahora si podemos trabajar con esos datos, pero para ello los he guardado en la variable $listadominios, continuamos ahora con:

Con un simple foreach le decimos que para cada dominio de la lista de dominios ejecute el comando (Resolve-DnsName -type TXT $dominio -Server 8.8.8.8).strings que nos guardará en $ListadoStringsTemp los strings y los vamos almacenando en $ListadoStrings cuando acaba el foreach $ListadoStrings tiene todo esto:

Uffff, pues no hemos mejorado mucho que digamos, no os preocupéis porque cuando ejecutamos el:

$ListadoStrings.split($separadores,$opciones)

Nos quedará así:

Uepaaaa ahora si, a partir de aquí ya podéis organizarlos como queráis, eso ya os lo dejo a vuestro criterio, y sin más dilación el script os lo dejaré colgado en nuestro github como siempre.

Espero que os guste y observéis que PowerShell nos puede ahorrar mucho trabajo, recordad automatizad todo lo que podáis y viviréis más tranquilos :-D.

Enlaces:
El script: https://github.com/aprendizdesys/powershell/blob/master/Get-IpsGmail.ps1

El articulo de Google:  https://support.google.com/a/answer/60764?hl=es

 

Deja un comentario

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