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

GlobalAzurebootcamp2019

Este año contamos con más de 280 asistentes, una nutrida asistencia considerando que en la misma fecha hubo flisol (festival de software libre) y otros eventos en el sector.

Este año mi charla fue sobre powershell y python en escenarios Devops, sobre cómo nos condena la rutina si no automatizamos los procesos diarios.

RFC1855, Netiqueta

Regularmente realizo publicaciones sobre mis investigaciones o las cosas que descubro por el camino (algunas malas traducciones, i know.-) pero estuve con mi pequeña hija de 10 años, del quinto grado, tratando de explicarle en español las 10 reglas de netiqueta, que son como las buenas maneras de Carreño en la vida diaria, “no pongas los codos sobre la mesa y esas cosas-“. En fin debemos considerarlas como normas para la sana convivencia en este cyber contexto que ofrece internet.

Gracias por esta imagen de “los increibles” ©Disney/Pixar

En resumen son 10:

  1. Nunca olvide que al otro lado del computador, la persona que lee el mensaje es otro ser humano.
  2. Adhiérase a los mismos estándares de comportamiento en línea que usted sigue en la vida real. “be kind”.
  3. Escribir todo en mayúsculas se considera como gritar y, además, dificulta la lectura.
  4. Respete el tiempo y el ancho de banda de otras personas.
  5. Muestre el lado bueno de sí mismo mientras se mantenga en línea.
  6. Comparta sus conocimientos con la comunidad.
  7. Ayude a mantener los debates en un ambiente sano y educativo.
  8. Respete la privacidad de terceras personas.
  9. No abuse de su poder o de las ventajas que pueda usted tener.
  10. Excuse los errores de otros. Comprenda los errores de los demás igual que usted espera que los demás comprendan los suyos.
seamos constructor-masters ©Lego
Construyamos una mejor internet, cada quien puede aportar un poco a que este espacio de convivencia sea enriquecedor, una utopia para el conocimiento, donde podamos crecer con el apoyo de expertos en diferentes materias, comunidades o situaciones.

AWS es 5 veces mas caro que Azure

Photo by Pixabay on Pexels.com

¿Por qué ejecutar Windows Server y SQL Server en otro lugar?
La respuesta es clara: la migración de sus cargas de trabajo a Azure puede generar ahorros significativos. No pague 5 veces más por Windows Server y SQL Server en AWS. Y, por último, no pase por alto el valor de un único punto de soporte en su nube híbrida. Cuando surgen problemas, obtiene una resolución más rápida con un solo proveedor al que llamar. Julia White (MSFT VP) analiza tres razones por las que los clientes prefieren Azure en su blog  https://azure.microsoft.com/en-us/blog/three-reasons-why-windows-server-and-sql-server-customers-continue-to-choose-azure/