Active directory, Exchange, linux, Windows Server 2003, Windows Server 2008, Cisco, un poco de Scripting y lo que surja!
domingo, 13 de octubre de 2013
Vmware: Error añadiendo un Datastore a ESXI
Volvemos a la carga, esta vez con vmware esxi, con una infraestructura nueve cita y todo recién instalado, intentando añadir un datastore me daba un error "Call "HostDatastoreSystem.QueryVmfsDatastoreCreateOptions" for object "datastoreSystem-9" on vCenter Server "XXXX" failed." y no había forma humana de conseguir añadirlo, así que me puse a buscar la solución al pequeño problemilla.
Al parecer se puede deber a la información que se queda en el disco al crear los volúmenes Raid con las utilidades de disco de Dell y HP, asi que lo que vamos a hacer es eliminar toda la información y dejarlo en blanco con partedUtil
Lo primero que tenemos que hacer es, desde nuestro vcenter conectarnos al host ESXI que nos esta dando el problemilla y en la pestaña de configuración buscar "Security Profile", y una vez dentro pinchamos en "propiedades" en la parte de "Servicios".
Una vez dentro buscamos "SSH" y pinchamos en "options", le damos a "start" y ahora ya podemos acceder por SSH al ESXI para resolver nuestro pequeño problema.
Ahora accedemos por ssh a nuestro host esxi y hacemos un "ls /vmfs/devices/disks/" aquí nos saldrán los discos y particiones que tiene nuestro esxi, las particiones vienen indicadas por :X donde la X es el numero de partición.
ahora nos fijamos en el disco que nos estaba dando error al principio, en nuestro caso era "naa.6b8ca3a0f4d3c90019e30a9006f0a9fd", una vez tenemos ya identificado el disco utilizaremos el partedUtil para dejar el disco en blanco completamente para que nuestro ESXI no se queje al añadir el datastore.
partedUtil mklabel /vmfs/devices/disks/naa.6b8ca3a0f4d3c90019e30a9006f0a9fd msdos
Una vez ejecutado el comando volvemos a intentar añadir el datastore y esta vez ya no nos da error y nos dice que va a crear una nueva partición :D
Y por ultimo no os olvidéis de desactivar el SSH!!!!
Hasta la próxima!!
viernes, 22 de junio de 2012
Centos 5 y 6 ManagementPack para Scom 2012
Vamos a ver como crear un Management Pack de Centos 5 y Centos 6 para System Center Operations Manager 2012.
Ha cambiado algunas cosillas desde el 2007 R2 y pretendo ahorraros los quebraderos de cabeza que he estado pasando hasta dar con la solucion a cada problema que iba saliendo, hasta tenerlo fino fino.
Por cierto, esto por supuesto que no esta soportado por microsoft, pero funciona bastante bien.
Primero que nada desde la consola del SCOM instalamos los MP de Red Hat 5, 6 y el Operating System Library, para ello en la pestaña de Administracion le damos al boton derecho sobre ManagementPacks y le damos a "Import Management Pack"
/DataItem/WsManData/*[local-name(.)='SCX_OperatingSystem']/*[local-name(.)='Caption']
CentOS Linux release 6
//*[local-name()="Caption"]
CentOS release 6
Microsoft.Linux.CentOS.Library
7.3.2026.0
31bf3856ad364e35
Si no pasa nada "raro", como fallo con la resolucion DNS o cualquier otra cosa parecida nos deberia salir que ha descubierto el equipo y que lo seleccionemos para instalar el agente y "manejarlo"
Ha cambiado algunas cosillas desde el 2007 R2 y pretendo ahorraros los quebraderos de cabeza que he estado pasando hasta dar con la solucion a cada problema que iba saliendo, hasta tenerlo fino fino.
Por cierto, esto por supuesto que no esta soportado por microsoft, pero funciona bastante bien.
Primero que nada desde la consola del SCOM instalamos los MP de Red Hat 5, 6 y el Operating System Library, para ello en la pestaña de Administracion le damos al boton derecho sobre ManagementPacks y le damos a "Import Management Pack"
Nos saldra un recuadro, pinchamos en "add" y seleccionamos la opcion "add from disk..."
y seleccionamos la carpeta de ManagementPacks del CD de Scom 2012, ya que ahora mismo estan mas actualizados los managementspack de RedHat en el CD que online, no coments xD
Tenemos que escoger los siguientes ManagementsPacks:
- Red Hat Operating System Libary
- Red Hat Enterprise Linux Server 5 Operating System
- Red Hat Enterprise Linux Server 6 Operating System
Ahora le damos a "install" y ya tendremos el primer paso.
Una vez los tenemos instalados pasaremos a la fase 2, tenemos que exportar los MP a XML para poder modificarlos, aqui es donde viene el cambio desde el 2007 R2 (o al menos no sabia que se pudiera hacer antes asi)
Primero que nada creamos una carpeta en c: llamada MP o como vosotros querais, luego para exportar los MP tenemos que ejecutar el siguiente comando en PowerShell del SCOM:
get-SCOMManagementPack -Name Microsoft.Linux.RedHat.Library | Export-SCOMManagementPack -Path c:\mp
Una vez hecho esto, veremos en nuestro directorio el fichero del MP ya en XML, repetimos esto con cada uno de los otros MP y nos quedara el directorio con todos los XML dentro.
Ahora renombramos los ficheros y donde pone RedHat y RHEL lo sustituimos por centos.
Tenemos que modificar los siguientes textos en el archivo de Libreria y en los archivos del MP especifico de Centos 5 y Centos 6:
Texto Original
|
Text Reemplazado
|
Library XML file
|
CentOS.5 XML file
|
| RHEL | CentOS | X | |
| x86 | i386 | X | |
| x64 | x86_64 | X | |
| RedHat | CentOS | X | X |
| Red Hat | CentOS | X | X |
| Enterprise Linux Server | Linux | X | X |
Una vez realizados estos cambios "genericos" vamos ya a los cambios especificos que tendremos que realizar en cada fichero.
En Microsoft.Linux.centos.Library.xml tenemos que buscar "Monitoring --> Discoveries --> Discovery con el ID “Microsoft.Linux.CentOS.Computer.Discovery”. y cambiamos los parametros de FilterProperty y FilterValue por estos:
<FilterProperty> //*[local-name()="Caption"] FilterProperty>
<FilterValue> CentOS FilterValue>
<FilterValue> CentOS FilterValue>
Luego en el mismo fichero tenemos que modificar la siguiente cadena,
Texto Original:
<DataSource ID="DS" TypeID="Unix!Microsoft.Unix.WSMan.TimedEnumerate.Filtered.Equal.DiscoveryData">
Texto Modificado:
<DataSource ID="DS" TypeID="Unix!Microsoft.Unix.WSMan.TimedEnumerate.Filtered.ContainSubstring.DiscoveryData">
Como podeis observer unicamente cambiamos "Equal" por "ContainSubstring" para evitar que busque la cadena exacta y asi nos coja todas las CentOS.
Ahora vamos al fichero Microsoft.Linux.centos.6.xml y buscamos la siguientes cadenas:
y la sustituimos por esta:
En el fichero Microsoft.Linux.centos.5.xml tenemos que hacer exactamente lo mismo solo que en vez de release 6 sera release 5.
Una vez tenemos todo esto procederemos al "sellado" del MP, para ello tenemos que generar una "key file" con el comando sn.exe que lo podeis encontrar en el .Net Framework 2.0 SDK.
Una vez lo tenemos ejecutamos sn.exe -k key.snk y nos generara el fichero con la Key para poder sellar el MP.
Ahora vamos a sellar el MP con esta Key que hemos generado, para ello necesitamos la herramienta "mpseal.exe" que esta en el directorio "SUPPORTTOOLS\AMD64" del DVD de instalacion, la copiamos a nuestra carpeta c:\mp y desde ahi "operamos", tenemos que ejecutar el siguiente comando, la unidad D: es el DVD de instalacion del SCOM 2012
mpseal Microsoft.Linux.centos.Library.xml /i D:\MANAGEMENTPACKS /Keyfile key.snk /Company "Microsoft"
Ahora ya tenemos generado el fichero "Microsoft.Linux.CentOS.Library.mp", solo nos falta sacar de este fichero el public key token para sustituirlo en los MP particulares que hacen referencia a esta libreria.
Para esto utilizaremos otra vez el comand sn.exe:
Ahora con el Public key token editamos el Microsoft.Linux.centos.6.xml y buscamos la siguiente cadena:
Sustituimos el PublickeyToken que vemos ahi por el que nos ha devuelto el comando sn.exe
Con esto ya tenemos el MP de la Libreria y los XML de Centos 5 y 6.
Ahora solo tenemos que importarlas desde la consola del SCOM:
Ya tenemos los MP importados en nuestro SCOM 2012, ahora nos falta "crear" el agente para Centos, para ello vamos a la carpeta donde estan todos los agentes de Linux (C:\Program Files\System Center 2012\Operations Manager\Server\AgentManagement\UnixAgents) y copiamos el de redhat "scx-1.3.0-206.rhel.6.x64.rpm" y lo llamamos "scx-1.3.0-206.centos.6.x86_64.rpm" esto para 64 bits, para 32 copiamos el "scx-1.3.0-206.rhel.6.x86.rpm" y lo llamamos "scx-1.3.0-206.centos.6.i386.rpm"
Para que nos coja los cambios rapidamente reiniciamos los servicios "System Center Management" y "System Center Management Configuration"
Con esto ya estamos preparados para empezar a agregar nuestras Centos Favoritas!
Primero que nada en la Centos tenemos que instalar el paquete redhat-lsb que es una dependencia del agente del SCOM 2012, una vez con esto instalado nos vamos a la consola de administracion, Discovery Rules boton derecho "Discovery Wizard" y seleccionamos "Linux Computers"
En la siguiente ventana que nos aparece le damos a "add" y ahi tenemos que poner todos los datos del servidor, IP o DNS y un usuario que tenga permisos por SSH.
MUCHO OJO CON LAS CONTRASEÑAS, DURANTE LA ELABORACION DE ESTE TUTORIAL DETECTE UN BUG, SI TIENES ALGUNO DE ESTOS CARACTERES $%& EN LA CONTRASEÑA TE DA UN ERROR DESCONOCIDO Y TE PUEDES VOLVER LOCO, ME COSTO BASTANTE DARME CUENTA DE QUE ERA LA CONTRASEÑA...
Ahora le damos a save y en la siguiente pantalla que nos aparece seleccionamos "All management servers resource pool" en "select target resource pool" y le damos a "Discover"
Si nos da algun problema con la firma del certificado, podemos consultar aqui para solucionarlo:
Una vez acabe el proceso nos dira "success" y ya lo tenemos listo, la primera fase....
Ahora nos vamos a "unix/linux" computers y ahi nos aparecera nuestro linux, no os asusteis si todavia no pone "Centos" es normal, lleva su tiempo y aun tenemos que hacer unas "cosillas" xD
Ahora tenemos que desplegar las RunAs accounts, esto se podria haber hecho antes pero bueno...
Empezamos creando un nuevo "Resource Pool" y le vamos a llamar "Linux Monitoring Pool"
Ahora vamos a "Administration" y en la pestaña de "unix/linux Computers" con el boton derecho seleccionamos "Change Resource Pool" y elegimos el nuevo que hemos creado.
Ahora nos vamos a "Unix/linux Account" dentro de "Run as configuration" y creamos una "Monitoring account", ponemos la descripcion y luego le decimos el usuario root y que no utilize elevacion de privilegios.
Vale ya tenemos la cuenta creada, ahora hay que asociarla a los perfiles, seleccionamos la opcion de "profiles" que esta justo encima y en el campo de buscar ponemos "Linux" los 3 que aparecen hay que pinchar doble click sobre ellos y asociarle la run as account que hemos creado antes al equipo linux que corresponda.
una vez hecho esto, solo hay que esperar un rato y nos aparecera nuestra queria Centos en el panel "Administration" en la pestaña de "unix/linux Computeres" donde antes nos aparecia "Unknown"
Con esto y un bizcocho ya teneis vuestra Centos Monitorizada con SCOM 2012.
He colgado en CodePlex el Management Pack de Centos 5 y 6 que me cree, ya que no encontre ninguno por ahi https://scxmpcentos56.codeplex.com/
UPDATE: Al final tuve que crear un MP para la CentOS 6.0 ya que el "caption" es diferente a la 6.X y no lo detectaba el discovery, tambien esta subido en codeplex.
Gracias a Omar Lopez esto ha sido posible ya que el ha sido mi guia espiritual de SCOM 2012 xD
Os dejo algunos links que me han sido muy utiles:
Espero que os sea de utilidad!!!!
Un saludo
lunes, 20 de febrero de 2012
VPN de TMG 2010 a Cisco ios
Forefront TMG 2010 soporta multiples protocolos para establecer VPNs SITE-TO-SITE incluidos PPTP, L2TP, e IPSEC.Para establecer una VPN con Cisco IOS, ASA o PIX el unico soportado es IPSEC.
Aqui vamos a ver como realizar una conexion SITE-TO-SITE entre un Firewall TMG 2010 y un Router Cisco.
El escenario seria el siguiente:
Configurando el TMG 2010 Firewall
Abrimos la consola de administracion de TMG 2010 y seleccionamos "Directiva de acceso Remoto VPN", una vez ahi seleccionamos la pestaña de "Sitios Remotos" y en el panel de tareas seleccionamos "Crear conexion VPN de sitio a sitio"
Nos aparecera un Wizzard donde nos pide una serie de datos para configurar la VPN, primero que nada le tenemos que poner una descripcion.
En el siguiente paso nos pide la direccion ip publica del ASA remoto y la ip publica del TMG local.
Para VPN punto a punto la mejor solucion es utilizar certificados pero dado que es mucho mas complejo muchos administradores optan por una clave compartida (pre-shared keys), elegir una clave que sea lo suficientemente segura, que contenta numeros y letras, podeis recurrir a algun generador de contraseñas.
Hay que añadir el rango de direcciones del sitio remoto, en nuestro caso 192.168.2.0
Hay que crear una regla de enrutamiento para la redes internas que queremos que vean desde el sitio remoto. El wizard por defecto te crea esta regla automaticamente.
Ahora necesitamos una regla del firewall para permitir la comunicacion entre ambas sedes.
Si es un sitio de confianza seleccionaremos todo el trafico saliente, si no es de confianza podemos selecionar que puertos queremos abrir.
Revisar la configuracion y darle a finalizar
No apliqueis la configuracion todavia. La configuracion por defecto de encriptacion seleccionados por TMG son incompatibles con Cisco IOS/ASA/PIX
Para cambiarlos, tenemos que darle a boton derecho en el nuevo sitio que nos ha creado y darle a propiedades, seleccionamos la pestaña "Conexion" y luego en "Configuracion de IPsec"
Para la Fase I hay que cambiar el Algoritmo de cifrado a "3DES", el algoritmo de integridad a "SHA1" y Autenticar y generar una clave nueva cada "86400" segundos.
Para la Fase II hay que cambiar el Algoritmo de cifrado a "3DES", el Algoritmo de integridad a "SHA1" y en configuracion de claves de sesion, generar nueva clave cada "4608000 KB" o 228800 segundos.
Una vez completado esto le damos a aceptar y aplicamos los cambios en la consola del TMG 2010.
Configurando Cisco IOS 12.4.X
Nos conectamos al Router como adminitrador y entramos en el modo de configuracion.
Para configurar los parametros de la Fase I, establecer una politica de ISAKMP y fijar los parametros para usar una pre-shared key, usaremos 3des/sha para la integridad de la encriptacion, especificaremos el uso de Diffie-Hellman Group 2 (1024-bit). Por defecto ya tiene Autenticar y generar una nueva clave cada 86400 segundos, en caso de que pongamos el comando "lifetime 86400" cuando hagamos un "sh run" no nos aparecera reflejado en la configuracion.
----------------------------------------------------------------------------------
crypto isakmp policy 11
encr 3des
authentication pre-share
group 2
----------------------------------------------------------------------------------
encr 3des
authentication pre-share
group 2
----------------------------------------------------------------------------------
Ahora configuramos la pre-shared key y el destino del tunel
----------------------------------------------------------------------------------
crypto isakmp key A3das34rfnporfmefmun!$ address 90.202.51.100
----------------------------------------------------------------------------------
Ahora configuramos el "transform" del Ipsec que sera combinado posteriormente con el resto de la politica de Ipsec con el comando crypto-map. En este caso "TMG2010" es simplemente un nombre que luego nos servira para asociarlo a un crypto-map.
----------------------------------------------------------------------------------
crypto ipsec transform-set TMG2010 esp-3des esp-sha-hmac
----------------------------------------------------------------------------------
Ahora crearemos el crypto-map, donde lo relacionaremos con el Transoform-set, el destino del tunerl y le pondremos el nombre "CENTRAL" que utilizaremos luego para activarlo en la interfaz Wan del router.
----------------------------------------------------------------------------------
crypto map CENTRAL 11 ipsec-isakmpset peer 90.161.68.12
set transform-set TMG2010
set pfs group2
match address 120
----------------------------------------------------------------------------------
Ahora creamos la access-list 120 que es la que pusimos en el crypto-map y nos indica que todo el trafico desde la red 192.168.2.0/24 y con destino a la red 192.168.0.0/24 lo enviara a traves del tunel.
----------------------------------------------------------------------------------
access-list 120 permit ip 192.168.2.0 0.0.0.255 192.168.0.0 0.0.0.255
----------------------------------------------------------------------------------
En nuestro caso tenemos la salida a internet con NAT, asi que crearemos un route-map para evitar que nos intente natear lo que va hacia la VPN de la siguiente manera:
----------------------------------------------------------------------------------
route-map nonat permit 10
match ip address 100
----------------------------------------------------------------------------------
match ip address 100
----------------------------------------------------------------------------------
Ahora creamos la access-list 100 en la cual denegamos el trafico que va hacia la red 192.168.0.0/24 que es el otro extremo de la VPN y el resto lo permitimos
----------------------------------------------------------------------------------
access-list 100 deny ip 192.168.2.0 0.0.0.255 192.168.0.0 0.0.0.255
access-list 100 permit ip 192.168.2.0 0.0.0.255 any
----------------------------------------------------------------------------------
access-list 100 permit ip 192.168.2.0 0.0.0.255 any
----------------------------------------------------------------------------------
Una vez realizado esto, lo aplicamos sobre nuestra interfaz WAN
----------------------------------------------------------------------------------
ip nat inside source route-map nonat interface FastEthernet0/0 overload
----------------------------------------------------------------------------------
Ahora ya podemos aplicar el crypto-map a la interfaz wan
----------------------------------------------------------------------------------
interface FastEthernet0/0
ip address dhcp
ip nat outside
ip virtual-reassembly
duplex auto
speed auto
crypto map CENTRAL
ip address dhcp
ip nat outside
ip virtual-reassembly
duplex auto
speed auto
crypto map CENTRAL
----------------------------------------------------------------------------------
Ahora con un simple ping a una ip del otro extremo de la VPN deberia levantarnos el tunel sin problemas, podeis ver si el tunel se ha levantado o no con el comando "sh crypto isakmp sa"
Si ocurriese algun problema en la negociacion del tunel, podeis debugearlo con el comando "debug crypto isakmp"
Espero que os haya servido de ayuda!
jueves, 15 de diciembre de 2011
Error despromocionando un DC en Active Directory
Vamos a ver como despromocionar un Controlador de Dominio que no quiere despromocionarse.
Nos vamos al visor de eventos y nos encontramos primero el error Eventid 2022 con origen ActiveDirectory_DomainService:
Rol FSMO: CN=Infrastructure,DC=ForestDnsZones,DC=XXXXX,DC=XX,DC=es
DN del servidor FSMO: CN=NTDS Settings\0ADEL:780a84c0-6120-425f-bb6b-d43691364ed6,CN=XXXXX\0ADEL:4c0691a7-d0c0-448c-b7c2-d2cc720e9fe0,CN=Servers,CN=XXX,CN=Sites,CN=Configuration,DC=XXXX,DC=XX,DC=es
La situacion es la siguiente, tenemos varios controladores de dominio, en mi caso 4 y quiero quitar 1,
Ejecutamos el comando repadmin /showrepl y vemos que todo se esta replicando correctamente:
Luego ejecutamos NETDOM QUERY FSMO para ver que servidor tiene los Roles y vemos que efectivamente tambien los tiene el servidor que toca, en nuestro caso el 30:
Ahora procedemos a despromocionar el controlador de dominio 10 pero al intentar despromocionarlo nos da un error:
Nos vamos al visor de eventos y nos encontramos primero el error Eventid 2022 con origen ActiveDirectory_DomainService:
Y la advertencia Eventid 2091 con origen ActiveDirectory_DomainService:
Entonces es cuando te enteras que antiguamente habia un 5º controlador que se elimino y es el que vemos que esta buscando en la Advertencia:
Aqui tenemos la causa de nuestros problemas, para corregir esto tendremos que editar nuestro Schema con el Adsiedit, desde el servidor que tiene todos los roles asignados.
Primero nos conectamos al container Infraestructure poniendo CN=Infrastructure, DC=dominio, DC=local
Una vez conectados le damos a boton derecho propiedades y buscamos el atributo fsMORoleOwner y vemos el valor correcto que corresponde, lo editamos y lo copiamos:
Ahora creamos otra conexion en la consola del ADSIEdit a DC=DomainDNSZones, DC=dominio, DC=local
Ahora vamos al container de Infrastructure y buscamos en las propiedades el objeto "fsMORoleOwner" y observamos que apunta a la cuenta de equipo que esta borrada:
CN=NTDS Settings\0ADEL:780a84c0-6120-425f-bb6b-d43691364ed6,CN=XXXXX\0ADEL:4c0691a7-d0c0-448c-b7c2-d2cc720e9fe0,CN=Servers,CN=XXX,CN=Sites,CN=Configuration,DC=XXXX,DC=XX,DC=es
Hacemos click en edit y sustituimos lo que aparece por la ruta que hemos copiado anteriormente del Infrastructure.
Ahora tenemos que crear una nueva conexion en el adsiedit, pero esta vez a DC=ForestDNSZones, DC=dominio, DC=local y realizamos lo mismo exactamente que en el paso anterior.
Una vez realizados estos cambios ya nos deja despromocionar el dominio.
Dejo un link al blog donde encontre la solucion a este problema:
lunes, 5 de diciembre de 2011
Bloqueo de cuentas Active Directory
En empresas con muchos controladores de dominio y muchos usuarios, nos podemos volver loco cuando se bloquea alguna cuenta de usuario.
Primero identifiquemos que cuentas están bloqueadas, para esto debemos abrir la consola de dsa.msc y dentro de las consultas guardadas o save query y crear una consulta personalizada:
(&(&(objectCategory=Person)(objectClass=User)(lockoutTime>=1)))
Nos quedaria como vemos en la siguiente imagen.
Con esto nos saldran todos los usuarios bloqueados que hay en el dominio.
Ya tenemos identificadas las cuentas que estan teniendo problemas en el dominio, ahora queremos averiguar que esta pasando, para eso tenemos que descargarnos las "Account Lockout and Management Tools" e instalarlas.
Una vez realizado esto, ejecutamos el lockoutstatus.exe donde podremos ver que pasa con cada usuario, veremos los atributos de su cuenta en cada controlador y la cantidad de intentos fallidos en cada uno, y la hora exacta del intento.
Si queremos identificar desde donde se esta bloqueando la cuenta de usuario, ejecutamos el EventCombMT.exe y en el menu superior, en "searches" seleccionamos la opcion "Builtin Searches" y Account Lockout. Ponemos el nombre de usuario que queremos buscar y nos creara un fichero de log donde nos aparece desde donde se estan bloqueando las cuentas.
Bueno esto ha sido todo, espero que os sea util!
Primero identifiquemos que cuentas están bloqueadas, para esto debemos abrir la consola de dsa.msc y dentro de las consultas guardadas o save query y crear una consulta personalizada:
(&(&(objectCategory=Person)(objectClass=User)(lockoutTime>=1)))
Nos quedaria como vemos en la siguiente imagen.
Con esto nos saldran todos los usuarios bloqueados que hay en el dominio.
Ya tenemos identificadas las cuentas que estan teniendo problemas en el dominio, ahora queremos averiguar que esta pasando, para eso tenemos que descargarnos las "Account Lockout and Management Tools" e instalarlas.
Una vez realizado esto, ejecutamos el lockoutstatus.exe donde podremos ver que pasa con cada usuario, veremos los atributos de su cuenta en cada controlador y la cantidad de intentos fallidos en cada uno, y la hora exacta del intento.
Si queremos identificar desde donde se esta bloqueando la cuenta de usuario, ejecutamos el EventCombMT.exe y en el menu superior, en "searches" seleccionamos la opcion "Builtin Searches" y Account Lockout. Ponemos el nombre de usuario que queremos buscar y nos creara un fichero de log donde nos aparece desde donde se estan bloqueando las cuentas.
Bueno esto ha sido todo, espero que os sea util!
Suscribirse a:
Entradas (Atom)



