Wednesday, December 10, 2014

Recovering Active Directory From Total Lost Disaster Recovery Basic Steps.

In this article I will help you to understand, how to recover your entire forest from total lost. Many networks these days do have multiple domain controllers and especially on enterprise networks losing all available domain controllers less likely but still possible. If you do not have published SOP for recovering your Active Directory Forest the steps in this article might provide you frame work you need.

Scenario: Entire datacenter is gone, you do have your backup and infrastructure ready on the second data center.

Note: backup at least two Domain controller from each domain regularly to preserve better recovery option when needed.

Note: per Microsoft it is not recommended to restore FSMO role holder in the interest of simplicity.  (Forest recovery white paper)

image

now we lost DC1 , and we must recover Entire Forest /Domains from tape backup. 

image

Steps:

  1. Prepare VM host on the DC2 , ready to be deployed
  2. Make sure each VM is able to talk to ( TCP/IP) your backup media Servers in the DC2
  3. Recover first Domain Controller on the Forest Root from good tape backup (SystemState)
  4. You will need to know DSRM administrator user name and password
  5. Reboot into  DSRM (Directory Services Restore Mode) mode by pressing F8 key after successful restore.
  6. Install VM host integrated Drivers ( Do not remove any of the existing drivers came with image, it could cause blue screen)
  7. Disable all Physical NIC cards , un-check option register this connection into DNS on all the NIC’s which are no longer being user. Domain controllers in general do not need more than single NIC.
  8. Make sure all Disks for the Recovered DC is configured correctly ( SYSVOL and .DIT )
  9. Bring all Disks online , make sure correct disk labeling is in place ( same as lost DC )
  10. Verify SYSVOL and .DIT exist after successful recovery
  11. Configure TCP/IP  IPV4 or IPV6 properties based on your needs, you can use different IP address schema, domain controllers will register their new IP addresses and their DC related DNS records into DNS on the first reboot.
  12. Reboot the DC into regular mode
  13. Wait for SYSVOL to become available ,
  14. login to DC with Domain administrator privileges
  15. Perform an authoritative  SYSVOL restore Set BurFlags to D4
  • Click Start, and then click Run.
  • In the Open box, type cmd and then press ENTER.
  • In the Command box, type net stop ntfrs.
  • Click Start, and then click Run.
  • In the Open box, type regedit and then press ENTER.
  • Locate the following subkey in the registry:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NtFrs\Parameters\Backup/Restore\Process at Startup

  • In the right pane, double-click BurFlags.
  • In the Edit DWORD Value dialog box, type D4 and then click OK.

From command prompt type “net Share” to verify SYSVOL is shared.

Perform metadata cleanup ( Windows 2008 use ADUC ) or NTDSUTIL , if you are in large environment using ADUC is much faster, simply locate the DC computer object and select delete.( Related Link )

Tip: If you leave the FSMO Role holders to last to FSMO role DC’s will force FSMO Seizure to surviving DC ( one last step to worry about seizing the FSMO Roles)

  1. Reset machine account twice
  2. Reset the krbtgt account password twice
  3. Reset all trust passwords
  4. Seize the FSMO roles if you have not done it already
  5. Delete all orphan KCC replication connections
  6. Clean up DNS, Name Servers , Forwarders , Stale CNAME, Glue records, delete them all.
  7. Promote second DC on the root domain, if you have single label domain name space at this point you would DCPROMO other DC’s.
  8. On the Child Domain Restore First Writable Domain Controller
  9. Log into DSRM mode
  10. Perform all initial steps done on the previous restore
  11. Make sure TCP/IP properties Primary DNS for Child Domain controller is pointing to Root DC.
  12. Reboot restored Child Domain controller into regular mode.
  13. Wait for SYSVOL to be available
  14. Log into DC
  15. You need to set BurFlags to D2 on the child domain controller , if you wont do this SYSVOL folder will disappear after some time.
  16. Use RepAdmin  to make sure replication from Child to Parent is working
  17. Perform Metadata Cleanup
  18. Perform FSMO Role Seizure.
  19. Check to make sure DNS comes up.
  20. Cleanup all stale CNAME,A , GLU, RDNS entries 
  21. Make sure DC’s are stable
  22. Start planning your application servers recovery and have fun (-:

 

DCDiag and RepAdmin are two of the most powerfull command line tools use them.

dcdiag /V /C /D /E /s:DCname > C:\temp\DcDiag.txt

image

Oz Casey, Dedeal  ( MVP North America)
MCITP (EMA), MCITP (SA)
MCSE 2003, M+, S+, MCDST
Security+, Project +, Server +
http://smtp25.blogspot.com/ (Blog)
http://telnet25.wordpress.com/ (Blog

Download Forest Recovery White Paper

Tuesday, November 11, 2014

Exchange 2016 & Skype4B

 

I have recently attended MVP summit 2014 at Redmond. I must admit this was one of the most significant summit. I had same feelings when I attended MVP summit 2010.

Microsoft future vision was told us back then , most of critical Microsoft products would be running from “Cloud” in the future. Here we are almost 2015 and yes there has been many significant changes Microsoft has done to re-direct the business energy to cloud deployments. And more is on the way !!!!

It is very clear to me couple more years the current way of doing traditional IT business  will shrink and more and more “Cloud” deployments will be joining into our lives.

Information systems and  technology is subject to change and adopt fast innovations.  Most of these changes are inevitable and we will be adapting these changes.

Let’s take a look at some of the major changes and related news, which are rumbling around the internet

Exchange 2016 On prem & Office 365 “Cloud”

image

IT admins spend less time maintaining servers and more time lighting up features that make users happy.

It’s true that customers are shifting their Exchange deployments from on-premises to the cloud, and it’s true that we are investing heavily in Office 365. We’re fans of Office 365 because we’ve seen that when customers run email in our cloud, they save money, they get larger mailboxes, and they get faster access to our latest innovations. IT admins spend less time maintaining servers and more time lighting up features that make users happy. Running Office 365 also brings us real-world experience that helps us build a better on-premises product

source

http://blogs.technet.com/b/exchange/archive/2013/11/13/exchange-server-the-road-ahead.aspx

Lync 2013 & Skype4B

In the first half of 2015, the next version of Lync will become Skype for Business with a new Current Lync Server customers will be able to take advantage of these capabilities simply by updating from Lync Server 2013 to the new Skype for Business Server in their datacenters.

image

source

http://blogs.skype.com/2014/11/11/introducing-skype-for-business/

more to come stay tuned….


Oz Casey, Dedeal  ( MVP North America)
MCITP (EMA), MCITP (SA)
MCSE 2003, M+, S+, MCDST
Security+, Project +, Server +
http://smtp25.blogspot.com/ (Blog)
http://telnet25.wordpress.com/ (Blog)

 

 

Monday, September 29, 2014

Arbitration Mailbox Exchange 2010 and 2013

Exchange Server system mailbox is also called "Arbitration" mailbox. Exchange Server uses these mailboxes for various tasks. These mailboxes are being created when you setup first exchange server preparing Active Directory /PrepareAD in the root domain of the AD Forest.

if you would like to locate these mailboxes you would use get-mailbox –Arbitration cmdlet and if you are in the root and child domain environment, you have to adjust the PS search to look at the root of the forest  to locate these accounts.

 

Set-ADServerSettings -ViewEntireForest $true

Get-mailbox -Arbitration | fl name,Database,DisplayName,ServerName

 

  • Name : SystemMailbox{1f05a927-eac1-46e7-9a47-611e1a81bb50}
  • Name : SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}
  • Name : SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}
  • Name : Migration.8f3e7716-2011-43e4-96b1-aba62d229136

If you go to root of your active directory forest you will be able to locate the user accounts associating with these system mailboxes.

image 

By default they are located at the users container in the root of the AD Forest.

image

Arbitration system mailboxes keeps & stores organization wide data in them such as

  • eDiscovery Searches Metadata  ( if you are using  search-mailbox cmdlet with –targetmailbox switch and offloading searched enterprise data, before deleting the Arbitration system mailboxes could get potential big with the metadata collection as repository)
  • Administrator audit logs  ( Ability to run Search-AdminAuditLog cmdlet )
  • Unified Messaging data, such as menus, dial plans, and custom greetings

In most of the cases these account you wont pay huge attention , as they are not exposed to EMC and there is less chance them getting deleted. To be better prepared you can turn on “Protect object from accidental deletion”  on these accounts.

 

image

You can do same work from PS , the most common way is to ask for help if you do not remember the cmdlet

import-module ActiveDirectory

Get the help you need

Get-Help Get-ADUser -examples

Look for System Mailboxes

Get-ADUser -Filter 'Name -like "SystemMailbox*"' | FT Name

image

Enable all at once.

Get-ADUser -Filter 'Name -like "SystemMailbox*"' | Set-ADObject -ProtectedFromAccidentalDeletion:$true

 

image

Scenario –1

You have decided to move these mailboxes onto another database

Specify the target database with new-move Request

Get-Mailbox -Arbitration -Identity "SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}" | New-MoveRequest -TargetDatabase DB200

Scenario – 2

You decided to delete the System mailbox while preserving AD Account so you can create new Arbitration System mailbox

List the Arbitration mailboxes

Get-mailbox -Arbitration | fl name

  • Name : SystemMailbox{1f05a927-eac1-46e7-9a47-611e1a81bb50}
  • Name : SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}
  • Name : SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}
  • Name : Migration.8f3e7716-2011-43e4-96b1-aba62d229136
Get-mailbox -Arbitration -Identity "SystemMailbox{1f05a927*" | Disable-Mailbox –Arbitration –Confirm:$False

AD account is still exist, we will create brand new arbitration mailbox for the same account.

Enable-mailbox -Arbitration -Identity "SystemMailbox{1f05a927*"

image

Scenario – 3

Arbitration mailboxes AD account has been deleted , simply re-run setup

If you have Exchange 2013 in the environment you need to run the setup from E2013 media.

Setup.EXE /IAcceptExchangeServerLicenseTerms /PrepareAD

image

Simple enough after setup is complete, they are back.

image

Respectfully,
Oz Casey, Dedeal ( MVP north America)
MCITP (EMA), MCITP (SA)
MCSE 2003, M+, S+, MCDST
Security+, Project +, Server +
http://smtp25.blogspot.com/ (Blog)
http://telnet25.wordpress.com/ (Blog)

Tuesday, September 16, 2014

Configuring Internal Application Relay with Receive Connector Part#2

 

Open your newly created internal Receive connector my making right click on it and selecting properties

clip_image001

In order to allow Anonymous Authentication follow the steps in this order. On the Authentication Tab TLS is selected by default.

  • Click Permissions and select “Exchange Servers” and click apply

clip_image002

  • Now go back to Authentication and select “Externally Secured” this is where the magic starts

clip_image003

  • I will explain in details why we selected this option and what happened in the background.
  • Go back to Permissions Tab and select this time “Anonymous”

clip_image004

  • If you don’t follow the order you will receive error, some controls aren’t valid.

You must set the value for the PermissionGroups to ExchangeServers when you set the AutMechanism parameter to a value of ExternalAuthoritative.

clip_image005

  • You got this because you did not follow the order listed above.
  • If you enable “Eternally Secured” you will be forced to use limited offer TLS with this connector,
  • You can go back and mess with Permissions groups if you do have any requirements.

clip_image006

Step-1 ---------------> Permission Groups, Select Exchange Servers

Step-2 ---------------> Authentication Settings, Select Externally Secured

Step-3 ---------------> Permission Groups, Select Anonymous

Externally Secured meaning is, This Receive connector will lift off most of the restrictions, you are pretty much trusting the internal Servers, the relaying servers are “Trusted: therefore you will be adding the IP address of the relaying servers into here.

clip_image007

Here is list of permissions gets assigned to this connector

Accept-Authoritative-Domain

MS Exchange\Externally Secured Servers {ms-Exch-SMTP-Accept-Authoritative-Domain}

Bypass-Anti-Spam

MS Exchange\Externally Secured Servers {ms-Exch-Bypass-Anti-Spam}

Bypass-Message-Size-Limit

MS Exchange\Externally Secured Servers {ms-Exch-Bypass-Message-Size-Limit}

SMTP-Accept

MS Exchange\Externally Secured Servers {ms-Exch-SMTP-Accept-Exch50}

Accept-Headers-Routing

MS Exchange\Externally Secured Servers {ms-Exch-Accept-Headers-Routing}

SMTP-Submit

MS Exchange\Externally Secured Servers {ms-Exch-SMTP-Submit}

Accept-Any-Recipient

MS Exchange\Externally Secured Servers {ms-Exch-SMTP-Accept-Any-Recipient}

Accept-Authentication-Flag

MS Exchange\Externally Secured Servers {ms-Exch-SMTP-Accept-Authentication-Flag}

Accept-Any-Sender}

MS Exchange\Externally Secured Servers {ms-Exch-SMTP-Accept-Any-Sender}

See the  Receive connectors

Get-ReceiveConnectors

clip_image009

Add AD Permissions to this Receive Connector

$ReceiveConnector = "E1\Internal_Relay-1"

Get-ReceiveConnector "$ReceiveConnector" | Add-ADPermission -User "NT AUTHORITY\ANONYMOUS LOGON" -ExtendedRights "Ms-Exch-SMTP-Accept-Any-Recipient"

clip_image011

Now let’s see the properties of this connector

Get-ReceiveConnector -Identity "E1\Internal_Relay-1" | fl

clip_image012

Now if you have applications will relay off this connector and they are defined with short names, you will need to add your SMTP domain name in this filed, otherwise the short name completion may fail with 501 5.1.3 Invalid address Short Name Rcpt SMTP address etc.

Basically the application server is passing valid from SMTP Address format on the relay submission and on the CC or BB it is passing short names such as casey.Dedeal

From: ApplicationRelay@smtp25.org

To: Casey.Dedeal

Bcc: Jon.Doe

clip_image013

To overcome with this issue allow applications to continue to use short names on the CC or BCC field use

$ReceiveConnector = "E1\Internal_Relay-1"

Set-Receiveconnector "$ReceiveConnector" -defaultdomain ZtekZone.com

clip_image014

Now this connector will append default specified SMTP domain to short names when application is performing relay submission.

clip_image015

One less to worry , especially for applications who are written poorly. ( none full SMTP compliant)

If you like to see the AD Permissions on this connector

$ReceiveConnector = "E1\Internal_Relay-1"

Get-ReceiveConnector "$ReceiveConnector” | Get-ADPermission | where {$_.extendedrights –like “*Any-Recipient”}

image

Lastly , use network sniffer and SMTP loggings options  to further troubleshoot any SMTP submission failures on this connector.

Respectfully,
Oz Casey, Dedeal ( MVP north America)
MCITP (EMA), MCITP (SA)
MCSE 2003, M+, S+, MCDST
Security+, Project +, Server +
http://smtp25.blogspot.com/ (Blog)
http://telnet25.wordpress.com/ (Blog)

SMTP Application Relay Receive Connector Exchange 2010 and 2013

 

Internal Application Relay Connector Part-1

If you get this far and reading this article, most likely you do need to build internal Application Relay Connector with Exchange 2010 or Exchange 2013. Part-1 I will list the requirement and sample deployment plan, which will assist you to pull swift, head ache worry implementation. Trust me on this planning correctly at the very beginning is the way of doing it right. Each time I roil into small, big projects this becomes reality.

Step#1 Identity the applications will use this connector and use sample table below

image

image

Planning

  1. Test new Receive Connector for application relay
  2. Verify application relay works after cut over
  3. If you do not have test environment the table below will help you to test in production
  4. Make certain you have fail back steps included into your cut over implementation plans
  • Let’s create the connector,
  1. Creating Internal Application Relay Receive Connector Part#1
  2. Log onto your management Server, or Exchange HTS (Hub Transport Server) with correct administrator privileges via RDP ( Remote Desktop Protocol)
  3. After successful logon, Click on All Programs, Microsoft Exchange Server 2010, Exchange Management Console, run EMC with administrator privileges by making right click on it, accept any UAC prompts by clicking yes.

clip_image001

  • Expand Microsoft Exchange on Premises
  • Go down to Server Configuration, Expand it click on Hub Transport Server

Now each Server will have Client and Default connectors, if you do not know what they do , you may want to do use your Bing-Fu skills to get to know them, in most cases you would leave these connectors alone and create receive connector with desired authentication methods and permissions which we are about to do.

clip_image002

  • Now in the middle pane make right click and select “New Receive Connector”

clip_image003

  • Give it a name and click next

clip_image004

  • If you have any special requirements you can change listening port , use server FQDN on the connector and click next, if not leave with defaults and click Next

clip_image005

  • Now click on red X and delete the subnet defined there

clip_image006

  • Add the IP address of the application server, (this could be HLB proxy IP address etc.), the IP address id being used to talk to this connector

clip_image007

  • Click new

clip_image008

  • Click Finish

clip_image009

  • You could practically skip all GUI and use the PS listed below to get the same work done, Change required filed if you wish to create same connector from PS.

New-ReceiveConnector -Name 'Internal_Relay-2' -Usage 'Custom' -Bindings '0.0.0.0:25' -Fqdn 'e1.ZtekZone.com' -RemoteIPRanges '10.10.10.172' -Server 'E1'

clip_image011

  • If you refresh GUI you will notice both connectors are there

clip_image012

We are done with part one, On part 2 we will configure the internal Application Relay Connector with correct settings, to allow internal applications to relay successfully stay tuned.

Respectfully,
Oz Casey, Dedeal ( MVP north America)
MCITP (EMA), MCITP (SA)
MCSE 2003, M+, S+, MCDST
Security+, Project +, Server +
http://smtp25.blogspot.com/ (Blog)
http://telnet25.wordpress.com/ (Blog)

Wednesday, August 27, 2014

Managing RBAC Roles with RBAC_Manager, with Five easy steps.

We will look into using RBAC Manager R2 rom (CodePlex) to manage our environment. There are several cmdlet’s also available.

Download RBAC manager From this link , unzip the files and execute RBAC_Manager.exe.

Note: RBAC_Manager.exe runs into memory space , it means you do not have to install it. If your environment is “secured” this could be pretty neat news. I still recommend making sure , you are clear with your work place existing policies etc..

image

Now provide required parameters and click ok to connect.

image

You will be seeing Management Roles , listed on the left pane

image

*PS equivalent for what you are seeing would be

#Get all management Role Entries

Get-ManagementRoleEntry "*\*"

After making making up your mind what Management Role you like to use as parent and create new one, simply “right click” and select “New Role From Here”

image

*PS equivalent

If you like to see what cmdlet;s assigned to specific Role entry

Get-ManagementRoleEntry "Active Directory permissions\*"

image

Create new Role from Parent

New-ManagementRole "ZTEK Active Directory Permissions" -Parent "Active Directory Permissions"

image

Note: As far as name convention goes for the Management Roles, make some plans and follow them. Having simple name convention for Management roles and Role Groups will provide more simpler management to your organization.

image

image

Select the Role and get rid of any cmdlet you do not want to associate with this Role, Click Save on the top menu to save the changes.

image

PS Version ( Remove All cmdlet,  but Like ( matches ) the filter )

Get-ManagementRoleEntry “ZTEK Active Directory permissions\*” | Where {$_.name -Like “Get-User”} |  Remove-ManagementRoleEntry -Confirm:$False

Now Click on “Show Role Groups”

image

image

Get-RoleGroup

image

Create Role Group

New-RoleGroup -Name "ZtekZone HelpDesk 1.0"

image

image

here you can select any of the existing roles , custom scope options, it is pretty simple and useful , once you are read click on ok.

image

In this example I will pick up the role we have created earlier

image

Adding member to Role Group

image

 

image

image

Get-RoleGroup | Select-Object name

image

Get-RoleGroup -Identity "ZtekZone Security Tier 2"

image

Get-RoleGroup -Identity "ZtekZone Security Tier 2" | Add-RoleGroupMember -Member c-Aki.Armstrong

to see the list of members

Get-RoleGroup -Identity "ZtekZone Security Tier 2" | Select-Object name,members | ft -AutoSize

image

you can un-check the box to take Ron out of RBAC Role Group. As you already know RBAC groups are kept in the AD root Forest, in the “ Microsoft Exchange Security Groups” Organization container.

image

image

image

As you can see it is fairly simple to manage the RBAC roles and it is related task with RBAC Manager

Respectfully,
Oz Casey, Dedeal ( MVP north America)
MCITP (EMA), MCITP (SA)
MCSE 2003, M+, S+, MCDST
Security+, Project +, Server +
http://smtp25.blogspot.com/ (Blog)
http://telnet25.wordpress.com/ (Blog)