• Access Control

    PDF

    Access Control

    This chapter describes a variety of access control features implemented on the storage system.

    Topics include:

    Storage system factory default management and service accounts

    The storage system comes with factory default user account settings to use when initially accessing and configuring the storage system. See Table 1.

    Table 1. Factory default user account settings
    Account type
    Username
    Password
    Privileges
    Management (Unisphere)
    admin
    Password123#
    Administrator privileges for resetting default passwords, configure system settings, create user accounts, and allocate storage.
    Service
    service
    service
    Perform service operations.
    Note:   During the initial configuration process, you are required to change the default password for the Management and Service accounts.

    Storage system account management

    Table 2 illustrates the ways in which you can manage the storage system accounts.

    Table 2. Account management methods
    Account roles
    Description
    Management:
    • Adminstrator
    • Storage Administrator
    • Security Administrator
    • Operator
    • VM Administrator
    After the storage system initial system configuration process is complete, you can manage the storage system users and groups (either local accounts, LDAP accounts, or both) from Unisphere or the Unisphere CLI.
    • For local accounts, you can add a new user, delete a selected user, change the user's role, and reset (change) user password.
    • For an LDAP user, you can add an LDAP user, delete a selected user, and change the user's role.
    • For an LDAP group, you can add an LDAP group, delete a selected group, and change the group's role.
    Service
    You cannot create or delete storage system service accounts. You can reset the service account password from Unisphere. Under System, select Service > Service Tasks > Change Service Password function.
    Note:  You can reset the storage system factory default account passwords by pressing the password reset button on the storage system chassis. The Unisphere Online Help and the Hardware Information Guide for the system provide more information.

    Unisphere

    Authentication for access to Unisphere is performed based on the credentials of the user (local or LDAP) account. User accounts are created and subsequently managed through the User Management selection under Settings > Users and Groups in Unisphere. The authorizations that apply to Unisphere depend on the role associated with the user account.

    Before a user can download the Unisphere UI content to a management workstation, the user must provide credentials for authentication and establish a session on the storage system. When the user specifies the network address of the storage system as the URL in a web browser, the user will be presented with a login page from which the user can select to authenticate either as a local user or through an LDAP directory server. The credentials that the user provides will be authenticated and, upon successful authentication, a UI management session will be created on the storage system. Subsequently, the Unisphere UI will be downloaded and instantiated on the user's management workstation. The user then will be able to monitor and manage the storage system within the capabilities of the role assigned to the user.

    LDAP

    The Lightweight Directory Access Protocol (LDAP) is an application protocol for querying directory services running on TCP/IP networks. LDAP provides central management of authentication and identity and group information used for authorization on the storage system. Integrating the system into an existing LDAP environment provides a way to control user and user group access to the system through Unisphere CLI or Unisphere.

    After you configure LDAP settings for the system, you can manage users and user groups, within the context of an established LDAP directory structure. For instance, you can assign access roles (Administrator, Storage Administrator, Security Administrator, Operator, VM administrator) to the LDAP user or groups. The role applied will determine the level of authorization the user or group will have in administering the storage system. The system uses the LDAP settings only for facilitating control of access to Unisphere CLI and Unisphere, not for access to storage resources.

    Session rules

    Unisphere sessions have the following characteristics:

    • Expiration term of one hour
    • Session timeout is not configurable
    • Session IDs are generated during authentication and used for the duration of each session
    Username and Password usage

    Unisphere account user names must meet these requirements, as shown in the following table.

    Table 3. Unisphere account username requirements
    Restriction
    Username requirement
    Minimum number of alphanumeric characters
    1
    Maximum number of alphanumeric characters
    64
    Supported special characters
    . (dot)

    Unisphere account passwords must meet these requirements, as shown in the following table.

    Table 4. Unisphere account password requirements
    Restriction
    Password requirement
    Minimum number of characters
    8
    Minimum number of uppercase characters
    1
    Minimum number of lowercase characters
    1
    Minimum number of numeric characters
    1
    Minimum number of special characters
    • Supported special characters include:
      • !,@#$%^*_~?
    1
    Maximum number of characters
    40
    Note:  You can change account passwords from Unisphere by selecting Settings and, under Users and Groups, select User Management > More Actions > Reset Password. When changing a password, you cannot reuse any of the last three passwords. The Unisphere Online Help provides more information.
    NOTICE  In STIG mode, the password size must be at least 15 characters. STIG mode also sets additional requirements for password count, period, and expiration status. User accounts that were created prior to STIG mode being enabled are not impacted unless the password is modified. For more information related to STIG mode, see Manage STIG mode (physical deployments only).
    Authorization

    Table 5 shows the roles you can assign to the storage system local users and the privileges associated with these roles. In addition, you can assign these roles to LDAP users and groups.

    Table 5. Local user roles and privileges
    Task
    Operator
    Storage administrator
    Security administrator
    Administrator
    VM administrator
    Change own local login password
    x
    x
    x
    x
    Add, delete, or modify hosts
    x
    Create storage
    x
    x
    Delete storage
    x
    x
    Add storage objects, such as LUNs, shares, and storage groups to a storage resource
    x
    x
    View storage configuration and status
    x
    x
    x
    x
    View Unisphere user accounts
    x
    x
    x
    Add, delete, modify, lock or unlock Unisphere user accounts
    x
    x
    View current software or license status
    x
    x
    x
    x
    Perform software or license upgrade
    x
    Perform initial configuration
    x
    Modify NAS server configuration
    x
    Modify system settings
    x
    Modify network settings
    x
    Change management interface language
    x
    x
    x
    x
    View log and alert information
    x
    x
    x
    x
    View encryption status
    x
    x
    x
    x
    Perform encryption keystore, auditlog, checksum backup
    x
    x
    Modify FIPS 140-2 mode
    x
    x
    Modify STIG mode
    x
    x
    Establish VASA connections between vCenter and the storage system
    x
    x

    In the case of the VM Administrator role, once connection is established between the vCenter and the storage system, a vCenter user will be able to view the subset of the storage configuration and status which is relevant to that vCenter and its ESXi servers. The vCenter user can view only that information which is allowed through the vCenter access control mechanisms.

    Note:  You can change account roles in Unisphere by selecting Settings and, under Users and Groups, select User Management > More Actions > Change Role. The Unisphere Online Help provides more information.
    NAT

    NAT is not supported for local login through Unisphere to the storage system.

    Unisphere command line interface (CLI)

    The Unisphere CLI provides a command line interface for the same functionality available through Unisphere.

    Running the Unisphere CLI requires special storage system command line software. You can download this software from the product page for your storage system on EMC Online Support (https://support.emc.com).

    Session rules

    The Unisphere CLI client does not support sessions. You must use command line syntax to specify the account username and password with each command that you issue.

    You can use the Unisphere CLI -saveuser command to save the access credentials (username and password) for a specific account to a file in the secure lockbox that resides locally on the host on which Unisphere CLI is installed. The stored data is only available on the host where it was saved and to the user who saved it. After you save the access credentials, the CLI automatically applies them to the specified storage system destination and port each time you run a command.

    Password usage

    Authentication to the Unisphere CLI is performed in accordance with management accounts created and managed through Unisphere. The same permissions that apply to Unisphere apply to specific commands depending on the role associated with the current login account.

    Saved settings

    You can save the following settings on the host on which you run Unisphere CLI:

    • User access credentials, including your username and password, for each system you access.
    • SSL certificates imported from the system.
    • Information about default system to access through Unisphere CLI, including the system name or IP address and the system port number.

    Unisphere CLI saves the settings to a secure lockbox that resides locally on the host on which Unisphere CLI is installed. The stored data is only available on the host where it was saved and to the user who saved it. The lockbox resides in the following locations:

    • On Windows Server 2003 (XP): C:\Documents and Settings\$<user_name>\Local Settings\ApplicationData\.emcmcli\cert
    • On Windows 7, Windows 8, and Windows 10: C:&#xsers\${user_name}\AppData\Local\.emcmcli\cert
    • On UNIX/Linux: <home_directory>/.emc/uemcli/cert

    Locate the files config.xml and config.key. If you uninstall Unisphere CLI, these directories and files are not deleted, giving you the option of retaining them. If these files are no longer needed, consider deleting them.

    Storage system service SSH interface

    The storage system SSH service interface when enabled provides a command line interface for performing related and overlapping functionality to that which is available from the Unisphere Service page (under System select Service > Service Tasks > Enable SSH).

    The service account enables users to perform the following functions:

    • Perform specialized storage system service commands for monitoring and troubleshooting storage system settings and operations.
    • Operate only a limited set of commands that are assigned as a member of a non-privileged Linux user account in restricted shell mode. This account does not have access to proprietary system files, configuration files, or user or customer data.

    To learn more about using service commands, see the technical notes document, Service Commands.

    The storage system SSH service interface setting is persistent across system reboots, failovers, and in both Service Mode and Normal Mode. Therefore, enabling the storage system SSH service interface will keep the interface enabled until it is explicitly disabled from the Unisphere Service page (under System select Service > Service Tasks > Disable SSH).

    For maximum system security, it is recommended to leave the storage system SSH service interface disabled at all times unless it is specifically needed to perform service operations on the storage system. After performing the necessary service operations, disable the SSH interface to ensure that the system remains secure.

    Sessions

    The storage system SSH service interface sessions are maintained according to the settings established by the SSH client. Session characteristics are determined by the SSH client configuration settings.

    Password usage

    The service account is an account that service personnel can use to perform basic Linux commands.

    The default password for the storage system service interface is service. When you perform initial configuration for the storage system, you must change the default service password. Password restrictions are the same as those that apply to Unisphere management accounts (see Username and Password usage). For information on the storage system service command, svc_service_password, used to manage the password settings for the storage system service account, see the technical notes document, Service Commands.

    Authorization

    As shown in Table 6, authorization for the service account is defined in two ways.

    Table 6. Service account authorization definitions
    Authorization type
    Description
    Linux file system permissions
    File system permissions define most of the tasks that the service account can and cannot perform on the storage system. For example, most Linux tools and utilities that modify system operation in any way require superuser account privileges. Since the service account does not have such access rights, the service account cannot use Linux tools and utilities to which it does not have execute permissions and cannot edit configuration files that require root access to read or modify, or both.
    Access control lists (ACLs)
    The ACL mechanism on the storage system uses a list of very specific rules to explicitly grant or deny access to system resources by the service account. These rules specify service account permissions to other areas of the storage system that are not otherwise defined by standard Linux file system permissions.
    Storage system service commands

    A set of problem diagnostic, system configuration, and system recovery commands are installed on the storage system's operating environment (OE). These commands provide an in-depth level of information and a lower level of system control than is available through Unisphere. The technical notes document, Service Commands, describes these commands and their common use cases.

    Storage system SP Ethernet service port and IPMItool

    Your storage system provides console access over an Ethernet service port that is on each SP. This access requires the use of the IPMItool. The IPMItool is a network tool similar to ssh or telnet that interfaces with each SP over an Ethernet connection by using the IPMI protocol. The IPMItool is a Windows utility that negotiates a secure communication channel to access the SP console of a storage system. This utility requires login credentials and an IP address to activate the console. For more information about the IPMItool, see the IPMItool User Guide Technical Notes.

    The SP Ethernet service port interface provides the same functions and features as the service SSH interface and is also subject to the same restrictions. The difference is that users access the interface through an Ethernet port connection rather than an SSH client.

    For a list of service commands refer to the Service Commands Technical Notes.

    SMI-S provider

    The SMI-S provider does not introduce any change with regards to security. An SMI-S client connects to the storage system through HTTPS port 5989. The login credentials are the same as those of Unisphere UI or CLI users. All security rules that apply to UI and CLI users also apply to SMI-S connections. Unisphere UI and CLI users can authenticate using the SMI-S interface. No separate users are defined for the SMI-S interface. Once authenticated, the SMI-S client has the same privilege as defined for those Unisphere UI and CLI users. The SMI-S Provider Programmer's Guide for your storage system product provides information about configuring this service.

    vSphere Storage API for Storage Awareness support

    vSphere Storage API for Storage Awareness (VASA) is a VMware-defined, vendor-neutral API for storage awareness. A VASA Provider (VP) is a storage‐side software component that acts as a storage awareness service for vSphere. ESXi hosts and vCenter Server connect to the VP and obtain information about available storage topology, capabilities, and status. Subsequently, vCenter Server provides this information to vSphere clients. VASA is used by VMware clients rather than Unisphere clients.

    The VP runs on the active Storage Processor (SP) of the storage system. The vSphere user must configure this VP instance as the provider of VASA information for each storage system. In the event that an SP goes down, the related process will restart on the peer SP, along with the VASA VP. The IP address fails over automatically. Internally, the protocol will see a fault when obtaining configuration change events from the newly active VP, but this will cause an automatic resynchronization of the VASA objects without user intervention.

    The storage system provides VASA 3.0 and VASA 2.0 interfaces for vSphere 6, and VASA 1.0 interfaces for vSphere 5.x.

    VASA 1.0 is used for monitoring only and is used by VMware clients rather than Unisphere clients. VASA 1.0 is a reporting interface only and is used to request basic information about the storage system and the storage devices it exposes to the virtual environment in order to facilitate day-to-day provisioning, monitoring, and troubleshooting through vSphere:

    • Storage visibilty: internally detects property changes, sending the updated information to vCenter
    • Health and Capacity alarms: internally monitors for health status changes and for capacity related thresholds being crossed, raising the appropriate alarms to vCenter:
      • health status for the array, SPs, I/O ports, LUNs, and File Systems
      • class-level change indications for a change in health status for any of these objects
      • space capacity alarms for LUNs and File Systems
    • VASA storage capabilities: internally monitor for storage capability changes, reporting updated capabilities to vCenter
    • Storage DRS integration: vSphere will rely on information obtained internally from the VP and feed it into its business logic for various Storage DRS work-flows.

    VASA 3.0 and 2.0 support Virtual Volumes (VVols). VASA 3.0 and VASA 2.0 support interfaces to query storage abstractions such as VVols and Storage Containers. This information helps storage policy based management (SPBM) make decisions about virtual disk placement and compliance. VASA 3.0 and VASA 2.0 also support interfaces to provision and manage the lifecycle of Virtual Volumes used to back virtual disks. These interfaces are directly invoked by ESXi hosts.

    For more information related to VASA, vSphere, and VVols, refer to the VMware documentation and the Unisphere online help.

    Authentication related to VASA

    In order to initiate a connection from vCenter to the Unisphere VP, you must use the vSphere client to enter three key pieces of information:

    • the URL of the VP, using the following format:
      • For VASA 3.0 and VASA 2.0, https://<Management IP address>:8443/vasa/version.xml
      • For VASA 1.0, https://<Management IP address>:8444/vasa/version.xml or https://<Management IP address>:8444/vasa/services/vasaService
    • the username of a Unisphere user (the role must be either VM Administrator or administrator):
      Note:  The VM Administrator role is strictly used as a means to register certificates.
      • for local users use the syntax: local/<username>
      • for LDAP users use the syntax: <domain>/<username>
    • the password associated with this user

    The Unisphere credentials used here are only used during this initial step of the connection. If the Unisphere credentials are valid for the target storage system, the certificate of the vCenter Server is automatically registered with the storage system. It is this certificate that is used to authenticate all subsequent requests from the vCenter. No manual steps are required to install or upload this certificate to the VP. If the certificate has expired, the vCenter must register a new certificate to support a new session. If the certificate is revoked by the user, the session is invalidated and the connection is severed.

    vCenter session, secure connection and credentials

    A vCenter session begins when a vSphere administrator uses the vSphere Client to supply the vCenter Server with the VP URL and login credentials. The vCenter Server uses the URL, credentials, and the SSL certificate of the VP to establish a secure connection with the VP. A vCenter session ends when one of the following events occurs:

    • An administrator uses the vSphere Client to remove the VP from the vCenter configuration and the vCenter Server terminates the connection.
    • The vCenter Server fails or a vCenter Server service fails, terminating the connection. When vCenter or the service starts again, it will attempt to reestablish the SSL connection. If it cannot, it will start a new SSL connection.
    • The VASA Provider fails, terminating the connection. When the VASA Provider starts up, it can respond to communication from the vCenter Server to reestablish the SSL connection and VASA session.

    A vCenter session is based on secure HTTPS communication between a vCenter Server and a VP. The VASA architecture uses SSL certificates and VASA session identifiers to support secure connections. With VASA 1.0, the vCenter Server added the VP certificate to its truststore as part of the VP installation, or when it created a VASA session connection. The VP added the vCenter Server certificate to its truststore when Storage Monitoring Service (SMS) called the registerVASACertificate function. In VASA 3.0 and VASA 2.0, vCenter Server acts as the VMware certificate authority (VMCA). The VP transmits a self‐signed certificate on request, after authorizing the request. It adds the vCenter Server certificate to its truststore, then issues a certificate signing request, and replaces its self‐signed certificate with the VMCA signed certificate. Future connections will be authenticated by the server (the VP) using the client (SMS) certificate validated against the previously registered root signing certificate. A VP generates unique identifiers for storage entity objects, and vCenter Server uses the identifier to request data for a specific entity.

    A VP uses SSL certificates and the VASA session identifier to validate VASA sessions. After the session is established, a VP must validate both the SSL certificate and the VASA session identifier associated with each function call from the vCenter Server. The VP uses the vCenter Server certificate stored in its truststore to validate the certificate associated with function calls from the vCenter SMS. A VASA session persists across multiple SSL connections. If an SSL connection is dropped, the vCenter Server will perform an SSL handshake with the VP to re‐establish the SSL connection within the context of the same VASA session. If an SSL certificate expires, the vSphere administrator must generate a new certificate. The vCenter Server will establish a new SSL connection and register the new certificate with the VP.

    Note:   Unregistration of 3.0 and 2.0 VPs differs from unregistration of 1.0 VPs. SMS does not call the unregisterVASACertificate function against a 3.0 or 2.0 VP, so even after unregistration, the VP can continue to use its VMCA signed certificate obtained from SMS and continues to have access to the VMCA root certificate.

    Single sign-on with Unisphere Central

    The single sign-on capability added to Unisphere Central provides authentication services for multiple storage systems that are configured to use this feature. This feature provides an easy way for a user to log in to each system without requiring the user to re-authenticate to each system.

    Unisphere Central is the centralized authentication server that facilitates single sign-on. This functionality allows a user to:

    • Log in to Unisphere Central, then select and launch Unisphere on a storage system without supplying your login credentials again.
    • Log in to one storage system and then select other storage systems associated with the same Unisphere Central to log in to without supplying your login credentials again.

    Unisphere Central will periodically execute a query to request status information from the storage systems that it is managing. The identity associated with requests executed in this context is the Unisphere Central SSL/X.509 certificate. This certificate is signed by the Unisphere Central Certificate Authority, which is trusted by each storage system instance that Unisphere Central is configured to manage.

    Additionally, this feature provides a single sign-off capability; that is, when you log off Unisphere Central, you log off all of the associated storage system sessions at once.

    Requirements

    To use single sign-on:

    • Unity and UnityVSA storage systems must be running OE version 4.0 or later.
    • Unisphere Central version 4.0 or later must be used.
    • Both the Unisphere Central server and the storage systems must be configured to authenticate against the same AD/LDAP directory.
    • The LDAP user must be directly mapped to a Unisphere role, or be a member of an AD/LDAP group that maps to a Unisphere role on both the storage system and Unisphere Central.
    • Each storage system must have single sign-on enabled.
    • The user must log in as an LDAP user.
    Note:  In cases where these requirements are not met, the user must log in to the individual system as a local user and provide authentication credentials to access that system.

    You must have Administrator privileges to enable single sign-on. Users with Storage Administrator, Operator, or VM Administrator privileges cannot enable single sign-on. Use the following uemcli command to enable single sign-on:

    uemcli -d <IP address> -u <username> -p <password> /sys/ur set -ssoEnabled yes

    Each storage system that is configured with this feature enabled can be a client of the centralized authentication server and participate in the single sign-on environment. For more information about this command, refer to the Unisphere Command Line Interface User Guide.

    Considerations and Restrictions

    The user session timeout between the web client and centralized authentication server is 45 minutes.

    The application session timeout between the web client and the storage system is one hour.

    Note:  For compatibility and interoperability information related to web browsers, refer to the Simple Support Matrix for the storage system on the support website.

    Single sign-on process flows

    The following sequences represent the authentication process flows related to single sign-on associated with Unisphere Central.

    Access to a storage system through Unisphere Central
    1. User launches a web browser on a management workstation and specifies the network address of Unisphere Central as the URL.
    2. The browser is redirected by the web server to a local Unisphere Central login URL and the user is presented with a login screen.
    3. The user types and submits LDAP login credentials. The username is in the form <LDAP DOMAIN>/username.
    4. A session token is set and the browser is redirected by the system back to the original URL that was specified.
    5. The browser downloads the Unisphere content and Unisphere Central is instantiated.
    6. The user then navigates through Unisphere to a particular storage system to monitor.
    7. The user clicks on the network address for the storage system.
    8. A new browser window is created with the URL of the storage system.
    9. The browser is redirected to the Unisphere Central authentication server where the user has already authenticated.
    10. The browser is redirected back to the Unisphere download page and a session is established with the storage system using the new service ticket.
    11. Unisphere is downloaded and instantiated.
    12. The user starts managing/monitoring the storage system.
    Access to storage systems associated with Unisphere Central
    1. User launches a web browser on a management workstation and specifies the network address of a storage system as the URL.
    2. The browser is redirected to the local Unisphere Central login service and the user is presented with a login screen.
    3. The user types and submits LDAP login credentials. The username is in the form <LDAP DOMAIN>/username.
    4. A session token is set as a cookie and the browser is redirected by the system back to the original URL that was specified.
    5. The browser downloads the Unisphere content and Unisphere is instantiated.
    6. The user then opens another web browser window or tab and specifies the network address of another storage system as the URL.
    7. The browser is redirected to the Unisphere Central authentication server where the user is already authenticated. A new service ticket is obtained.
    8. The browser is redirected back to the Unisphere download page and establishes a session with the second storage system using the new service ticket.
    9. Unisphere for the second storage system is downloaded and instantiated.
    10. The user starts managing/monitoring the second storage system.

    Logging in to a local storage system

    When you use a local account, or, if connectivity to the Unisphere Central authentication server is not available, you can log in to a local storage system using the authentication server resident on the system instead of logging in through Unisphere Central. There are two ways to log into the storage system locally:

    • When the browser is redirected to the Unisphere Central authentication server, an option is available that allows the user to redirect back to the system and log in locally.
    • If Unisphere Central is inaccessible, the following url syntax can be used to browse or access the system and log in locally: https://<storagesystemIP>?casHome=LOCAL

    where storagesystemIP is the IP address of the storage system.

    Single sign-on and NAT support

    Single sign-on does not support a NAT configuration. Also, NAT is not supported for local login through Unisphere to the storage system.

    Security on file system objects

    In a multiprotocol environment, security policy is set at the file system level, and is independent for each file system. Each file system uses its access policy to determine how to reconcile the differences between NFS and SMB access control semantics. Selecting an access policy determines which mechanism is used to enforce file security on the particular file system.

    NOTICE   If the older SMB1 protocol does not need to be supported in your environment, it can be disabled by using the svc_nas service command. For more information about this service command, see the Service Commands Technical Notes.
    UNIX security model

    When the UNIX policy is selected, any attempt to change file level security from the SMB protocol, such as changes to access control lists (ACLs), is ignored. UNIX access rights are referred to as the mode bits or NFSv4 ACL of a file system object. Mode bits are represented by a bit string. Each bit represents an access mode or privilege that is granted to the user owning the file, the group associated with the file system object, and all other users. UNIX mode bits are represented as three sets of concatenated rwx (read, write, and execute) triplets for each category of users (user, group, or other). An ACL is a list of users and groups of users by which access to, and denial of, services is controlled.

    Windows security model

    The Windows security model is based primarily on object rights, which involve the use of a security descriptor (SD) and its ACL. When SMB policy is selected, changes to the mode bits from NFS protocol are ignored.

    Access to a file system object is based on whether permissions have been set to Allow or Deny through the use of a security descriptor. The SD describes the owner of the object and group SIDs for the object along with its ACLs. An ACL is part of the security descriptor for each object. Each ACL contains access control entries (ACEs). Each ACE in turn, contains a single SID that identifies a user, group, or computer and a list of rights that are denied or allowed for that SID.

    File systems access in a multiprotocol environment

    File access is provided through NAS servers. A NAS server contains a set of file systems where data is stored. The NAS server provides access to this data for NFS and SMB file protocols by sharing file systems through SMB shares and NFS shares. The NAS server mode for multiprotocol sharing allows the sharing of the same data between SMB and NFS. Because the multiprotocol sharing mode provides simultaneous SMB and NFS access to a file system, the mapping of Windows users to UNIX users and defining the security rules to use (mode bits, ACL, and user credentials) must be considered and configured properly for multiprotocol sharing.

    Note:  For information about configuring and managing NAS servers with regards to multiprotocol sharing, user mapping, access policies, and user credentials, refer to the Unisphere online help and the Unisphere Command Line Interface User Guide.

    User mapping

    In a multiprotocol context, a Windows user needs to be matched to a UNIX user. However, a UNIX user has to be mapped to a Windows user only when the access policy is Windows. This matching is necessary so that file system security can be enforced, even if it is not native to the protocol. The following components are involved in user mapping:

    • UNIX Directory Services, local files, or both
    • Windows resolvers
    • Secure mapping (secmap) - a cache that contains all mappings between SIDs, and UID or GIDs used by a NAS server.
    • ntxmap
    Note:  User mapping does not affect the users or groups that are local to the SMB server.
    UNIX Directory Services and local files

    UNIX Directory Services (UDSs) and local files are used to do the following:

    • Return the corresponding UNIX account name for a particular user identifier (UID).
    • Return the corresponding UID and primary group identifier (GID) for a particular UNIX account name.

    The supported services are:

    • LDAP
    • NIS
    • Local files
    • None (the only possible mapping is through the default user)

    There should be one UDS enabled or local files enabled, or both local files and a UDS enabled for the NAS server when multiprotocol sharing is enabled. The Unix directory service property of the NAS server determines which is used for user mapping.

    Windows resolvers

    Windows resolvers are used to do the following for user mapping:

    • Return the corresponding Windows account name for a particular security identifier (SID)
    • Return the corresponding SID for a particular Windows account name

    The Windows resolvers are:

    • The domain controller (DC) of the domain
    • The local group database (LGDB) of the SMB server
    secmap

    The function of secmap is to store all SID-to-UID and primary GID and UID-to-SID mappings to ensure coherency across all file systems of the NAS server.

    ntxmap

    ntxmap is used to associate a Windows account to a UNIX account when the name is different. For example, if there is a user who has an account that is called Gerald on Windows but the account on UNIX is called Gerry, ntxmap is used to make the correlation between the two.

    SID to UID, primary GID mapping

    The following sequence is the process used to resolve an SID to a UID, primary GID mapping:

    1. secmap is searched for the SID. If the SID is found, the UID and GID mapping is resolved.
    2. If the SID is not found in secmap, the Windows name related to the SID must be found.
      1. The local group databases of the SMB servers of the NAS are searched for the SID. If the SID is found, the related Windows name is the local user name along with the SMB server name.
      2. If the SID is not found in the local group database, the DC of the domain is searched. If the SID is found, the related Windows name is the user name. If the SID is not resolvable, access is denied.
    3. The Windows name is translated into a UNIX name. The ntxmap is used for this purpose.
      1. If the Windows name is found in ntxmap, the entry is used as the UNIX name.
      2. If the Windows name is not found in ntxmap, the Windows name is used as the UNIX name.
    4. The UDS (NIS server, LDAP server, or local files) is searched using the UNIX name.
      1. If the UNIX user name is found in the UDS, the UID and GID mapping is resolved.
      2. If the UNIX name is not found, but the automatic mapping for unmapped Windows accounts feature is enabled, the UID is automatically assigned.
      3. If the UNIX user name is not found in the UDS but there is a default UNIX account, the UID and GID mapping is resolved to that of the default UNIX account.
      4. If the SID is not resolvable, access is denied.

    If the mapping is found, it is added in the persistent secmap database. If the mapping is not found, the failed mapping is added to the persistent secmap database.

    The following diagram illustrates the process used to resolve an SID to a UID, primary GID mapping:

    Figure 1. Process for resolving an SID to a UID, primary GID mapping
    Process for resolving an SID to a UID, primary GID mapping
    UID to SID mapping

    The following sequence is the process used to resolve a UID to an SID mapping:

    1. secmap is searched for the UID. If the UID is found, the SID mapping is resolved.
    2. If the UID is not found in secmap, the UNIX name related to the UID must be found.
      1. The UDS (NIS server, LDAP server, or local files) is searched using the UID. If the UID is found, the related UNIX name is the user name.
      2. If the UID is not found in the UDS but there is a default Windows account, the UID is mapped to the SID of the default Windows account.
    3. If the default Windows account information is not used, the UNIX name is translated into a Windows name. The ntxmap is used for this purpose.
      1. If the UNIX name is found in ntxmap, the entry is used as the Windows name.
      2. If the UNIX name is not found in ntxmap, the UNIX name is used as the Windows name.
    4. The Windows DC or the local group database is searched using the Windows name.
      1. If the Windows name is found, the SID mapping is resolved.
      2. If the Windows name contains a period, and the part of the name following the last period (.) matches an SMB server name, the local group database of that SMB server is searched to resolve the SID mapping.
      3. If the Windows name is not found but there is a default Windows account, the SID is mapped to that of the default Windows account.
      4. If the SID is not resolvable, access is denied.

    If the mapping is found, it is added in the persistent Secmap database. If the mapping is not found, the failed mapping is added to the persistent secmap database.

    The following diagram illustrates the process used to resolve a UID to an SID mapping:

    Figure 2. Process used to resolve a UID to an SID mapping
    Process used to resolve a UID to an SID mapping

    Access policies for NFS, SMB, and FTP

    In a multiprotocol environment, the storage system uses file system access policies to manage user access control of its file systems. There are two kinds of security, UNIX and Windows.

    For UNIX security authentication, the credential is built from the UNIX Directory Services (UDS) with the exception for non-secure NFS access, where the credential is provided by the host client. User rights are determined from the mode bits and NFSv4 ACL. The user and group identifiers (UID and GID, respectively) are used for identification. There are no privileges associated with UNIX security.

    For Windows security authentication, the credential is built from the Windows Domain Controller (DC) and Local Group Database (LGDB) of the SMB server. User rights are determined from the SMB ACLs. The security identifier (SID) is used for identification. There are privileges associated with Windows security, such as TakeOwnership, Backup, and Restore, that are granted by the LGDB or group policy object (GPO) of the SMB server.

    The following table describes the access policies that define what security is used by which protocols:

    Access policy
    Description
    Native (default)
    • Each protocol manages access with its native security.
    • Security for NFS shares uses the UNIX credential associated with the request to check the NFSv3 UNIX mode bits or NFSv4 ACL. The access is then granted or denied.
    • Security for SMB shares uses the Windows credential associated with the request to check the SMB ACL. The access is then granted or denied.
    • NFSv3 UNIX mode bits and NFSv4 ACL permission changes are synchronized to each other.
    • There is no synchronization between the Unix and Windows permissions.
    Windows
    • Secures file level access for Windows and UNIX using Windows security.
    • Uses a Windows credential to check the SMB ACL.
    • Permissions for newly created files are determined by an SMB ACL conversion. SMB ACL permission changes are synchronized to the NFSv3 UNIX mode bits or NFSv4 ACL.
    • NFSv3 mode bits and NFSv4 ACL permission changes are denied.
    UNIX
    • Secures file level access for Windows and UNIX using UNIX security.
    • Upon request for SMB access, the UNIX credential built from the local files or UDS is used to check the NFSv3 mode bits or NFSv4 ACL for permissions.
    • Permissions for newly created files are determined by the UMASK.
    • NFSv3 UNIX mode bits or NFSv4 ACL permission changes are synchronized to the SMB ACL.
    • SMB ACL permission changes are allowed in order to avoid causing disruption, but these permissions are not maintained.

    For FTP, authentication with Windows or UNIX depends on the user name format that is used when authenticating to the NAS server. If Windows authentication is used, FTP access control is similar to that for SMB; otherwise, authentication is similar to that for NFS. FTP and SFTP clients are authenticated when they connect to the NAS server. It could be an SMB authentication (when the format of the user name is domain&#xser or user@domain) or a UNIX authentication (for the other formats of a single user name). The SMB authentication is ensured by the Windows DC of the domain defined in the NAS server. The UNIX authentication is ensured by the NAS server according to the encrypted password stored in either a remote LDAP server, a remote NIS server, or in the local password file of the NAS server.

    Credentials for file level security

    To enforce file-level security, the storage system must build a credential that is associated with the SMB or NFS request being handled. There are two kinds of credentials, Windows and UNIX. UNIX and Windows credentials are built by the NAS server for the following use cases:

    • To build a UNIX credential with more than 16 groups for an NFS request. The extended credential property of the NAS server must be set to provide this ability.
    • To build a UNIX credential for an SMB request when the access policy for the file system is UNIX.
    • To build a Windows credential for an SMB request.
    • To build a Windows credential for an NFS request when the access policy for the file system is Windows.
    Note:  For an NFS request when the extended credential property is not set, the UNIX credential from the NFS request is used. When using Kerberos authentication for an SMB request, the Windows credential of the domain user is included in the Kerberos ticket of the session setup request.

    A persistent credential cache is used for the following:

    • Windows credentials built for access to a file system having a Windows access policy.
    • Unix credential for access through NFS if the extended credential option is enabled.

    There is one cache instance for each NAS server.

    Granting access to unmapped users

    Multiprotocol requires the following:

    • A Windows user must be mapped to a UNIX user.
    • A UNIX user must be mapped to a Windows user in order to build the Windows credential when the user is accessing a file system that has a Windows access policy.

    Two properties are associated to the NAS server with regards to unmapped users:

    • The default UNIX user.
    • The default Windows user.

    When an unmapped Windows user attempts to connect to a multiprotocol file system and the default UNIX user account is configured for the NAS server, the user identifier (UID) and primary group identifier (GID) of the default UNIX user are used in the Windows credential. Similarly, when an unmapped UNIX user attempts to connect to a multiprotocol file system and the default Windows user account is configured for the NAS server, the Windows credential of the default Windows user is used.

    NOTICE   If the default UNIX user is not set in the UNIX Directory Services (UDS), SMB access is denied for unmapped users. If the default Windows user is not found in the Windows DC or the LGDB, NFS access on a file system that has a Windows access policy is denied for unmapped users.
    Note:   The default UNIX user can be a valid existing UNIX account name or follow the new format @uid=xxxx,gid=yyyy@, where xxxx and yyyy are the decimal numerical values of the UID and the primary GID, respectively, and can be configured on the system through either Unisphere or CLI.
    UNIX credential for NFS requests

    To handle NFS requests for an NFS only or multi-protocol file system with a UNIX or native access policy, a UNIX credential must be used. The UNIX credential is always embedded in each request; however, the credential is limited to 16 extra groups. The NFS server extendedUnixCredEnabled property provides the ability to build a credential with more than 16 groups. If this property is set, the active UDS is queried with the UID to get the primary GID and all the group GIDs to which it belongs. If the UID is not found in the UDS, the UNIX credential embedded in the request is used.

    Note:  For NFS secure access, the credential is always built using the UDS.
    UNIX credential for SMB requests

    To handle SMB requests for a multi-protocol file system with a UNIX access policy, a Windows credential must first be built for the SMB user at the session setup time. The SID of the Windows user is used to find the name from the AD. That name is then used (optionally through ntxmap) to find a Unix UID and GID from the UDS or local file (passwd file). The owner UID of the user is included in the Windows credential. When accessing a file system with a UNIX access policy, the UID of the user is used to query the UDS to build the UNIX credential, similar to building an extended credential for NFS. The UID is required for quota management.

    Windows credential for SMB requests

    To handle SMB requests for an SMB only or a multi-protocol file system with a Windows or native access policy, a Windows credential must be used. The Windows credential for SMB needs to be built only once at the session setup request time when the user connects.

    When using Kerberos authentication, the credential of the user is included in the Kerberos ticket of the session setup request, unlike when using NT LAN Manager (NTLM). Other information is queried from the Windows DC or the LGDB. For Kerberos the list of extra group SIDs is taken from the Kerberos ticket and the list of extra local group SIDs. The list of privileges are taken from the LGDB. For NTLM the list of extra group SIDs is taken from the Windows DC and the list of extra local group SIDs. The list of privileges are taken from the LGDB.

    Additionally, the corresponding UID and primary GID are also retrieved from the user mapping component. Since the primary group SID is not used for access checking, the UNIX primary GID is used instead.

    Note:  NTLM is an older suite of proprietary security protocols that provides authentication, integrity, and confidentiality to users. Kerberos is an open standard protocol that provides faster authentication through the use of a ticketing system. Kerberos adds greater security than NTLM to systems on a network.
    Windows credential for NFS requests

    The Windows credential is only built or retrieved when a user through an NFS request attempts to access a file system that has a Windows access policy. The UID is extracted from the NFS request. There is a global Windows credential cache to help avoid building the credential on each NFS request with an associated retention time. If the Windows credential is found in this cache, no other action is required. If the Windows credential is not found, the UDS or local file is queried to find the name for the UID. The name is then used (optionally, through ntxmap) to find a Windows user, and the credential is retrieved from the Windows DC or LGDB. If the mapping is not found, the Windows credential of the default Windows user is used instead, or the access is denied.

    NFS secure

    NFS secure is the use of Kerberos for authenticating users with NFSv3 and NFSv4. Kerberos provides integrity (signing) and privacy (encryption). Integrity and privacy are not required to be enabled, they are NFS export options.

    Without Kerberos, the server relies entirely on the client to authenticate users: the server trusts the client. With Kerberos this is not the case, the server trusts the Key Distribution Center (KDC). It is the KDC which handles the authentication and manages accounts (principals) and password. Moreover, no password in any forms is sent on the wire.

    Without Kerberos, the credential of the user is sent on the wire un-encrypted and thus can easily be spoofed. With Kerberos, the identity (principal) of the user is included in the encrypted Kerberos ticket, which can only be read by the target server and KDC. They are the only ones to know the encryption key.

    In conjunction with NFS secure, AES128 and AES256 encryption in Kerberos is supported. Along with NFS secure, this also impacts SMB and LDAP. These encryptions are now supported by default by Windows and Linux. These new encryptions are much more secure; however, it is up to the client whether they are used. From that user principal, the server builds the credential of that user by querying the active UDS. Since NIS is not secured, it is not recommended to use it with NFS secure. It is recommended to use Kerberos with LDAP or LDAPS.

    NFS secure can be configured either through Unisphere or the UEM CLI.

    File protocol relationships

    With Kerberos the following is required:

    • DNS - You must use DNS name in place of IP addresses
    • NTP - All participants must be timely synchronized
    • UDS - To build credentials
    • Hostname - Kerberos works with names and not IP addresses

    NFS secure uses one or two SPNs depending on the value of the hostname. If the hostname is in FQDN format host.domain:

    • The short SPN: nfs/host@REALM
    • The long SPN: nfs/host.domainFQDN@REALM

    If the hostname is not in FQDN format, only the short SPN will be used.

    Similarly to SMB, where a SMB server can be joined to a domain, a NFS server can be joined to a realm (the Kerberos equivalent term for domain). There are two options for this:

    • Use the configured windows domain if any
    • Entirely configure a UNIX KDC based Kerberos realm

    If the administrator selects to use the configured windows domain, there is nothing else to do. Every SPN used by the NFS service is automatically added/removed into the KDC when joining/unjoining the SMB server. Note that the SMB server cannot be destroyed if NFS secure is configured to use the SMB configuration.

    If the administrator selects to use a UNIX based Kerberos realm, more configuration is needed:

    • Realm name: The name of the Kerberos realm, which generally contains all upper-case letters.
    • Entirely configure a UNIX KDC based Kerberos realm.

    To ensure that a client mounts an NFS export with a specific security, a security parameter, sec, is provided that indicates which minimal security is allowed. There are 4 kinds of security:

    • AUTH_SYS: Standard legacy security which does not use Kerberos. The server trust the credential provided by the client
    • KRB5: Authentication using Kerberos v5
    • KRB5i: Kerberos authentication plus integrity (signing)
    • KRB5p: Kerberos authentication plus integrity plus privacy (encryption)

    If a NFS client tries to mount an export with a security that is lower than the configured minimal security, the access will be denied. For example, if minimal access is KRB5i, any mount using AUTH_SYS or KRB5 will be rejected.

    Building a credential

    When a user connects to the system, it presents only its principal, user@REALM, which is extracted from the Kerberos ticket. Unlike AUTH_SYS security, the credential is not included in the NFS request. From the principal, the user part (before the @) is extracted and used to lookup the UDS for the corresponding uid. From that uid, the credential is built by the system using the active UDS, similar to when the Extended NFS credential is enabled (with the exception that, without Kerberos, the uid is provided directly by the request).

    If the principal is not mapped in the UDS, the configured default UNIX user credential is used instead. If the default UNIX user is not set, the credential used will be nobody.

    Replication

    When a NAS server is the target of a replication, there is the possibility to access data through NFS for backup or disaster recovery. NFS secure cannot be used in these case since the usage of direct IP addresses is not compatible with Kerberos. Also, FQDN cannot be used because it could resolve to either the production interfaces on the source or the local interfaces on the destination.

    Dynamic Access Control

    Dynamic Access Control (DAC) enables administrators to apply access-control permissions and restrictions on resources based on well-defined rules that can include the sensitivity of the resources, the job or role of the user, and the configuration of the device that is used to access these resources.

    DAC Claims Based Access Control (CBAC) is a feature of Windows Server 2012 that allows access control to be defined on the domain controller through a set of Central Access Policies (CAPs). Each Central Access Policy (identified by its CAPID) has a number of Central Access Rules (CARs) associated with it. CAPs can be assigned to Group Policy Objects (GPOs). This is the mechanism used to distribute CAPs to individual file servers. The CAP that applies to a particular resource (that is, a directory or file) is determined by the CAPID. When a NAS Server is created with Windows Shares (SMB), it will pick up the correct CAP and CAR when it joins the domain.

    Each CAR has the following attributes:

    • Resource Target Expression
    • Current Permissions ACL
    • Proposed Permissions ACL (optional)

    The Resource Target Expression (applicability expression) is evaluated to determine whether or not the CAR is applicable to a given resource or not (for example, @Resource.Department != @User.Department). If this expression evaluates to TRUE, the Current Permissions ACL is used during the access check; otherwise, the rule is ignored. The Proposed Permissions ACL allows the administrator to see the effect of proposed changes to the current permissions. When the evaluation of proposed permissions is enabled, any differences between current and proposed permissions during an access check are logged (in the server log).

    A Windows client (Windows Server 2012 or Windows 8.x) can be used to associate a CAP with resources (that is, directories or files), if required (it is optional). When this is done, the specified CAP will be enforced by the NAS Server for the applicable resources. A Windows client can also be used to perform manual classification of resources (for example, setting the country or department).

    DAC CBAC is enabled on the storage system by default; however, a service command, svc_dac, allows you to do the following:

    • Enable or disable the DAC feature - when disabled the CAP associated with a resource is ignored (that is, only the DACL determines access).
    • Enable or disable the evaluation of proposed permissions. Each CAR may have proposed permissions and these are distributed to the file servers. Usually, only these permissions are not evaluated. The svc_dac command can be used to enable the evaluation of these permissions. Once enabled any differences between the effective permissions and the proposed permissions will be sent to the server log. The evaluation of proposed permissions allows you to safely test proposed changes to CARs.
    • Query the CAPs or CARs associated with a NAS Server compname (all, by distinguished name or by id).
    • Add or remove custom recovery rules (to replace the default recovery rule).
    • Control the verbosity of the logging produced by DAC for diagnostic purposes.

    For detailed information about the svc_dac command, refer to the EMC Unity Family Service Commands Technical Notes.