Bash Script – Obtener redes y AS number por su dominio
-
Hola.
Una aportación a la causa :)
Un bash-script (para ser ejecutado desde shell), para un pfSense, para obtener el AS number y las redes de un dominio.
Como funciona, paso a paso:
Para obtener la IPv4 del dominio: pfsense.org
host -4 pfsense.org | grep "pfsense.org has address" | cut -d " " -f 4
208.123.73.69Para obtener el AS number de ese dominio por su IPv4
whois -h v4.whois.cymru.com – "-c 208.123.73.69"
AS | IP | CC | AS Name
30312 | 208.123.73.69 | US | NETGATE - Netgate, US
Filtramos para obtener solo el nº
whois -h v4.whois.cymru.com – "-c 208.123.73.69" | grep -v "AS" | cut -d "|" -f 1
30312
Obtenemos las redes/subredes del AS Number
whois -h whois.radb.net – '-i origin AS30312' | awk '/^route:/ {print $2;}' | sort | uniq
192.207.126.0/24
208.123.73.0/24El código del script:
#!/bin/bash ############################################################################ # GET Nets and AS by domain # # BASH SCRIPT FOR PFSENSE 2.3 # # BY JAVIER CASTAÑÓN - 2016 - HTTPS://JAVCASTA.COM # ############################################################################ # uso: alojar getNetsByDomain.sh en carpeta,p.e. /tmp o /scripts # # ejecutarlo desde shell:# sh /tmp/getNetsByDomain.sh # ############################################################################ read -p 'Enter domain (foo.bar): ' INPUTDOMAIN LAIP=$(host -4 $INPUTDOMAIN | grep "$INPUTDOMAIN has address" | cut -d " " -f 4) printf "IP for $INPUTDOMAIN is $LAIP \n" printf "getting AS NUMBER... \n" ASNUMBER=$(whois -h whois.cymru.com -- "-c $LAIP" | grep -v "AS" | cut -d "|" -f 1) ASSTRING="AS$ASNUMBER" printf "ASN for $INPUTDOMAIN is $ASSTRING \n" whois -h whois.radb.net -- "-i origin $ASSTRING" | awk '/^route:/ {print $2;}' | sort | uniq > /tmp/thenet.tmp THENET=$(cat /tmp/thenet.tmp) printf "The nets for $INPUTDOMAIN is in file /tmp/thenet.tmp: \n" echo $THENET
(Nota: a veces el whois a whois.cymru.com da un time out, y suele tardar unos 30sg, no ejecutar demasiados whois queries ya que el servidor ese se satura bastante y te corta)
Lo tengo en: https://www.javcasta.com/pfsense-bash-script-obtener-redes-y-as-por-su-dominio-getnetsbydomain-sh/
Salu2
– add --
Las redes obtenidas el script las guarda en /tmp/thenet.tmp , con el objeto de vía scripting poder confeccionar aliases de pfSense para un dominio de forma cómoda, cuando lo tenga, ya avisaré.
-
Hola
Se me olvidaba lo más importante. Como pfSense trae la utilidad Bulk import para Alias, no sigo con scripting para esto, pues ya es trivial implementar el alias:
Una vez obtenida la lista de redes de un dominio vía el script en /tmp/thenet.tmp
Para crear un alias para ese dominio, por ejemplo si hemos obtenido la lista para facebook.es:
Copiamos el contenido de /tmp/thenet.tmp editandolo. (se puede usar Diagnostics > Edit file)
Vamos a Firewall> Aliases > IP: [ Import ] (abajo a la derecha)
Y pegamos la lista de redes en Aliases to import, (ponemos un name al alias facebook_es y descripción si se desea y save)
Y hemos creado un alias para un dominio
Salu2
-
maestro!!
-
Hola
Finger, jaja, no, maestro no, parado, tengo tiempo :)
Salu2