Назад
Глава 11. Active Directory, Kerberos, и безопасность
Часть III. Справочные материалы
Дальше

Глава 11. Active Directory, Kerberos, и безопасность


11.1. Введение
11.2. Обсуждение и анализ
11.3. Внедрение
11.4. Вопросы и ответы

В этой главе вам будут представлены много функций и возможностей Samba. Что еще более важно, если вы реализовали представленные примеры, вы на верном пути к тому, чтобы стать сетевым гуру Samba-3, который многое знает о Microsoft Windows. Если у вас есть время попрактиковаться, вы вероятно задумывались об усовершенствованиях и сценариях, с которыми вы можете экспериментировать. Скорее всего вы хорошо знакомы с гибкостью Samba, которая может быть успешно использована.

Эта книга о Samba-3. Разумеется, стоИт задача представить ее в выгодном свете. Случайный наблюдатель мог бы решить, что эта книга исключительно о Samba. Это то, чего вы ожидали? В этой главе представлено некоторое количество критики относительно использования Samba. Но для каждого критического замечания есть хороший ответ и подходящее решение. Иногда критика исходит изнутри, иногда снаружи. Давайте посмотрим, какая интересная динамика критики развивается в отношении Abmas.

Эта глава представляет из себя неприкрытую саморекламу Samba. Недостатки не возникли из воздуха. Они вырисовывались из комментариев, оставленных пользователями Samba, а также из критики во время дискуссий с администраторами Windows. Интонация выражения недостатков отражены максимально близко к оригиналу. В этом примере показано некое подставное лицо, постаравшееся найти ответ на каждое критическое замечание, которое могло бы возникнуть в реальной жизни.

11.1. Введение

Abmas продолжает стремительное развитие и делает дополнительные приобретения. Инвестиционное сообщество взяло на заметку впечатляющие успехи Abmas на глобальной деловой сцене. Abmas построила интересный перечень компаний, в ряду которых бухгалтерское обслуживание, финансовые консультации, услуги по инвестициям, страховая деятельность, оценка рисков, а недавно добавился бизнес по видеопрокату. Элементы бизнеса не всегда появляются вместе, но мистер Meany безусловно продолжает расширение бизнеса, если он интересен и имеет план развития. Недавно Abmas приобрел фирму по видеопрокату, которая теперь называется Abmas Video Rentals. Пока совершалась сделка, фирма была закрыта и в ней сменили сеть, базирующуюся на Windows NT4, на сеть с Windows 2003 Server и Active Directory.

Вы согласились с тем фактом, что в Abmas Video Rentals будут использовать Windows Active Directory. IT-отдел, возглавляемый Стэном Сорока, приверженец Samba-3 и поддержки универсальной технологической платформы. Команда Стэна высказала свое неодобрение разрешению продолжать этой фирме работать с решением, которое рассматривается Кристиной и ее группой как «анклав недотехнологий». Этот комментарий был сделан одним из штатных сотрудников Кристины, когда они устанавливали новый сервер Samba-3 в новой фирме.

Глава IT-службы Abmas Video Rentals услышал это замечание. Его оскорбило, что младший инженер сделал такой комментарий. Он почувствовал, что должен приготовиться к возможной критике его решения продолжить использовать Active Directory. Он решил, что будет отстаивать свое решение, нанимая со стороны консультантов по системам безопасности для отчета по работе его отдела и исследовании роли Samba на его предприятии (Этот отчет является полностью фиктивным. Любые совпадения являются случайными). Вот основные выдержки из этого гипотетического отчета:

    ... было исследовано внедрение Microsoft Active Directory в компании Abmas Video Rentals, местность Bamingsham. Мы не нашли доказательств того, что на данном предприятии существуют уязвимые места.... мы сделали дополнительные шаги, чтобы проверить правильность инсталляции и работы Active Directory и рады, что ваши сотрудники следуют верным путем.

    Учетные записи пользователей и групп, соответствующие разрешения, правильно спланированы. Общим ресурсам системы должным образом обеспечена безопасность. Резервное копирование запланировано, хорошо управляется и постоянно проверяется, действующая практика хранения во внешних хранилищах продумана, чтобы соответствовать промышленным нормам.

    Штатные сотрудники вполне оправданно встревожены тем, что альтернативное использование Samba-3 может подорвать их усилия по поддержке безопасности сети.

    Не так давно установленный файловый сервер и сервер приложений на Linux, в котором используется инструмент winbind, не очень разборчив в безопасности. Все учетные записи из Active Directory могут использоваться для получения доступа к хранилищу данных на системе Linux. Мы встревожены тем, секретная информации доступна даже тем, кто не должен знать о ее существовании. Мы вместе обеспокоены вашими штатными сотрудниками по управлению сетью, которые в течение долгого времени не делают больших попыток по управлению ограничением доступа к информации тем, кто в ней нуждается. В этом нами видится неуместность использования Samba winbind, принимая во внимание то, что она не эффективна в этой работе.

    Graham Judd (глава службы администрирования сети) повысил безопасность всех систем в соответствии с последними рекомендациями Microsoft... анонимные сеансы (null session connections) были отключены... внутренняя сеть изолирована от мировой внешней файрволом (название продукта удалено), на который имеется текущая поддержка... наши попытки нарушить безопасность вашей системы оказались безуспешными. Мы одобряем внимание ваших сотрудников к деталям и рекомендуем в дальнейшем пользоваться продукцией Microsoft.

    Касательно использования Samba у нас следующие комментарии: Samba используется приблизительно в половине предприятий, которые мы обслуживаем, наше мнение, что безопасность Samba не выше, чем у Microsoft... что волнует нас в отношении Samba, так это потребность отключения важнейших функций безопасности Microsoft, таких как поддержка защищенных каналов, цифровая подпись всего проходящего трафика, запуск Active Directory в смешанном режиме, так, что серверы и клиенты Samba могут аутентифицироваться. Кроме того, мы обеспокоены тем, что Samba не имеет всех возможностей сервера Microsoft Windows NT4. Microsoft далеко продвинулся в надежных компьютерных инициативах, в которых не принимают участие разработчики Samba.

    Каждый задается вопросом о целостности открытого исходного кода программы, написанной группой хакеров, которые не несут ответственности за ошибки в их коде. Общее количество обновлений и исправлений ошибок, которые они выпустили, должно быть тревожным сигналом для любого бизнеса.

    Другой фактор, который является основанием приобретать продукты и обслуживание Microsoft состоит в том, что помогает обеспечить занятость в индустрии информационных технологий (IT). Работа с Samba и продуктами на открытом исходном коде перемещают такие вакансии в группу риска.

Такое письмо может заставить вскипеть. Вы вызываете группу Стэна для его обсуждения, но этот отчет попадает ему в руки. Когда вы возвращаетесь в офис, то находите в электронном ящике такое письмо:
    Доброе утро,

    Я глубоко извиняюсь за утечку информации о внутреннем обсуждении в новую компанию. Это плохо отражается на нашем профессионализме и ставит вас в неудобное положение. Я сожалею об этом инциденте.

    Также я хочу посоветовать, чтобы два недавно поступивших к нам сотрудника развернули аутентификацию Kerberos на всех системах. Я схожусь во мнении, что следует повысить безопасность. Один из новых ребят, сторонник Kerberos, будет отвечать за устранение указанных в отчете комментариев относительно безопасности Samba.

    Я испытываю некоторые трудности с Kerberos, он же утверждает, что Kerberos, OpenLDAP, плюс Samba-3 легко заменят Microsoft Active Directory. В глубине души я немного сомневаюсь в этом, но постараюсь, чтобы эти шаги были сделаны. С вашего согласия я бы хотел нанять хорошо знакомого с Samba консультанта.

    Я хотел бы использовать этот отчет для ответа на вызванную критику и хотел бы учредить политику, согласно которой мы одобрим использование серверов Microsoft Windows (и Active Directory) со всеми вытекающими затратами, выделив их из бюджета, который у нас есть для осуществления наших обычных задач . Я предлагаю, чтобы придерживающиеся других взглядов люди по прежнему оставались ответственными за рассмотрение статей бюджета на операции IT в целом. Я надеюсь, мы не заставим использовать никакие централизованные предложенные стандарты, но сделаем всех несогласных финансово ответственными за несинхронное разделение. Будем надеяться, такие деления поощрят идти с нами и не только одного человека (другими словами деньги на Microsoft будут выделяться из общего бюджета, и надо будет отвечать за рациональное их использование, прим.перев.).

    Стэн.

(к началу страницы)

11.1.1. Условия задачи

Вы согласились с рекомендациями Стэна, чтобы помочь обезвредить эту бочку с порохом. Задачами консультанта является нахождение ответа на каждое критическое замечание. Консультант должен сделать возможным поддержку его или ее требований, снять нервное напряжение, и эти ответы должны быть техническими.
(к началу страницы)

11.2. Обсуждение и анализ

Samba-3 это инструмент. Никто не разобьет вашу дверь, если вы не будете использовать Samba. Это выбор, который вы вправе сделать или отказаться от него. Возможно, ваше решение использовать Samba, может принести большую пользу вашей компании. Команда Samba очень надеется, что программное обеспечение Samba это достойный выбор. Если вы наемный консультант по установке и/или развертыванию Samba, вы можете получать прибыль и иметь место работы. Кроме того, сохраненные деньги, не потраченные на область IT, могут быть вложены в бизнес. Все деньги, сохраненные или потраченные, создают работу.

В долгосрочной перспективе, использование Samba должно быть экономически выгодным. В некоторых ситуациях использование Samba адаптируется исключительно для предоставления файл- и принт-сервисов на платформах, которые по-другому не могут предоставить доступ к данным и принтерам для клиентов Microsoft Windows. Samba используется некоторыми предприятиями для обеспечения снижения затрат на IT-обслуживание. Также очевидно, что она применяется как альтернатива обслуживающим платформам Microsoft для хранения данных и предоставлению печати из соображений экономии.

Будет безрассудно применять технологию, которая бы подвергала все данные и информацию о пользователях риску. Безопасность затрагивает каждого. Команда Samba полностью осведомлена об ответственности, которую они несут перед пользователями. Документация Samba ясно дает понять, что была принята полная ответственность за устранение выявленных нарушений («багов» в работе программы, прим.перев.).

В индустрии IT бытует ошибочное мнение, что производители коммерческого программного обеспечения полностью отвечают за дефекты их продуктов. Свободное программное обеспечение предоставляется без гарантий, из-за чего часто предполагается, что его использование несет в себе больше риска. Все должны читать лицензионное соглашение с конечным пользователем (End User License Agreement — EULA) на использование коммерческой программы. Из него вы должны определить, на что действительно вам дается гарантия и степень принятой ответственности. Внимательное чтение таких соглашений очень быстро развеивает популярное мнение, что поставщики коммерческого программного обеспечения с готовностью берут на себя ответственность за ошибки в своих программах. Часто производитель ПО принимает на себя ответственность только за возмещение стоимости, затраченной на приобретение программы.

Настоящий предмет спора заключается в том, чтобы пользователь (подобный вам) получил ответ на вопрос: «Как получить выход из сложившихся технических проблем, как долго это будет продолжаться?». Обычно, в сообществе СПО возникшая проблема устраняется («баг») в течение 48 часов. А что предлагает EULA? Какой послужной список у производителей коммерческого ПО? Что случится, когда ваш поставщик решит прекратить поддержку?

В конце концов, СПО по крайней мере предоставляет вам исходные коды. Это значит, что если вы потерпели неудачу в устранении проблемы, то вы хотя бы можете нанять программиста, чтобы решить задачу.
(к началу страницы)

11.2.1. Технические аспекты

Ниже будет осуждаться каждый спорный момент и, где необходимо, представлен пример по использованию.

Winbind и безопасность. Администраторы сети Windows могут быть обеспокоенным тем фактом, что winbind показывает всех пользователей домена так, что они могут использовать их права учетных записей домена для входа на систему UNIX/Linux. Фактически все пользователи домена могут видеть сервер UNIX/Linux в Сетевом окружении и могут видеть общие папки на сервере, что еще больше вызывает их волнение.

winbind предоставляет серверам или клиентам членам домена на UNIX/Linux то же, что можно получить при добавлении сервера или клиента Microsoft Windows в домен. Единственное, что тут не так, это то, что Samba это не MS Windows и поэтому управляется несколько сложнее, чем знакомые Windows системы. Но не следует бояться, это дело привычки.

Администраторам сети Windows требуется осознать, что winbind не делает, и не может отменить установки контроля за учетными записями, используя утилиты управления Active Directory. Управление тоже самое. Не бойтесь.

Там, где информация об учетных записях домена ADS или Samba получена посредством использования разрешений доступа winbind, обзор или подключение сетевых дисков с общими ресурсами, данными, должны быть защищены лучше. Это может случиться, если управление безопасностью не достаточно настроено. Samba позволяет установить управление доступом на:

  • сами общие ресурсы (подключаемые как логические диски);

  • описание общих ресурсов в файле smb.conf;

  • каталоги и файлы общих ресурсов, используя права доступа UNIX;

  • используя ACL, если такая возможность задействована в POSIX.

Описанные варианты представлены в разделе 11.3.

Управление пользователями и группами. Как известно, управление пользователями и группами в среде Windows ADS может быть использовано для предоставления равноценных ограничений управления доступом или предоставления равнозначных разрешений и прав на сервере Samba. Samba предлагает большую гибкость в использовании управления пользователями и группами, потому что имеет дополнительные уровни контроля по сравнению с Windows 200x/XP. Например, управление доступом на сервере Samba может быть задано в описании общего ресурса, чему нет аналогов в Windows.

При серьезном анализе безопасности системы, важно изучить механизмы безопасности, которые сработают, когда все остальные меры по защите откажут. Администратор может неаккуратно выставить разрешения на файловой системе, где расположен общий ресурс или неумышленно задать права на сам общий ресурс. Если это произошло в среде Windows 2003 Server, данные бы безусловно оказались абсолютно доступными. В пределах же Samba, возможно принять ограничительные меры, реализуя контроль непосредственно в описании общего ресурса. Практические примеры вы увидите чуть позже в этой главе.

В отчете, критикующем Samba, на самом деле должно быть проявлено больше бдения: настоящие проблемы находятся на стороне среды Microsoft Windows.

Общая безопасность. Samba сделана так, что слабости, присущие среде Microsoft Windows в любом случае не должны делать доступной базовую файловую систему UNIX/Linux. Любые программы имеют потенциальные дефекты, и Samba не исключение. Весь вопрос в том, как иметь дело с обнаруженными недостатками.

Команда Samba абсолютно согласна с необходимостью наблюдать и комплексно внедрять все возможности безопасности, чтобы предоставить уровень защиты и безопасности, необходимый конечному пользователю (или сетевому администратору). Команда Samba никогда бы не рекомендовала каких-то компромиссов в безопасности системы, как и не потворствовала бы преднамеренному понижению публичной безопасности; такая практика все еще наблюдается у сетевых администраторов Windows, пользователи которых довольны, но не замечают косвенных рисков.

Отчет осуждает выпуски обновлений безопасности для Samba, тем не менее онлайн обновления Microsoft должны устанавливаться почти еженедельно. Фактически, ответом на поток критики является то, что Samba продолжает развиваться, документация улучшается, потребности пользователей в большей степени удовлетворены, а обновления безопасности выпускаются в короткое время.

Samba-4 будет переписана почти с нуля и будет состоять полностью из модулей, которые в перспективе будут добавлять все новую функциональность. Команда Samba несет ответственность и полностью зависима (вероятно имеется ввиду от обязательств, прим.перев.); хронология до настоящего времени показывает высокую степень надежности и последовательность в чартерной разработке с публичной демонстрацией плана действий.

Плохо известный факт, что Microsoft была членом организации по инициативе создания CIFS (Common Internet File System – общая файловая система Интернет) в сообществе с индустрией присоединяемых сетевых устройств хранения (network attached storage — NAS). К сожалению, в последние несколько лет, Microsoft уклоняется от активного участия в конференциях по CIFS и не использует свое лидирующее положение, ожидаемое от главной силы в мире сетевых технологий (не забываем, речь идет о 2005-2006 годе, прим.перев.).

Команда Samba сохраняет последовательность в присутствии и лидерстве на всех конференциях CIFS и идет в ногу с лабораторными исследованиями данного вопроса.

Криптографический контроль (защищенные каналы, цифровая подпись). В отчете верно отмечено, что Samba не поддерживает большинство новейших возможностей продуктов Microsoft Windows NT/200x/XP Pro, таких как schannel (защищенные каналы) и sign'n'seal (цифровые подписи). Это одно из основных свойств релиза Samba-3. Получение результатов исследования рынка отнимает много времени и выясняется, что они не всегда отражают настоящее положение дел, и многие уважаемые отчеты безошибочно (в лучшем случае) отражают положение за короткий промежуток времени. Тем временем мир движется вперед.

Следует обратить внимание, что должны публиковаться четкие открытые спецификации для протоколов, это сделало бы проще внедрение возможностей и отнимало бы меньше времени. Единственный механизм, использующийся для поиска алгоритма, совместимого с методами, применяемыми Microsoft, основывается на наблюдении за сетевым трафиком и применении метода проб и ошибок в потенциальной технологии.

Реальная ценность публичных и защищенных стандартов очевидна для всех и позволила бы иметь более безопасною сетевую среду для каждого.

Критики Samba часто игнорируют основную проблему, которой могут подвергнуться (или возможно подверглись) также пользователи продукции Microsoft. Те, кто первые критикуют Samba за то, что она не бросилась включать поддержку sign'n'seal (цифровые подписи), часто упускают из вида проблемы, о которых рассказала Microsoft и для которых была выпущена «заплатка». Фактически, Tangent Systems описала серьезную проблему с записью задержек (delays writes), которая может быть связана с реализацией sign'n'seal (цифровых подписей). Они предлагают обходной путь, который не так тривиален для многих предприятий с сетями Windows. Из замечаний, таких как это, очевидно, что выгода от не воплощенной как следует технологии появится не скоро.

И последний комментарий. Если компании хотят иметь более безопасные сетевые протоколы, самый эффективный метод, которым это может быть достигнуто, это установка теми пользователями, которые ищут и работают вместе, открытых и публично рекомендованных стандартов. Разработка закрытого кода, собственные методы, которые разработаны в атмосфере секретности под предлогом защиты прав, не способствуют распространению безопасных сетевых протоколов и конечно не помогает потребителю делать лучший выбор.

Замена Active Directory связкой Kerberos, LDAP и Samba. В сетевых протоколах Microsoft в значительной степени используется технология RPC (удаленный вызов процедур). Active Directory это не просто смесь LDAP и Kerberos вместе с файл- и принт-сервисами, а скорее сложное их сплетение, использующее RPC, которое не поддерживает все эти технологические компоненты, но в котором (сплетении) они функционируют совместно.

Чтобы сделать понятный запрос к Samba как к серверу Active Directory, нужно добавить OpenLDAP и Kerberos, а к Samba поддержку вызовов RPC, которой на данный момент нет. Команда Samba не была в состоянии получить полную необходимую поддержку для всех майнтейнеров проекта для работы вместе над сложной задачей развития и объединения необходимых технологий. Поэтому, если команда Samba не сделает приоритетным включение в Samba функциональности Kerberos и LDAP, это пожелание не сможет осуществиться.

Уязвимости Kerberos. Kerberos сетевой аутентификационный протокол аутентификации, предоставляющий безопасную аутентификацию для клиент-серверных приложений, используя криптографию с секретным ключом. В сегодняшнем сетевом мире присутствуют файрволы и недостаточные барьерные механизмы; в лучшем случае они ограничивают только входящий сетевой трафик, но не могут предупредить идущий сетевой трафик в дозволенных местах от выполнения несанкционированных действий.

Kerberos был создан MIT как решение проблем безопасности сети. Протокол Kerberos использует стойкую криптографию так, что клиент может доказать свою подлинность серверу (и наоборот) во всем пространстве небезопасного сетевого соединения. После того, как клиент и сервер использовали Kerberos для доказательства своей подлинности, они могут зашифровать все их сообщения, чтобы обеспечить конфиденциальность и целостность данных, поскольку речь идет об их бизнесе.

Kerberos это доверительное обслуживание третьей стороной. То есть это третья часть (сервер Kerberos), доверенная всем объектам сети (пользователи и сервисы, обычно принципалы (объект, который доверяет другому сделать какую-то операцию, прим.перев.)). У всех принципалов есть секретный пароль (или ключ) с сервером kerberos и это позволяет принципалам проверить, что сообщения от сервера kerberos подлинны. Поэтому доверенный сервер kerberos, пользователи и серверы могут аутентифицировать друг друга.

До недавнего времени Kerberos был технологией, экспорт которой ограничивался из США. Долгие годы это мешало всеобщему внедрению более безопасных сетевых технологий как в пределах США, так и за их пределами. Свободная и ничем не обремененная реализация Kerberos от MIT была произведена в Европе и доступна из Королевского Технологического Института (Royal Institute of Technology — KTH) , Швеция. Она известна как проект Heimdal Kerberos. В последнее время правительство Соединенных Штатов упразднило санкции на повсеместное распространение MIT Kerberos. Возможно, будет значительное продвижение вперед в развитии приложений, задействующих Kerberos, а также в общем развитии и использовании Kerberos во всем спектре индустрии информационных технологий.

Разразилась борьба относительно взаимодействия MIT Kerberos и его реализацией от Microsoft. Вот, например, отчет 2002 года, в котором говорится (вкратце, прим.перев.), что Microsoft делится спецификациями Kerberos с производителями ПО так, чтобы они хорошо «понимали» лишь продукцию Microsoft, однако не-Microsoft системы также могут взаимодействовать с Microsoft, но игнорируя часть спецификации Kerberos 5, реализованный в продукции MS, проектировщиков Kerberos такой подход не очень устраивает.

Так случилось, что клиенты Microsoft Windows зависят и ожидают включения неуказанных областей (unspecified fields) в коммуникационный поток данных Kerberos 5 для их Windows совместимости, особенно когда в Samba ожидается эмуляция контроллера домена на Windows Server 200x, где тесная зависимость между протоколами Kerberos и средой распределенных вычислений (distributed computing environment — DCE) Microsoft удаленных вызовов процедур (DCE RPC), которые сами являются существенной частью протоколов SMB/CIFS, используемых Microsoft.

Microsoft делает следующие комментарии по этому поводу в статье technet:

    Сервисы безопасности DCE также накладываются на протокол Kerberos. Аутентификационные сервисы DCE используют RPC представления сообщений протокола Kerberos. В дополнение, DCE использует поле авторизационных данных в билете Kerberos, чтобы передать сертификаты атрибутов привилегий (Privilege Attribute Certificates — PAC), которые определяют подлинность пользователя и членство в группе. DCE PAC использован подобным образом в идентификаторах безопасности (SID) Windows NT для аутентификации пользователей и контроля доступа. Сервисы Windows NT не могут перевести DCE PAC в идентификаторы пользователей и групп Windows NT. Не проблема взаимодействовать с Kerberos, проблема скорее во взаимодействии между DCE и информацией управления доступом Windows NT.

(к началу страницы)

11.3. Внедрение

Следующие процедуры в общих чертах описывают меры по обеспечению безопасности, обсуждаемые ранее.
(к началу страницы)

11.3.1. Управление общим доступом (Share Access Controls)

Списки управления доступом (ACL), размещенные в самом общем ресурсе, действуют как фильтр в то время, когда клиент CIFS/SMB (такой как Windows XP Pro) пытается подключиться к серверу Samba.

Создание/удаление/редактирование ACL общего ресурса:

1. Войдите под учетной записью администратора домена (в домене Samba этот пользователь обычно называется root) на рабочую станцию Windows 200x/XP Professional.

2. Щелкните Пуск->Настройка->Панель_Управления->Администрирование-Управление_компьютером (или нажмите Win+R и наберите compmgmt.msc).

3. В левой панели щелкните правой клавишей по Управление компьютером и пройдите Подключиться_к_другому_компьютеру...->Обзор->Дополнительно->Поиск. Теперь в нижней панели щелкните по серверу, которым хотите управлять. Щелкните Ок->Ок->Ок. В левой панели, подпись Управление компьютером (локальным) будет сейчас отражать сделанные изменения. Например, если вы подключились к компьютеру FRODO, то подпись будет такой: Управление компьютером (FRODO).

4. В левой панели пройдите Управление_компьютером_(FRODO)->Общие_папки->Общие_ресурсы.

5. В правой панели щелкните два раза на общем ресурсе, ACL (список котроля доступа) которого вы хотите установить/редактировать. Это вызовет панель Свойства. Щелкните вкладку Разрешения для общего ресурса (чтобы все вкладки были на месте, вы должны проверить, отключен ли в вашей системе параметр Использовать простой доступ к файлам (рекомендуется), для этого нажмите Win+R, введите explorer.exe (вызываем Проводник), идем Сервис->Свойства_папки-вкладка_Вид->подраздел_Файлы_и_папки, ищем упомянутый параметр и снимаем галочку (по умолчанию она стоит), прим.перев.).

6. Теперь вы можете редактировать/добавлять/удалять настройки контроля доступом. Будьте очень аккуратны. Много проблем создано людьми, которые решили, что в списке не должно быть никого, кроме одной группы, имеющей полный контроль. Это взаимоисключающее условие (букв. Уловка-22) потому что члены такой специальной группы также входят в группу Все, которая, следовательно, лишается всех установленных прав для группы, которой даны права (не совсем понял мысль автора, как раз, если пользователей раскидать по группам, и установить права на группы, а Все удалить, то будет осуществляться доступ в соответствии с выставленными разрешениями в зависимости от принадлежности к группе, если же оставить дефолтное майкросовтовское Все, то смысл от установок для групп или отдельных пользователей пропадает, так как в этом случае разрешается доступ именно для всех, то есть для любого, прим.перев.).

7. После окончания редактирования щелкните Ok и закройте панель.
(к началу страницы)

11.3.2. Управление описанием доступа (Share Definition Controls)

Управление доступом, основанным на описании ресурса может использоваться наподобие КПП (контрольной точкой, сheckpoint) или сваезабивочной машины. Так же КПП может использоваться, чтобы потребовать у кого-нибудь, кто хочет пройти, соответствовать определенным требованиям, так же можно потребовать от пользователя (или группы, в которую входит пользователь) соответствие определенным, связанным с разрешениями, требованиям. Это можно сравнить со сваезабивочной машиной наподобие доминантного управления по умолчанию, которое соответствует определенному, связанному с разрешениями, требованию. Пользователю можно предоставить полномочия и привилегии, которые по умолчанию не были бы доступны пользователю.

Следует особо подчеркнуть, что управление, обсуждаемое здесь, может действовать как фильтр или дать право на прохождение, которые действуют как суперструктура над обычным управлением доступом к файлам и папкам. Как бы то ни было, списки контроля доступом к общему ресурсу действуют на более высоком уровне, чем управление описанием доступа, потому что пользователь должен пройти через фильтр на уровне управления общим доступом, чтобы попасть на уровень управления описания доступа. Характерная иерархия управления, внедренная в сетях Samba и Windows включает:

  • списки контроля доступа (ACL) на уровне общего доступа;

  • управление описанием доступа;

  • права на каталоги и файлы;

  • списки контроля доступа (ACL) POSIX на каталоги и файлы.
(к началу страницы)

11.3.2.1. Управление контрольной точкой (Checkpoint Controls)

Рассмотрим следующий фрагмент файла smb.conf, описывающий общий ресурс Apps:

[Apps]
	comment = Application Share
	path = /data/apps
	read only = Yes
	valid users = @Employees

Это описание позволяет доступ (причем только на чтение) к общему ресурсу только тем, кто является членами группы Employees. Если кто-то попытается получить доступ, не являясь членом упомянутой группы, он получит отказ.

Примечание: на клиентах и серверах членах домена, даже когда определен параметр winbind use default domain, при управлении безопасностью требуется указание полного, определенного в домене имени пользователя, например valid users = @"MEGANET\Northern Engineers". Отметьте необходимость использования двойных кавычек и как они используются.

Рассмотрим другой пример. Сейчас мы хотим позволить доступ всем членам группы Employees за исключением пользователя patrickj. Этого можно легко добиться, установив в ACL общего ресурса позволить доступ к общему ресурсу только группе Employees, а затем в описании управления доступом исключить пользователя patrickj. Это может быть сделано так:

[Apps]
        comment = Application Share
        path = /data/apps
        read only = Yes
        invalid users = patrickj

(хм, не вижу, где мы позволили доступ к общему ресурсу только группе Employees?, прим.перев.).

Допустим, вы хотите позволить пользователю gbshaw управлять всеми файлами в файловой системе UNIX/Linux каталога /data/apps и не давать никаких прав на запись вне дерева каталога, это может быть сделано, например так: Сейчас мы получили настройки управления, позволяющие только группе Employees, которая также является членом группы Doctors, за исключением пользователя patrickj, права на чтение, а пользователю gbshaw даны

[Apps]
        comment = Application Share
        path = /data/apps
        read only = Yes
        invalid users = patrickj
        admin users = gbshaw

административные привилегии. Такие привилегии позволяют управлять файлами так, будто gbshaw вошел в систему UNIX/Linux под учетной записью root и, таким образом, позволяет управление этому пользователю всеми другими пользователями этого ресурса.

Может использоваться еще одна возможность по управлению. Например, если мы хотим предоставить право записи пользователю peters в общий ресурс, а в системе UNIX этот пользователь может записывать в этот каталог, то можно сделать это так:

[Apps]
        comment = Application Share
        path = /data/apps
        read only = Yes
        invalid users = patrickj
        admin users = gbshaw
        write list = peters

Это особенно сложный пример этого раздела, но он хорошо демонстрирует возможности. Вы должны обратиться к man-страницам файла smb.conf для получения более подробной информации по средствам управления общими ресурсами Samba.
(к началу страницы)

11.3.2.2. Корректировка управления (Override Controls)

Корректировка управления применяется в Samba для переключения прав либо принадлежности в течение работы файловой системы, она вынуждает корректировать обычные права и разрешения на файлы и каталоги. Вы должны обратиться к man-страницам файла smb.conf для получения более подробной информации по средствам управления общими ресурсами Samba.

В следующем примере мы хотим создать общий сетевой ресурс Windows, в который может попасть любой пользователь. Однако, мы хотим, чтобы все операции по чтению/записи выполнялись так, будто их делает пользователь billc, являющийся членом группы Mentors. Вот как это может быть сделано:

[someshare]
	comment = Some Files Everyone May Overwrite
	path = /data/somestuff
	read only = No
	force user = billc
	force group = Mentors

Это все, что нужно. Хорошо, почти совсем просто. Обратной стороной этого метода является то, что пользователи, делает вход на клиента Windows под своей учетной записью, затем сразу перед доступом к файлам общего ресурса Samba делает системный запрос для изменения действующего пользователя и группы на принудительный, заданный в конфигурации, заканчивает обработку запроса и затем возвращается к фактической аутентификации. Альтернативный путь для действенного достижения такого же результата (но с более низкой загрузкой CPU) будет описан ниже.

Использование параметров force user или force group также может иметь сильное влияние на производительность системы (особенно на клиенты Windows). Если блокировки «любой ценой» (opportunistic locking) включены на общем ресурсе (по умолчанию), это вызывает отсылку oplock break к клиенту, даже если клиент не открыл файл. В сетях, которые имеют высокую плотность сетевого трафика или обращаются через маршрутизаторы к удаленным сегментам сети, oplock break может быть потерян. В результате возможна ретрансляция запроса или клиент может простаивать во время ожидания, пока операция чтения или записи не завершится. В итоге может наступить полная потеря производительности (попросту зависание, прим.перев.) пока клиент будет продолжать пытаться соединиться с сервером, чтобы преодолеть следствие потери oplock break.
(к началу страницы)

11.3.3. Разрешения на общие папки и файлы

Samba спроектирована и разворачивается так, чтобы она, насколько возможно, аккуратно относилась к осуществляющемуся управлению безопасностью и правами пользователей, которое встроено в операционную систему UNIX/Linux. Samba ничего не изменяет в настройках прав и доступа к файловой системе, пока нет прямых инструкций сделать иначе посредством управления описания доступом (share definition controls). Учитывая, что Samba подчиняется управлению файловой системы UNIX, в этой главе не документирована простая информация, которая может быть получена из базовых руководств по UNIX. Вместо этого используется один пример типичной проблемы, в котором показано наиболее эффективное решение.

Одна из общих проблем, которая неоднократно упоминается в списках рассылки Samba касается сохранения файлов Microsoft Office (Word и Excel) на сетевом диске. Вот типичная последовательность:

1. Пользователь открывает документ Word с сетевого диска. Файл принадлежит пользователю janetp, которая установила права чтение/запись для всех.

2. Файл изменен, в нем сделано какое-либо редактирование.

3. Файл сохранен и MS Word закрыт.

4. Теперь файл принадлежит пользователю billc и группе doctors, и установлены права чтение/запись для billc, только чтение для doctors и запрещен доступ для всех остальных.

5. Настоящий владелец теперь не может получить доступ к своему файлу и разумеется огорчена и расстроена.

За многие годы было много сообщений об этой проблеме. Часто пользователи Samba хотят знать, когда эта ошибка будет устранена («баг пофиксен»). Фактически, это вообще не ошибка Samba. Вот настоящая последовательность того, что происходит в данном случае.

Когда пользователь сохраняет файл, MS Word создает новый (временный, temporary) файл. Этот файл естественно принадлежит пользователю, который создал файл (billc) и имеет разрешения, которые следуют из пользовательских настроек по умолчанию внутри операционной системы (UNIX/Linux). Когда MS Word закончил запись файла на диск он переименовывает новый (временный) файл в имя старого. MS Word не изменяет владельца или разрешения, которые были на оригинальном файле. Просто образуется совершенно новый файл, а старый удаляется в процессе.

Samba получила запрос на создание нового файла и затем переименовать файл в новое имя. Старый файл, который имеет тоже самое имя, автоматически удаляется. У Samba нет какого-то способа узнать, что новый файл должен иметь того же пользователя и разрешения, что и у старого файла. К Samba это все не относится.

Вопрос: «Как же нам решить эту задачу?».

Решение простое. Используйте в ваших интересах разрешения и управление файловой системой UNIX. Сделайте общий ресурс, в котором все файлы согласованно будут принадлежать тому же самому пользователю и группе.

Использование разрешений каталога для принудительного назначения владельца:

1. Измените описание вашего общего ресурса, как показано ниже:

[finance]
        path = /usr/data/finance
        browseable = Yes
        read only = No 

2. Рекурсивно установите разрешения на все дерево каталога одному и тому же пользователю и группе:

root#  chown -R janetp.users /usr/data/finance

(прим.перев. По-моему здесь опечатка, и строка должна быть:

root#  chown -R janetp:finance /usr/data/finance

3. Установите права на чтение/запись файлов и каталогов для владельца и группы, а остальных (Все) лишите прав:

root#  chmod ug+rwx,o-rwx /usr/data/finance

4. Установите бит SGID (супергруппа, supergroup) на все каталоги сверху вниз. Это значит, что все файлы могут создаваться с правами группы, выставленными для каталога. Таким образом, все пользователи, являющиеся членами группы finance могут читать и записывать файлы в каталог. Каталог не будет доступен на чтение и запись любому, кто не входит в группу finance.

5. Убедитесь, что у всех пользователей, которые должны иметь право чтения/записи в каталог, основной является группа finance, например, вы можете это узнать в файле /etc/passwd.
(к началу страницы)

11.3.4. Управление ACL (списками контроля доступа)Windows 200x

Samba должна переводить ACL Windows 2000 в ACL UNIX POSIX. Это действие имеет некоторые интересные стороны, так как перевод получается не один-в-один. Эквивалент ACL «так близко, насколько это возможно» означает, что некоторые транзакции (Транзакция — процесс, состоящий из запроса (например, к БД) и получения результатов его обработки. Механизм транзакций обеспечивает одновременный доступ к БД многих пользователей. Каждая транзакция выполняется либо целиком, либо не выполняется вовсе, также транзакции выполняются независимо одна от другой, прим.перев.) не возможны из клиентов MS Windows. Один из них должен сбросить (восстановить в исходное состояние) принадлежность каталогов и файлов. Это должно быть сделано из под учетной записи UNIX/Linux.

Есть две возможности установить ACL на UNIX/Linux файловой системе из рабочей станции Windows. Либо через файловый менеджер, либо через консоль управления Microsoft (MMC).
(к началу страницы)

11.3.4.1. Использование интерфейса mmc

1. Войдите под учетной записью администратора домена (в домене Samba этот пользователь обычно называется root) на рабочую станцию Windows 200x/XP Professional.

2. Щелкните Пуск->Настройка->Панель_Управления->Администрирование-Управление_компьютером (или нажмите Win+R и наберите compmgmt.msc).

3. В левой панели щелкните правой клавишей по Управление компьютером и пройдите Подключиться_к_другому_компьютеру...->Обзор->Дополнительно->Поиск. Теперь в нижней панели щелкните по серверу, которым хотите управлять. Щелкните Ок->Ок->Ок. В левой панели, подпись Управление компьютером (локальным) будет сейчас отражать сделанные изменения. Например, если вы подключились к компьютеру FRODO, то подпись будет такой: Управление компьютером (FRODO).

4. В левой панели пройдите Управление_компьютером_(FRODO)->Общие_папки->Общие_ресурсы.

5. В правой панели щелкните два раза на общем ресурсе, ACL (список котроля доступа) которого вы хотите установить/редактировать. Это вызовет панель Свойства. Щелкните вкладку Безопасность. Лучше редактировать, пройдя в Дополнительно, после нажатия на эту кнопку откроется панель с четырьмя вкладками. Samba cервер домена могут затрагивать только настройки с вкладки Разрешения (чтобы все вкладки были на месте, вы должны проверить, отключен ли в вашей системе параметр Использовать простой доступ к файлам (рекомендуется), для этого нажмите Win+R, введите explorer.exe (вызываем Проводник), идем Сервис->Свойства_папки-вкладка_Вид->подраздел_Файлы_и_папки, ищем упомянутый параметр и снимаем галочку (по умолчанию она стоит), прим.перев.).

6. Теперь вы можете редактировать/добавлять/удалять настройки контроля доступом. Будьте очень аккуратны. Много проблем создано людьми, которые решили, что в списке не должно быть никого, кроме одной группы, имеющей полный контроль. Это взаимоисключающее условие (букв. Уловка-22) потому что члены такой специальной группы также входят в группу Все, которая, следовательно, лишается всех установленных прав для группы, которой даны права (не совсем понял мысль автора, как раз, если пользователей раскидать по группам, и установить права на группы, а Все удалить, то будет осуществляться доступ в соответствии с выставленными разрешениями в зависимости от принадлежности к группе, если же оставить дефолтное майкросовтовское Все, то смысл от установок для групп или отдельных пользователей пропадает, так как в этом случае разрешается доступ именно для всех, то есть для любого, прим.перев.).

7. После окончания редактирования щелкните Ok и закройте панель.
(к началу страницы)

11.3.4.2. Использование файлового менеджера Проводник MS Windows

Следующий альтернативный метод может использоваться на рабочих станциях Windows. В этом примере мы работаем с доменом MEGANET, сервером MASSIVE, и общей папкой Apps. В системе UNIX/Linux эта общая папка физически находится в каталоге /data/apps.

1. Щелкните Пуск->правой_клавишей_мышки_по_Мой_компьютер->Проводник->в_левом_окне_раскройте_Сетевое_окружение->Вся_сеть-> Microsoft_Windows_Network->Meganet->Massive->правой_клавишей_по_Apps->Свойства->Безопасность->Дополнительно. Теперь перед вами открыта панель с четырьмя вкладками. Samba cервер домена могут затрагивать только настройки с вкладки Разрешения.

2. Теперь вы можете редактировать/добавлять/удалять настройки контроля доступом. Будьте очень аккуратны. Много проблем создано людьми, которые решили, что в списке не должно быть никого, кроме одной группы, имеющей полный контроль. Это взаимоисключающее условие (букв. Уловка-22) потому что члены такой специальной группы также входят в группу Все, которая, следовательно, лишается всех установленных прав для группы, которой даны права (не совсем понял мысль автора, как раз, если пользователей раскидать по группам, и установить права на группы, а Все удалить, то будет осуществляться доступ в соответствии с выставленными разрешениями в зависимости от принадлежности к группе, если же оставить дефолтное майкросовтовское Все, то смысл от установок для групп или отдельных пользователей пропадает, так как в этом случае разрешается доступ именно для всех, то есть для любого, прим.перев.).

3. После окончания редактирования щелкните Ok и закройте панель.
(к началу страницы)

11.3.4.3. Установка Posix ACL в UNIX/Linux

Еще один способ установки требуемых настроек безопасности на файлы и каталоги общего ресурса заключается во входе на систему UNIX/Linux и установка POSIX ACL напрямую, используя инструменты командной строки. Ниже пример настройки для общего ресурса из предыдущего примера, работа ведется на системе SUSE 9 Linux:

1. Войдите в систему под именем пользователя root.

2. Пройдите в каталог, в котором размещен каталог Apps:

root#  cd /data

Определите существующие настройки ACL POSIX:

root#  getfacl apps
# file: apps
# owner: root
# group: root
user::rwx
group::rwx
other::r-x

3. Вы хотите добавить права группе AppsMgrs, чтобы она могла управлять приложениями в общей папке apps. В этом случае важно установить ACL рекурсивно, для этого используйте ключ -R:

root#  setfacl -m -R group:AppsMgrs:rwx /data/apps

Так как после установки ACL не выводится никаких сообщений, нужно проверить, что получилось:

root#  getfacl /data/apps
# file: apps
# owner: root
# group: root
user::rwx
group::rwx
group:AppsMgrs:rwx
mask::rwx
other::r-x

4. Настоятельно рекомендуется изучить man-страницы по setfacl и getfacl, в частности, как настраивать/читать настройки ACL по умолчанию и как они могут передаваться по всему дереву каталога. В терминах ACL Windows это является эквивалентом настройки Свойства_папки->Беззопасность->Дополнительно->Разрешения->Наследовать.... (для начала можете ознакомиться с этим материалом , прим.перев.)
(к началу страницы)

11.3.5. Основные моменты изученного

Клубок разнообразных проблем был собран в одной главе, так как это было хорошей идеей. Оглядываясь назад, могу сказать, что глава могла бы быть разбита на две, но уже поздно, что сделано, то сделано.

Итак, какие вопросы освещены здесь:

  • Winbind соблюдает и не пренебрегает установками управления учетных записей Active Directory. Это значит, что изменение пароля, времени регистрации, и т.д. обеспечивается Samba winbind. На сегодня не обеспечивается запрет входа в заданное время, т. е. если пользователь задержался в системе сверх заданного времени, он не будет принудительно выведен из системы. Это должно быть осуществлено в ближайшее время;

  • цифровая подпись (плюс поддержка защищенных каналов) была реализована в Samba-3. Однако остерегайтесь потенциальных проблем, признанных Microsoft как устраненными, но по некоторым отчетам, все еще существующими;

  • комбинация из Kerberos 5, OpenLDAP, и Samba не может заменить Microsoft Active Directory. И в текущей реализации Samba-3 это отсутствует в планах. Samba действительно стремиться к дальнейшему усовершенствованию способности взаимодействия так, чтобы системы UNIX/Linux могли быть полностью интегрированы в домены Active Directory;

  • эта глава рассмотрела механизмы, благодаря которым на серверах Samba может поддерживаться безопасность. Каждая из четырех основных технологий была рассмотрена в свете определенного примера.
(к началу страницы)

11.4. Вопросы и ответы

1. Требуется ли правка реестра для поддержкания Samba-3 цифровой подписи, как это требовалось Samba-2?
2. Поддерживает ли Samba-3 Active Directory?
3. Когда Samba-3 используется с Active Directory, необходимо ли запускать смешанный режим (mixed-mode), как это требовалось в Samba-2?
4. Безопасно ли в Samba задавать управление доступом на уровне общего ресурса (share-level access controls)?
5. Обязательная установка ACL на общий ресурс делает Samba безопаснее?
6. Параметр valid users не действовал в секции [homes]. Эта функциональност была восстановлена?
7. Уклонение от использования параметров force user и force group имеет основания?
8. В примере по управлению доступом к файлам и каталогам все файлы принудительно принадлежат одному определенному пользователю. Меня это не устраивает. Есть ли способ, в котором я могу увидеть, кто на самом деле создал файл?
9. В книге «The Official Samba-3 HOWTO and Reference Guide», вы рекомендуете использовать утилиту Windows NT4 Server Manager (часть SRVTOOLS.EXE). Почему же вы упоминаете только об использовании консоли управления mmc для Windows 200x/XP?
10. Я пытался установить параметр valid users = @Engineers, но он не работает. Мой сервер Samba является членом домена Active Directory. Эта ошибка будет исправлена?

1. Требуется ли правка реестра для поддержкания Samba-3 цифровой подписи, как это требовалось Samba-2?

- Нет. Samba-3 полностью поддерживает цифровую подпись и защищенные каналы. Правка реестра не требуется, когда Samba-3 используется как контроллер домена.

2. Поддерживает ли Samba-3 Active Directory?

- Да. Samba-3 может полностью работать в режиме родного (native) клиента Active Directory. Samba-3 не предоставляет сервисов Active Directory. Она не может использоваться как замена Microsoft Active Directory. Samba-3 имеет функции клиента (рабочей станции) Microsoft Active Directory и может функционировать как сервер член домена Active Directory.

3. Когда Samba-3 используется с Active Directory, необходимо ли запускать смешанный режим (mixed-mode), как это требовалось в Samba-2?

- Нет. Samba-3 может использоваться с отключенным NetBIOS поверх TCP/IP , как это может быть сделано с Windows 200x Server и клиентами 200x/XP Pro. Нет необходимости запускать такой режим, поскольку Samba-3 может быть включена в родной (native) домен Windows 2003 Server ADS.

4. Безопасно ли в Samba задавать управление доступом на уровне общего ресурса (share-level access controls)?

- Да. Управление доступом на уровне общего ресурса поддерживается с ранних версий Samba-2. Это очень продуманная технология. Большее количество предприятий могли бы пользоваться этой мощной возможностью, как на серверах Windows, так и на серверах Samba.

5. Обязательная установка ACL на общий ресурс делает Samba безопаснее?

- Нет. Samba-3 соблюдает настройки безопасности файловой системы UNIX/Linux, поддерживает ACL Windows 200x и предоставляет средства повышения безопасности общих ресурсов посредством управлением описания доступа (share definition controls) в файле smb.conf. Также поддерживается ACL на уровне общего ресурса (share-level ACL) подобно сахарной глазури на пирожном. Это добавляет безопасности, но не является основным компонентом.

6. Параметр valid users не действовал в секции [homes]. Эта функциональност была восстановлена?

- Да. Это было исправлено в Samba-3.0.2. Использование этого параметра настоятельно рекомендуется как мера предосторожности мета-сервиса [homes]. Разумной настройкой будет такая: valid users = %S.

7. Уклонение от использования параметров force user и force group имеет основания?

- Это не уклонение. Просто существует решение рекомендовать подходящие инструменты для задач обработки. В конце концов, это лучше, чем когда пользователи испытывают проблемы, не так ли

8. В примере по управлению доступом к файлам и каталогам все файлы принудительно принадлежат одному определенному пользователю. Меня это не устраивает. Есть ли способ, в котором я могу увидеть, кто на самом деле создал файл?

- Разумеется. Вы не должны устанавливать бит SUID на каталог. Просто выполните следующую команду, чтобы узнать, каким пользователем создан файл:

root#  find /usr/data/finance -type d -exec chmod g+s {}\;

Заметьте, это потребовало не больше, чем удаление аргумента u, так что бит SUID не задан для владельца

9. В книге «The Official Samba-3 HOWTO and Reference Guide», вы рекомендуете использовать утилиту Windows NT4 Server Manager (часть SRVTOOLS.EXE). Почему же вы упоминаете только об использовании консоли управления mmc для Windows 200x/XP

- Любой из этих инструментов может использоваться. Нет каких-то преимуществ у одного перед другим, за исключением того, что mmc вы найдете на всех системах Windows 200x/XP, это не требует загрузки и установки дополнительных программ. Заметьте, что если вы хотите управлять учетными записями пользователей и групп вашего контроллера домена на Samba, используйте NT4 Domain User Manager, который входит в состав SRVTOOLS.EXE.

10. Я пытался установить параметр valid users = @Engineers, но он не работает. Мой сервер Samba является членом домена Active Directory. Эта ошибка будет исправлена?

- Использование этого параметра всегда требует полного описания учетной записи домена, например valid users = @"MEGANET2\Domain Admins".
(к началу страницы)

Назад
Часть III. Справочные материалы
Содержание
Дальше
Глава 12. Интеграция дополнительных сервисов