Arquitectura de CiberSeguridad de Microsoft

Hoy estuve curioseando el sitio web de TechNet, hacía varios días no me daba una vuelta por la galería de PowerShell y quería encontrar algún script interesante, vaya sorpresa cuando encontré la estrategia de seguridad pensada por Microsoft, donde se identifica que existen múltiples mecanismos de monitoreo y protección dependiendo de cada capa de acceso, los servidores por ejemplo pueden ser analizados con Azure Security Center, el cual es un servicio que parece un análisis de hacking ético, y gracias a este podemos ir tomando medidas cautelares, de cerrar puertos, y evitar exposición a ataques en nuestros servicios, o la restricción Just In Time VM Access (JITVMA) que proporciona protección al RDP de servidores. Así mismo aquí en esta grafica uno puede identificar las múltiples soluciones de protección para los clientes de Windows, las soluciones de identidad y acceso de Azure Active Directory, como la autenticación Multi factor (MFA) y las herramientas que proporcionan soluciones como Office 365 con Data Loss protection, Secure Score, Data Governance y eDiscovery.

A nivel de clientes herramientas como el ATP (Advanced Threat Protection)

Los invito a darle una revisión detenida a esta información, y si tienen dudas abro este canal para que platiquemos sobre aquellas que le generen inquietudes.

Imagen tomada de: https://gallery.technet.microsoft.com/Cybersecurity-Reference-883fb54c

Tareas administrativas

Hace ya algún tiempo que hice administración de servidores, recuerdo que en aquel momento no contaba con herramientas de monitoreo tipo Nagios o System Center Operations Manager que me ayudaran en tiempo real a detectar altos consumos de maquina, y tenia que a diario pasar revista a los servidores para determinar si tenían un comportamiento “Normal” o estaban de repente pasando por un mal momento. Para esto es posible utilizar desde la tradicional linea de comandos (cmd) el siguiente comando:

sysdm.cpl && eventvwr /c: && psinfo -d && services.msc && perfmon /rel && explorer /root, && dxdiag && perfmon /report && taskmgr && resmon

Esto nos abrirá las aplicaciones que el sistema operativo trae por defecto para determinar su comportamiento. herramientas como el historial de confiabilidad que nos muestra un timeline del estado de salud del equipo o el visor de eventos, para identificar si ha tenido errores en las ultimas horas, el snap-in de los servicios, para validar que los que son automáticos estén en ejecución, y el administrador de tareas o el resource monitor, para tratar de encontrar que se puede estar consumiendo los recursos del equipo.

Mi recomendación o truco en este post es que la mayoría de estas consultas se pueden realizar desde PowerShell, con un Get-Volume, puedes consultar el estado de ocupación de los volúmenes del dispositivo, un Get-Eventlog -LogName System -EntryType Error -Newest 10|Format-Table me traerá consigo una tabla con los últimos 10 errores de sistema operativo. Get-Process me puede permitir ver lo que tenemos en ejecución, similar al taskmanager, de modo que hay manera de consultar desde linea de comandos múltiples contextos, mas la posibilidad de aplicar todos estos comandos a múltiples servidores que se encuentren en nuestro dominio. Así que adopten PowerShell #Get-PowerShell

Nueva ruta de certificaciones Microsoft

Empecé el día con mi café, e investigando nuevos contenidos y referencias sobre las certificaciones de azure, quería saber que nuevos materiales encontraba para el AZ-103, pues en infraestructura IAAS es el nuevo examen de Microsoft que reemplazaría el AZ-102, el cual a su vez reemplazo el 70-533, y me encontré con la ruta completa de certificaciones de Microsoft , empezando con un nivel introductorio en Azure, el AZ-900 es el nivel para todos los que quieren comenzar a estudiar este producto, siguiendo con las certificaciones para Infraestructura (Az-103), desarrollo de aplicaciones (Az-203) y arquitectura (Az-300), para luego encontrarnos con DevOps (Az-400) y seguridad en Azure (Az-500), pero en mi opinion (la cual no han pedido) las líneas punteadas, y la continuidad académica deberían ser como una cadena, siguiendo la misma traza que mis líneas acaban de relatar. Porque no puedes llegar a Arquitecto sin conocer de antemano todas las aristas, que ofrece este poliedro.

Encontre que también hay una ruta de certificacion para cientificos de datos (la cual proviene de las certificaciones de SQL)

y otra linea se denomina Modern Workplace donde vemos que se encuentran las soluciones de Office 365, Exchange y Sharepoint, asi como Windows 10. Pero aqui analizo otra particularidad, Microsoft en los inicios de Office365 tenia un plan de formación donde aprendías primero de Exchange, SharePoint y Lync (en sus versiones 2010) y luego hacías el examen 70-321 de Office 365, luego en tiempos de Exchange 2013 y SharePoint 2013, surgió Skype for Business, y en esa entonces nos invirtieron la secuencia, aprendiendo primero de Office 365 que de servidores Exchange, Skype o SharePoint. ahora en este plan de carrera, veo que lo vuelven a definir despues.

hay una rama adicional sobre los servicios de dynamics, pero esa si ni la quise mirar porque es super extensa… y creo que mi estimada amiga y colega MCT Blanca Baute, a quien le envio un saludo.

información tomada de http://aka.ms/TrainCertPoster

20 de julio

Regularmente este blog no comparte opiniones políticas, religiosas o de futbol, pues es lo que nos mantiene en la imparcialidad que nos permite enfocarnos en los temas técnicos que desarrollamos, es un espacio donde he compartido mis experiencias técnicas, mis expectativas y ha aportado un poco a la vida de quienes leen estas líneas, para algunos es un referente donde a partir de guías y explicaciones he hecho la presentación de herramientas y scripts que están disponibles para PowerShell, Windows Server, Exchange, Azure, SharePoint, o incluso Linux. Sin expresar mis creencias católicas, apostólicas y romanas, o mi gusto por el Junior de Barranquilla pero hoy quiero darle un toque mas humanístico y entintar este post con mi pensamiento y gustos.

Tras casi 25 años de experiencia laboral, y de haber pasado por grandes empresas como Unisys, HP, IBM, Comware, VisionSoftware, ControlesEmpresariales, Glup, Compuredes, Softtek, Manpower, Synapsis, AlfaIngenieros, Rentabyte o IXO, y luego de haber hecho parte de grandes equipos, y de ayudar a salir adelante proyectos como ATH, Colpensiones, Aeronáutica Civil, Agencia Nacional de Hidrocarburos, Agencia Nacional para Reinserción de desmovilizados, Superfinanciera, Supersubsidio, Invias, Nueva EPS, Helm bank, Banco Santander, Bolsa Mercantil de Colombia, Colombia Movil – Tigo, Comcel – Claro, Movistar – Telefónica, Belcorp, Grupo Nutresa, o el soporte premier para Microsoft donde atendí muchos otros clientes. He mantenido una voz firme en temas técnicos, y he enseñado como entrenador certificado por Microsoft por mas de una década, conociendo grandes e importantes personas, muchas de ellas incluso fueron y son alumnos y amigos.

Hoy que es día de la independencia colombiana, 20 de julio de 2019, empecé el día con un café, seis de la mañana, me sente en el sofá, y empecé a pensar mientras lo saboreaba a sorbos, en todos los españoles y criollos que tuvieron que haber peleado, y finalmente fallecido en esas refriegas que llevaron al grito de independencia, y me imaginé toda la devastación que estas tierras tropicales y cálidas han soportado, la cantidad de sangre que se tuvo que haber derramado, no importaba la experiencia técnica, los años de arduo trabajo campesino, o militar, todos se median en medio del campo de batalla y defendían sus ideas, su honor, su familia y su patria. Hay que ser medio pendejo para irse al monte a matarse a puñetazos, con lanzas, bayonetas, o fusiles, pero ordenes son órdenes. y militares españoles o criollos igual tenían que hacer caso, o los fusilaban seguramente por traición.

Nos maravillamos con los avances tecnológicos que permiten gestionar remotamente a los drones Reaper (aviones no tripulados) acabar con metralletas o misiles un pueblo donde hay personas que son amenazas para la sociedad, (los americanos y sus juguetes), el poder destructivo de un solo avión de combate Raptor, la capacidad de carga de un solo helicóptero militar Black Hawk, y los avances en cuanto a balística y armas de fuego (creo que estoy viendo mucha televisión criminalística), pero estos próceres creían firmemente en sus ideas, y eran duramente enjuiciados, o castigados, Camilo Torres, Antonio Nariño, y la Pola creían firmemente en sus ideas, hay que ver darse el recorrido desde Santa Marta a Bogota en caballos, eso es tener firmeza en una causa. Esas clases de historia del colegio solamente nos enseñaron las fechas de los eventos, de las batallas, de cuando llegaron los españoles y se aprovecharon de estas tierras hace más de 500 años, pero lo que no nos cuentan es el trasfondo, y después de haber visto Game of Thrones, los excesos que seguramente hace 500 años venia teniendo Europa, las guerras que internamente ellos tuvieron allí, por poder, sexo o riquezas, las guerras entre tribus y clanes, las enemistades y alianzas, que llevaron a que empezaran esa competencia contra los británicos, por lograr una expansiva y de hallar nuevos territorios y riquezas, lo cual los resulto trayendo al otro lado del atlántico. Ese cuentico de que el italiano Cristobal Colon le pidió un préstamo a la reina, solo me suena a un episodio de Californication, donde llega el tipo con acento italiano, y en medio de tragos y una fiesta tremenda, la reina insatisfecha le pone los cuernos a su rey, quien le es infiel todas las noches con diferentes mujeres, y esta le da sus joyas de la corona al buen Colon, por ese buen tiempo que compartieron juntos, con la promesa de que vuelva pronto.

Luego me puse a pensar en que aquí también ha de haber habido guerras de tribus y clanes, territorios defendidos con honor entre guerreros Panches y Muiscas, épicas batallas que seguramente los ancestros mas veteranos les contaban a sus queridos nietos, mirando a las estrellas, y bajo la tenue luz de una fogata, pero muchas de esas memorias simplemente se perdieron entre el holocausto que tuvo que haber representado la invasión con armas de fuego por parte de los acorazados y no muy buenos hombres de Colon. Para que hoy en día, sin importar banderas ni partidos políticos, todos los gobernantes y dirigentes del país se hubiesen vendido a una misma idea, su bienestar económico particular. Los lideres no pueden tener solución para todo, pero si pueden escuchar, orientar y hacer que los esfuerzos de la ciudadanía vayan hacia un frente común, es bonito pensar que este platanal puede tener esperanzas, que hay alguna oportunidad, delegando planes de trabajo a unidades mas pequeñas, un Alcalde haría mucho mas, si los alcaldes de localidades, tuvieran presupuesto, e independencia, si estos a su vez contaran con lideres comunitarios por cada barrio, por cada cuadra, pero a veces no nos ponemos de acuerdo ni entre la misma familia.

Pero acudiendo a el análisis social del pensador y comediante Andrés López, desde la generación de hijos del 79’ (generación de la guayaba) en adelante no queremos tomar un bando, somos los hijos de esos hogares de padres separados, no queremos defender una idea, ni inclinar la balanza hacia papá o mamá, mucho menos defender una bandera, ni una tendencia política, no somos Azules o Rojos, por eso aparecieron todos los otros colores, amarillo, verde, terracota y salmón, estamos tan agobiados queriendo ser cool, vernos diferentes con piercings y tatuajes que nos hagan únicos, que nuestras ideas, y el amor al prójimo no son la prioridad, “a quien le importa lo que yo piense, y de todas maneras eso no va a cambiar nada”. Pues la verdad no es un problema de ideología política, o de planes de gobierno, donde se acomodan y se adaptan las condiciones (y el presupuesto), simplemente reduzcamos el problema a que no conocemos a nuestros vecinos, no nos duele nuestro barrio, no hay sentimiento de propiedad, de querer hacer algo por mi familia, por mi barrio, por mi país, porque simplemente podemos pasar sin tropezar a nadie mientras no hagamos mucho ruido, podemos pasar el día con un café con leche y un pan, simplemente para no tener que molestarnos en hacer un desayuno de carne en bistec con bollo limpio. Por eso quise levantar mi opinión hoy día de la independencia, quiero invitarlos a reflexionar sobre esto, a que hagan el desayuno de su casa, amen a su núcleo familiar, sus hijos, su pareja. Timbren en la casa de al lado, conozcan a sus vecinos, tómenle sus teléfonos, háganse amigos, compartan con ellos, la familia se extiende cuando conoces a tus vecinos, y en conjunto se puede lograr que tengamos conciencia de comunidad, empecemos con ese pequeño acto, de que nos duela lo que le pasa al de al lado porque lo conocemos, porque podemos ayudar y de alguna manera todos somos Colombia.

Seguramente hay algo que podamos hacer, por nuestra familia, por nuestros vecinos, por nuestros amigos, este 20 de Julio es una fiesta nacional, para compartir con amor, para recordar a los que dieron sus vidas por nuestra libertad, celebremos por esa idea de que seamos una nación, que lucha unida, que tenga empuje en una misma dirección. Dejemos de echar la culpa a los gobernantes y los malos dirigentes, porque cada uno de nosotros puede aportar, tal vez no tengamos el poder de decisión, pero si tenemos como actuar, y como hacer el trabajo bien hecho, para nuestra satisfacción personal, para el beneficio de la comunidad, para hacer historia.

Exchange 2019 Lab

Estuve realizando la investigación de los requerimientos para poder implementar Exchange server 2019, los requisitos de software no son gran cosa, windows Server 2019 con o sin interfaz gráfica, .Net 4.7.2, el componente redistribuible de Visual C++, y el complemento de Unified Comunications (que esta dentro del ISO del instalador de exchange). sin embargo los requerimientos de Hardware si son mas exclusivos, pues pide 2 procesadores x64 *intel o AMD, y 128 GB de memoria RAM, mas un espacio en disco de 30GB para los binarios, mas el espacio que dediques para la base de datos, idealmente en un disco aparte. así que esto me llevo a utilizar mi ya quemada suscripción de Azure, para probar este escenario, y resulte encontrando esta joya de hipervinculo https://docs.microsoft.com/en-us/Exchange/plan-and-deploy/deploy-new-installations/create-azure-test-environments?view=exchserver-2019 donde paso a paso hay un script de Powershell que crea un escenario de laboratorio, desplegando un controlador de dominio y un servidor Exchange 2019. Es necesario que instales el modulo AZ para Powershell, y que tengas una suscripción gratuita de Azure para replicar estos pasos

Connect-AzAccount

Get-AZSubscription | Sort SubscriptionName | Select SubscriptionName

$subscrName=”Plataformas de MSDN
Select-AzSubscription -SubscriptionName $subscrName

Get-AZResourceGroup | Sort ResourceGroupName | Select ResourceGroupName

$rgName=”LabExch19
$locName=”EastUS
New-AZResourceGroup -Name $rgName -Location $locName

Get-AZStorageAccount | Sort StorageAccountName | Select StorageAccountName

Get-AZStorageAccountNameAvailability “”

$rgName=”LabExch19
$locName=”EastUS
$locName=(Get-AZResourceGroup -Name $rgName).Location
New-AZStorageAccount -Name $saName -ResourceGroupName $rgName -Type Standard_LRS -Location $locName

$rgName=”LabExch19
$locName=(Get-AZResourceGroup -Name $rgName).Location
$Subnet=New-AZVirtualNetworkSubnetConfig -Name Subnet01 -AddressPrefix 10.0.0.0/27
New-AZVirtualNetwork -Name Vnet01 -ResourceGroupName $rgName -Location $locName -AddressPrefix 10.0.0.0/24 -Subnet $Subnet -DNSServer 10.0.0.4
$rule1 = New-AZNetworkSecurityRuleConfig -Name “RDPTraffic” -Description “Allow RDP to all VMs on the subnet” -Access Allow -Protocol Tcp -Direction Inbound -Priority 100 -SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 3389
$rule2 = New-AZNetworkSecurityRuleConfig -Name “ExchangeSecureWebTraffic” -Description “Allow HTTPS to the Exchange server” -Access Allow -Protocol Tcp -Direction Inbound -Priority 101 -SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix “10.0.0.5/32” -DestinationPortRange 443
New-AZNetworkSecurityGroup -Name Subnet01 -ResourceGroupName $rgName -Location $locName -SecurityRules $rule1, $rule2
$vnet=Get-AZVirtualNetwork -ResourceGroupName $rgName -Name Vnet01
$nsg=Get-AZNetworkSecurityGroup -Name Subnet01 -ResourceGroupName $rgName
Set-AZVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name Subnet01 -AddressPrefix “10.0.0.0/27” -NetworkSecurityGroup $nsg
$vnet | Set-AzVirtualNetwork

$rgName=”LabExch19

Create an availability set for domain controller virtual machines

New-AZAvailabilitySet -ResourceGroupName $rgName -Name dcAvailabilitySet -Location $locName -Sku Aligned -PlatformUpdateDomainCount 5 -PlatformFaultDomainCount 2

Create the domain controller virtual machine

$vnet=Get-AZVirtualNetwork -Name Vnet01 -ResourceGroupName $rgName
$pip = New-AZPublicIpAddress -Name adVM-NIC -ResourceGroupName $rgName -Location $locName -AllocationMethod Dynamic
$nic = New-AZNetworkInterface -Name adVM-NIC -ResourceGroupName $rgName -Location $locName -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -PrivateIpAddress 10.0.0.4
$avSet=Get-AZAvailabilitySet -Name dcAvailabilitySet -ResourceGroupName $rgName
$vm=New-AZVMConfig -VMName adVM -VMSize Standard_D1_v2 -AvailabilitySetId $avSet.Id
$vm=Set-AZVMOSDisk -VM $vm -Name adVM-OS -DiskSizeInGB 128 -CreateOption FromImage -StorageAccountType “Standard_LRS”
$diskConfig=New-AZDiskConfig -AccountType “Standard_LRS” -Location $locName -CreateOption Empty -DiskSizeGB 20
$dataDisk1=New-AZDisk -DiskName adVM-DataDisk1 -Disk $diskConfig -ResourceGroupName $rgName
$vm=Add-AZVMDataDisk -VM $vm -Name adVM-DataDisk1 -CreateOption Attach -ManagedDiskId $dataDisk1.Id -Lun 1
$cred=Get-Credential -Message “Type the name and password of the local administrator account for adVM.”
$vm=Set-AZVMOperatingSystem -VM $vm -Windows -ComputerName adVM -Credential $cred -ProvisionVMAgent -EnableAutoUpdate
$vm=Set-AZVMSourceImage -VM $vm -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2019-Datacenter -Version “latest”
$vm=Add-AZVMNetworkInterface -VM $vm -Id $nic.Id
New-AZVM -ResourceGroupName $rgName -Location $locName -VM $vm

conecte al adVM y ejecute

$disk=Get-Disk | where {$_.PartitionStyle -eq “RAW”}
$diskNumber=$disk.Number
Initialize-Disk -Number $diskNumber
New-Partition -DiskNumber $diskNumber -UseMaximumSize -AssignDriveLetter
Format-Volume -DriveLetter F

Install-WindowsFeature AD-Domain-Services -IncludeManagementTools
Install-ADDSForest -DomainName CampoHenriquez.com -DatabasePath “F:\NTDS” -SysvolPath “F:\SYSVOL” -LogPath “F:\Logs”

Add-WindowsFeature RSAT-ADDS-Tools

Creamos ahora la maquina de Exchange

$vmDNSName=”Mail01Exch19
$rgName=”LabExch19
$locName=(Get-AZResourceGroup -Name $rgName).Location
Test-AZDnsAvailability -DomainQualifiedName $vmDNSName -Location $locName

Set up key variables

$subscrName=”Plataformas de MSDN
$rgName=”LabExch19
$vmDNSName= “Mail01Exch19

Set the Azure subscription

Select-AzSubscription -SubscriptionName $subscrName

Get the Azure location and storage account names

$locName=(Get-AZResourceGroup -Name $rgName).Location
$saName=(Get-AZStorageaccount | Where {$_.ResourceGroupName -eq $rgName}).StorageAccountName

Create an availability set for Exchange virtual machines

New-AZAvailabilitySet -ResourceGroupName $rgName -Name exAvailabilitySet -Location $locName -Sku Aligned -PlatformUpdateDomainCount 5 -PlatformFaultDomainCount 2

Specify the virtual machine name and size

$vmName=”Mail01Exch19
$vmSize=”Standard_D3_v2″
$vnet=Get-AZVirtualNetwork -Name Vnet01 -ResourceGroupName $rgName
$avSet=Get-AZAvailabilitySet -Name exAvailabilitySet -ResourceGroupName $rgName
$vm=New-AZVMConfig -VMName $vmName -VMSize $vmSize -AvailabilitySetId $avSet.Id

Create the NIC for the virtual machine

$nicName=$vmName + “-NIC”
$pipName=$vmName + “-PublicIP”
$pip=New-AZPublicIpAddress -Name $pipName -ResourceGroupName $rgName -DomainNameLabel $vmDNSName -Location $locName -AllocationMethod Dynamic
$nic=New-AZNetworkInterface -Name $nicName -ResourceGroupName $rgName -Location $locName -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -PrivateIpAddress “10.0.0.5”

Create and configure the virtual machine

$cred=Get-Credential -Message “Type the name and password of the local administrator account for exVM.”
$vm=Set-AZVMOSDisk -VM $vm -Name ($vmName +”-OS”) -DiskSizeInGB 128 -CreateOption FromImage -StorageAccountType “Standard_LRS”
$vm=Set-AZVMOperatingSystem -VM $vm -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent -EnableAutoUpdate
$vm=Set-AZVMSourceImage -VM $vm -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2019-Datacenter -Version “latest”
$vm=Add-AZVMNetworkInterface -VM $vm -Id $nic.Id
New-AZVM -ResourceGroupName $rgName -Location $locName -VM $vm

Conectese a exVM y ejecute

Add-Computer -DomainName “Campohenriquez.com”
Install-WindowsFeature NET-Framework-45-Features, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Clustering-CmdInterface, RSAT-Clustering-Mgmt, RSAT-Clustering-PowerShell, Web-Mgmt-Console, WAS-Process-Model, Web-Asp-Net45, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn-Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy-Mgmt-Console, Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-Net-Ext45, Web-Request-Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI, Windows-Identity-Foundation, RSAT-ADDS-Tools
Restart-Computer

Fase 3> Configurar el Exchange

Write-Host (Get-AZPublicIpaddress -Name “exVM-PublicIP” -ResourceGroup $rgName).DnsSettings.Fqdn

Desde exVM

descarga los pre-requisitos, Visual C++ redis, UC Managed API https://www.microsoft.com/download/details.aspx?id=34992 y el .Net 4.7.2

descarga el ISO de Exchange con el ultimo CU

e:
.\setup.exe /mode:Install /role:Mailbox /OrganizationName:CampoHenriquez /IacceptExchangeServerLicenseTerms
Restart-Computer

$dnsName=””
$user1Name=”chris@” + $dnsName
$user2Name=”janet@” + $dnsName
$db=Get-MailboxDatabase
$dbName=$db.Name
$password = Read-Host “Enter password” -AsSecureString

New-Mailbox -UserPrincipalName $user1Name -Alias chris -Database $dbName -Name ChrisAshton -OrganizationalUnit Users -Password $password -FirstName Chris -LastName Ashton -DisplayName “Chris Ashton”
New-Mailbox -UserPrincipalName $user2Name -Alias janet -Database $dbName -Name JanetSchorr -OrganizationalUnit Users -Password $password -FirstName Janet -LastName Schorr -DisplayName “Janet Schorr”

Detener / Iniciar las maquinas virtuales

$rgName=””
Stop-AZVM -Name exVM -ResourceGroupName $rgName -Force
Stop-AZVM -Name adVM -ResourceGroupName $rgName -Force

$rgName=””
Start-AZVM -Name adVM -ResourceGroupName $rgName
Start-AZVM -Name exVM -ResourceGroupName $rgName

Probando el Windows Terminal

Como lo habia anunciado días atrás, Microsoft consiguió liberar una Terminal que unifica bajo el mismo entorno, PowerShell Core, Windows Linux Subsystem (wsl) y la linea de comandos D.O.S.

Encuentro atractivas sus transparencias, la posibilidad de tener varias tabs o pestañas y poder de cierta forma hacer mas amable el uso de la linea de comandos. Para instalarlo simplemente ingrese en el Windows Store, y busque Windows Terminal (Preview) ahora bien, luego de haber instalado esta terminal, decidí instalar también el PowerShell 7, y me encontré que queda como PowerShell Core.

Para realizar la configuración de esta terminal, en el menu desplegable (junto al signo de mas) hay una opción de configuración, donde nos lleva a modificar un archivo JSON, estos cambios se producen en tiempo real, y este archivo esta compuesto principalmente por tres secciones.

Encontramos los tipos de ventana que podemos iniciar o commandLine como, Powershell Core, PowerShell, WSL, o CMD, a estos podemos aplicarles unos esquemas para cambiar su apariencia, por ejemplo yo habilite la opción de transparencia cambiando el valor de “useAcrylic” : true

En esta sección es posible cambiar el tamaño y tipo de fuente, el AcrylicOpacity hace referencia al nivel de transparencia en términos de porcentaje, El ColorScheme hace referencia al tema aplicado y el atributo fontFace hace relacion al tipo de fuente asi como FontSize es el tamaño de esta.

Espero sinceramente que les guste esta herramienta, y puedan divertirse ejecutando Scripts en ella.

Nueva Terminal para Windowx

Microsoft ha decidido fomentar cada vez mas la integracion entre Windows y las plataformas de Open-Source, empezaron con la iniciativa de instalar un subsistema de Linux incrustado en Windows o WLS (Windows Linux Subsystem), para que pudieramos utilizar bash dentro del sistema operativo del gigante de redmond. Luego les dio por hacer PowerShell un proyecto OpenSource, y lo publicaron en linea por GitHub y cualquier persona puede aportar a su mejora. Ahora el anuncio que nos hacen es que van a integrar CMD+PowerShell+Bash en una sola Terminal,
https://devblogs.microsoft.com/commandline/introducing-windows-terminal/

Por ahora solo esta disponible para los mas entusiastas developers a traves del portal de Github, y tiene varios requisitos previos, como estar corriendo Windows edicion 1903 entre otras. esperemos un par de meses a que lo hagan disponible al publico general, pero desde ya me saboreo que esto va a potencializar los scripts y la automatizacion a un nivel por las nubes…

EXTENSION DE ACTIVE DIRECTORY DOMAIN SERVICES- AZURE

Cuando un cliente nos solicita extender su plataforma on-premise para la nube de Microsoft (Azure) https://docs.microsoft.com/en-us/azure/active-directory/ , existen dos oportunidades para atender este requerimiento, cada cual tiene sus bondades, pero también tienen diferentes requisitos y comportamientos. A continuación quiero clarificar ambos escenarios, uno es el configurar AD-Connect para “sincronizar” el directorio activo local con la nube *{en este escenario no se REPLICAN las cuentas y sus SID, se crean nuevas cuentas en Azure Active Directory -AAD con el mismo nombre de usuario y unos cuantos atributos copiados desde directorio activo}, el otro escenario es configurar una VPN site-to-site (S2S) y al extender la red se puede matricular un servidor de infraestructura como servicio (IAAS), pero en este escenario es necesario tener presentes los puertos que se han de permitir a nivel de firewall para evitar inconvenientes, https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd772723(v=ws.10)

Cuestionario

El siguiente cuestionario es necesario para reconocer el escenario del cliente.

  • ¿Como se llama su dominio?
  • ¿Cuántos servidores controladores de dominio, Sitios y subredes componen su ADDS?
  • ¿Qué servidor/es tiene roles FSMO?
  • ¿Qué versión tienen sus controladores de dominio?
  • ¿Su dominio tiene subdominios?
  • ¿Su dominio tiene relaciones de confianza?
  • ¿Qué aplicaciones u servicios dependen de autenticación ADDS?
  • ¿Qué nivel funcional tiene su dominio y su forest?
  • ¿Cuál es la clave del administrador de dominio?
  • ¿Cuál es la clave de recuperación del dominio?
  • ¿Cuánto pesa su archivo c:\Windows\NTDS\NTDS.DIT?
  • ¿Cuántos objetos tiene su directorio activo entre usuarios, equipos, y grupos? (un aproximado)
  • ¿Esta usted actualmente utilizando Exchange, Sharepoint, o Skype for Business?
  • ¿Utiliza usted SQL, CRM, o algún ERP que requiere autenticación?
  • ¿Su Active Directory esta sincronizado con ADConnect contra Azure Active Directory?

Diseño propuesto

El siguiente diagrama es una propuesta para el escenario de un cliente que extiende su red por S2S a un domain controler en Azure.

Escenario

AD DS se usa para autenticar usuarios, equipos, aplicaciones u otras entidades que se incluyen en un dominio de seguridad. Se puede hospedar de forma local, pero si parte de la aplicación se hospeda en el entorno local y parte en Azure, puede que resulte más eficaz replicar esta funcionalidad en Azure. Esto puede reducir la latencia causada por el envío de solicitudes de autorización locales y de autenticación desde la nube a los servicios AD DS que se ejecutan en un entorno local.

Esta arquitectura suele usarse cuando la red local y la red virtual de Azure están conectadas mediante una conexión VPN S2S o ExpressRoute. Esta arquitectura también admite la replicación bidireccional, lo que significa que los cambios se pueden realizar en el entorno local o en la nube, de tal forma que se mantiene la coherencia de ambos orígenes. Los usos típicos de esta arquitectura incluyen aplicaciones híbridas en las que la funcionalidad se distribuye entre el entorno local y Azure, y las aplicaciones y los servicios que realizan la autenticación con Active Directory.

Arquitectura

Red local. La red local incluye servidores locales de Active Directory que pueden realizar la autenticación y autorización de componentes que se encuentran en entornos locales.

Servidores de Active Directory. Se trata de controladores de dominio que implementan servicios de directorio (AD DS) que se ejecutan como máquinas virtuales en la nube. Estos servidores pueden proporcionar la autenticación de componentes que se ejecutan en la red virtual de Azure.

Subred de Active Directory. Los servidores de AD DS se hospedan en una subred independiente. Las reglas de los grupos de seguridad de red (NSG) protegen los servidores de AD DS y proporcionan un firewall contra el tráfico procedente de orígenes inesperados.

Azure Gateway y sincronización de Active Directory. Azure Gateway proporciona una conexión entre la red local y la red virtual de Azure. Puede ser una conexión VPN o Azure ExpressRoute. Todas las solicitudes de sincronización entre los servidores de Active Directory en la nube y locales pasan a través de la puerta de enlace. Las rutas definidas por el usuario (UDR) controlan el enrutamiento del tráfico local que pasa a Azure. El tráfico hacia y desde los servidores de Active Directory no pasa a través de las aplicaciones virtuales de red (NVA) utilizadas en este escenario.

Recomendaciones

Las siguientes recomendaciones sirven para la mayoría de los escenarios. Sígalas a menos que tenga un requisito concreto que las invalide.

Recomendaciones de VM

Determine los requisitos de tamaño de la máquina virtual en función del volumen esperado de solicitudes de autenticación. Use las especificaciones de los equipos que hospedan AD DS de forma local como punto de partida y hágalas coincidir con los tamaños de máquina virtual de Azure. Una vez realizada la implementación, supervise la utilización y escale o reduzca verticalmente en función de la carga real de las máquinas virtuales. Para más información sobre cómo ajustar el tamaño de los controladores de dominio de AD DS, vea Capacity Planning for Active Directory Domain Services (Planeamiento de capacidad de Active Directory Domain Services).

Crear un disco de datos virtual independiente para almacenar la base de datos, los registros y SYSVOL de Active Directory. No almacene estos elementos en el mismo disco que el sistema operativo. Tenga en cuenta que, de forma predeterminada, los discos de datos que están conectados a una máquina virtual usan una caché de escritura simultánea. Sin embargo, esta forma de almacenamiento en caché puede entrar en conflicto con los requisitos de AD DS. Por ello, establezca la preferencia de caché de host en el disco de datos en Ninguna. Para más información, consulte Directrices para implementar Windows Server Active Directory en máquinas virtuales de Azure.

Implemente al menos dos máquinas virtuales que ejecutan AD DS como controladores de dominio y agréguelas a un conjunto de disponibilidad.

Recomendaciones de redes

Configure la interfaz de red (NIC) de VM para cada servidor de AD DS con una dirección IP privada estática para la compatibilidad total del Servicio de nombres de dominio (DNS). Para más información, vea Configuración de direcciones IP privadas para una máquina virtual mediante Azure Portal.

*** Nota: ****

No configure la NIC de VM para cualquier AD DS con una dirección IP pública. Vea las consideraciones de seguridad para más información.

El NSG de la subred de Active Directory requiere reglas para permitir el tráfico entrante desde el entorno local. Para obtener información detallada sobre los puertos que AD DS utiliza, vea Active Directory and Active Directory Domain Services Port Requirements (Requisitos de puertos de Active Directory Domain Services y Active Directory). Asegúrese también de que las tablas UDR no enruten el tráfico de AD DS a través de las NVA utilizadas en esta arquitectura.

Sitio de Active Directory

En AD DS, un sitio representa una ubicación física, una red o un conjunto de dispositivos. Los sitios de AD DS se utilizan para administrar la replicación de base de datos de AD DS mediante la agrupación de objetos de AD DS que se encuentran cerca unos de otros y que están conectados mediante una red de alta velocidad. AD DS incluye la lógica para seleccionar la mejor estrategia para replicar la base de datos de AD DS entre sitios.

Se recomienda crear un sitio de AD DS, incluidas las subredes definidas para la aplicación en Azure. Después, configure un vínculo de sitio entre los sitios de AD DS locales, y AD DS realizará automáticamente la replicación de base de datos más eficaz posible. Tenga en cuenta que esta replicación de base de datos requiere poco más aparte de la configuración inicial.

Maestros de operaciones de Active Directory

El rol de maestro de operaciones se puede asignar a los controladores de dominio de AD DS para admitir la comprobación de coherencia entre instancias de bases de datos de AD DS replicadas. Hay cinco roles de maestro de operaciones: maestro de esquema, maestro de nomenclatura de dominios, maestro de identificadores relativos, maestro emulador del controlador de dominio principal y maestro de infraestructuras. ¿Para más información sobre estos roles, vea What are Operations Masters? (¿Qué son los maestros de operaciones?).

Se recomienda no asignar roles de maestros de operaciones a los controladores de dominio implementados en Azure.

Supervisión

Supervise los recursos de las máquinas virtuales del controlador de dominio y los servicios de AD DS y cree un plan para corregir rápidamente los problemas. Para más información, vea Monitoring Active Directory (Supervisión de Active Directory). También puede instalar herramientas como Microsoft Systems Center en un servidor de supervisión (vea el diagrama de la arquitectura) para ayudar a realizar estas tareas

Contenido tomado de: https://docs.microsoft.com/es-es/azure/architecture/reference-architectures/identity/adds-extend-domain#deploy-the-solution

Deshabilitar la sincronizacion de AD hacia Office 365 por PowerShell

La gran mayoria de tutoriales nos ensenan a crear conectores, a adoptar nuevas tecnologias, pero a veces es necesario reconocer que lo que se enciende, a veces tambien se puede apagar. en esta ocasion vamos a deshabilitar la sincronizacion del active directory onpremise con Office 365 (Azure AD).

Vamos a la consola de PowerShell!!

Vamos a Deshabilitar la sincronizacion AD-Connect de mi escenario de Active Directory vs. Azure AD

PS>Get-ExecutionPolicy
Unrestricted
Si la politica de ejecucion no esta en modo Unrestricted, es necesario usar un Set-ExecutionPolicy Unrestricted para habilitarlo

Nos debemos conectar al tenant de Office 365 para realizar esta tarea, lo primero es verificar que tengamos el modulo instalado

PS>Get-InstalledModule -name MSOnline

Version Name Repository Description
——- —- ———- ———–
1.1.183.17 MSOnline PSGallery Microsoft Azure Active Directory Module for Windows PowerShell

Ahora bien, si no estuviera instalado, es necesario usar Find-Module MSOnline para encontrarlo, y luego Install-Module MSOnline para instalarlo en el PowerShell

Creemos entonces una variable que contenga las credenciales del tenant:
PS>$cred = Get-Credential -Credential fabian.campo@campohenriquezlab.onmicrosoft.com

Verifiquemos las credenciales almacenadas
PS>$cred

UserName Password
——– ——–
fabian.campo@campohenriquezlab.onmicrosoft.com System.Security.SecureString

Ahora conectemos nuestro powerShell con Office 365
PS>Connect-MsolService -Credential $cred

Verifiquemos la conexion usando un Get-MSOLAccountSKU
PS>Get-MSOLAccountSKU

AccountSkuId ActiveUnits WarningUnits ConsumedUnits
———— ———– ———— ————-
campohenriquezlab:DEVELOPERPACK 4 0 4

Este commandlet nos permite consultar el numero de licencias adquiridas y consumidas en el tenant
PS>Get-MsolCompanyInformation

DisplayName : CampoHenriquez
PreferredLanguage : en
Street :
City : Bogota
State : Cundinamarca
PostalCode :
Country :
CountryLetterCode : CO
TelephoneNumber : 3176821164
MarketingNotificationEmails : {}
TechnicalNotificationEmails : {fcampo@hotmail.com}
SelfServePasswordResetEnabled : True
UsersPermissionToCreateGroupsEnabled : True
UsersPermissionToCreateLOBAppsEnabled : True
UsersPermissionToReadOtherUsersEnabled : True
UsersPermissionToUserConsentToAppEnabled : True
DirectorySynchronizationEnabled : True
DirSyncServiceAccount : Sync_BogAZ01_#####da9f7ef@campohenriquezlab.onmicrosoft.com
LastDirSyncTime : 30/04/2019 0:33:53
LastPasswordSyncTime : 30/04/2019 0:39:02
PasswordSynchronizationEnabled : True

Este commandlet nos permite consultar la informacion de la organizacion, su administrador, numero de contacto, correo electronico y si tiene habilitado el servicio de sincronizacion de directorios, cuando fue la ultima sincronizacion
PS>get-help Set-MsolDirSyncEnabled

NOMBRE
Set-MsolDirSyncEnabled

SINOPSIS
Used to de-/activate Directory Sync for this tenant.

SINTAXIS
Set-MsolDirSyncEnabled -EnableDirSync [-TenantId ] []

DESCRIPCIÓN
The Set-MsolDirSyncEnabled cmdlet is used to turn directory synchronization on or off for a company.

VÍNCULOS RELACIONADOS

NOTAS
Para ver los ejemplos, escriba: “get-help Set-MsolDirSyncEnabled -examples”.
Para obtener más información, escriba: “get-help Set-MsolDirSyncEnabled -detailed”.
Para obtener información técnica, escriba: “get-help Set-MsolDirSyncEnabled -full”.
Para obtener ayuda disponible en línea, escriba: “get-help Set-MsolDirSyncEnabled -online”

PS>get-help Set-MsolDirSyncEnabled -examples

NOMBRE
Set-MsolDirSyncEnabled

SINOPSIS
Used to de-/activate Directory Sync for this tenant.

-------------------------- EXAMPLE 1 --------------------------

C:\PS>Set-MsolDirSyncEnabled -EnableDirsync $true

          None

Description

-----------

This command turns on directory synchronization for a company.

PS>Set-MsolDirSyncEnabled -EnableDirsync $False
Confirmar
¿Desea continuar con la operación?
&Sí &No S&uspender
S
Este cmdlet nos ayudo a deshabilitar la sincronizacion del directorio activo con Azure AD, ahora vamos a revisarlo.
PS>Get-MsolCompanyInformation |ft DisplayName, DirectorySynchronizationEnabled

DisplayName DirectorySynchronizationEnabled
———– ——————————-
CampoHenriquez False

De esta manera quedo deshabilitado nuestra sincronizacion de AD hacia AAD, hasta la proxima!

Proxima conferencia: DevOpsDays2019 en Bogota

Ahora nos encontraremos el 25 y 26 de Mayo en el centro de convenciones de Avianca de 8:00 AM a 5:00 PM un par de dias para compartir conocimiento en temas de desarrollo, automatizacion, y cloud computing. mas info en https://devopsdays.co/ mi charla sera de Automatizacion, ARM Templates, Visual Studio Code, PowerShell y Azure-Cli para gestionar los recursos en Azure.

image8