Windows Server 2003 Access-based Enumeration
This is what you want to implement on all servers running DFS-N
This is something which may help you when implementing ABE with DFS
see link:
I hope this helps you ... similar to something I have just finished deploying.
########### EXAMPLE SETUP ###########
Download and install the Windows Server 2003 Access-based Enumeration
DFS-SERVER-NAME for example = DFS-SERVER-1
you have a shared root folder D:\DFS-DEPT-SHARE\
which translates to \\DOMAIN.LOCAL\DEPT
D:\DFS-DEPT-SHARE\TECH
\\DOMAIN.LOCAL\DEPT\TECH
D:\DFS-DEPT-SHARE\REALESTATE
\\DOMAIN.LOCAL\DEPT\REALESTATE
###########
In AD create 3 groups called:
DEPT-TECH
DEPT-REALESTATE
and
DEPT-SHARE-ACCESS
make DEPT-TECH a member of DEPT-SHARE-ACCESS
make DEPT-REALESTATE a member of DEPT-SHARE-ACCESS
###########
add userA into DEPT-TECH group
add userB into DEPT-REALESTATE group
add userC into both groups
########### Sharing & Security on actual folders ###########
Remove the inheritable permissions on each folder ... set them all independently.
D:\DFS-DEPT-SHARE (add DEPT-SHARE-ACCESS group on this folder only - NOT sub folders and files)
set Allow on 5 items:
Traverse folder / execute file
List folder / read data
Read attributes
Read extended attributes
Read permissions
D:\DFS-DEPT-SHARE\TECH (DEPT-TECH group added)
remove inheritable and select copy, remove DEPT-SHARE-ACCESS
give the level of access you want to the DEPT-TECH group
D:\DFS-DEPT-SHARE\REALESTATE (DEPT-REALESTATE group added)
rinse and repeat
here is where it gets interesting ... test from a workstation
UserA should be able to see
\\DFS-SERVER-1\D$\DFS-DEPT-SHARE\
\\DFS-SERVER-1\D$\DFS-DEPT-SHARE\TECH
UserB should be able to see
\\DFS-SERVER-1\D$\DFS-DEPT-SHARE\
\\DFS-SERVER-1\D$\DFS-DEPT-SHARE\REALESTATE
UserC should be able to see
\\DFS-SERVER-1\D$\DFS-DEPT-SHARE\
\\DFS-SERVER-1\D$\DFS-DEPT-SHARE\TECH
\\DFS-SERVER-1\D$\DFS-DEPT-SHARE\REALESTATE
If that is all working you can now move onto making sure that ABE (Access Based Enumeration) is working via DFS
Most likely UserA will be able to see
\\DOMAIN.LOCAL\DEPT
\\DOMAIN.LOCAL\DEPT\TECH
and --> \\DOMAIN.LOCAL\DEPT\REALESTATE
This is where the trick comes in ... you need to copy the ACL (Access Control List) from the Shared folder
now because the UserA is a member of DEPT-TECH they will also inherit the DFS-SHARE-ACCESS group as its a member.
that way generally speaking a user is only a member of one group and you use the inheritance of member groups to manage the tree
D:\DFS-DEPT-SHARE\
and copy them onto
C:\DFSRoots\DEPT
Do the same for both
D:\DFS-DEPT-SHARE\TECH
-> C:\DFSRoots\DEPT\TECH
D:\DFS-DEPT-SHARE\REALESTATE
-> C:\DFSRoots\DEPT\REALESTATE
now when you test it should only show:
UserA
\\DOMAIN.LOCAL\DEPT
\\DOMAIN.LOCAL\DEPT\TECH
NOTE: If you have multiple DFS SERVERS you need to apply the permissions onto every folder the same
DFS-SERVER-1
DFS-SERVER-2
DFS-SERVER-3
The DFSRoots is for each server which is a NAMESPACE Server for the DFSRoot
You need to make sure the SHARED D:\ Folders and the C:\DFSRoots folders are all applied to each, this caught me out as I was expecting to resolve to DFS-SERVER-1 except I was picking up DFS-SERVER-2 and I hadnt applied the permissions onto that server
The easiest way to get and set folder permissions is to use Microsoft POWERSHELL.
GET-ACL and SET-ACL, there is a ps1 script on internet to get and set folder permissions, you want the one which removes and folder permissions and then sets with a clean set.
I hope this helps you out
Cheers,
C