Смартсорсинг.ру

Сообщество руководителей ИТ-компаний, ИТ-подразделений и сервисных центров

Статьи в блогах Вопросы и ответы Темы в лентах ITSM 365 Пользователи Компании Лента заказов Курс по ITSM

Мультипротокольный NAS-доступ к Netapp-ресурсам c ACLs

Мультипротокольный NAS-доступ к Netapp-ресурсам c ACLs

Небольшое предисловие

Заказчик выставил требование организовать доступ по CIFS (SMB) к некоторым NFS-экспортам, которые лежат на NetApp. Звучит вроде бы несложно: нужно создать CIFS-шару на уже экспортированном qtree. Позже было выставлено требование, что нужно гранулярно управлять доступом на эти шары. Опять-таки задача выглядит решаемой: это можно контролировать и с NetApp и через оснастку Shared Folders (share permissions). Затем выяснилось, что нужно варьировать доступ к различным подпапкам на CIFS-шаре. Это уже оказалось нетривиальной задачей. Так как нужно было настроить списки контроля доступа (ACL) и для CIFS и для NFS к одним и тем же данным.

На первый взгляд, можно воспользоваться классическими правами доступа в Linux. У каждой папки и файла есть атрибуты владельца, группы владельца и others (все остальные). Ниже приведен пример классических прав доступа в Linux.

>$ ls -lrt

drwxr-xr-x.  2 root      root          4096 May  8 15:47 nfsv4_test

Но что делать, если нужно более гранулярно контролировать доступ? POSIX ACLs? Они не поддерживаются NetApp. В итоге единственным решением оказались NFSv4 ACLs.

В этой статье предлагаем описание того, как транслировать NFSv4 ACLs для Windows-пользователей. Будем проводить нашу настройку пошагово. Стиль будет максимально сжатый и емкий. Я не буду останавливаться на каждом пункте подробно, к тому же не буду приводить детального листинга всех команд. Итак, приступим.

Привязка NetApp к LDAP

Предполагается, что в данной инфраструктуре существует сервер LDAP, через который происходит авторизация и аутентификация пользователей. Поэтому маппинг не используется и соответственно файл usermap.cfg не правится. Также не нужно вносить изменений в файлы passwd  и group — все пользователи и группы берутся из LDAP. Ниже приведены параметры необходимые для нормальной работы сцепки:

ldap.ADdomain                здесь указывается домен, к которому будем цепляться

ldap.base                    DC=com

ldap.enable                  on

ldap.fast_timeout.enable     on

ldap.minimum_bind_level      simple

ldap.name                    учетка, с которой будет проходить запрос в базу

ldap.nssmap.attribute.homeDirectory unixHomeDirectory

ldap.nssmap.attribute.uid    sAMAccountName

ldap.nssmap.objectClass.posixAccount User

ldap.nssmap.objectClass.posixGroup Group

ldap.port                    3268

ldap.retry_delay             10

ldap.servers                 адреса домен-контроллеров

ldap.usermap.attribute.unixaccount uid

ldap.usermap.attribute.windowsaccount sAMAccountName

 

Их необходимо выполнить на целевом vFiler. Отмечу, что существуют различные вариации этих настроек. И в вашей конкретной инфраструктуре это может не взлететь. В нашем случае мы цеплялись к AD DC с FSMO ролью Global Catalog. Проверка работоспособности сцепки на NetApp возможно провести командами getXXbyYY и wcc. Эти команды можно выполнить только в advanced mode.
Примеры корректной работы команды getXXbyYY:
FILER0*> vfiler run VFILER03 getXXbyYY getpwbyname_r ivanov

 

===== VFILER03

pw_name = ivanov

pw_passwd = {{******}}

pw_uid = 10000, pw_gid = 10000

pw_gecos = Ivanov, Ivan

pw_dir = /home/ivanov

pw_shell = /bin/bash


Если эта команда не возвращает подобный вывод, значит что-то настроено не так. 

 

Продолжение статьи читайте на Хабрахабр: https://habrahabr.ru/company/icl_services/blog/335256/

Комментарии (0)